All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Sricharan <sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Thomas.Lendacky-5C7GfCeVMHo@public.gmane.org,
	Marc Zyngier <Marc.Zyngier-5wv7dgnIgG8@public.gmane.org>,
	thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org,
	will.deacon-5wv7dgnIgG8@public.gmane.org,
	stuart.yoder-3arQi8VN3Tc@public.gmane.org,
	tchalamarla-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org
Subject: Re: [PATCH 11/12] iommu/arm-smmu: Generic IOMMU DT bindings support
Date: Wed, 2 Mar 2016 13:30:43 +0000	[thread overview]
Message-ID: <56D6EB03.403@arm.com> (raw)
In-Reply-To: <004c01d1731c$968ebb30$c3ac3190$@codeaurora.org>

On 29/02/16 18:09, Sricharan wrote:
> Hi Robin,
>
>> -----Original Message-----

[...]

>> +static int __init arm_smmu_of_init(struct device_node *np) {
>> +	struct arm_smmu_device *smmu;
>> +	struct platform_device *pdev;
>> +	int ret = arm_smmu_init();
>> +
>> +	if (ret)
>> +		return ret;
>> +
>> +	pdev = of_platform_device_create(np, NULL,
>> platform_bus_type.dev_root);
>> +	if (!pdev)
>> +		return -ENODEV;
>> +
>> +	smmu = platform_get_drvdata(pdev);
>> +	of_iommu_set_ops(np, &arm_smmu_ops);
>> +
>> +	return 0;
>> +}
>> +IOMMU_OF_DECLARE(arm_smmuv1, "arm,smmu-v1",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_smmuv2, "arm,smmu-v2",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu400, "arm,mmu-400",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu401, "arm,mmu-401",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu500, "arm,mmu-500",
>> arm_smmu_of_init);
>> +
>   Thanks for this series. I am going to use and test this. Also I wanted to
>   ask about the iommu probe deferral series [1] to avoid early device
> registration and wanted know the direction on that ?

It's certainly on my near-term to-do list to revisit. I recall running 
into problems with that series if the IOMMU was ready but the device 
itself then requested probe deferral, and I have vague memories of 
thinking more needed to be done generally around the failure/device 
teardown path too. I also had high hopes for the on-demand device 
probing series from around the same time[2], which would have helped 
simplify things quite a bit, but that also seems to have died after a 
brief stint breaking things in -next.

Anyway, Marc reckons that we also have the exact same probe-dependency 
problem for things like IRQ-MSI bridges, so I'll be looking into a more 
general solution at some point unless anyone wants to beat me to it ;)

Thanks,
Robin.

[2]:http://thread.gmane.org/gmane.linux.acpi.devel/78833

>
> [1] http://lkml.iu.edu/hypermail/linux/kernel/1505.3/03280.html
>
> Regards,
>   Sricharan
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/12] iommu/arm-smmu: Generic IOMMU DT bindings support
Date: Wed, 2 Mar 2016 13:30:43 +0000	[thread overview]
Message-ID: <56D6EB03.403@arm.com> (raw)
In-Reply-To: <004c01d1731c$968ebb30$c3ac3190$@codeaurora.org>

On 29/02/16 18:09, Sricharan wrote:
> Hi Robin,
>
>> -----Original Message-----

[...]

>> +static int __init arm_smmu_of_init(struct device_node *np) {
>> +	struct arm_smmu_device *smmu;
>> +	struct platform_device *pdev;
>> +	int ret = arm_smmu_init();
>> +
>> +	if (ret)
>> +		return ret;
>> +
>> +	pdev = of_platform_device_create(np, NULL,
>> platform_bus_type.dev_root);
>> +	if (!pdev)
>> +		return -ENODEV;
>> +
>> +	smmu = platform_get_drvdata(pdev);
>> +	of_iommu_set_ops(np, &arm_smmu_ops);
>> +
>> +	return 0;
>> +}
>> +IOMMU_OF_DECLARE(arm_smmuv1, "arm,smmu-v1",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_smmuv2, "arm,smmu-v2",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu400, "arm,mmu-400",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu401, "arm,mmu-401",
>> arm_smmu_of_init);
>> +IOMMU_OF_DECLARE(arm_mmu500, "arm,mmu-500",
>> arm_smmu_of_init);
>> +
>   Thanks for this series. I am going to use and test this. Also I wanted to
>   ask about the iommu probe deferral series [1] to avoid early device
> registration and wanted know the direction on that ?

It's certainly on my near-term to-do list to revisit. I recall running 
into problems with that series if the IOMMU was ready but the device 
itself then requested probe deferral, and I have vague memories of 
thinking more needed to be done generally around the failure/device 
teardown path too. I also had high hopes for the on-demand device 
probing series from around the same time[2], which would have helped 
simplify things quite a bit, but that also seems to have died after a 
brief stint breaking things in -next.

Anyway, Marc reckons that we also have the exact same probe-dependency 
problem for things like IRQ-MSI bridges, so I'll be looking into a more 
general solution at some point unless anyone wants to beat me to it ;)

Thanks,
Robin.

[2]:http://thread.gmane.org/gmane.linux.acpi.devel/78833

>
> [1] http://lkml.iu.edu/hypermail/linux/kernel/1505.3/03280.html
>
> Regards,
>   Sricharan
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

  reply	other threads:[~2016-03-02 13:30 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-29 13:46 [PATCH 00/12] Generic DT bindings for PCI and ARM SMMU Robin Murphy
2016-02-29 13:46 ` Robin Murphy
     [not found] ` <cover.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-02-29 13:46   ` [PATCH 01/12] Docs: dt: add PCI IOMMU map bindings Robin Murphy
2016-02-29 13:46     ` Robin Murphy
     [not found]     ` <5bcbc7c0c8825cb0a2ac216bac0ab99722a84618.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-03-03 22:27       ` Rob Herring
2016-03-03 22:27         ` Rob Herring
2016-02-29 13:46   ` [PATCH 02/12] of/irq: Break out msi-map lookup (again) Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 03/12] iommu/of: Handle iommu-map property for PCI Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 04/12] arm64/dma-mapping: Extend DMA ops workaround to PCI devices Robin Murphy
2016-02-29 13:46     ` Robin Murphy
     [not found]     ` <ffcca878210c916962c562d3d1341aae93d593d0.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-02-29 16:47       ` Catalin Marinas
2016-02-29 16:47         ` Catalin Marinas
2016-02-29 13:46   ` [PATCH 05/12] arm64/dma-mapping: Remove default domain workaround Robin Murphy
2016-02-29 13:46     ` Robin Murphy
     [not found]     ` <698ecf1450da8b56a8f297b83815d2fe866ca0e1.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-02-29 16:51       ` Catalin Marinas
2016-02-29 16:51         ` Catalin Marinas
2016-02-29 13:46   ` [PATCH 06/12] iommu/arm-smmu: Streamline SMMU data lookup Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 07/12] iommu/arm-smmu: Factor out mmu-masters handling Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 08/12] iommu/arm-smmu: Refactor master/group config handling Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 09/12] iommu/arm-smmu: Simplify mmu-masters handling Robin Murphy
2016-02-29 13:46     ` Robin Murphy
2016-02-29 13:46   ` [PATCH 10/12] Docs: dt: document ARM SMMU generic binding usage Robin Murphy
2016-02-29 13:46     ` Robin Murphy
     [not found]     ` <af1ce6d7d69e340ac839c69b475728f7aa50ff23.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-03-03 22:29       ` Rob Herring
2016-03-03 22:29         ` Rob Herring
2016-02-29 13:46   ` [PATCH 11/12] iommu/arm-smmu: Generic IOMMU DT bindings support Robin Murphy
2016-02-29 13:46     ` Robin Murphy
     [not found]     ` <a3edd4225fe8b39440fb9b6a70a70883d3cb103b.1456514380.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2016-02-29 18:09       ` Sricharan
2016-02-29 18:09         ` Sricharan
2016-03-02 13:30         ` Robin Murphy [this message]
2016-03-02 13:30           ` Robin Murphy
2016-02-29 13:46   ` [PATCH 12/12] iommu/arm-smmu: Group platform devices appropriately Robin Murphy
2016-02-29 13:46     ` Robin Murphy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56D6EB03.403@arm.com \
    --to=robin.murphy-5wv7dgnigg8@public.gmane.org \
    --cc=Marc.Zyngier-5wv7dgnIgG8@public.gmane.org \
    --cc=Thomas.Lendacky-5C7GfCeVMHo@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=stuart.yoder-3arQi8VN3Tc@public.gmane.org \
    --cc=tchalamarla-M3mlKVOIwJVv6pq1l3V1OdBPR1lH4CV8@public.gmane.org \
    --cc=thunder.leizhen-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=will.deacon-5wv7dgnIgG8@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.