Merge "msm_fb: Display: Enable NO_PIPE_CTRL flag for 7x30"
diff --git a/AndroidKernel.mk b/AndroidKernel.mk
index 717dd8c..843da69 100644
--- a/AndroidKernel.mk
+++ b/AndroidKernel.mk
@@ -70,7 +70,7 @@
$(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
$(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
- $(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
+ $(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-eabi- modules_install
$(mv-modules)
$(clean-module-folder)
$(append-dtb)
diff --git a/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c b/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
index 2e4b756..84a79cd 100644
--- a/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
+++ b/arch/arm/mach-msm/qdsp6v2/audio_utils_aio.c
@@ -1057,8 +1057,14 @@
switch (cmd) {
case AUDIO_GET_STATS: {
struct msm_audio_stats stats;
+ uint64_t timestamp;
stats.byte_count = atomic_read(&audio->in_bytes);
stats.sample_count = atomic_read(&audio->in_samples);
+ timestamp = q6asm_get_session_time(audio->ac);
+ if (timestamp >= 0)
+ memcpy(&stats.unused[0], ×tamp, sizeof(timestamp));
+ else
+ pr_debug("Error while getting timestamp\n");
if (copy_to_user((void *)arg, &stats, sizeof(stats)))
rc = -EFAULT;
break;
diff --git a/drivers/char/diag/diagchar.h b/drivers/char/diag/diagchar.h
index b18d709..a8e33b5 100644
--- a/drivers/char/diag/diagchar.h
+++ b/drivers/char/diag/diagchar.h
@@ -39,16 +39,16 @@
#define POOL_TYPE_HSIC 8
#define POOL_TYPE_HSIC_WRITE 16
#define POOL_TYPE_ALL 7
-#define MODEM_DATA 1
-#define QDSP_DATA 2
-#define APPS_DATA 3
+#define MODEM_DATA 1
+#define LPASS_DATA 2
+#define APPS_DATA 3
#define SDIO_DATA 4
#define WCNSS_DATA 5
#define HSIC_DATA 6
#define SMUX_DATA 7
#define MODEM_PROC 0
#define APPS_PROC 1
-#define QDSP_PROC 2
+#define LPASS_PROC 2
#define WCNSS_PROC 3
#define MSG_MASK_SIZE 10000
#define LOG_MASK_SIZE 8000
@@ -181,9 +181,9 @@
unsigned char *buf_in_1;
unsigned char *buf_in_2;
unsigned char *buf_in_cntl;
- unsigned char *buf_in_qdsp_1;
- unsigned char *buf_in_qdsp_2;
- unsigned char *buf_in_qdsp_cntl;
+ unsigned char *buf_in_lpass_1;
+ unsigned char *buf_in_lpass_2;
+ unsigned char *buf_in_lpass_cntl;
unsigned char *buf_in_wcnss_1;
unsigned char *buf_in_wcnss_2;
unsigned char *buf_in_wcnss_cntl;
@@ -198,14 +198,14 @@
smd_channel_t *ch;
smd_channel_t *ch_cntl;
smd_channel_t *ch_dci;
- smd_channel_t *chqdsp;
- smd_channel_t *chqdsp_cntl;
+ smd_channel_t *chlpass;
+ smd_channel_t *chlpass_cntl;
smd_channel_t *ch_wcnss;
smd_channel_t *ch_wcnss_cntl;
int in_busy_1;
int in_busy_2;
- int in_busy_qdsp_1;
- int in_busy_qdsp_2;
+ int in_busy_lpass_1;
+ int in_busy_lpass_2;
int in_busy_wcnss_1;
int in_busy_wcnss_2;
int in_busy_dci;
@@ -223,13 +223,13 @@
struct work_struct diag_drain_work;
struct work_struct diag_read_smd_work;
struct work_struct diag_read_smd_cntl_work;
- struct work_struct diag_read_smd_qdsp_work;
- struct work_struct diag_read_smd_qdsp_cntl_work;
+ struct work_struct diag_read_smd_lpass_work;
+ struct work_struct diag_read_smd_lpass_cntl_work;
struct work_struct diag_read_smd_wcnss_work;
struct work_struct diag_read_smd_wcnss_cntl_work;
struct workqueue_struct *diag_cntl_wq;
struct work_struct diag_modem_mask_update_work;
- struct work_struct diag_qdsp_mask_update_work;
+ struct work_struct diag_lpass_mask_update_work;
struct work_struct diag_wcnss_mask_update_work;
struct work_struct diag_read_smd_dci_work;
struct work_struct diag_clean_modem_reg_work;
@@ -246,8 +246,8 @@
struct diag_request *write_ptr_2;
struct diag_request *usb_read_ptr;
struct diag_request *write_ptr_svc;
- struct diag_request *write_ptr_qdsp_1;
- struct diag_request *write_ptr_qdsp_2;
+ struct diag_request *write_ptr_lpass_1;
+ struct diag_request *write_ptr_lpass_2;
struct diag_request *write_ptr_wcnss_1;
struct diag_request *write_ptr_wcnss_2;
struct diag_write_device *write_ptr_dci;
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index 59139dc..814fe64 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -151,9 +151,9 @@
__diag_smd_send_req();
}
-void diag_read_smd_qdsp_work_fn(struct work_struct *work)
+void diag_read_smd_lpass_work_fn(struct work_struct *work)
{
- __diag_smd_qdsp_send_req();
+ __diag_smd_lpass_send_req();
}
void diag_read_smd_wcnss_work_fn(struct work_struct *work)
@@ -548,8 +548,8 @@
== NO_LOGGING_MODE) {
driver->in_busy_1 = 1;
driver->in_busy_2 = 1;
- driver->in_busy_qdsp_1 = 1;
- driver->in_busy_qdsp_2 = 1;
+ driver->in_busy_lpass_1 = 1;
+ driver->in_busy_lpass_2 = 1;
driver->in_busy_wcnss_1 = 1;
driver->in_busy_wcnss_2 = 1;
#ifdef CONFIG_DIAG_SDIO_PIPE
@@ -563,17 +563,17 @@
== MEMORY_DEVICE_MODE) {
driver->in_busy_1 = 0;
driver->in_busy_2 = 0;
- driver->in_busy_qdsp_1 = 0;
- driver->in_busy_qdsp_2 = 0;
+ driver->in_busy_lpass_1 = 0;
+ driver->in_busy_lpass_2 = 0;
driver->in_busy_wcnss_1 = 0;
driver->in_busy_wcnss_2 = 0;
/* Poll SMD channels to check for data*/
if (driver->ch)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_work));
- if (driver->chqdsp)
+ if (driver->chlpass)
queue_work(driver->diag_wq,
- &(driver->diag_read_smd_qdsp_work));
+ &(driver->diag_read_smd_lpass_work));
if (driver->ch_wcnss)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_wcnss_work));
@@ -606,8 +606,8 @@
diagfwd_disconnect();
driver->in_busy_1 = 0;
driver->in_busy_2 = 0;
- driver->in_busy_qdsp_1 = 0;
- driver->in_busy_qdsp_2 = 0;
+ driver->in_busy_lpass_1 = 0;
+ driver->in_busy_lpass_2 = 0;
driver->in_busy_wcnss_1 = 0;
driver->in_busy_wcnss_2 = 0;
@@ -615,9 +615,9 @@
if (driver->ch)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_work));
- if (driver->chqdsp)
+ if (driver->chlpass)
queue_work(driver->diag_wq,
- &(driver->diag_read_smd_qdsp_work));
+ &(driver->diag_read_smd_lpass_work));
if (driver->ch_wcnss)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_wcnss_work));
@@ -747,27 +747,27 @@
driver->in_busy_2 = 0;
}
/* copy lpass data */
- if (driver->in_busy_qdsp_1 == 1) {
+ if (driver->in_busy_lpass_1 == 1) {
num_data++;
/*Copy the length of data being passed*/
COPY_USER_SPACE_OR_EXIT(buf+ret,
- (driver->write_ptr_qdsp_1->length), 4);
+ (driver->write_ptr_lpass_1->length), 4);
/*Copy the actual data being passed*/
COPY_USER_SPACE_OR_EXIT(buf+ret, *(driver->
- buf_in_qdsp_1),
- driver->write_ptr_qdsp_1->length);
- driver->in_busy_qdsp_1 = 0;
+ buf_in_lpass_1),
+ driver->write_ptr_lpass_1->length);
+ driver->in_busy_lpass_1 = 0;
}
- if (driver->in_busy_qdsp_2 == 1) {
+ if (driver->in_busy_lpass_2 == 1) {
num_data++;
/*Copy the length of data being passed*/
COPY_USER_SPACE_OR_EXIT(buf+ret,
- (driver->write_ptr_qdsp_2->length), 4);
+ (driver->write_ptr_lpass_2->length), 4);
/*Copy the actual data being passed*/
COPY_USER_SPACE_OR_EXIT(buf+ret, *(driver->
- buf_in_qdsp_2), driver->
- write_ptr_qdsp_2->length);
- driver->in_busy_qdsp_2 = 0;
+ buf_in_lpass_2), driver->
+ write_ptr_lpass_2->length);
+ driver->in_busy_lpass_2 = 0;
}
/* copy wncss data */
if (driver->in_busy_wcnss_1 == 1) {
@@ -886,9 +886,9 @@
if (driver->ch)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_work));
- if (driver->chqdsp)
+ if (driver->chlpass)
queue_work(driver->diag_wq,
- &(driver->diag_read_smd_qdsp_work));
+ &(driver->diag_read_smd_lpass_work));
if (driver->ch_wcnss)
queue_work(driver->diag_wq,
&(driver->diag_read_smd_wcnss_work));
@@ -1403,10 +1403,10 @@
INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn);
INIT_WORK(&(driver->diag_read_smd_cntl_work),
diag_read_smd_cntl_work_fn);
- INIT_WORK(&(driver->diag_read_smd_qdsp_work),
- diag_read_smd_qdsp_work_fn);
- INIT_WORK(&(driver->diag_read_smd_qdsp_cntl_work),
- diag_read_smd_qdsp_cntl_work_fn);
+ INIT_WORK(&(driver->diag_read_smd_lpass_work),
+ diag_read_smd_lpass_work_fn);
+ INIT_WORK(&(driver->diag_read_smd_lpass_cntl_work),
+ diag_read_smd_lpass_cntl_work_fn);
INIT_WORK(&(driver->diag_read_smd_wcnss_work),
diag_read_smd_wcnss_work_fn);
INIT_WORK(&(driver->diag_read_smd_wcnss_cntl_work),
diff --git a/drivers/char/diag/diagfwd.c b/drivers/char/diag/diagfwd.c
index a669b45..737edbf 100644
--- a/drivers/char/diag/diagfwd.c
+++ b/drivers/char/diag/diagfwd.c
@@ -50,7 +50,7 @@
unsigned char diag_debug_buf[1024];
static unsigned int buf_tbl_size = 8; /*Number of entries in table of buffers */
struct diag_master_table entry;
-smd_channel_t *ch_temp = NULL, *chqdsp_temp = NULL, *ch_wcnss_temp = NULL;
+smd_channel_t *ch_temp = NULL, *chlpass_temp = NULL, *ch_wcnss_temp = NULL;
int diag_event_num_bytes;
int diag_event_config;
struct diag_send_desc_type send = { NULL, NULL, DIAG_STATE_START, 0 };
@@ -353,11 +353,11 @@
driver->in_busy_2 = 0;
queue_work(driver->diag_wq, &(driver->
diag_read_smd_work));
- } else if (proc_num == QDSP_DATA) {
- driver->in_busy_qdsp_1 = 0;
- driver->in_busy_qdsp_2 = 0;
+ } else if (proc_num == LPASS_DATA) {
+ driver->in_busy_lpass_1 = 0;
+ driver->in_busy_lpass_2 = 0;
queue_work(driver->diag_wq, &(driver->
- diag_read_smd_qdsp_work));
+ diag_read_smd_lpass_work));
} else if (proc_num == WCNSS_DATA) {
driver->in_busy_wcnss_1 = 0;
driver->in_busy_wcnss_2 = 0;
@@ -403,7 +403,7 @@
buf, write_ptr->length, 1);
#endif /* DIAG DEBUG */
err = usb_diag_write(driver->legacy_ch, write_ptr);
- } else if (proc_num == QDSP_DATA) {
+ } else if (proc_num == LPASS_DATA) {
write_ptr->buf = buf;
err = usb_diag_write(driver->legacy_ch, write_ptr);
} else if (proc_num == WCNSS_DATA) {
@@ -510,24 +510,24 @@
}
}
-void __diag_smd_qdsp_send_req(void)
+void __diag_smd_lpass_send_req(void)
{
void *buf = NULL;
- int *in_busy_qdsp_ptr = NULL;
- struct diag_request *write_ptr_qdsp = NULL;
+ int *in_busy_lpass_ptr = NULL;
+ struct diag_request *write_ptr_lpass = NULL;
- if (!driver->in_busy_qdsp_1) {
- buf = driver->buf_in_qdsp_1;
- write_ptr_qdsp = driver->write_ptr_qdsp_1;
- in_busy_qdsp_ptr = &(driver->in_busy_qdsp_1);
- } else if (!driver->in_busy_qdsp_2) {
- buf = driver->buf_in_qdsp_2;
- write_ptr_qdsp = driver->write_ptr_qdsp_2;
- in_busy_qdsp_ptr = &(driver->in_busy_qdsp_2);
+ if (!driver->in_busy_lpass_1) {
+ buf = driver->buf_in_lpass_1;
+ write_ptr_lpass = driver->write_ptr_lpass_1;
+ in_busy_lpass_ptr = &(driver->in_busy_lpass_1);
+ } else if (!driver->in_busy_lpass_2) {
+ buf = driver->buf_in_lpass_2;
+ write_ptr_lpass = driver->write_ptr_lpass_2;
+ in_busy_lpass_ptr = &(driver->in_busy_lpass_2);
}
- if (driver->chqdsp && buf) {
- int r = smd_read_avail(driver->chqdsp);
+ if (driver->chlpass && buf) {
+ int r = smd_read_avail(driver->chlpass);
if (r > IN_BUF_SIZE) {
if (r < MAX_IN_BUF_SIZE) {
@@ -542,18 +542,18 @@
}
if (r > 0) {
if (!buf)
- printk(KERN_INFO "Out of diagmem for QDSP\n");
+ printk(KERN_INFO "Out of diagmem for LPASS\n");
else {
APPEND_DEBUG('i');
- smd_read(driver->chqdsp, buf, r);
+ smd_read(driver->chlpass, buf, r);
APPEND_DEBUG('j');
- write_ptr_qdsp->length = r;
- *in_busy_qdsp_ptr = 1;
- diag_device_write(buf, QDSP_DATA,
- write_ptr_qdsp);
+ write_ptr_lpass->length = r;
+ *in_busy_lpass_ptr = 1;
+ diag_device_write(buf, LPASS_DATA,
+ write_ptr_lpass);
}
}
- } else if (driver->chqdsp && !buf &&
+ } else if (driver->chlpass && !buf &&
(driver->logging_mode == MEMORY_DEVICE_MODE)) {
chk_logging_wakeup();
}
@@ -856,9 +856,9 @@
RESET_ID)
return;
smd_write(driver->ch, buf, len);
- } else if (entry.client_id == QDSP_PROC &&
- driver->chqdsp) {
- smd_write(driver->chqdsp, buf, len);
+ } else if (entry.client_id == LPASS_PROC &&
+ driver->chlpass) {
+ smd_write(driver->chlpass, buf, len);
} else if (entry.client_id == WCNSS_PROC &&
driver->ch_wcnss) {
smd_write(driver->ch_wcnss, buf, len);
@@ -877,12 +877,12 @@
diag_send_event_mask_update(driver->ch_cntl, diag_event_num_bytes);
}
-void diag_qdsp_mask_update_fn(struct work_struct *work)
+void diag_lpass_mask_update_fn(struct work_struct *work)
{
- diag_send_msg_mask_update(driver->chqdsp_cntl, ALL_SSID,
- ALL_SSID, QDSP_PROC);
- diag_send_log_mask_update(driver->chqdsp_cntl, ALL_EQUIP_ID);
- diag_send_event_mask_update(driver->chqdsp_cntl, diag_event_num_bytes);
+ diag_send_msg_mask_update(driver->chlpass_cntl, ALL_SSID,
+ ALL_SSID, LPASS_PROC);
+ diag_send_log_mask_update(driver->chlpass_cntl, ALL_EQUIP_ID);
+ diag_send_event_mask_update(driver->chlpass_cntl, diag_event_num_bytes);
}
void diag_wcnss_mask_update_fn(struct work_struct *work)
@@ -1078,8 +1078,8 @@
if (driver->ch_cntl)
diag_send_log_mask_update(driver->ch_cntl,
*(int *)buf);
- if (driver->chqdsp_cntl)
- diag_send_log_mask_update(driver->chqdsp_cntl,
+ if (driver->chlpass_cntl)
+ diag_send_log_mask_update(driver->chlpass_cntl,
*(int *)buf);
if (driver->ch_wcnss_cntl)
diag_send_log_mask_update(driver->ch_wcnss_cntl,
@@ -1128,8 +1128,8 @@
if (driver->ch_cntl)
diag_send_log_mask_update(driver->ch_cntl,
ALL_EQUIP_ID);
- if (driver->chqdsp_cntl)
- diag_send_log_mask_update(driver->chqdsp_cntl,
+ if (driver->chlpass_cntl)
+ diag_send_log_mask_update(driver->chlpass_cntl,
ALL_EQUIP_ID);
if (driver->ch_wcnss_cntl)
diag_send_log_mask_update(driver->ch_wcnss_cntl,
@@ -1187,9 +1187,9 @@
if (driver->ch_cntl)
diag_send_msg_mask_update(driver->ch_cntl,
ssid_first, ssid_last, MODEM_PROC);
- if (driver->chqdsp_cntl)
- diag_send_msg_mask_update(driver->chqdsp_cntl,
- ssid_first, ssid_last, QDSP_PROC);
+ if (driver->chlpass_cntl)
+ diag_send_msg_mask_update(driver->chlpass_cntl,
+ ssid_first, ssid_last, LPASS_PROC);
if (driver->ch_wcnss_cntl)
diag_send_msg_mask_update(driver->ch_wcnss_cntl,
ssid_first, ssid_last, WCNSS_PROC);
@@ -1214,9 +1214,9 @@
if (driver->ch_cntl)
diag_send_msg_mask_update(driver->ch_cntl,
ALL_SSID, ALL_SSID, MODEM_PROC);
- if (driver->chqdsp_cntl)
- diag_send_msg_mask_update(driver->chqdsp_cntl,
- ALL_SSID, ALL_SSID, QDSP_PROC);
+ if (driver->chlpass_cntl)
+ diag_send_msg_mask_update(driver->chlpass_cntl,
+ ALL_SSID, ALL_SSID, LPASS_PROC);
if (driver->ch_wcnss_cntl)
diag_send_msg_mask_update(driver->ch_wcnss_cntl,
ALL_SSID, ALL_SSID, WCNSS_PROC);
@@ -1242,9 +1242,10 @@
if (driver->ch_cntl)
diag_send_event_mask_update(driver->ch_cntl,
diag_event_num_bytes);
- if (driver->chqdsp_cntl)
- diag_send_event_mask_update(driver->chqdsp_cntl,
- diag_event_num_bytes);
+ if (driver->chlpass_cntl)
+ diag_send_event_mask_update(
+ driver->chlpass_cntl,
+ diag_event_num_bytes);
if (driver->ch_wcnss_cntl)
diag_send_event_mask_update(
driver->ch_wcnss_cntl, diag_event_num_bytes);
@@ -1265,9 +1266,10 @@
if (driver->ch_cntl)
diag_send_event_mask_update(driver->ch_cntl,
diag_event_num_bytes);
- if (driver->chqdsp_cntl)
- diag_send_event_mask_update(driver->chqdsp_cntl,
- diag_event_num_bytes);
+ if (driver->chlpass_cntl)
+ diag_send_event_mask_update(
+ driver->chlpass_cntl,
+ diag_event_num_bytes);
if (driver->ch_wcnss_cntl)
diag_send_event_mask_update(
driver->ch_wcnss_cntl, diag_event_num_bytes);
@@ -1651,8 +1653,8 @@
if (chk_apps_only()) {
diag_send_error_rsp(hdlc.dest_idx);
} else { /* APQ 8060, Let Q6 respond */
- if (driver->chqdsp)
- smd_write(driver->chqdsp, driver->hdlc_buf,
+ if (driver->chlpass)
+ smd_write(driver->chlpass, driver->hdlc_buf,
hdlc.dest_idx - 3);
}
type = 0;
@@ -1695,18 +1697,18 @@
driver->usb_connected = 1;
driver->in_busy_1 = 0;
driver->in_busy_2 = 0;
- driver->in_busy_qdsp_1 = 0;
- driver->in_busy_qdsp_2 = 0;
+ driver->in_busy_lpass_1 = 0;
+ driver->in_busy_lpass_2 = 0;
driver->in_busy_wcnss_1 = 0;
driver->in_busy_wcnss_2 = 0;
/* Poll SMD channels to check for data*/
queue_work(driver->diag_wq, &(driver->diag_read_smd_work));
- queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+ queue_work(driver->diag_wq, &(driver->diag_read_smd_lpass_work));
queue_work(driver->diag_wq, &(driver->diag_read_smd_wcnss_work));
/* Poll SMD CNTL channels to check for data */
diag_smd_cntl_notify(NULL, SMD_EVENT_DATA);
- diag_smd_qdsp_cntl_notify(NULL, SMD_EVENT_DATA);
+ diag_smd_lpass_cntl_notify(NULL, SMD_EVENT_DATA);
diag_smd_wcnss_cntl_notify(NULL, SMD_EVENT_DATA);
/* Poll USB channel to check for data*/
queue_work(driver->diag_wq, &(driver->diag_read_work));
@@ -1730,8 +1732,8 @@
if (driver->logging_mode == USB_MODE) {
driver->in_busy_1 = 1;
driver->in_busy_2 = 1;
- driver->in_busy_qdsp_1 = 1;
- driver->in_busy_qdsp_2 = 1;
+ driver->in_busy_lpass_1 = 1;
+ driver->in_busy_lpass_2 = 1;
driver->in_busy_wcnss_1 = 1;
driver->in_busy_wcnss_2 = 1;
}
@@ -1757,14 +1759,16 @@
driver->in_busy_2 = 0;
APPEND_DEBUG('O');
queue_work(driver->diag_wq, &(driver->diag_read_smd_work));
- } else if (buf == (void *)driver->buf_in_qdsp_1) {
- driver->in_busy_qdsp_1 = 0;
+ } else if (buf == (void *)driver->buf_in_lpass_1) {
+ driver->in_busy_lpass_1 = 0;
APPEND_DEBUG('p');
- queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
- } else if (buf == (void *)driver->buf_in_qdsp_2) {
- driver->in_busy_qdsp_2 = 0;
+ queue_work(driver->diag_wq,
+ &(driver->diag_read_smd_lpass_work));
+ } else if (buf == (void *)driver->buf_in_lpass_2) {
+ driver->in_busy_lpass_2 = 0;
APPEND_DEBUG('P');
- queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+ queue_work(driver->diag_wq,
+ &(driver->diag_read_smd_lpass_work));
} else if (buf == driver->buf_in_wcnss_1) {
driver->in_busy_wcnss_1 = 0;
APPEND_DEBUG('r');
@@ -1890,18 +1894,18 @@
}
#if defined(CONFIG_MSM_N_WAY_SMD)
-static void diag_smd_qdsp_notify(void *ctxt, unsigned event)
+static void diag_smd_lpass_notify(void *ctxt, unsigned event)
{
if (event == SMD_EVENT_CLOSE) {
queue_work(driver->diag_cntl_wq,
&(driver->diag_clean_lpass_reg_work));
- driver->chqdsp = 0;
+ driver->chlpass = 0;
return;
} else if (event == SMD_EVENT_OPEN) {
- if (chqdsp_temp)
- driver->chqdsp = chqdsp_temp;
+ if (chlpass_temp)
+ driver->chlpass = chlpass_temp;
}
- queue_work(driver->diag_wq, &(driver->diag_read_smd_qdsp_work));
+ queue_work(driver->diag_wq, &(driver->diag_read_smd_lpass_work));
}
#endif
@@ -1929,9 +1933,9 @@
}
#if defined(CONFIG_MSM_N_WAY_SMD)
if (pdev->id == SMD_APPS_QDSP) {
- r = smd_named_open_on_edge("DIAG", SMD_APPS_QDSP
- , &driver->chqdsp, driver, diag_smd_qdsp_notify);
- chqdsp_temp = driver->chqdsp;
+ r = smd_named_open_on_edge("DIAG", SMD_APPS_QDSP,
+ &driver->chlpass, driver, diag_smd_lpass_notify);
+ chlpass_temp = driver->chlpass;
}
#endif
if (pdev->id == SMD_APPS_WCNSS) {
@@ -2023,17 +2027,17 @@
goto err;
kmemleak_not_leak(driver->buf_in_2);
}
- if (driver->buf_in_qdsp_1 == NULL) {
- driver->buf_in_qdsp_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
- if (driver->buf_in_qdsp_1 == NULL)
+ if (driver->buf_in_lpass_1 == NULL) {
+ driver->buf_in_lpass_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+ if (driver->buf_in_lpass_1 == NULL)
goto err;
- kmemleak_not_leak(driver->buf_in_qdsp_1);
+ kmemleak_not_leak(driver->buf_in_lpass_1);
}
- if (driver->buf_in_qdsp_2 == NULL) {
- driver->buf_in_qdsp_2 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
- if (driver->buf_in_qdsp_2 == NULL)
+ if (driver->buf_in_lpass_2 == NULL) {
+ driver->buf_in_lpass_2 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+ if (driver->buf_in_lpass_2 == NULL)
goto err;
- kmemleak_not_leak(driver->buf_in_qdsp_2);
+ kmemleak_not_leak(driver->buf_in_lpass_2);
}
if (driver->buf_in_wcnss_1 == NULL) {
driver->buf_in_wcnss_1 = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
@@ -2137,19 +2141,19 @@
goto err;
kmemleak_not_leak(driver->write_ptr_2);
}
- if (driver->write_ptr_qdsp_1 == NULL) {
- driver->write_ptr_qdsp_1 = kzalloc(
+ if (driver->write_ptr_lpass_1 == NULL) {
+ driver->write_ptr_lpass_1 = kzalloc(
sizeof(struct diag_request), GFP_KERNEL);
- if (driver->write_ptr_qdsp_1 == NULL)
+ if (driver->write_ptr_lpass_1 == NULL)
goto err;
- kmemleak_not_leak(driver->write_ptr_qdsp_1);
+ kmemleak_not_leak(driver->write_ptr_lpass_1);
}
- if (driver->write_ptr_qdsp_2 == NULL) {
- driver->write_ptr_qdsp_2 = kzalloc(
+ if (driver->write_ptr_lpass_2 == NULL) {
+ driver->write_ptr_lpass_2 = kzalloc(
sizeof(struct diag_request), GFP_KERNEL);
- if (driver->write_ptr_qdsp_2 == NULL)
+ if (driver->write_ptr_lpass_2 == NULL)
goto err;
- kmemleak_not_leak(driver->write_ptr_qdsp_2);
+ kmemleak_not_leak(driver->write_ptr_lpass_2);
}
if (driver->write_ptr_wcnss_1 == NULL) {
driver->write_ptr_wcnss_1 = kzalloc(
@@ -2190,8 +2194,8 @@
INIT_WORK(&(driver->diag_read_work), diag_read_work_fn);
INIT_WORK(&(driver->diag_modem_mask_update_work),
diag_modem_mask_update_fn);
- INIT_WORK(&(driver->diag_qdsp_mask_update_work),
- diag_qdsp_mask_update_fn);
+ INIT_WORK(&(driver->diag_lpass_mask_update_work),
+ diag_lpass_mask_update_fn);
INIT_WORK(&(driver->diag_wcnss_mask_update_work),
diag_wcnss_mask_update_fn);
driver->legacy_ch = usb_diag_open(DIAG_LEGACY, driver,
@@ -2212,8 +2216,8 @@
kfree(driver->msg_mask);
kfree(driver->buf_in_1);
kfree(driver->buf_in_2);
- kfree(driver->buf_in_qdsp_1);
- kfree(driver->buf_in_qdsp_2);
+ kfree(driver->buf_in_lpass_1);
+ kfree(driver->buf_in_lpass_2);
kfree(driver->buf_in_wcnss_1);
kfree(driver->buf_in_wcnss_2);
kfree(driver->buf_msg_mask_update);
@@ -2231,8 +2235,8 @@
kfree(driver->pkt_buf);
kfree(driver->write_ptr_1);
kfree(driver->write_ptr_2);
- kfree(driver->write_ptr_qdsp_1);
- kfree(driver->write_ptr_qdsp_2);
+ kfree(driver->write_ptr_lpass_1);
+ kfree(driver->write_ptr_lpass_2);
kfree(driver->write_ptr_wcnss_1);
kfree(driver->write_ptr_wcnss_2);
kfree(driver->usb_read_ptr);
@@ -2245,10 +2249,10 @@
void diagfwd_exit(void)
{
smd_close(driver->ch);
- smd_close(driver->chqdsp);
+ smd_close(driver->chlpass);
smd_close(driver->ch_wcnss);
driver->ch = 0; /* SMD can make this NULL */
- driver->chqdsp = 0;
+ driver->chlpass = 0;
driver->ch_wcnss = 0;
#ifdef CONFIG_DIAG_OVER_USB
if (driver->usb_connected)
@@ -2263,8 +2267,8 @@
kfree(driver->msg_mask);
kfree(driver->buf_in_1);
kfree(driver->buf_in_2);
- kfree(driver->buf_in_qdsp_1);
- kfree(driver->buf_in_qdsp_2);
+ kfree(driver->buf_in_lpass_1);
+ kfree(driver->buf_in_lpass_2);
kfree(driver->buf_in_wcnss_1);
kfree(driver->buf_in_wcnss_2);
kfree(driver->buf_msg_mask_update);
@@ -2282,8 +2286,8 @@
kfree(driver->pkt_buf);
kfree(driver->write_ptr_1);
kfree(driver->write_ptr_2);
- kfree(driver->write_ptr_qdsp_1);
- kfree(driver->write_ptr_qdsp_2);
+ kfree(driver->write_ptr_lpass_1);
+ kfree(driver->write_ptr_lpass_2);
kfree(driver->write_ptr_wcnss_1);
kfree(driver->write_ptr_wcnss_2);
kfree(driver->usb_read_ptr);
diff --git a/drivers/char/diag/diagfwd.h b/drivers/char/diag/diagfwd.h
index f5de2ac..cf7fda6 100644
--- a/drivers/char/diag/diagfwd.h
+++ b/drivers/char/diag/diagfwd.h
@@ -20,7 +20,7 @@
void diagfwd_exit(void);
void diag_process_hdlc(void *data, unsigned len);
void __diag_smd_send_req(void);
-void __diag_smd_qdsp_send_req(void);
+void __diag_smd_lpass_send_req(void);
void __diag_smd_wcnss_send_req(void);
void diag_usb_legacy_notifier(void *, unsigned, struct diag_request *);
long diagchar_ioctl(struct file *, unsigned int, unsigned long);
diff --git a/drivers/char/diag/diagfwd_cntl.c b/drivers/char/diag/diagfwd_cntl.c
index e417d5a..9fc1164 100644
--- a/drivers/char/diag/diagfwd_cntl.c
+++ b/drivers/char/diag/diagfwd_cntl.c
@@ -36,7 +36,7 @@
{
pr_debug("diag: clean lpass registration\n");
reg_dirty |= DIAG_CON_LPASS;
- diag_clear_reg(QDSP_PROC);
+ diag_clear_reg(LPASS_PROC);
reg_dirty ^= DIAG_CON_LPASS;
}
@@ -72,26 +72,26 @@
}
}
-void diag_smd_qdsp_cntl_notify(void *ctxt, unsigned event)
+void diag_smd_lpass_cntl_notify(void *ctxt, unsigned event)
{
int r1, r2;
- if (!(driver->chqdsp_cntl))
+ if (!(driver->chlpass_cntl))
return;
switch (event) {
case SMD_EVENT_DATA:
- r1 = smd_read_avail(driver->chqdsp_cntl);
- r2 = smd_cur_packet_size(driver->chqdsp_cntl);
+ r1 = smd_read_avail(driver->chlpass_cntl);
+ r2 = smd_cur_packet_size(driver->chlpass_cntl);
if (r1 > 0 && r1 == r2)
queue_work(driver->diag_wq,
- &(driver->diag_read_smd_qdsp_cntl_work));
+ &(driver->diag_read_smd_lpass_cntl_work));
else
pr_debug("diag: incomplete pkt on LPASS CNTL ch\n");
break;
case SMD_EVENT_OPEN:
queue_work(driver->diag_cntl_wq,
- &(driver->diag_qdsp_mask_update_work));
+ &(driver->diag_lpass_mask_update_work));
break;
}
}
@@ -142,9 +142,9 @@
buf = driver->buf_in_cntl;
smd_ch = driver->ch_cntl;
reg_mask = DIAG_CON_MPSS;
- } else if (proc_num == QDSP_PROC) {
- buf = driver->buf_in_qdsp_cntl;
- smd_ch = driver->chqdsp_cntl;
+ } else if (proc_num == LPASS_PROC) {
+ buf = driver->buf_in_lpass_cntl;
+ smd_ch = driver->chlpass_cntl;
reg_mask = DIAG_CON_LPASS;
} else if (proc_num == WCNSS_PROC) {
buf = driver->buf_in_wcnss_cntl;
@@ -230,8 +230,8 @@
/* Poll SMD CNTL channels to check for data */
if (proc_num == MODEM_PROC)
diag_smd_cntl_notify(NULL, SMD_EVENT_DATA);
- else if (proc_num == QDSP_PROC)
- diag_smd_qdsp_cntl_notify(NULL, SMD_EVENT_DATA);
+ else if (proc_num == LPASS_PROC)
+ diag_smd_lpass_cntl_notify(NULL, SMD_EVENT_DATA);
else if (proc_num == WCNSS_PROC)
diag_smd_wcnss_cntl_notify(NULL, SMD_EVENT_DATA);
}
@@ -242,9 +242,9 @@
diag_smd_cntl_send_req(MODEM_PROC);
}
-void diag_read_smd_qdsp_cntl_work_fn(struct work_struct *work)
+void diag_read_smd_lpass_cntl_work_fn(struct work_struct *work)
{
- diag_smd_cntl_send_req(QDSP_PROC);
+ diag_smd_cntl_send_req(LPASS_PROC);
}
void diag_read_smd_wcnss_cntl_work_fn(struct work_struct *work)
@@ -263,8 +263,8 @@
diag_smd_cntl_notify);
if (pdev->id == SMD_APPS_QDSP)
r = smd_named_open_on_edge("DIAG_CNTL", SMD_APPS_QDSP
- , &driver->chqdsp_cntl, driver,
- diag_smd_qdsp_cntl_notify);
+ , &driver->chlpass_cntl, driver,
+ diag_smd_lpass_cntl_notify);
if (pdev->id == SMD_APPS_WCNSS)
r = smd_named_open_on_edge("APPS_RIVA_CTRL",
SMD_APPS_WCNSS, &driver->ch_wcnss_cntl,
@@ -322,11 +322,11 @@
goto err;
kmemleak_not_leak(driver->buf_in_cntl);
}
- if (driver->buf_in_qdsp_cntl == NULL) {
- driver->buf_in_qdsp_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
- if (driver->buf_in_qdsp_cntl == NULL)
+ if (driver->buf_in_lpass_cntl == NULL) {
+ driver->buf_in_lpass_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
+ if (driver->buf_in_lpass_cntl == NULL)
goto err;
- kmemleak_not_leak(driver->buf_in_qdsp_cntl);
+ kmemleak_not_leak(driver->buf_in_lpass_cntl);
}
if (driver->buf_in_wcnss_cntl == NULL) {
driver->buf_in_wcnss_cntl = kzalloc(IN_BUF_SIZE, GFP_KERNEL);
@@ -341,7 +341,7 @@
err:
pr_err("diag: Could not initialize diag buffers");
kfree(driver->buf_in_cntl);
- kfree(driver->buf_in_qdsp_cntl);
+ kfree(driver->buf_in_lpass_cntl);
kfree(driver->buf_in_wcnss_cntl);
if (driver->diag_cntl_wq)
destroy_workqueue(driver->diag_cntl_wq);
@@ -350,17 +350,17 @@
void diagfwd_cntl_exit(void)
{
smd_close(driver->ch_cntl);
- smd_close(driver->chqdsp_cntl);
+ smd_close(driver->chlpass_cntl);
smd_close(driver->ch_wcnss_cntl);
driver->ch_cntl = 0;
- driver->chqdsp_cntl = 0;
+ driver->chlpass_cntl = 0;
driver->ch_wcnss_cntl = 0;
destroy_workqueue(driver->diag_cntl_wq);
platform_driver_unregister(&msm_smd_ch1_cntl_driver);
platform_driver_unregister(&diag_smd_lite_cntl_driver);
kfree(driver->buf_in_cntl);
- kfree(driver->buf_in_qdsp_cntl);
+ kfree(driver->buf_in_lpass_cntl);
kfree(driver->buf_in_wcnss_cntl);
}
@@ -397,18 +397,18 @@
"uses device tree: %d\n"
"in_busy_1: %d\n"
"in_busy_2: %d\n"
- "in_busy_qdsp_1: %d\n"
- "in_busy_qdsp_2: %d\n"
+ "in_busy_lpass_1: %d\n"
+ "in_busy_lpass_2: %d\n"
"in_busy_wcnss_1: %d\n"
"in_busy_wcnss_2: %d\n"
"in_busy_dci: %d\n"
"logging_mode: %d\n",
(unsigned int)driver->ch,
- (unsigned int)driver->chqdsp,
+ (unsigned int)driver->chlpass,
(unsigned int)driver->ch_wcnss,
(unsigned int)driver->ch_dci,
(unsigned int)driver->ch_cntl,
- (unsigned int)driver->chqdsp_cntl,
+ (unsigned int)driver->chlpass_cntl,
(unsigned int)driver->ch_wcnss_cntl,
chk_config_get_id(),
chk_apps_only(),
@@ -418,8 +418,8 @@
driver->use_device_tree,
driver->in_busy_1,
driver->in_busy_2,
- driver->in_busy_qdsp_1,
- driver->in_busy_qdsp_2,
+ driver->in_busy_lpass_1,
+ driver->in_busy_lpass_2,
driver->in_busy_wcnss_1,
driver->in_busy_wcnss_2,
driver->in_busy_dci,
@@ -453,23 +453,23 @@
"diag_drain_work: %d\n"
"diag_read_smd_work: %d\n"
"diag_read_smd_cntl_work: %d\n"
- "diag_read_smd_qdsp_work: %d\n"
- "diag_read_smd_qdsp_cntl_work: %d\n"
+ "diag_read_smd_lpass_work: %d\n"
+ "diag_read_smd_lpass_cntl_work: %d\n"
"diag_read_smd_wcnss_work: %d\n"
"diag_read_smd_wcnss_cntl_work: %d\n"
"diag_modem_mask_update_work: %d\n"
- "diag_qdsp_mask_update_work: %d\n"
+ "diag_lpass_mask_update_work: %d\n"
"diag_wcnss_mask_update_work: %d\n"
"diag_read_smd_dci_work: %d\n",
work_pending(&(driver->diag_drain_work)),
work_pending(&(driver->diag_read_smd_work)),
work_pending(&(driver->diag_read_smd_cntl_work)),
- work_pending(&(driver->diag_read_smd_qdsp_work)),
- work_pending(&(driver->diag_read_smd_qdsp_cntl_work)),
+ work_pending(&(driver->diag_read_smd_lpass_work)),
+ work_pending(&(driver->diag_read_smd_lpass_cntl_work)),
work_pending(&(driver->diag_read_smd_wcnss_work)),
work_pending(&(driver->diag_read_smd_wcnss_cntl_work)),
work_pending(&(driver->diag_modem_mask_update_work)),
- work_pending(&(driver->diag_qdsp_mask_update_work)),
+ work_pending(&(driver->diag_lpass_mask_update_work)),
work_pending(&(driver->diag_wcnss_mask_update_work)),
work_pending(&(driver->diag_read_smd_dci_work)));
diff --git a/drivers/char/diag/diagfwd_cntl.h b/drivers/char/diag/diagfwd_cntl.h
index 59e5e6b..e6f5352 100644
--- a/drivers/char/diag/diagfwd_cntl.h
+++ b/drivers/char/diag/diagfwd_cntl.h
@@ -80,10 +80,10 @@
void diagfwd_cntl_init(void);
void diagfwd_cntl_exit(void);
void diag_read_smd_cntl_work_fn(struct work_struct *);
-void diag_read_smd_qdsp_cntl_work_fn(struct work_struct *);
+void diag_read_smd_lpass_cntl_work_fn(struct work_struct *);
void diag_read_smd_wcnss_cntl_work_fn(struct work_struct *);
void diag_smd_cntl_notify(void *ctxt, unsigned event);
-void diag_smd_qdsp_cntl_notify(void *ctxt, unsigned event);
+void diag_smd_lpass_cntl_notify(void *ctxt, unsigned event);
void diag_smd_wcnss_cntl_notify(void *ctxt, unsigned event);
void diag_clean_modem_reg_fn(struct work_struct *);
void diag_clean_lpass_reg_fn(struct work_struct *);
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 8d967cd..adbf217 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -94,7 +94,7 @@
*/
#define EHCI_TUNE_FLS 1 /* (medium) 512-frame schedule */
-#define EHCI_IAA_MSECS 10 /* arbitrary */
+#define EHCI_IAA_MSECS 100 /* arbitrary */
#define EHCI_IO_JIFFIES (HZ/10) /* io watchdog > irq_thresh */
#define EHCI_ASYNC_JIFFIES (HZ/20) /* async idle timeout */
#define EHCI_SHRINK_JIFFIES (DIV_ROUND_UP(HZ, 200) + 1)
diff --git a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
index 596c86f..931c1c8 100644
--- a/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
+++ b/drivers/video/msm/vidc/1080p/ddl/vcd_ddl_properties.c
@@ -1859,6 +1859,7 @@
struct vcd_buffer_requirement *input_buf_req;
struct vcd_buffer_requirement *output_buf_req;
u32 min_dpb, y_cb_cr_size;
+ u32 frame_height_actual = 0;
if (!decoder->codec.codec)
return false;
@@ -1882,6 +1883,7 @@
if ((decoder->buf_format.buffer_format ==
VCD_BUFFER_FORMAT_TILE_4x2) &&
(frame_size->height < MDP_MIN_TILE_HEIGHT)) {
+ frame_height_actual = frame_size->height;
frame_size->height = MDP_MIN_TILE_HEIGHT;
ddl_calculate_stride(frame_size,
!decoder->progressive_only);
@@ -1920,6 +1922,10 @@
input_buf_req->sz = (1024 * 1024 * 2);
input_buf_req->align = DDL_LINEAR_BUFFER_ALIGN_BYTES;
decoder->min_input_buf_req = *input_buf_req;
+ if (frame_height_actual) {
+ frame_size->height = frame_height_actual;
+ ddl_calculate_stride(frame_size, !decoder->progressive_only);
+ }
return true;
}