[PATCH v2 2/2] acpi/iort: numa: Add numa node mapping for smmuv3 devices
Ganapatrao Kulkarni
gpkulkarni at gmail.com
Wed Jun 7 20:27:02 PDT 2017
On Wed, Jun 7, 2017 at 10:08 PM, Lorenzo Pieralisi
<lorenzo.pieralisi at arm.com> wrote:
> On Tue, Jun 06, 2017 at 04:17:45PM +0530, Ganapatrao Kulkarni wrote:
>> Add code to parse proximity domain in SMMUv3 IORT table to
>> set numa node mapping for smmuv3 devices.
>>
>> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni at cavium.com>
>> ---
>> drivers/acpi/arm64/iort.c | 20 ++++++++++++++++++++
>> 1 file changed, 20 insertions(+)
>>
>> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
>> index bba2b59..b4f328f 100644
>> --- a/drivers/acpi/arm64/iort.c
>> +++ b/drivers/acpi/arm64/iort.c
>> @@ -882,6 +882,23 @@ static bool __init arm_smmu_v3_is_coherent(struct acpi_iort_node *node)
>> return smmu->flags & ACPI_IORT_SMMU_V3_COHACC_OVERRIDE;
>> }
>>
>> +/*
>> + * set numa proximity domain for smmv3 device
>> + */
>> +static void __init iort_set_proximity(struct acpi_iort_node *node,
>> + struct device *dev)
>> +{
>> + struct acpi_iort_smmu_v3 *smmu;
>> +
>> + smmu = (struct acpi_iort_smmu_v3 *)node->node_data;
>> + if (smmu->flags & ACPI_IORT_SMMU_V3_PXM_VALID) {
>> + set_dev_node(dev, acpi_map_pxm_to_node(smmu->pxm));
>> + pr_info("SMMUV3[%llx] Mapped to Proximity domain %d\n",
>> + smmu->base_address,
>> + smmu->pxm);
>> + }
>> +}
>> +
>> static int __init arm_smmu_count_resources(struct acpi_iort_node *node)
>> {
>> struct acpi_iort_smmu *smmu;
>> @@ -1002,6 +1019,9 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
>> if (!pdev)
>> return -ENOMEM;
>>
>> + if (node->type == ACPI_IORT_NODE_SMMU_V3)
>> + iort_set_proximity(node, &pdev->dev);
>
> Nit: while at it you may add an ops hook to set the proximity
> (NULL for SMMU v2) and call it if present, it is just to make
> the code adding devices more uniform.
thanks, will do
>
> Who is queueing these patches ? I am asking to make sure we sort
> the ACPICA dependency (there are other IORT/ACPICA patches to consider
> too).
>
> Thanks,
> Lorenzo
>
>> count = ops->iommu_count_resources(node);
>>
>> r = kcalloc(count, sizeof(*r), GFP_KERNEL);
>> --
>> 1.8.1.4
>>
thanks
Ganapat
More information about the linux-arm-kernel
mailing list