[RFC PATCH 5/7] iommu/arm-smmu-v3: For ACPI based device probing, set relevant options for different SMMUv3 implementations.

Linu Cherian
2017-04-12T10:32:52Z

>> + switch (model) {
>> + case ACPI_IORT_SMMU_V3:
>> + case ACPI_IORT_SMMU_CORELINK_MMU600:
>> + break;
>> + case ACPI_IORT_SMMU_V3_HISILICON:
>> + smmu->options |= ARM_SMMU_OPT_SKIP_PREFETCH;
>> + break;
>> + case ACPI_IORT_SMMU_V3_CAVIUM_CN99XX:
>> + smmu->options |= (ARM_SMMU_OPT_PAGE0_REGS_ONLY |
>> + ARM_SMMU_OPT_USE_SHARED_IRQS);
>> + break;
>> + default:
>> + ret = -ENODEV;
>> + }
>> +
>> + return ret;
>> +}
>> +
>> static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
>> struct arm_smmu_device *smmu)
>> {
>> struct acpi_iort_smmu_v3 *iort_smmu;
>> struct device *dev = smmu->dev;
>> struct acpi_iort_node *node;
>> + int ret;
>>
>> node = *(struct acpi_iort_node **)dev_get_platdata(dev);
>>
>> /* Retrieve SMMUv3 specific data */
>> iort_smmu = (struct acpi_iort_smmu_v3 *)node->node_data;
>>
>> + ret = acpi_smmu_get_options(iort_smmu->model, smmu);
>> + if (ret < 0)
>> + return ret;
>> +
>
> could we add at least:
>
> dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options);
>
> We need a note to see which options have been enabled.
>

Yeah. Will add that.

Thanks.