net: ipa: Make the SMEM item ID constant
It can't vary, stop storing the same magic number everywhere. Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Alex Elder <elder@kernel.org> Link: https://patch.msgid.link/20250512-topic-ipa_smem-v1-1-302679514a0d@oss.qualcomm.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
51672a6587
commit
0d161eb27d
@@ -493,7 +493,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146bd000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00002000,
|
||||
};
|
||||
|
||||
|
||||
@@ -374,7 +374,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146bd000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00002000,
|
||||
};
|
||||
|
||||
|
||||
@@ -367,7 +367,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146a8000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00009000,
|
||||
};
|
||||
|
||||
|
||||
@@ -340,7 +340,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146a8000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00002000,
|
||||
};
|
||||
|
||||
|
||||
@@ -418,7 +418,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x14688000,
|
||||
.imem_size = 0x00003000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00009000,
|
||||
};
|
||||
|
||||
|
||||
@@ -360,7 +360,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146a8000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00009000,
|
||||
};
|
||||
|
||||
|
||||
@@ -416,7 +416,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x146bd000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00009000,
|
||||
};
|
||||
|
||||
|
||||
@@ -442,7 +442,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x14688000,
|
||||
.imem_size = 0x00003000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x00009000,
|
||||
};
|
||||
|
||||
|
||||
@@ -448,7 +448,6 @@ static const struct ipa_mem_data ipa_mem_data = {
|
||||
.local = ipa_mem_local_data,
|
||||
.imem_addr = 0x14688000,
|
||||
.imem_size = 0x00002000,
|
||||
.smem_id = 497,
|
||||
.smem_size = 0x0000b000,
|
||||
};
|
||||
|
||||
|
||||
@@ -180,7 +180,6 @@ struct ipa_resource_data {
|
||||
* @local: array of IPA-local memory region descriptors
|
||||
* @imem_addr: physical address of IPA region within IMEM
|
||||
* @imem_size: size in bytes of IPA IMEM region
|
||||
* @smem_id: item identifier for IPA region within SMEM memory
|
||||
* @smem_size: size in bytes of the IPA SMEM region
|
||||
*/
|
||||
struct ipa_mem_data {
|
||||
@@ -188,7 +187,6 @@ struct ipa_mem_data {
|
||||
const struct ipa_mem *local;
|
||||
u32 imem_addr;
|
||||
u32 imem_size;
|
||||
u32 smem_id;
|
||||
u32 smem_size;
|
||||
};
|
||||
|
||||
|
||||
+11
-10
@@ -26,6 +26,8 @@
|
||||
/* SMEM host id representing the modem. */
|
||||
#define QCOM_SMEM_HOST_MODEM 1
|
||||
|
||||
#define SMEM_IPA_FILTER_TABLE 497
|
||||
|
||||
const struct ipa_mem *ipa_mem_find(struct ipa *ipa, enum ipa_mem_id mem_id)
|
||||
{
|
||||
u32 i;
|
||||
@@ -509,7 +511,6 @@ static void ipa_imem_exit(struct ipa *ipa)
|
||||
/**
|
||||
* ipa_smem_init() - Initialize SMEM memory used by the IPA
|
||||
* @ipa: IPA pointer
|
||||
* @item: Item ID of SMEM memory
|
||||
* @size: Size (bytes) of SMEM memory region
|
||||
*
|
||||
* SMEM is a managed block of shared DRAM, from which numbered "items"
|
||||
@@ -523,7 +524,7 @@ static void ipa_imem_exit(struct ipa *ipa)
|
||||
*
|
||||
* Note: @size and the item address are is not guaranteed to be page-aligned.
|
||||
*/
|
||||
static int ipa_smem_init(struct ipa *ipa, u32 item, size_t size)
|
||||
static int ipa_smem_init(struct ipa *ipa, size_t size)
|
||||
{
|
||||
struct device *dev = ipa->dev;
|
||||
struct iommu_domain *domain;
|
||||
@@ -545,25 +546,25 @@ static int ipa_smem_init(struct ipa *ipa, u32 item, size_t size)
|
||||
* The item might have already been allocated, in which case we
|
||||
* use it unless the size isn't what we expect.
|
||||
*/
|
||||
ret = qcom_smem_alloc(QCOM_SMEM_HOST_MODEM, item, size);
|
||||
ret = qcom_smem_alloc(QCOM_SMEM_HOST_MODEM, SMEM_IPA_FILTER_TABLE, size);
|
||||
if (ret && ret != -EEXIST) {
|
||||
dev_err(dev, "error %d allocating size %zu SMEM item %u\n",
|
||||
ret, size, item);
|
||||
dev_err(dev, "error %d allocating size %zu SMEM item\n",
|
||||
ret, size);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Now get the address of the SMEM memory region */
|
||||
virt = qcom_smem_get(QCOM_SMEM_HOST_MODEM, item, &actual);
|
||||
virt = qcom_smem_get(QCOM_SMEM_HOST_MODEM, SMEM_IPA_FILTER_TABLE, &actual);
|
||||
if (IS_ERR(virt)) {
|
||||
ret = PTR_ERR(virt);
|
||||
dev_err(dev, "error %d getting SMEM item %u\n", ret, item);
|
||||
dev_err(dev, "error %d getting SMEM item\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* In case the region was already allocated, verify the size */
|
||||
if (ret && actual != size) {
|
||||
dev_err(dev, "SMEM item %u has size %zu, expected %zu\n",
|
||||
item, actual, size);
|
||||
dev_err(dev, "SMEM item has size %zu, expected %zu\n",
|
||||
actual, size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -659,7 +660,7 @@ int ipa_mem_init(struct ipa *ipa, struct platform_device *pdev,
|
||||
if (ret)
|
||||
goto err_unmap;
|
||||
|
||||
ret = ipa_smem_init(ipa, mem_data->smem_id, mem_data->smem_size);
|
||||
ret = ipa_smem_init(ipa, mem_data->smem_size);
|
||||
if (ret)
|
||||
goto err_imem_exit;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user