Loading drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c +7 −7 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ static int q6usm_memory_map(phys_addr_t buf_add, int dir, uint32_t bufsz, mem_region_map.flags = 0; mem_region_map.shm_addr_lsw = lower_32_bits(buf_add); mem_region_map.shm_addr_msw = upper_32_bits(buf_add); mem_region_map.shm_addr_msw = populate_upper_32_bits(buf_add); mem_region_map.mem_size_bytes = bufsz * bufcnt; rc = apr_send_pkt(this_mmap.apr, (uint32_t *) &mem_region_map); Loading Loading @@ -1154,7 +1154,7 @@ int q6usm_read(struct us_client *usc, uint32_t read_ind) read.buf_size = port->buf_size; buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); read.buf_addr_lsw = lower_32_bits(buf_addr); read.buf_addr_msw = upper_32_bits(buf_addr); read.buf_addr_msw = populate_upper_32_bits(buf_addr); read.mem_map_handle = *((uint32_t *)(port->ext)); for (loop_ind = 0; loop_ind < read_counter; ++loop_ind) { Loading @@ -1163,7 +1163,7 @@ int q6usm_read(struct us_client *usc, uint32_t read_ind) buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); read.buf_addr_lsw = lower_32_bits(buf_addr); read.buf_addr_msw = upper_32_bits(buf_addr); read.buf_addr_msw = populate_upper_32_bits(buf_addr); read.seq_id = port->cpu_buf; read.hdr.token = port->cpu_buf; read.counter = 1; Loading Loading @@ -1230,7 +1230,7 @@ int q6usm_write(struct us_client *usc, uint32_t write_ind) cmd_write.buf_size = port->buf_size; buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); cmd_write.buf_addr_lsw = lower_32_bits(buf_addr); cmd_write.buf_addr_msw = upper_32_bits(buf_addr); cmd_write.buf_addr_msw = populate_upper_32_bits(buf_addr); cmd_write.mem_map_handle = *((uint32_t *)(port->ext)); cmd_write.res0 = 0; cmd_write.res1 = 0; Loading @@ -1242,7 +1242,7 @@ int q6usm_write(struct us_client *usc, uint32_t write_ind) buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); cmd_write.buf_addr_lsw = lower_32_bits(buf_addr); cmd_write.buf_addr_msw = upper_32_bits(buf_addr); cmd_write.buf_addr_msw = populate_upper_32_bits(buf_addr); cmd_write.seq_id = port->cpu_buf; cmd_write.hdr.token = port->cpu_buf; Loading Loading @@ -1380,7 +1380,7 @@ int q6usm_set_us_stream_param(int dir, struct us_client *usc, cmd_set_param.hdr.opcode = USM_STREAM_CMD_SET_PARAM; cmd_set_param.buf_size = buf_size; cmd_set_param.buf_addr_msw = upper_32_bits(port->param_phys); cmd_set_param.buf_addr_msw = populate_upper_32_bits(port->param_phys); cmd_set_param.buf_addr_lsw = lower_32_bits(port->param_phys); cmd_set_param.mem_map_handle = *((uint32_t *)(port->param_buf_mem_handle)); Loading Loading @@ -1425,7 +1425,7 @@ int q6usm_get_us_stream_param(int dir, struct us_client *usc, cmd_get_param.hdr.opcode = USM_STREAM_CMD_GET_PARAM; cmd_get_param.buf_size = buf_size; cmd_get_param.buf_addr_msw = upper_32_bits(port->param_phys); cmd_get_param.buf_addr_msw = populate_upper_32_bits(port->param_phys); cmd_get_param.buf_addr_lsw = lower_32_bits(port->param_phys); cmd_get_param.mem_map_handle = *((uint32_t *)(port->param_buf_mem_handle)); Loading drivers/soc/qcom/qdsp6v2/msm_audio_ion.c +17 −0 Original line number Diff line number Diff line Loading @@ -776,6 +776,23 @@ static const struct of_device_id msm_audio_ion_dt_match[] = { }; MODULE_DEVICE_TABLE(of, msm_audio_ion_dt_match); u32 msm_audio_ion_get_smmu_sid_mode32(void) { if (msm_audio_ion_data.smmu_enabled) return upper_32_bits(msm_audio_ion_data.smmu_sid_bits); else return 0; } u32 populate_upper_32_bits(ion_phys_addr_t pa) { if (sizeof(ion_phys_addr_t) == sizeof(u32)) return msm_audio_ion_get_smmu_sid_mode32(); else return upper_32_bits(pa); } static int msm_audio_ion_probe(struct platform_device *pdev) { int rc = 0; Loading include/linux/msm_audio_ion.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -41,4 +41,5 @@ int msm_audio_ion_import_legacy(const char *name, struct ion_client *client, ion_phys_addr_t *paddr, size_t *pa_len, void **vaddr); int msm_audio_ion_free_legacy(struct ion_client *client, struct ion_handle *handle); u32 populate_upper_32_bits(ion_phys_addr_t pa); #endif /* _LINUX_MSM_AUDIO_ION_H */ sound/soc/msm/qdsp6v2/msm-lsm-client.c +3 −2 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ static int msm_lsm_queue_lab_buffer(struct lsm_priv *prtd, int i) cmd_read.buf_addr_lsw = lower_32_bits(prtd->lsm_client->lab_buffer[i].phys); cmd_read.buf_addr_msw = upper_32_bits(prtd->lsm_client->lab_buffer[i].phys); populate_upper_32_bits(prtd->lsm_client->lab_buffer[i].phys); cmd_read.buf_size = prtd->lsm_client->lab_buffer[i].size; cmd_read.mem_map_handle = prtd->lsm_client->lab_buffer[i].mem_map_handle; Loading Loading @@ -158,7 +158,8 @@ static int lsm_lab_buffer_sanity(struct lsm_priv *prtd, for (i = 0; i < prtd->lsm_client->hw_params.period_count; i++) { if ((lower_32_bits(prtd->lsm_client->lab_buffer[i].phys) == read_done->buf_addr_lsw) && (upper_32_bits(prtd->lsm_client->lab_buffer[i].phys) == (populate_upper_32_bits (prtd->lsm_client->lab_buffer[i].phys) == read_done->buf_addr_msw) && (prtd->lsm_client->lab_buffer[i].mem_map_handle == read_done->mem_map_handle)) { Loading sound/soc/msm/qdsp6v2/q6adm.c +12 −7 Original line number Diff line number Diff line Loading @@ -307,7 +307,8 @@ int adm_dts_eagle_set(int port_id, int copp_idx, int param_id, admp.hdr.token = p_idx << 16 | copp_idx; admp.hdr.opcode = ADM_CMD_SET_PP_PARAMS_V5; admp.payload_addr_lsw = lower_32_bits(this_adm.outband_memmap.paddr); admp.payload_addr_msw = upper_32_bits(this_adm.outband_memmap.paddr); admp.payload_addr_msw = populate_upper_32_bits( this_adm.outband_memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_DTS_EAGLE]); admp.payload_size = size + sizeof(struct adm_param_data_v5); Loading Loading @@ -416,7 +417,8 @@ int adm_dts_eagle_get(int port_id, int copp_idx, int param_id, admp.data_payload_addr_lsw = lower_32_bits(this_adm.outband_memmap.paddr); admp.data_payload_addr_msw = upper_32_bits(this_adm.outband_memmap.paddr); populate_upper_32_bits( this_adm.outband_memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_DTS_EAGLE]); admp.module_id = AUDPROC_MODULE_ID_DTS_HPX_POSTMIX; Loading Loading @@ -665,7 +667,7 @@ int srs_trumedia_open(int port_id, int copp_idx, __s32 srs_tech_id, sizeof(struct adm_cmd_set_pp_params_v5); adm_params->payload_addr_lsw = lower_32_bits( this_adm.outband_memmap.paddr); adm_params->payload_addr_msw = upper_32_bits( adm_params->payload_addr_msw = populate_upper_32_bits( this_adm.outband_memmap.paddr); adm_params->mem_map_handle = atomic_read(&this_adm. mem_map_handles[ADM_SRS_TRUMEDIA]); Loading Loading @@ -1603,7 +1605,7 @@ static int adm_memory_map_regions(phys_addr_t *buf_add, uint32_t mempool_id, for (i = 0; i < bufcnt; i++) { mregions->shm_addr_lsw = lower_32_bits(buf_add[i]); mregions->shm_addr_msw = upper_32_bits(buf_add[i]); mregions->shm_addr_msw = populate_upper_32_bits(buf_add[i]); mregions->mem_size_bytes = bufsz[i]; ++mregions; } Loading Loading @@ -1771,7 +1773,8 @@ static void send_adm_custom_topology(void) adm_top.hdr.token = 0; adm_top.hdr.opcode = ADM_CMD_ADD_TOPOLOGIES; adm_top.payload_addr_lsw = lower_32_bits(cal_block->cal_data.paddr); adm_top.payload_addr_msw = upper_32_bits(cal_block->cal_data.paddr); adm_top.payload_addr_msw = populate_upper_32_bits( cal_block->cal_data.paddr); adm_top.mem_map_handle = cal_block->map_data.q6map_handle; adm_top.payload_size = cal_block->cal_data.size; Loading Loading @@ -1859,7 +1862,8 @@ static int send_adm_cal_block(int port_id, int copp_idx, atomic_read(&this_adm.copp.id[port_idx][copp_idx]); adm_params.hdr.opcode = ADM_CMD_SET_PP_PARAMS_V5; adm_params.payload_addr_lsw = lower_32_bits(cal_block->cal_data.paddr); adm_params.payload_addr_msw = upper_32_bits(cal_block->cal_data.paddr); adm_params.payload_addr_msw = populate_upper_32_bits( cal_block->cal_data.paddr); adm_params.mem_map_handle = cal_block->map_data.q6map_handle; adm_params.payload_size = cal_block->cal_data.size; Loading Loading @@ -4105,7 +4109,8 @@ int adm_get_source_tracking(int port_id, int copp_idx, admp.data_payload_addr_lsw = lower_32_bits(this_adm.sourceTrackingData.memmap.paddr); admp.data_payload_addr_msw = upper_32_bits(this_adm.sourceTrackingData.memmap.paddr); populate_upper_32_bits( this_adm.sourceTrackingData.memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_MEM_MAP_INDEX_SOURCE_TRACKING]); admp.module_id = VOICEPROC_MODULE_ID_GENERIC_TX; Loading Loading
drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c +7 −7 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ static int q6usm_memory_map(phys_addr_t buf_add, int dir, uint32_t bufsz, mem_region_map.flags = 0; mem_region_map.shm_addr_lsw = lower_32_bits(buf_add); mem_region_map.shm_addr_msw = upper_32_bits(buf_add); mem_region_map.shm_addr_msw = populate_upper_32_bits(buf_add); mem_region_map.mem_size_bytes = bufsz * bufcnt; rc = apr_send_pkt(this_mmap.apr, (uint32_t *) &mem_region_map); Loading Loading @@ -1154,7 +1154,7 @@ int q6usm_read(struct us_client *usc, uint32_t read_ind) read.buf_size = port->buf_size; buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); read.buf_addr_lsw = lower_32_bits(buf_addr); read.buf_addr_msw = upper_32_bits(buf_addr); read.buf_addr_msw = populate_upper_32_bits(buf_addr); read.mem_map_handle = *((uint32_t *)(port->ext)); for (loop_ind = 0; loop_ind < read_counter; ++loop_ind) { Loading @@ -1163,7 +1163,7 @@ int q6usm_read(struct us_client *usc, uint32_t read_ind) buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); read.buf_addr_lsw = lower_32_bits(buf_addr); read.buf_addr_msw = upper_32_bits(buf_addr); read.buf_addr_msw = populate_upper_32_bits(buf_addr); read.seq_id = port->cpu_buf; read.hdr.token = port->cpu_buf; read.counter = 1; Loading Loading @@ -1230,7 +1230,7 @@ int q6usm_write(struct us_client *usc, uint32_t write_ind) cmd_write.buf_size = port->buf_size; buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); cmd_write.buf_addr_lsw = lower_32_bits(buf_addr); cmd_write.buf_addr_msw = upper_32_bits(buf_addr); cmd_write.buf_addr_msw = populate_upper_32_bits(buf_addr); cmd_write.mem_map_handle = *((uint32_t *)(port->ext)); cmd_write.res0 = 0; cmd_write.res1 = 0; Loading @@ -1242,7 +1242,7 @@ int q6usm_write(struct us_client *usc, uint32_t write_ind) buf_addr = (u64)(port->phys) + port->buf_size * (port->cpu_buf); cmd_write.buf_addr_lsw = lower_32_bits(buf_addr); cmd_write.buf_addr_msw = upper_32_bits(buf_addr); cmd_write.buf_addr_msw = populate_upper_32_bits(buf_addr); cmd_write.seq_id = port->cpu_buf; cmd_write.hdr.token = port->cpu_buf; Loading Loading @@ -1380,7 +1380,7 @@ int q6usm_set_us_stream_param(int dir, struct us_client *usc, cmd_set_param.hdr.opcode = USM_STREAM_CMD_SET_PARAM; cmd_set_param.buf_size = buf_size; cmd_set_param.buf_addr_msw = upper_32_bits(port->param_phys); cmd_set_param.buf_addr_msw = populate_upper_32_bits(port->param_phys); cmd_set_param.buf_addr_lsw = lower_32_bits(port->param_phys); cmd_set_param.mem_map_handle = *((uint32_t *)(port->param_buf_mem_handle)); Loading Loading @@ -1425,7 +1425,7 @@ int q6usm_get_us_stream_param(int dir, struct us_client *usc, cmd_get_param.hdr.opcode = USM_STREAM_CMD_GET_PARAM; cmd_get_param.buf_size = buf_size; cmd_get_param.buf_addr_msw = upper_32_bits(port->param_phys); cmd_get_param.buf_addr_msw = populate_upper_32_bits(port->param_phys); cmd_get_param.buf_addr_lsw = lower_32_bits(port->param_phys); cmd_get_param.mem_map_handle = *((uint32_t *)(port->param_buf_mem_handle)); Loading
drivers/soc/qcom/qdsp6v2/msm_audio_ion.c +17 −0 Original line number Diff line number Diff line Loading @@ -776,6 +776,23 @@ static const struct of_device_id msm_audio_ion_dt_match[] = { }; MODULE_DEVICE_TABLE(of, msm_audio_ion_dt_match); u32 msm_audio_ion_get_smmu_sid_mode32(void) { if (msm_audio_ion_data.smmu_enabled) return upper_32_bits(msm_audio_ion_data.smmu_sid_bits); else return 0; } u32 populate_upper_32_bits(ion_phys_addr_t pa) { if (sizeof(ion_phys_addr_t) == sizeof(u32)) return msm_audio_ion_get_smmu_sid_mode32(); else return upper_32_bits(pa); } static int msm_audio_ion_probe(struct platform_device *pdev) { int rc = 0; Loading
include/linux/msm_audio_ion.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -41,4 +41,5 @@ int msm_audio_ion_import_legacy(const char *name, struct ion_client *client, ion_phys_addr_t *paddr, size_t *pa_len, void **vaddr); int msm_audio_ion_free_legacy(struct ion_client *client, struct ion_handle *handle); u32 populate_upper_32_bits(ion_phys_addr_t pa); #endif /* _LINUX_MSM_AUDIO_ION_H */
sound/soc/msm/qdsp6v2/msm-lsm-client.c +3 −2 Original line number Diff line number Diff line Loading @@ -117,7 +117,7 @@ static int msm_lsm_queue_lab_buffer(struct lsm_priv *prtd, int i) cmd_read.buf_addr_lsw = lower_32_bits(prtd->lsm_client->lab_buffer[i].phys); cmd_read.buf_addr_msw = upper_32_bits(prtd->lsm_client->lab_buffer[i].phys); populate_upper_32_bits(prtd->lsm_client->lab_buffer[i].phys); cmd_read.buf_size = prtd->lsm_client->lab_buffer[i].size; cmd_read.mem_map_handle = prtd->lsm_client->lab_buffer[i].mem_map_handle; Loading Loading @@ -158,7 +158,8 @@ static int lsm_lab_buffer_sanity(struct lsm_priv *prtd, for (i = 0; i < prtd->lsm_client->hw_params.period_count; i++) { if ((lower_32_bits(prtd->lsm_client->lab_buffer[i].phys) == read_done->buf_addr_lsw) && (upper_32_bits(prtd->lsm_client->lab_buffer[i].phys) == (populate_upper_32_bits (prtd->lsm_client->lab_buffer[i].phys) == read_done->buf_addr_msw) && (prtd->lsm_client->lab_buffer[i].mem_map_handle == read_done->mem_map_handle)) { Loading
sound/soc/msm/qdsp6v2/q6adm.c +12 −7 Original line number Diff line number Diff line Loading @@ -307,7 +307,8 @@ int adm_dts_eagle_set(int port_id, int copp_idx, int param_id, admp.hdr.token = p_idx << 16 | copp_idx; admp.hdr.opcode = ADM_CMD_SET_PP_PARAMS_V5; admp.payload_addr_lsw = lower_32_bits(this_adm.outband_memmap.paddr); admp.payload_addr_msw = upper_32_bits(this_adm.outband_memmap.paddr); admp.payload_addr_msw = populate_upper_32_bits( this_adm.outband_memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_DTS_EAGLE]); admp.payload_size = size + sizeof(struct adm_param_data_v5); Loading Loading @@ -416,7 +417,8 @@ int adm_dts_eagle_get(int port_id, int copp_idx, int param_id, admp.data_payload_addr_lsw = lower_32_bits(this_adm.outband_memmap.paddr); admp.data_payload_addr_msw = upper_32_bits(this_adm.outband_memmap.paddr); populate_upper_32_bits( this_adm.outband_memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_DTS_EAGLE]); admp.module_id = AUDPROC_MODULE_ID_DTS_HPX_POSTMIX; Loading Loading @@ -665,7 +667,7 @@ int srs_trumedia_open(int port_id, int copp_idx, __s32 srs_tech_id, sizeof(struct adm_cmd_set_pp_params_v5); adm_params->payload_addr_lsw = lower_32_bits( this_adm.outband_memmap.paddr); adm_params->payload_addr_msw = upper_32_bits( adm_params->payload_addr_msw = populate_upper_32_bits( this_adm.outband_memmap.paddr); adm_params->mem_map_handle = atomic_read(&this_adm. mem_map_handles[ADM_SRS_TRUMEDIA]); Loading Loading @@ -1603,7 +1605,7 @@ static int adm_memory_map_regions(phys_addr_t *buf_add, uint32_t mempool_id, for (i = 0; i < bufcnt; i++) { mregions->shm_addr_lsw = lower_32_bits(buf_add[i]); mregions->shm_addr_msw = upper_32_bits(buf_add[i]); mregions->shm_addr_msw = populate_upper_32_bits(buf_add[i]); mregions->mem_size_bytes = bufsz[i]; ++mregions; } Loading Loading @@ -1771,7 +1773,8 @@ static void send_adm_custom_topology(void) adm_top.hdr.token = 0; adm_top.hdr.opcode = ADM_CMD_ADD_TOPOLOGIES; adm_top.payload_addr_lsw = lower_32_bits(cal_block->cal_data.paddr); adm_top.payload_addr_msw = upper_32_bits(cal_block->cal_data.paddr); adm_top.payload_addr_msw = populate_upper_32_bits( cal_block->cal_data.paddr); adm_top.mem_map_handle = cal_block->map_data.q6map_handle; adm_top.payload_size = cal_block->cal_data.size; Loading Loading @@ -1859,7 +1862,8 @@ static int send_adm_cal_block(int port_id, int copp_idx, atomic_read(&this_adm.copp.id[port_idx][copp_idx]); adm_params.hdr.opcode = ADM_CMD_SET_PP_PARAMS_V5; adm_params.payload_addr_lsw = lower_32_bits(cal_block->cal_data.paddr); adm_params.payload_addr_msw = upper_32_bits(cal_block->cal_data.paddr); adm_params.payload_addr_msw = populate_upper_32_bits( cal_block->cal_data.paddr); adm_params.mem_map_handle = cal_block->map_data.q6map_handle; adm_params.payload_size = cal_block->cal_data.size; Loading Loading @@ -4105,7 +4109,8 @@ int adm_get_source_tracking(int port_id, int copp_idx, admp.data_payload_addr_lsw = lower_32_bits(this_adm.sourceTrackingData.memmap.paddr); admp.data_payload_addr_msw = upper_32_bits(this_adm.sourceTrackingData.memmap.paddr); populate_upper_32_bits( this_adm.sourceTrackingData.memmap.paddr); admp.mem_map_handle = atomic_read(&this_adm.mem_map_handles[ ADM_MEM_MAP_INDEX_SOURCE_TRACKING]); admp.module_id = VOICEPROC_MODULE_ID_GENERIC_TX; Loading