Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b89384d0 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: change audio drivers to accomodate sid 33bit in 32-mode"

parents 119859a1 efc1993a
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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);
@@ -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) {
@@ -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;
@@ -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;
@@ -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;

@@ -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));
@@ -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));
+17 −0
Original line number Diff line number Diff line
@@ -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;
+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
@@ -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 */
+3 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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)) {
+12 −7
Original line number Diff line number Diff line
@@ -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);
@@ -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;
@@ -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]);
@@ -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;
	}
@@ -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;

@@ -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;

@@ -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