forked from rubenslte/android_kernel_samsung_msm8226
ASoC: msm: qdsp6v2: Change audio drivers to use %pK
Change all qdsp6v2 audio driver to use %pK instead of %p. %pK hides addresses when the users doesn't have kernel permissions. If address information is needed echo 0 > /proc/sys/kernel/kptr_restrict. Change-Id: I101bb5142863b866a9f4e62b45b363920bb6a5bf Signed-off-by: Ben Romberger <bromberg@codeaurora.org> Signed-off-by: Surendar karka <sukark@codeaurora.org> [haggertk]: Port to klte kernel sources CVE-2016-8410 Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
This commit is contained in:
committed by
Francescodario Cuzzocrea
parent
d6574165ad
commit
de0cc086b9
@@ -195,7 +195,7 @@ static int amrwb_in_open(struct inode *inode, struct file *file)
|
||||
(void *)audio);
|
||||
|
||||
if (!audio->ac) {
|
||||
pr_err("%s:audio[%p]: Could not allocate memory for audio"
|
||||
pr_err("%s:audio[%pK]: Could not allocate memory for audio"
|
||||
"client\n", __func__, audio);
|
||||
kfree(audio->enc_cfg);
|
||||
kfree(audio);
|
||||
|
||||
@@ -341,7 +341,7 @@ void apr_cb_func(void *buf, int len, void *priv)
|
||||
pr_debug("\n*****************\n");
|
||||
|
||||
if (!buf || len <= APR_HDR_SIZE) {
|
||||
pr_err("APR: Improper apr pkt received:%p %d\n", buf, len);
|
||||
pr_err("APR: Improper apr pkt received:%pK %d\n", buf, len);
|
||||
return;
|
||||
}
|
||||
hdr = buf;
|
||||
@@ -425,7 +425,7 @@ void apr_cb_func(void *buf, int len, void *priv)
|
||||
return;
|
||||
}
|
||||
pr_debug("svc_idx = %d\n", i);
|
||||
pr_debug("%x %x %x %p %p\n", c_svc->id, c_svc->dest_id,
|
||||
pr_debug("%x %x %x %pK %pK\n", c_svc->id, c_svc->dest_id,
|
||||
c_svc->client_id, c_svc->fn, c_svc->priv);
|
||||
data.payload_size = hdr->pkt_size - hdr_size;
|
||||
data.opcode = hdr->opcode;
|
||||
@@ -490,7 +490,7 @@ static void apr_reset_deregister(struct work_struct *work)
|
||||
container_of(work, struct apr_reset_work, work);
|
||||
|
||||
handle = apr_reset->handle;
|
||||
pr_debug("%s:handle[%p]\n", __func__, handle);
|
||||
pr_debug("%s:handle[%pK]\n", __func__, handle);
|
||||
apr_deregister(handle);
|
||||
kfree(apr_reset);
|
||||
}
|
||||
@@ -523,7 +523,7 @@ int apr_deregister(void *handle)
|
||||
client[dest_id][client_id].svc_cnt--;
|
||||
if (!client[dest_id][client_id].svc_cnt) {
|
||||
svc->need_reset = 0x0;
|
||||
pr_debug("%s: service is reset %p\n", __func__, svc);
|
||||
pr_debug("%s: service is reset %pK\n", __func__, svc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -551,7 +551,7 @@ void apr_reset(void *handle)
|
||||
|
||||
if (!handle)
|
||||
return;
|
||||
pr_debug("%s: handle[%p]\n", __func__, handle);
|
||||
pr_debug("%s: handle[%pK]\n", __func__, handle);
|
||||
|
||||
if (apr_reset_workqueue == NULL) {
|
||||
pr_err("%s: apr_reset_workqueue is NULL\n", __func__);
|
||||
|
||||
@@ -182,10 +182,10 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
if (rc)
|
||||
pr_err("%s[%p]:Failed in utils_ioctl: %d\n",
|
||||
pr_err("%s[%pK]:Failed in utils_ioctl: %d\n",
|
||||
__func__, audio, rc);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -30,7 +30,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -59,7 +59,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -31,7 +31,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -62,7 +62,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -50,7 +50,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_err("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_err("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -134,7 +134,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -33,7 +33,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -64,7 +64,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -441,9 +441,9 @@ static int audlpa_ion_check(struct audio *audio,
|
||||
list_for_each_entry(region_elt, &audio->ion_region_queue, list) {
|
||||
if (CONTAINS(region_elt, &t) || CONTAINS(&t, region_elt) ||
|
||||
OVERLAPS(region_elt, &t)) {
|
||||
pr_err("%s[%p]:region (vaddr %p len %ld)"
|
||||
pr_err("%s[%pK]:region (vaddr %pK len %ld)"
|
||||
" clashes with registered region"
|
||||
" (vaddr %p paddr %p len %ld)\n",
|
||||
" (vaddr %pK paddr %pK len %ld)\n",
|
||||
__func__, audio, vaddr, len,
|
||||
region_elt->vaddr,
|
||||
(void *)region_elt->paddr, region_elt->len);
|
||||
@@ -465,7 +465,7 @@ static int audlpa_ion_add(struct audio *audio,
|
||||
unsigned long ionflag;
|
||||
void *temp_ptr;
|
||||
|
||||
pr_debug("%s[%p]:\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:\n", __func__, audio);
|
||||
region = kmalloc(sizeof(*region), GFP_KERNEL);
|
||||
|
||||
if (!region) {
|
||||
@@ -512,14 +512,14 @@ static int audlpa_ion_add(struct audio *audio,
|
||||
region->kvaddr = kvaddr;
|
||||
region->len = len;
|
||||
region->ref_cnt = 0;
|
||||
pr_debug("%s[%p]:add region paddr %lx vaddr %p, len %lu kvaddr %lx\n",
|
||||
pr_debug("%s[%pK]:add region paddr %lx vaddr %pK, len %lu kvaddr %lx\n",
|
||||
__func__, audio,
|
||||
region->paddr, region->vaddr, region->len, region->kvaddr);
|
||||
list_add_tail(®ion->list, &audio->ion_region_queue);
|
||||
|
||||
rc = q6asm_memory_map(audio->ac, (uint32_t)paddr, IN, (uint32_t)len, 1);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: memory map failed\n", __func__, audio);
|
||||
pr_err("%s[%pK]: memory map failed\n", __func__, audio);
|
||||
goto ion_error;
|
||||
} else {
|
||||
goto end;
|
||||
@@ -549,7 +549,7 @@ static int audlpa_ion_remove(struct audio *audio,
|
||||
if (region != NULL && (region->fd == info->fd) &&
|
||||
(region->vaddr == info->vaddr)) {
|
||||
if (region->ref_cnt) {
|
||||
pr_debug("%s[%p]:region %p in use ref_cnt %d\n",
|
||||
pr_debug("%s[%pK]:region %pK in use ref_cnt %d\n",
|
||||
__func__, audio, region,
|
||||
region->ref_cnt);
|
||||
break;
|
||||
@@ -557,7 +557,7 @@ static int audlpa_ion_remove(struct audio *audio,
|
||||
rc = q6asm_memory_unmap(audio->ac,
|
||||
(uint32_t) region->paddr, IN);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: memory unmap failed\n",
|
||||
pr_err("%s[%pK]: memory unmap failed\n",
|
||||
__func__, audio);
|
||||
|
||||
list_del(®ion->list);
|
||||
@@ -595,14 +595,14 @@ static int audlpa_ion_lookup_vaddr(struct audio *audio, void *addr,
|
||||
}
|
||||
|
||||
if (match_count > 1) {
|
||||
pr_err("%s[%p]:multiple hits for vaddr %p, len %ld\n",
|
||||
pr_err("%s[%pK]:multiple hits for vaddr %pK, len %ld\n",
|
||||
__func__, audio, addr, len);
|
||||
list_for_each_entry(region_elt, &audio->ion_region_queue,
|
||||
list) {
|
||||
if (addr >= region_elt->vaddr &&
|
||||
addr < region_elt->vaddr + region_elt->len &&
|
||||
addr + len <= region_elt->vaddr + region_elt->len)
|
||||
pr_err("\t%s[%p]:%p, %ld --> %p\n",
|
||||
pr_err("\t%s[%pK]:%pK, %ld --> %pK\n",
|
||||
__func__, audio,
|
||||
region_elt->vaddr,
|
||||
region_elt->len,
|
||||
@@ -620,7 +620,7 @@ static unsigned long audlpa_ion_fixup(struct audio *audio, void *addr,
|
||||
|
||||
ret = audlpa_ion_lookup_vaddr(audio, addr, len, ®ion);
|
||||
if (ret) {
|
||||
pr_err("%s[%p]:lookup (%p, %ld) failed\n",
|
||||
pr_err("%s[%pK]:lookup (%pK, %ld) failed\n",
|
||||
__func__, audio, addr, len);
|
||||
return 0;
|
||||
}
|
||||
@@ -1101,10 +1101,10 @@ static void audlpa_unmap_ion_region(struct audio *audio)
|
||||
struct list_head *ptr, *next;
|
||||
int rc = -EINVAL;
|
||||
|
||||
pr_debug("%s[%p]:\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:\n", __func__, audio);
|
||||
list_for_each_safe(ptr, next, &audio->ion_region_queue) {
|
||||
region = list_entry(ptr, struct audlpa_ion_region, list);
|
||||
pr_debug("%s[%p]: phy_address = 0x%lx\n",
|
||||
pr_debug("%s[%pK]: phy_address = 0x%lx\n",
|
||||
__func__, audio, region->paddr);
|
||||
if (region != NULL) {
|
||||
rc = q6asm_memory_unmap(audio->ac,
|
||||
@@ -1386,7 +1386,7 @@ static int audio_open(struct inode *inode, struct file *file)
|
||||
pr_err("Unable to create ION client\n");
|
||||
goto err;
|
||||
}
|
||||
pr_debug("Allocating ION clinet in audio_open %p", audio->client);
|
||||
pr_debug("Allocating ION clinet in audio_open %pK", audio->client);
|
||||
done:
|
||||
return rc;
|
||||
err:
|
||||
|
||||
@@ -30,7 +30,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
int rc = 0;
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -66,7 +66,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -33,7 +33,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
switch (cmd) {
|
||||
case AUDIO_START: {
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -64,7 +64,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
}
|
||||
return rc;
|
||||
|
||||
@@ -495,7 +495,7 @@ ssize_t audio_in_read(struct file *file,
|
||||
count -= bytes_to_copy;
|
||||
buf += bytes_to_copy;
|
||||
} else {
|
||||
pr_err("%s:session id %d: short read data[%p] bytesavail[%d]bytesrequest[%d]\n",
|
||||
pr_err("%s:session id %d: short read data[%pK] bytesavail[%d]bytesrequest[%d]\n",
|
||||
__func__,
|
||||
audio->ac->session,
|
||||
data, size, count);
|
||||
|
||||
@@ -75,7 +75,7 @@ int insert_eos_buf(struct q6audio_aio *audio,
|
||||
struct audio_aio_buffer_node *buf_node)
|
||||
{
|
||||
struct dec_meta_out *eos_buf = buf_node->kvaddr;
|
||||
pr_debug("%s[%p]:insert_eos_buf\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:insert_eos_buf\n", __func__, audio);
|
||||
eos_buf->num_of_frames = 0xFFFFFFFF;
|
||||
eos_buf->meta_out_dsp[0].offset_to_frame = 0x0;
|
||||
eos_buf->meta_out_dsp[0].nflags = AUDIO_DEC_EOS_SET;
|
||||
@@ -123,14 +123,14 @@ static int audio_aio_ion_lookup_vaddr(struct q6audio_aio *audio, void *addr,
|
||||
}
|
||||
|
||||
if (match_count > 1) {
|
||||
pr_err("%s[%p]:multiple hits for vaddr %p, len %ld\n",
|
||||
pr_err("%s[%pK]:multiple hits for vaddr %pK, len %ld\n",
|
||||
__func__, audio, addr, len);
|
||||
list_for_each_entry(region_elt, &audio->ion_region_queue,
|
||||
list) {
|
||||
if (addr >= region_elt->vaddr &&
|
||||
addr < region_elt->vaddr + region_elt->len &&
|
||||
addr + len <= region_elt->vaddr + region_elt->len)
|
||||
pr_err("\t%s[%p]:%p, %ld --> %p\n",
|
||||
pr_err("\t%s[%pK]:%pK, %ld --> %pK\n",
|
||||
__func__, audio,
|
||||
region_elt->vaddr,
|
||||
region_elt->len,
|
||||
@@ -150,7 +150,7 @@ static unsigned long audio_aio_ion_fixup(struct q6audio_aio *audio, void *addr,
|
||||
|
||||
ret = audio_aio_ion_lookup_vaddr(audio, addr, len, ®ion);
|
||||
if (ret) {
|
||||
pr_err("%s[%p]:lookup (%p, %ld) failed\n",
|
||||
pr_err("%s[%pK]:lookup (%pK, %ld) failed\n",
|
||||
__func__, audio, addr, len);
|
||||
return 0;
|
||||
}
|
||||
@@ -158,7 +158,7 @@ static unsigned long audio_aio_ion_fixup(struct q6audio_aio *audio, void *addr,
|
||||
region->ref_cnt++;
|
||||
else
|
||||
region->ref_cnt--;
|
||||
pr_debug("%s[%p]:found region %p ref_cnt %d\n",
|
||||
pr_debug("%s[%pK]:found region %pK ref_cnt %d\n",
|
||||
__func__, audio, region, region->ref_cnt);
|
||||
paddr = region->paddr + (addr - region->vaddr);
|
||||
/* provide kernel virtual address for accessing meta information */
|
||||
@@ -171,26 +171,26 @@ static int audio_aio_pause(struct q6audio_aio *audio)
|
||||
{
|
||||
int rc = -EINVAL;
|
||||
|
||||
pr_debug("%s[%p], enabled = %d\n", __func__, audio,
|
||||
pr_debug("%s[%pK], enabled = %d\n", __func__, audio,
|
||||
audio->enabled);
|
||||
if (audio->enabled) {
|
||||
rc = q6asm_cmd(audio->ac, CMD_PAUSE);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: pause cmd failed rc=%d\n",
|
||||
pr_err("%s[%pK]: pause cmd failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
|
||||
if (rc == 0) {
|
||||
/* Send suspend only if pause was successful */
|
||||
rc = q6asm_cmd(audio->ac, CMD_SUSPEND);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: suspend cmd failed rc=%d\n",
|
||||
pr_err("%s[%pK]: suspend cmd failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
} else
|
||||
pr_err("%s[%p]: not sending suspend since pause failed\n",
|
||||
pr_err("%s[%pK]: not sending suspend since pause failed\n",
|
||||
__func__, audio);
|
||||
|
||||
} else
|
||||
pr_err("%s[%p]: Driver not enabled\n", __func__, audio);
|
||||
pr_err("%s[%pK]: Driver not enabled\n", __func__, audio);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ static int audio_aio_flush(struct q6audio_aio *audio)
|
||||
if (!(audio->drv_status & ADRV_STATUS_PAUSE)) {
|
||||
rc = audio_aio_pause(audio);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p}: pause cmd failed rc=%d\n",
|
||||
pr_err("%s[%pK]: pause cmd failed rc=%d\n",
|
||||
__func__, audio,
|
||||
rc);
|
||||
else
|
||||
@@ -212,13 +212,13 @@ static int audio_aio_flush(struct q6audio_aio *audio)
|
||||
}
|
||||
rc = q6asm_cmd(audio->ac, CMD_FLUSH);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: flush cmd failed rc=%d\n",
|
||||
pr_err("%s[%pK]: flush cmd failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
/* Not in stop state, reenable the stream */
|
||||
if (audio->stopped == 0) {
|
||||
rc = audio_aio_enable(audio);
|
||||
if (rc)
|
||||
pr_err("%s[%p]:audio re-enable failed\n",
|
||||
pr_err("%s[%pK]:audio re-enable failed\n",
|
||||
__func__, audio);
|
||||
else {
|
||||
audio->enabled = 1;
|
||||
@@ -227,9 +227,9 @@ static int audio_aio_flush(struct q6audio_aio *audio)
|
||||
}
|
||||
}
|
||||
}
|
||||
pr_debug("%s[%p]:in_bytes %d\n",
|
||||
pr_debug("%s[%pK]:in_bytes %d\n",
|
||||
__func__, audio, atomic_read(&audio->in_bytes));
|
||||
pr_debug("%s[%p]:in_samples %d\n",
|
||||
pr_debug("%s[%pK]:in_samples %d\n",
|
||||
__func__, audio, atomic_read(&audio->in_samples));
|
||||
atomic_set(&audio->in_bytes, 0);
|
||||
atomic_set(&audio->in_samples, 0);
|
||||
@@ -242,7 +242,7 @@ static int audio_aio_outport_flush(struct q6audio_aio *audio)
|
||||
|
||||
rc = q6asm_cmd(audio->ac, CMD_OUT_FLUSH);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p}: output port flush cmd failed rc=%d\n",
|
||||
pr_err("%s[%pK]: output port flush cmd failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
return rc;
|
||||
}
|
||||
@@ -270,19 +270,19 @@ void audio_aio_async_write_ack(struct q6audio_aio *audio, uint32_t token,
|
||||
if (token == used_buf->token) {
|
||||
list_del(&used_buf->list);
|
||||
spin_unlock_irqrestore(&audio->dsp_lock, flags);
|
||||
pr_debug("%s[%p]:consumed buffer\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:consumed buffer\n", __func__, audio);
|
||||
event_payload.aio_buf = used_buf->buf;
|
||||
audio_aio_post_event(audio, AUDIO_EVENT_WRITE_DONE,
|
||||
event_payload);
|
||||
kfree(used_buf);
|
||||
if (list_empty(&audio->out_queue) &&
|
||||
(audio->drv_status & ADRV_STATUS_FSYNC)) {
|
||||
pr_debug("%s[%p]: list is empty, reached EOS in Tunnel\n",
|
||||
pr_debug("%s[%pK]: list is empty, reached EOS in Tunnel\n",
|
||||
__func__, audio);
|
||||
wake_up(&audio->write_wait);
|
||||
}
|
||||
} else {
|
||||
pr_err("%s[%p]:expected=%lx ret=%x\n",
|
||||
pr_err("%s[%pK]:expected=%lx ret=%x\n",
|
||||
__func__, audio, used_buf->token, token);
|
||||
spin_unlock_irqrestore(&audio->dsp_lock, flags);
|
||||
}
|
||||
@@ -296,13 +296,13 @@ void audio_aio_async_out_flush(struct q6audio_aio *audio)
|
||||
union msm_audio_event_payload payload;
|
||||
unsigned long flags;
|
||||
|
||||
pr_debug("%s[%p}\n", __func__, audio);
|
||||
pr_debug("%s[%pK]\n", __func__, audio);
|
||||
/* EOS followed by flush, EOS response not guranteed, free EOS i/p
|
||||
buffer */
|
||||
spin_lock_irqsave(&audio->dsp_lock, flags);
|
||||
|
||||
if (audio->eos_flag && (audio->eos_write_payload.aio_buf.buf_addr)) {
|
||||
pr_debug("%s[%p]: EOS followed by flush received,acknowledge"\
|
||||
pr_debug("%s[%pK]: EOS followed by flush received,acknowledge"\
|
||||
" eos i/p buffer immediately\n", __func__, audio);
|
||||
audio_aio_post_event(audio, AUDIO_EVENT_WRITE_DONE,
|
||||
audio->eos_write_payload);
|
||||
@@ -316,7 +316,7 @@ void audio_aio_async_out_flush(struct q6audio_aio *audio)
|
||||
payload.aio_buf = buf_node->buf;
|
||||
audio_aio_post_event(audio, AUDIO_EVENT_WRITE_DONE, payload);
|
||||
kfree(buf_node);
|
||||
pr_debug("%s[%p]: Propagate WRITE_DONE during flush\n",
|
||||
pr_debug("%s[%pK]: Propagate WRITE_DONE during flush\n",
|
||||
__func__, audio);
|
||||
}
|
||||
}
|
||||
@@ -327,14 +327,14 @@ void audio_aio_async_in_flush(struct q6audio_aio *audio)
|
||||
struct list_head *ptr, *next;
|
||||
union msm_audio_event_payload payload;
|
||||
|
||||
pr_debug("%s[%p]\n", __func__, audio);
|
||||
pr_debug("%s[%pK]\n", __func__, audio);
|
||||
list_for_each_safe(ptr, next, &audio->in_queue) {
|
||||
buf_node = list_entry(ptr, struct audio_aio_buffer_node, list);
|
||||
list_del(&buf_node->list);
|
||||
/* Forcefull send o/p eos buffer after flush, if no eos response
|
||||
* received by dsp even after sending eos command */
|
||||
if ((audio->eos_rsp != 1) && audio->eos_flag) {
|
||||
pr_debug("%s[%p]: send eos on o/p buffer during flush\n",
|
||||
pr_debug("%s[%pK]: send eos on o/p buffer during flush\n",
|
||||
__func__, audio);
|
||||
payload.aio_buf = buf_node->buf;
|
||||
payload.aio_buf.data_len =
|
||||
@@ -347,7 +347,7 @@ void audio_aio_async_in_flush(struct q6audio_aio *audio)
|
||||
}
|
||||
audio_aio_post_event(audio, AUDIO_EVENT_READ_DONE, payload);
|
||||
kfree(buf_node);
|
||||
pr_debug("%s[%p]: Propagate READ_DONE during flush\n",
|
||||
pr_debug("%s[%pK]: Propagate READ_DONE during flush\n",
|
||||
__func__, audio);
|
||||
}
|
||||
}
|
||||
@@ -365,19 +365,19 @@ int audio_aio_disable(struct q6audio_aio *audio)
|
||||
if (audio->opened) {
|
||||
audio->enabled = 0;
|
||||
audio->opened = 0;
|
||||
pr_debug("%s[%p]: inbytes[%d] insamples[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: inbytes[%d] insamples[%d]\n", __func__,
|
||||
audio, atomic_read(&audio->in_bytes),
|
||||
atomic_read(&audio->in_samples));
|
||||
/* Close the session */
|
||||
rc = q6asm_cmd(audio->ac, CMD_CLOSE);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]:Failed to close the session rc=%d\n",
|
||||
pr_err("%s[%pK]:Failed to close the session rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
audio->stopped = 1;
|
||||
wake_up(&audio->write_wait);
|
||||
wake_up(&audio->cmd_wait);
|
||||
}
|
||||
pr_debug("%s[%p]:enabled[%d]\n", __func__, audio, audio->enabled);
|
||||
pr_debug("%s[%pK]:enabled[%d]\n", __func__, audio, audio->enabled);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -426,16 +426,16 @@ static void audio_aio_unmap_ion_region(struct q6audio_aio *audio)
|
||||
struct list_head *ptr, *next;
|
||||
int rc = -EINVAL;
|
||||
|
||||
pr_debug("%s[%p]:\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:\n", __func__, audio);
|
||||
list_for_each_safe(ptr, next, &audio->ion_region_queue) {
|
||||
region = list_entry(ptr, struct audio_aio_ion_region, list);
|
||||
pr_debug("%s[%p]: phy_address = 0x%lx\n",
|
||||
pr_debug("%s[%pK]: phy_address = 0x%lx\n",
|
||||
__func__, audio, region->paddr);
|
||||
if (region != NULL) {
|
||||
rc = q6asm_memory_unmap(audio->ac,
|
||||
(uint32_t)region->paddr, IN);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: memory unmap failed\n",
|
||||
pr_err("%s[%pK]: memory unmap failed\n",
|
||||
__func__, audio);
|
||||
}
|
||||
}
|
||||
@@ -452,20 +452,20 @@ static void audio_aio_listner(u32 evt_id, union auddev_evt_data *evt_payload,
|
||||
switch (evt_id) {
|
||||
case AUDDEV_EVT_STREAM_VOL_CHG:
|
||||
audio->volume = evt_payload->session_vol;
|
||||
pr_debug("%s[%p]: AUDDEV_EVT_STREAM_VOL_CHG, stream vol %d, enabled = %d\n",
|
||||
pr_debug("%s[%pK]: AUDDEV_EVT_STREAM_VOL_CHG, stream vol %d, enabled = %d\n",
|
||||
__func__, audio, audio->volume, audio->enabled);
|
||||
if (audio->enabled == 1) {
|
||||
if (audio->ac) {
|
||||
rc = q6asm_set_volume(audio->ac, audio->volume);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: Send Volume command failed rc=%d\n",
|
||||
pr_err("%s[%pK]: Send Volume command failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
pr_err("%s[%p]:ERROR:wrong event\n", __func__, audio);
|
||||
pr_err("%s[%pK]:ERROR:wrong event\n", __func__, audio);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -482,7 +482,7 @@ int register_volume_listener(struct q6audio_aio *audio)
|
||||
audio_aio_listner,
|
||||
(void *)audio);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: Event listener failed\n", __func__, audio);
|
||||
pr_err("%s[%pK]: Event listener failed\n", __func__, audio);
|
||||
rc = -EACCES;
|
||||
}
|
||||
return rc;
|
||||
@@ -500,7 +500,7 @@ int enable_volume_ramp(struct q6audio_aio *audio)
|
||||
|
||||
if (audio->ac == NULL)
|
||||
return -EINVAL;
|
||||
pr_debug("%s[%p]\n", __func__, audio);
|
||||
pr_debug("%s[%pK]\n", __func__, audio);
|
||||
softpause.enable = SOFT_PAUSE_ENABLE;
|
||||
softpause.period = SOFT_PAUSE_PERIOD;
|
||||
softpause.step = SOFT_PAUSE_STEP;
|
||||
@@ -560,7 +560,7 @@ int enable_volume_ramp(struct q6audio_aio *audio)
|
||||
int audio_aio_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct q6audio_aio *audio = file->private_data;
|
||||
pr_debug("%s[%p]\n", __func__, audio);
|
||||
pr_debug("%s[%pK]\n", __func__, audio);
|
||||
mutex_lock(&audio->lock);
|
||||
mutex_lock(&audio->read_lock);
|
||||
mutex_lock(&audio->write_lock);
|
||||
@@ -609,56 +609,56 @@ int audio_aio_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
||||
audio->drv_status |= ADRV_STATUS_FSYNC;
|
||||
mutex_unlock(&audio->lock);
|
||||
|
||||
pr_debug("%s[%p]:\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:\n", __func__, audio);
|
||||
|
||||
audio->eos_rsp = 0;
|
||||
|
||||
pr_debug("%s[%p]Wait for write done from DSP\n", __func__, audio);
|
||||
pr_debug("%s[%pK]Wait for write done from DSP\n", __func__, audio);
|
||||
rc = wait_event_interruptible(audio->write_wait,
|
||||
(list_empty(&audio->out_queue)) ||
|
||||
audio->wflush || audio->stopped);
|
||||
|
||||
if (audio->stopped || audio->wflush) {
|
||||
pr_debug("%s[%p]: Audio Flushed or Stopped,this is not EOS\n"
|
||||
pr_debug("%s[%pK]: Audio Flushed or Stopped,this is not EOS\n"
|
||||
, __func__, audio);
|
||||
audio->wflush = 0;
|
||||
rc = -EBUSY;
|
||||
}
|
||||
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: wait event for list_empty failed, rc = %d\n",
|
||||
pr_err("%s[%pK]: wait event for list_empty failed, rc = %d\n",
|
||||
__func__, audio, rc);
|
||||
goto done;
|
||||
}
|
||||
|
||||
rc = q6asm_cmd(audio->ac, CMD_EOS);
|
||||
pr_debug("%s[%p]: EOS cmd sent to DSP\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: EOS cmd sent to DSP\n", __func__, audio);
|
||||
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: q6asm_cmd failed, rc = %d",
|
||||
pr_err("%s[%pK]: q6asm_cmd failed, rc = %d",
|
||||
__func__, audio, rc);
|
||||
|
||||
pr_debug("%s[%p]: wait for RENDERED_EOS from DSP\n"
|
||||
pr_debug("%s[%pK]: wait for RENDERED_EOS from DSP\n"
|
||||
, __func__, audio);
|
||||
rc = wait_event_interruptible(audio->write_wait,
|
||||
(audio->eos_rsp || audio->wflush ||
|
||||
audio->stopped));
|
||||
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: wait event for eos_rsp failed, rc = %d\n",
|
||||
pr_err("%s[%pK]: wait event for eos_rsp failed, rc = %d\n",
|
||||
__func__, audio, rc);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (audio->stopped || audio->wflush) {
|
||||
audio->wflush = 0;
|
||||
pr_debug("%s[%p]: Audio Flushed or Stopped,this is not EOS\n"
|
||||
pr_debug("%s[%pK]: Audio Flushed or Stopped,this is not EOS\n"
|
||||
, __func__, audio);
|
||||
rc = -EBUSY;
|
||||
}
|
||||
|
||||
if (audio->eos_rsp == 1)
|
||||
pr_debug("%s[%p]: EOS\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: EOS\n", __func__, audio);
|
||||
|
||||
|
||||
done:
|
||||
@@ -727,21 +727,21 @@ static long audio_aio_process_event_req(struct q6audio_aio *audio,
|
||||
usr_evt.event_payload = drv_evt->payload;
|
||||
list_add_tail(&drv_evt->list, &audio->free_event_queue);
|
||||
} else {
|
||||
pr_err("%s[%p]:Unexpected path\n", __func__, audio);
|
||||
pr_err("%s[%pK]:Unexpected path\n", __func__, audio);
|
||||
spin_unlock_irqrestore(&audio->event_queue_lock, flags);
|
||||
return -EPERM;
|
||||
}
|
||||
spin_unlock_irqrestore(&audio->event_queue_lock, flags);
|
||||
|
||||
if (drv_evt->event_type == AUDIO_EVENT_WRITE_DONE) {
|
||||
pr_debug("%s[%p]:posted AUDIO_EVENT_WRITE_DONE to user\n",
|
||||
pr_debug("%s[%pK]:posted AUDIO_EVENT_WRITE_DONE to user\n",
|
||||
__func__, audio);
|
||||
mutex_lock(&audio->write_lock);
|
||||
audio_aio_ion_fixup(audio, drv_evt->payload.aio_buf.buf_addr,
|
||||
drv_evt->payload.aio_buf.buf_len, 0, 0);
|
||||
mutex_unlock(&audio->write_lock);
|
||||
} else if (drv_evt->event_type == AUDIO_EVENT_READ_DONE) {
|
||||
pr_debug("%s[%p]:posted AUDIO_EVENT_READ_DONE to user\n",
|
||||
pr_debug("%s[%pK]:posted AUDIO_EVENT_READ_DONE to user\n",
|
||||
__func__, audio);
|
||||
mutex_lock(&audio->read_lock);
|
||||
audio_aio_ion_fixup(audio, drv_evt->payload.aio_buf.buf_addr,
|
||||
@@ -753,7 +753,7 @@ static long audio_aio_process_event_req(struct q6audio_aio *audio,
|
||||
* Once EOS indicated
|
||||
*/
|
||||
if (audio->eos_rsp && !list_empty(&audio->in_queue)) {
|
||||
pr_debug("%s[%p]:Send flush command to release read buffers"\
|
||||
pr_debug("%s[%pK]:Send flush command to release read buffers"\
|
||||
" held up in DSP\n", __func__, audio);
|
||||
audio_aio_flush(audio);
|
||||
}
|
||||
@@ -773,7 +773,7 @@ static int audio_aio_ion_check(struct q6audio_aio *audio,
|
||||
list_for_each_entry(region_elt, &audio->ion_region_queue, list) {
|
||||
if (CONTAINS(region_elt, &t) || CONTAINS(&t, region_elt) ||
|
||||
OVERLAPS(region_elt, &t)) {
|
||||
pr_err("%s[%p]:region (vaddr %p len %ld) clashes with registered region (vaddr %p paddr %p len %ld)\n",
|
||||
pr_err("%s[%pK]:region (vaddr %pK len %ld) clashes with registered region (vaddr %pK paddr %pK len %ld)\n",
|
||||
__func__, audio, vaddr, len,
|
||||
region_elt->vaddr,
|
||||
(void *)region_elt->paddr, region_elt->len);
|
||||
@@ -795,7 +795,7 @@ static int audio_aio_ion_add(struct q6audio_aio *audio,
|
||||
unsigned long ionflag;
|
||||
void *kvaddr = NULL;
|
||||
|
||||
pr_debug("%s[%p]:\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:\n", __func__, audio);
|
||||
region = kmalloc(sizeof(*region), GFP_KERNEL);
|
||||
|
||||
if (!region) {
|
||||
@@ -824,14 +824,14 @@ static int audio_aio_ion_add(struct q6audio_aio *audio,
|
||||
region->kvaddr = (unsigned long)kvaddr;
|
||||
region->len = len;
|
||||
region->ref_cnt = 0;
|
||||
pr_debug("%s[%p]:add region paddr %lx vaddr %p, len %lu kvaddr %lx\n",
|
||||
pr_debug("%s[%pK]:add region paddr %lx vaddr %pK, len %lu kvaddr %lx\n",
|
||||
__func__, audio,
|
||||
region->paddr, region->vaddr, region->len, region->kvaddr);
|
||||
list_add_tail(®ion->list, &audio->ion_region_queue);
|
||||
rc = q6asm_memory_map(audio->ac, (uint32_t) paddr, IN, (uint32_t) len,
|
||||
1);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: memory map failed\n", __func__, audio);
|
||||
pr_err("%s[%pK]: memory map failed\n", __func__, audio);
|
||||
goto mmap_error;
|
||||
} else {
|
||||
goto end;
|
||||
@@ -853,7 +853,7 @@ static int audio_aio_ion_remove(struct q6audio_aio *audio,
|
||||
struct list_head *ptr, *next;
|
||||
int rc = -EINVAL;
|
||||
|
||||
pr_debug("%s[%p]:info fd %d vaddr %p\n",
|
||||
pr_debug("%s[%pK]:info fd %d vaddr %pK\n",
|
||||
__func__, audio, info->fd, info->vaddr);
|
||||
|
||||
list_for_each_safe(ptr, next, &audio->ion_region_queue) {
|
||||
@@ -862,17 +862,17 @@ static int audio_aio_ion_remove(struct q6audio_aio *audio,
|
||||
if ((region->fd == info->fd) &&
|
||||
(region->vaddr == info->vaddr)) {
|
||||
if (region->ref_cnt) {
|
||||
pr_debug("%s[%p]:region %p in use ref_cnt %d\n",
|
||||
pr_debug("%s[%pK]:region %pK in use ref_cnt %d\n",
|
||||
__func__, audio, region,
|
||||
region->ref_cnt);
|
||||
break;
|
||||
}
|
||||
pr_debug("%s[%p]:remove region fd %d vaddr %p\n",
|
||||
pr_debug("%s[%pK]:remove region fd %d vaddr %pK\n",
|
||||
__func__, audio, info->fd, info->vaddr);
|
||||
rc = q6asm_memory_unmap(audio->ac,
|
||||
(uint32_t) region->paddr, IN);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]: memory unmap failed\n",
|
||||
pr_err("%s[%pK]: memory unmap failed\n",
|
||||
__func__, audio);
|
||||
|
||||
list_del(®ion->list);
|
||||
@@ -895,15 +895,15 @@ static void audio_aio_async_write(struct q6audio_aio *audio,
|
||||
struct audio_aio_write_param param;
|
||||
|
||||
if (!audio || !buf_node) {
|
||||
pr_err("%s NULL pointer audio=[0x%p], buf_node=[0x%p]\n",
|
||||
pr_err("%s NULL pointer audio=[0x%pK], buf_node=[0x%pK]\n",
|
||||
__func__, audio, buf_node);
|
||||
return;
|
||||
}
|
||||
pr_debug("%s[%p]: Send write buff %p phy %lx len %d meta_enable = %d\n",
|
||||
pr_debug("%s[%pK]: Send write buff %pK phy %lx len %d meta_enable = %d\n",
|
||||
__func__, audio, buf_node, buf_node->paddr,
|
||||
buf_node->buf.data_len,
|
||||
audio->buf_cfg.meta_info_enable);
|
||||
pr_debug("%s[%p]: flags = 0x%x\n", __func__, audio,
|
||||
pr_debug("%s[%pK]: flags = 0x%x\n", __func__, audio,
|
||||
buf_node->meta_info.meta_in.nflags);
|
||||
|
||||
ac = audio->ac;
|
||||
@@ -932,7 +932,7 @@ static void audio_aio_async_write(struct q6audio_aio *audio,
|
||||
buf_node->token = param.paddr;
|
||||
rc = q6asm_async_write(ac, ¶m);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]:failed\n", __func__, audio);
|
||||
pr_err("%s[%pK]:failed\n", __func__, audio);
|
||||
}
|
||||
|
||||
void audio_aio_post_event(struct q6audio_aio *audio, int type,
|
||||
@@ -950,7 +950,7 @@ void audio_aio_post_event(struct q6audio_aio *audio, int type,
|
||||
} else {
|
||||
e_node = kmalloc(sizeof(struct audio_aio_event), GFP_ATOMIC);
|
||||
if (!e_node) {
|
||||
pr_err("%s[%p]:No mem to post event %d\n",
|
||||
pr_err("%s[%pK]:No mem to post event %d\n",
|
||||
__func__, audio, type);
|
||||
spin_unlock_irqrestore(&audio->event_queue_lock, flags);
|
||||
return;
|
||||
@@ -972,7 +972,7 @@ static void audio_aio_async_read(struct q6audio_aio *audio,
|
||||
struct audio_aio_read_param param;
|
||||
int rc;
|
||||
|
||||
pr_debug("%s[%p]: Send read buff %p phy %lx len %d\n",
|
||||
pr_debug("%s[%pK]: Send read buff %pK phy %lx len %d\n",
|
||||
__func__, audio, buf_node,
|
||||
buf_node->paddr, buf_node->buf.buf_len);
|
||||
ac = audio->ac;
|
||||
@@ -986,7 +986,7 @@ static void audio_aio_async_read(struct q6audio_aio *audio,
|
||||
buf_node->token = param.paddr;
|
||||
rc = q6asm_async_read(ac, ¶m);
|
||||
if (rc < 0)
|
||||
pr_err("%s[%p]:failed\n", __func__, audio);
|
||||
pr_err("%s[%pK]:failed\n", __func__, audio);
|
||||
}
|
||||
|
||||
static int audio_aio_buf_add(struct q6audio_aio *audio, unsigned dir,
|
||||
@@ -1006,7 +1006,7 @@ static int audio_aio_buf_add(struct q6audio_aio *audio, unsigned dir,
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
pr_debug("%s[%p]:node %p dir %x buf_addr %p buf_len %d data_len %d\n",
|
||||
pr_debug("%s[%pK]:node %pK dir %x buf_addr %pK buf_len %d data_len %d\n",
|
||||
__func__, audio, buf_node, dir, buf_node->buf.buf_addr,
|
||||
buf_node->buf.buf_len, buf_node->buf.data_len);
|
||||
buf_node->paddr = audio_aio_ion_fixup(audio, buf_node->buf.buf_addr,
|
||||
@@ -1031,7 +1031,7 @@ static int audio_aio_buf_add(struct q6audio_aio *audio, unsigned dir,
|
||||
} else if (buf_node->meta_info.meta_in.nflags
|
||||
& AUDIO_DEC_EOS_SET) {
|
||||
if (!audio->wflush) {
|
||||
pr_debug("%s[%p]:Send EOS cmd at i/p\n",
|
||||
pr_debug("%s[%pK]:Send EOS cmd at i/p\n",
|
||||
__func__, audio);
|
||||
/* Driver will forcefully post writedone event
|
||||
* once eos ack recived from DSP
|
||||
@@ -1077,7 +1077,7 @@ static int audio_aio_buf_add(struct q6audio_aio *audio, unsigned dir,
|
||||
event_payload.aio_buf = buf_node->buf;
|
||||
event_payload.aio_buf.data_len =
|
||||
insert_eos_buf(audio, buf_node);
|
||||
pr_debug("%s[%p]: propagate READ_DONE as EOS done\n",\
|
||||
pr_debug("%s[%pK]: propagate READ_DONE as EOS done\n",\
|
||||
__func__, audio);
|
||||
audio_aio_post_event(audio, AUDIO_EVENT_READ_DONE,
|
||||
event_payload);
|
||||
@@ -1095,7 +1095,7 @@ void audio_aio_ioport_reset(struct q6audio_aio *audio)
|
||||
* abort due to flush
|
||||
*/
|
||||
if (audio->drv_status & ADRV_STATUS_FSYNC) {
|
||||
pr_debug("%s[%p]:fsync in progress\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:fsync in progress\n", __func__, audio);
|
||||
audio->drv_ops.out_flush(audio);
|
||||
} else
|
||||
audio->drv_ops.out_flush(audio);
|
||||
@@ -1122,13 +1122,13 @@ int audio_aio_open(struct q6audio_aio *audio, struct file *file)
|
||||
|
||||
/* Only AIO interface */
|
||||
if (file->f_flags & O_NONBLOCK) {
|
||||
pr_debug("%s[%p]:set to aio interface\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:set to aio interface\n", __func__, audio);
|
||||
audio->drv_status |= ADRV_STATUS_AIO_INTF;
|
||||
audio->drv_ops.out_flush = audio_aio_async_out_flush;
|
||||
audio->drv_ops.in_flush = audio_aio_async_in_flush;
|
||||
q6asm_set_io_mode(audio->ac, ASYNC_IO_MODE);
|
||||
} else {
|
||||
pr_err("%s[%p]:SIO interface not supported\n",
|
||||
pr_err("%s[%pK]:SIO interface not supported\n",
|
||||
__func__, audio);
|
||||
rc = -EACCES;
|
||||
goto fail;
|
||||
@@ -1160,7 +1160,7 @@ int audio_aio_open(struct q6audio_aio *audio, struct file *file)
|
||||
if (e_node)
|
||||
list_add_tail(&e_node->list, &audio->free_event_queue);
|
||||
else {
|
||||
pr_err("%s[%p]:event pkt alloc failed\n",
|
||||
pr_err("%s[%pK]:event pkt alloc failed\n",
|
||||
__func__, audio);
|
||||
rc = -ENOMEM;
|
||||
goto cleanup;
|
||||
@@ -1173,7 +1173,7 @@ int audio_aio_open(struct q6audio_aio *audio, struct file *file)
|
||||
rc = -ENOMEM;
|
||||
goto cleanup;
|
||||
}
|
||||
pr_debug("Ion client create in audio_aio_open %p", audio->client);
|
||||
pr_debug("Ion client create in audio_aio_open %pK", audio->client);
|
||||
|
||||
rc = register_volume_listener(audio);
|
||||
if (rc < 0)
|
||||
@@ -1216,7 +1216,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
case AUDIO_GET_EVENT: {
|
||||
pr_debug("%s[%p]:AUDIO_GET_EVENT\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:AUDIO_GET_EVENT\n", __func__, audio);
|
||||
if (mutex_trylock(&audio->get_event_lock)) {
|
||||
rc = audio_aio_process_event_req(audio,
|
||||
(void __user *)arg);
|
||||
@@ -1255,11 +1255,11 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
case AUDIO_OUTPORT_FLUSH: {
|
||||
pr_debug("%s[%p]:AUDIO_OUTPORT_FLUSH\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:AUDIO_OUTPORT_FLUSH\n", __func__, audio);
|
||||
mutex_lock(&audio->read_lock);
|
||||
rc = audio_aio_outport_flush(audio);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: AUDIO_OUTPORT_FLUSH failed\n",
|
||||
pr_err("%s[%pK]: AUDIO_OUTPORT_FLUSH failed\n",
|
||||
__func__, audio);
|
||||
rc = -EINTR;
|
||||
}
|
||||
@@ -1267,13 +1267,13 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
case AUDIO_STOP: {
|
||||
pr_debug("%s[%p]: AUDIO_STOP session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_STOP session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
mutex_lock(&audio->lock);
|
||||
audio->stopped = 1;
|
||||
rc = audio_aio_flush(audio);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]:Audio Stop procedure failed rc=%d\n",
|
||||
pr_err("%s[%pK]:Audio Stop procedure failed rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
@@ -1281,7 +1281,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
audio->enabled = 0;
|
||||
audio->drv_status &= ~ADRV_STATUS_PAUSE;
|
||||
if (audio->drv_status & ADRV_STATUS_FSYNC) {
|
||||
pr_debug("%s[%p] Waking up the audio_aio_fsync\n",
|
||||
pr_debug("%s[%pK] Waking up the audio_aio_fsync\n",
|
||||
__func__, audio);
|
||||
wake_up(&audio->write_wait);
|
||||
}
|
||||
@@ -1289,12 +1289,12 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
case AUDIO_PAUSE: {
|
||||
pr_debug("%s[%p]:AUDIO_PAUSE %ld\n", __func__, audio, arg);
|
||||
pr_debug("%s[%pK]:AUDIO_PAUSE %ld\n", __func__, audio, arg);
|
||||
mutex_lock(&audio->lock);
|
||||
if (arg == 1) {
|
||||
rc = audio_aio_pause(audio);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]: pause FAILED rc=%d\n",
|
||||
pr_err("%s[%pK]: pause FAILED rc=%d\n",
|
||||
__func__, audio, rc);
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
@@ -1304,7 +1304,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
if (audio->drv_status & ADRV_STATUS_PAUSE) {
|
||||
rc = audio_aio_enable(audio);
|
||||
if (rc)
|
||||
pr_err("%s[%p]: audio enable failed\n",
|
||||
pr_err("%s[%pK]: audio enable failed\n",
|
||||
__func__, audio);
|
||||
else {
|
||||
audio->drv_status &= ~ADRV_STATUS_PAUSE;
|
||||
@@ -1316,13 +1316,13 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
case AUDIO_FLUSH: {
|
||||
pr_debug("%s[%p]: AUDIO_FLUSH sessionid[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_FLUSH sessionid[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
mutex_lock(&audio->lock);
|
||||
audio->rflush = 1;
|
||||
audio->wflush = 1;
|
||||
if (audio->drv_status & ADRV_STATUS_FSYNC) {
|
||||
pr_debug("%s[%p] Waking up the audio_aio_fsync\n",
|
||||
pr_debug("%s[%pK] Waking up the audio_aio_fsync\n",
|
||||
__func__, audio);
|
||||
wake_up(&audio->write_wait);
|
||||
}
|
||||
@@ -1331,7 +1331,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
/* Flush input / Output buffer in software*/
|
||||
audio_aio_ioport_reset(audio);
|
||||
if (rc < 0) {
|
||||
pr_err("%s[%p]:AUDIO_FLUSH interrupted\n",
|
||||
pr_err("%s[%pK]:AUDIO_FLUSH interrupted\n",
|
||||
__func__, audio);
|
||||
rc = -EINTR;
|
||||
} else {
|
||||
@@ -1349,7 +1349,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
}
|
||||
case AUDIO_REGISTER_ION: {
|
||||
struct msm_audio_ion_info info;
|
||||
pr_debug("%s[%p]:AUDIO_REGISTER_ION\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:AUDIO_REGISTER_ION\n", __func__, audio);
|
||||
mutex_lock(&audio->lock);
|
||||
if (copy_from_user(&info, (void *)arg, sizeof(info)))
|
||||
rc = -EFAULT;
|
||||
@@ -1366,7 +1366,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
case AUDIO_DEREGISTER_ION: {
|
||||
struct msm_audio_ion_info info;
|
||||
mutex_lock(&audio->lock);
|
||||
pr_debug("%s[%p]:AUDIO_DEREGISTER_ION\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:AUDIO_DEREGISTER_ION\n", __func__, audio);
|
||||
if (copy_from_user(&info, (void *)arg, sizeof(info)))
|
||||
rc = -EFAULT;
|
||||
else {
|
||||
@@ -1385,7 +1385,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
memset(&cfg, 0, sizeof(cfg));
|
||||
cfg.buffer_size = audio->str_cfg.buffer_size;
|
||||
cfg.buffer_count = audio->str_cfg.buffer_count;
|
||||
pr_debug("%s[%p]:GET STREAM CFG %d %d\n",
|
||||
pr_debug("%s[%pK]:GET STREAM CFG %d %d\n",
|
||||
__func__, audio, cfg.buffer_size, cfg.buffer_count);
|
||||
if (copy_to_user((void *)arg, &cfg, sizeof(cfg)))
|
||||
rc = -EFAULT;
|
||||
@@ -1394,7 +1394,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
}
|
||||
case AUDIO_SET_STREAM_CONFIG: {
|
||||
struct msm_audio_stream_config cfg;
|
||||
pr_debug("%s[%p]:SET STREAM CONFIG\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:SET STREAM CONFIG\n", __func__, audio);
|
||||
mutex_lock(&audio->lock);
|
||||
if (copy_from_user(&cfg, (void *)arg, sizeof(cfg))) {
|
||||
rc = -EFAULT;
|
||||
@@ -1417,7 +1417,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
}
|
||||
case AUDIO_SET_CONFIG: {
|
||||
struct msm_audio_config config;
|
||||
pr_err("%s[%p]:AUDIO_SET_CONFIG\n", __func__, audio);
|
||||
pr_err("%s[%pK]:AUDIO_SET_CONFIG\n", __func__, audio);
|
||||
mutex_lock(&audio->lock);
|
||||
if (copy_from_user(&config, (void *)arg, sizeof(config))) {
|
||||
rc = -EFAULT;
|
||||
@@ -1425,7 +1425,7 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
if (audio->feedback != NON_TUNNEL_MODE) {
|
||||
pr_err("%s[%p]:Not sufficient permission to change the playback mode\n",
|
||||
pr_err("%s[%pK]:Not sufficient permission to change the playback mode\n",
|
||||
__func__, audio);
|
||||
rc = -EACCES;
|
||||
mutex_unlock(&audio->lock);
|
||||
@@ -1462,14 +1462,14 @@ long audio_aio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
}
|
||||
|
||||
audio->buf_cfg.meta_info_enable = cfg.meta_info_enable;
|
||||
pr_debug("%s[%p]:session id %d: Set-buf-cfg: meta[%d]",
|
||||
pr_debug("%s[%pK]:session id %d: Set-buf-cfg: meta[%d]",
|
||||
__func__, audio,
|
||||
audio->ac->session, cfg.meta_info_enable);
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
}
|
||||
case AUDIO_GET_BUF_CFG: {
|
||||
pr_debug("%s[%p]:session id %d: Get-buf-cfg: meta[%d] framesperbuf[%d]\n",
|
||||
pr_debug("%s[%pK]:session id %d: Get-buf-cfg: meta[%d] framesperbuf[%d]\n",
|
||||
__func__, audio,
|
||||
audio->ac->session, audio->buf_cfg.meta_info_enable,
|
||||
audio->buf_cfg.frames_per_buf);
|
||||
|
||||
@@ -35,7 +35,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
case AUDIO_START: {
|
||||
struct asm_wma_cfg wma_cfg;
|
||||
struct msm_audio_wma_config_v2 *wma_config;
|
||||
pr_debug("%s[%p]: AUDIO_START session_id[%d]\n", __func__,
|
||||
pr_debug("%s[%pK]: AUDIO_START session_id[%d]\n", __func__,
|
||||
audio, audio->ac->session);
|
||||
if (audio->feedback == NON_TUNNEL_MODE) {
|
||||
/* Configure PCM output block */
|
||||
@@ -95,7 +95,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
if (rc)
|
||||
pr_err("Failed in utils_ioctl: %d\n", rc);
|
||||
|
||||
@@ -153,7 +153,7 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pr_debug("%s[%p]: Calling utils ioctl\n", __func__, audio);
|
||||
pr_debug("%s[%pK]: Calling utils ioctl\n", __func__, audio);
|
||||
rc = audio->codec_ioctl(file, cmd, arg);
|
||||
if (rc)
|
||||
pr_err("Failed in utils_ioctl: %d\n", rc);
|
||||
|
||||
@@ -169,7 +169,7 @@ static ssize_t dsp_read(struct file *file, char __user *buf,
|
||||
}
|
||||
if (copy_to_user(buf, ptr, PAGE_SIZE)) {
|
||||
iounmap(mem_buffer);
|
||||
pr_err("[%s:%s] copy error @ %p\n", __MM_FILE__,
|
||||
pr_err("[%s:%s] copy error @ %pK\n", __MM_FILE__,
|
||||
__func__, buf);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
@@ -95,10 +95,10 @@ int msm_audio_ion_alloc(const char *name, struct ion_client **client,
|
||||
pr_err("%s: ION memory mapping for AUDIO failed\n", __func__);
|
||||
goto err_ion_handle;
|
||||
}
|
||||
pr_debug("%s: mapped address = %p, size=%d\n", __func__, *vaddr, bufsz);
|
||||
pr_debug("%s: mapped address = %pK, size=%d\n", __func__, *vaddr, bufsz);
|
||||
|
||||
if (bufsz != 0) {
|
||||
pr_debug("%s: memset to 0 %p %d\n", __func__, *vaddr, bufsz);
|
||||
pr_debug("%s: memset to 0 %pK %d\n", __func__, *vaddr, bufsz);
|
||||
memset((void *)*vaddr, 0, bufsz);
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ int msm_audio_ion_import(const char *name, struct ion_client **client,
|
||||
bufsz should be 0 and fd shouldn't be 0 as of now
|
||||
*/
|
||||
*handle = ion_import_dma_buf(*client, fd);
|
||||
pr_err("%s: DMA Buf name=%s, fd=%d handle=%p\n", __func__,
|
||||
pr_err("%s: DMA Buf name=%s, fd=%d handle=%pK\n", __func__,
|
||||
name, fd, *handle);
|
||||
if (IS_ERR_OR_NULL((void *) (*handle))) {
|
||||
pr_err("%s: ion import dma buffer failed\n",
|
||||
@@ -168,7 +168,7 @@ int msm_audio_ion_import(const char *name, struct ion_client **client,
|
||||
rc = -ENOMEM;
|
||||
goto err_ion_handle;
|
||||
}
|
||||
pr_debug("%s: mapped address = %p, size=%d\n", __func__, *vaddr, bufsz);
|
||||
pr_debug("%s: mapped address = %pK, size=%d\n", __func__, *vaddr, bufsz);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -190,7 +190,7 @@ int msm_audio_ion_free(struct ion_client *client, struct ion_handle *handle)
|
||||
}
|
||||
if (msm_audio_ion_data.smmu_enabled) {
|
||||
/* Need to populate book kept infomation */
|
||||
pr_debug("client=%p, domain=%p, domain_id=%d, group=%p",
|
||||
pr_debug("client=%pK, domain=%pK, domain_id=%d, group=%pK",
|
||||
client, msm_audio_ion_data.domain,
|
||||
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
|
||||
|
||||
@@ -255,7 +255,7 @@ int msm_audio_ion_mmap(struct audio_buffer *ab,
|
||||
offset = 0;
|
||||
}
|
||||
len = min(len, remainder);
|
||||
pr_debug("vma=%p, addr=%x len=%ld vm_start=%x vm_end=%x vm_page_prot=%ld\n",
|
||||
pr_debug("vma=%pK, addr=%x len=%ld vm_start=%x vm_end=%x vm_page_prot=%ld\n",
|
||||
vma, (unsigned int)addr, len,
|
||||
(unsigned int)vma->vm_start,
|
||||
(unsigned int)vma->vm_end,
|
||||
@@ -279,7 +279,7 @@ int msm_audio_ion_mmap(struct audio_buffer *ab,
|
||||
return ret;
|
||||
}
|
||||
pr_debug("phys=%x len=%d\n", (unsigned int)phys_addr, phys_len);
|
||||
pr_debug("vma=%p, vm_start=%x vm_end=%x vm_pgoff=%ld vm_page_prot=%ld\n",
|
||||
pr_debug("vma=%pK, vm_start=%x vm_end=%x vm_pgoff=%ld vm_page_prot=%ld\n",
|
||||
vma, (unsigned int)vma->vm_start,
|
||||
(unsigned int)vma->vm_end, vma->vm_pgoff,
|
||||
(unsigned long int)vma->vm_page_prot);
|
||||
@@ -316,7 +316,7 @@ struct ion_client *msm_audio_ion_client_create(unsigned int heap_mask,
|
||||
|
||||
void msm_audio_ion_client_destroy(struct ion_client *client)
|
||||
{
|
||||
pr_debug("%s: client = %p smmu_enabled = %d\n", __func__,
|
||||
pr_debug("%s: client = %pK smmu_enabled = %d\n", __func__,
|
||||
client, msm_audio_ion_data.smmu_enabled);
|
||||
|
||||
ion_client_destroy(client);
|
||||
@@ -338,7 +338,7 @@ int msm_audio_ion_import_legacy(const char *name, struct ion_client *client,
|
||||
bufsz should be 0 and fd shouldn't be 0 as of now
|
||||
*/
|
||||
*handle = ion_import_dma_buf(client, fd);
|
||||
pr_debug("%s: DMA Buf name=%s, fd=%d handle=%p\n", __func__,
|
||||
pr_debug("%s: DMA Buf name=%s, fd=%d handle=%pK\n", __func__,
|
||||
name, fd, *handle);
|
||||
if (IS_ERR_OR_NULL((void *)(*handle))) {
|
||||
pr_err("%s: ion import dma buffer failed\n",
|
||||
@@ -404,7 +404,7 @@ int msm_audio_ion_cache_operations(struct audio_buffer *abuff, int cache_op)
|
||||
int msm_cache_ops = 0;
|
||||
|
||||
if (!abuff) {
|
||||
pr_err("Invalid params: %p, %p\n", __func__, abuff);
|
||||
pr_err("Invalid params: %pK, %pK\n", __func__, abuff);
|
||||
return -EINVAL;
|
||||
}
|
||||
rc = ion_handle_get_flags(abuff->client, abuff->handle,
|
||||
@@ -450,7 +450,7 @@ static int msm_audio_ion_get_phys(struct ion_client *client,
|
||||
pr_err("%s: ION map iommu failed %d\n", __func__, rc);
|
||||
return rc;
|
||||
}
|
||||
pr_debug("client=%p, domain=%p, domain_id=%d, group=%p",
|
||||
pr_debug("client=%pK, domain=%pK, domain_id=%d, group=%pK",
|
||||
client, msm_audio_ion_data.domain,
|
||||
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
|
||||
} else {
|
||||
@@ -486,18 +486,18 @@ static int msm_audio_ion_probe(struct platform_device *pdev)
|
||||
msm_audio_ion_data.domain =
|
||||
iommu_group_get_iommudata(msm_audio_ion_data.group);
|
||||
if (IS_ERR_OR_NULL(msm_audio_ion_data.domain)) {
|
||||
pr_err("Failed to get domain data for group %p",
|
||||
pr_err("Failed to get domain data for group %pK",
|
||||
msm_audio_ion_data.group);
|
||||
goto fail_group;
|
||||
}
|
||||
msm_audio_ion_data.domain_id =
|
||||
msm_find_domain_no(msm_audio_ion_data.domain);
|
||||
if (msm_audio_ion_data.domain_id < 0) {
|
||||
pr_err("Failed to get domain index for domain %p",
|
||||
pr_err("Failed to get domain index for domain %pK",
|
||||
msm_audio_ion_data.domain);
|
||||
goto fail_group;
|
||||
}
|
||||
pr_debug("domain=%p, domain_id=%d, group=%p",
|
||||
pr_debug("domain=%pK, domain_id=%d, group=%pK",
|
||||
msm_audio_ion_data.domain,
|
||||
msm_audio_ion_data.domain_id, msm_audio_ion_data.group);
|
||||
|
||||
@@ -521,7 +521,7 @@ fail_group:
|
||||
|
||||
static int msm_audio_ion_remove(struct platform_device *pdev)
|
||||
{
|
||||
pr_debug("%s: msm audio ion is unloaded, domain=%p, group=%p\n",
|
||||
pr_debug("%s: msm audio ion is unloaded, domain=%pK, group=%pK\n",
|
||||
__func__, msm_audio_ion_data.domain, msm_audio_ion_data.group);
|
||||
iommu_detach_group(msm_audio_ion_data.domain, msm_audio_ion_data.group);
|
||||
|
||||
|
||||
@@ -408,7 +408,7 @@ static ssize_t pcm_in_read(struct file *file, char __user *buf,
|
||||
len = size;
|
||||
else {
|
||||
len = count;
|
||||
pr_err("%s: short read data[%p]bytesavail[%d]"
|
||||
pr_err("%s: short read data[%pK]bytesavail[%d]"
|
||||
"bytesrequest[%d]"
|
||||
"bytesrejected%d]\n",\
|
||||
__func__, data, size,
|
||||
|
||||
@@ -56,18 +56,18 @@ void audio_aio_cb(uint32_t opcode, uint32_t token,
|
||||
|
||||
switch (opcode) {
|
||||
case ASM_DATA_EVENT_WRITE_DONE:
|
||||
pr_debug("%s[%p]:ASM_DATA_EVENT_WRITE_DONE token = 0x%x\n",
|
||||
pr_debug("%s[%pK]:ASM_DATA_EVENT_WRITE_DONE token = 0x%x\n",
|
||||
__func__, audio, token);
|
||||
audio_aio_async_write_ack(audio, token, payload);
|
||||
break;
|
||||
case ASM_DATA_EVENT_READ_DONE:
|
||||
pr_debug("%s[%p]:ASM_DATA_EVENT_READ_DONE token = 0x%x\n",
|
||||
pr_debug("%s[%pK]:ASM_DATA_EVENT_READ_DONE token = 0x%x\n",
|
||||
__func__, audio, token);
|
||||
audio_aio_async_read_ack(audio, token, payload);
|
||||
break;
|
||||
case ASM_DATA_CMDRSP_EOS:
|
||||
/* EOS Handle */
|
||||
pr_debug("%s[%p]:ASM_DATA_CMDRSP_EOS\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:ASM_DATA_CMDRSP_EOS\n", __func__, audio);
|
||||
if (audio->feedback) { /* Non-Tunnel mode */
|
||||
audio->eos_rsp = 1;
|
||||
/* propagate input EOS i/p buffer,
|
||||
@@ -89,18 +89,18 @@ void audio_aio_cb(uint32_t opcode, uint32_t token,
|
||||
break;
|
||||
case ASM_DATA_CMD_MEDIA_FORMAT_UPDATE:
|
||||
case ASM_STREAM_CMD_SET_ENCDEC_PARAM:
|
||||
pr_debug("%s[%p]:payload0[%x] payloa1d[%x]opcode= 0x%x\n",
|
||||
pr_debug("%s[%pK]:payload0[%x] payloa1d[%x]opcode= 0x%x\n",
|
||||
__func__, audio, payload[0], payload[1], opcode);
|
||||
break;
|
||||
case ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY:
|
||||
case ASM_DATA_EVENT_ENC_SR_CM_NOTIFY:
|
||||
pr_debug("%s[%p]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, "
|
||||
pr_debug("%s[%pK]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, "
|
||||
|
||||
"payload[0]-sr = %d, payload[1]-chl = %d, "
|
||||
"payload[2] = %d, payload[3] = %d\n", __func__,
|
||||
audio, payload[0], payload[1], payload[2],
|
||||
payload[3]);
|
||||
pr_debug("%s[%p]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, sr(prev) = %d, chl(prev) = %d,",
|
||||
pr_debug("%s[%pK]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, sr(prev) = %d, chl(prev) = %d,",
|
||||
__func__, audio, audio->pcm_cfg.sample_rate,
|
||||
audio->pcm_cfg.channel_count);
|
||||
audio->pcm_cfg.sample_rate = payload[0];
|
||||
@@ -145,7 +145,7 @@ void extract_meta_out_info(struct q6audio_aio *audio,
|
||||
else
|
||||
memset(&buf_node->meta_info.meta_in,
|
||||
0, sizeof(struct dec_meta_in));
|
||||
pr_debug("%s[%p]:i/p: msw_ts 0x%lx lsw_ts 0x%lx nflags 0x%8x\n",
|
||||
pr_debug("%s[%pK]:i/p: msw_ts 0x%lx lsw_ts 0x%lx nflags 0x%8x\n",
|
||||
__func__, audio,
|
||||
buf_node->meta_info.meta_in.ntimestamp.highpart,
|
||||
buf_node->meta_info.meta_in.ntimestamp.lowpart,
|
||||
@@ -155,7 +155,7 @@ void extract_meta_out_info(struct q6audio_aio *audio,
|
||||
&buf_node->meta_info.meta_out,
|
||||
sizeof(struct dec_meta_out));
|
||||
meta_data->meta_out_dsp[0].nflags = 0x00000000;
|
||||
pr_debug("%s[%p]:o/p: msw_ts 0x%8x lsw_ts 0x%8x nflags 0x%8x, num_frames = %d\n",
|
||||
pr_debug("%s[%pK]:o/p: msw_ts 0x%8x lsw_ts 0x%8x nflags 0x%8x, num_frames = %d\n",
|
||||
__func__, audio,
|
||||
((struct dec_meta_out *)buf_node->kvaddr)->\
|
||||
meta_out_dsp[0].msw_ts,
|
||||
@@ -204,7 +204,7 @@ void audio_aio_async_read_ack(struct q6audio_aio *audio, uint32_t token,
|
||||
event_payload.aio_buf.data_len = payload[2] + \
|
||||
payload[3] + \
|
||||
sizeof(struct dec_meta_out);
|
||||
pr_debug("%s[%p]:nr of frames 0x%8x len=%d\n",
|
||||
pr_debug("%s[%pK]:nr of frames 0x%8x len=%d\n",
|
||||
__func__, audio,
|
||||
filled_buf->meta_info.meta_out.num_of_frames,
|
||||
event_payload.aio_buf.data_len);
|
||||
@@ -215,7 +215,7 @@ void audio_aio_async_read_ack(struct q6audio_aio *audio, uint32_t token,
|
||||
event_payload);
|
||||
kfree(filled_buf);
|
||||
} else {
|
||||
pr_err("%s[%p]:expected=%lx ret=%x\n",
|
||||
pr_err("%s[%pK]:expected=%lx ret=%x\n",
|
||||
__func__, audio, filled_buf->token, token);
|
||||
spin_unlock_irqrestore(&audio->dsp_lock, flags);
|
||||
}
|
||||
|
||||
@@ -54,18 +54,18 @@ void audio_aio_cb(uint32_t opcode, uint32_t token,
|
||||
|
||||
switch (opcode) {
|
||||
case ASM_DATA_EVENT_WRITE_DONE_V2:
|
||||
pr_debug("%s[%p]:ASM_DATA_EVENT_WRITE_DONE token = 0x%x\n",
|
||||
pr_debug("%s[%pK]:ASM_DATA_EVENT_WRITE_DONE token = 0x%x\n",
|
||||
__func__, audio, token);
|
||||
audio_aio_async_write_ack(audio, token, payload);
|
||||
break;
|
||||
case ASM_DATA_EVENT_READ_DONE_V2:
|
||||
pr_debug("%s[%p]:ASM_DATA_EVENT_READ_DONE token = 0x%x\n",
|
||||
pr_debug("%s[%pK]:ASM_DATA_EVENT_READ_DONE token = 0x%x\n",
|
||||
__func__, audio, token);
|
||||
audio_aio_async_read_ack(audio, token, payload);
|
||||
break;
|
||||
case ASM_DATA_EVENT_RENDERED_EOS:
|
||||
/* EOS Handle */
|
||||
pr_debug("%s[%p]:ASM_DATA_CMDRSP_EOS\n", __func__, audio);
|
||||
pr_debug("%s[%pK]:ASM_DATA_CMDRSP_EOS\n", __func__, audio);
|
||||
if (audio->feedback) { /* Non-Tunnel mode */
|
||||
audio->eos_rsp = 1;
|
||||
/* propagate input EOS i/p buffer,
|
||||
@@ -87,16 +87,16 @@ void audio_aio_cb(uint32_t opcode, uint32_t token,
|
||||
break;
|
||||
case ASM_DATA_CMD_MEDIA_FMT_UPDATE_V2:
|
||||
case ASM_STREAM_CMD_SET_ENCDEC_PARAM:
|
||||
pr_debug("%s[%p]:payload0[%x] payloa1d[%x]opcode= 0x%x\n",
|
||||
pr_debug("%s[%pK]:payload0[%x] payloa1d[%x]opcode= 0x%x\n",
|
||||
__func__, audio, payload[0], payload[1], opcode);
|
||||
break;
|
||||
case ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY:
|
||||
case ASM_DATA_EVENT_ENC_SR_CM_CHANGE_NOTIFY:
|
||||
pr_debug("%s[%p]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, payload[0]-sr = %d, payload[1]-chl = %d, payload[2] = %d, payload[3] = %d\n",
|
||||
pr_debug("%s[%pK]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, payload[0]-sr = %d, payload[1]-chl = %d, payload[2] = %d, payload[3] = %d\n",
|
||||
__func__, audio, payload[0],
|
||||
payload[1], payload[2], payload[3]);
|
||||
|
||||
pr_debug("%s[%p]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, sr(prev) = %d, chl(prev) = %d,",
|
||||
pr_debug("%s[%pK]: ASM_DATA_EVENT_SR_CM_CHANGE_NOTIFY, sr(prev) = %d, chl(prev) = %d,",
|
||||
__func__, audio, audio->pcm_cfg.sample_rate,
|
||||
audio->pcm_cfg.channel_count);
|
||||
|
||||
@@ -129,7 +129,7 @@ void extract_meta_out_info(struct q6audio_aio *audio,
|
||||
else
|
||||
memset(&buf_node->meta_info.meta_in,
|
||||
0, sizeof(struct dec_meta_in));
|
||||
pr_debug("%s[%p]:i/p: msw_ts 0x%lx lsw_ts 0x%lx nflags 0x%8x\n",
|
||||
pr_debug("%s[%pK]:i/p: msw_ts 0x%lx lsw_ts 0x%lx nflags 0x%8x\n",
|
||||
__func__, audio,
|
||||
buf_node->meta_info.meta_in.ntimestamp.highpart,
|
||||
buf_node->meta_info.meta_in.ntimestamp.lowpart,
|
||||
@@ -144,7 +144,7 @@ void extract_meta_out_info(struct q6audio_aio *audio,
|
||||
meta_data->meta_out_dsp[0].lsw_ts;
|
||||
meta_data->meta_out_dsp[0].lsw_ts = temp;
|
||||
|
||||
pr_debug("%s[%p]:o/p: msw_ts 0x%8x lsw_ts 0x%8x nflags 0x%8x, num_frames = %d\n",
|
||||
pr_debug("%s[%pK]:o/p: msw_ts 0x%8x lsw_ts 0x%8x nflags 0x%8x, num_frames = %d\n",
|
||||
__func__, audio,
|
||||
((struct dec_meta_out *)buf_node->kvaddr)->\
|
||||
meta_out_dsp[0].msw_ts,
|
||||
@@ -200,7 +200,7 @@ void audio_aio_async_read_ack(struct q6audio_aio *audio, uint32_t token,
|
||||
= payload[9];
|
||||
event_payload.aio_buf.data_len = payload[4]\
|
||||
+ payload[5] + sizeof(struct dec_meta_out);
|
||||
pr_debug("%s[%p]:nr of frames 0x%8x len=%d\n",
|
||||
pr_debug("%s[%pK]:nr of frames 0x%8x len=%d\n",
|
||||
__func__, audio,
|
||||
filled_buf->meta_info.meta_out.num_of_frames,
|
||||
event_payload.aio_buf.data_len);
|
||||
@@ -212,7 +212,7 @@ void audio_aio_async_read_ack(struct q6audio_aio *audio, uint32_t token,
|
||||
event_payload);
|
||||
kfree(filled_buf);
|
||||
} else {
|
||||
pr_err("%s[%p]:expected=%lx ret=%x\n",
|
||||
pr_err("%s[%pK]:expected=%lx ret=%x\n",
|
||||
__func__, audio, filled_buf->token, token);
|
||||
spin_unlock_irqrestore(&audio->dsp_lock, flags);
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ void core_open(void)
|
||||
core_handle_q = apr_register("ADSP", "CORE",
|
||||
aprv2_core_fn_q, 0xFFFFFFFF, NULL);
|
||||
}
|
||||
pr_debug("Open_q %p\n", core_handle_q);
|
||||
pr_debug("Open_q %pK\n", core_handle_q);
|
||||
if (core_handle_q == NULL)
|
||||
pr_err("%s: Unable to register CORE\n", __func__);
|
||||
}
|
||||
@@ -265,11 +265,11 @@ static ssize_t apr_debug_write(struct file *file, const char __user *buf,
|
||||
if (!strncmp(l_buf + 20, "open_q", 64)) {
|
||||
apr_handle_q = apr_register("ADSP", "TEST", aprv2_debug_fn_q,
|
||||
0xFFFFFFFF, NULL);
|
||||
pr_info("Open_q %p\n", apr_handle_q);
|
||||
pr_info("Open_q %pK\n", apr_handle_q);
|
||||
} else if (!strncmp(l_buf + 20, "open_m", 64)) {
|
||||
apr_handle_m = apr_register("MODEM", "TEST", aprv2_debug_fn_m,
|
||||
0xFFFFFFFF, NULL);
|
||||
pr_info("Open_m %p\n", apr_handle_m);
|
||||
pr_info("Open_m %pK\n", apr_handle_m);
|
||||
} else if (!strncmp(l_buf + 20, "write_q", 64)) {
|
||||
struct apr_hdr *hdr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user