[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <be484deb-efc9-72cd-f83f-e11713539023@arm.com>
Date: Tue, 30 Jun 2020 11:46:39 +0100
From: Robin Murphy <robin.murphy@....com>
To: Jon Hunter <jonathanh@...dia.com>,
Krishna Reddy <vdumpa@...dia.com>,
Nicolin Chen <nicoleotsuka@...il.com>
Cc: "joro@...tes.org" <joro@...tes.org>,
"will@...nel.org" <will@...nel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-tegra@...r.kernel.org" <linux-tegra@...r.kernel.org>,
Thierry Reding <treding@...dia.com>,
Yu-Huan Hsu <YHsu@...dia.com>,
Sachin Nikam <Snikam@...dia.com>,
Pritesh Raithatha <praithatha@...dia.com>,
Timo Alho <talho@...dia.com>,
Bitan Biswas <bbiswas@...dia.com>,
Mikko Perttunen <mperttunen@...dia.com>,
Nicolin Chen <nicolinc@...dia.com>,
Bryan Huntsman <bhuntsman@...dia.com>
Subject: Re: [PATCH v7 1/3] iommu/arm-smmu: add NVIDIA implementation for dual
ARM MMU-500 usage
On 2020-06-30 11:23, Jon Hunter wrote:
>
> On 29/06/2020 23:49, Krishna Reddy wrote:
>>>> + if (!nvidia_smmu->bases[0])
>>>> + nvidia_smmu->bases[0] = smmu->base;
>>>> +
>>>> + return nvidia_smmu->bases[inst] + (page << smmu->pgshift); }
>>
>>> Not critical -- just a nit: why not put the bases[0] in init()?
>>
>> smmu->base is not available during nvidia_smmu_impl_init() call. It is set afterwards in arm-smmu.c.
>> It can't be avoided without changing the devm_ioremap() and impl_init() call order in arm-smmu.c.
>
>
> Why don't we move the call to devm_ioremap_resource() to before
> arm_smmu_impl_init() in arm_smmu_device_probe()? From a quick look I
> don't see why we cannot do this and seems better than what we are
> currently doing which is quite confusing and hard to understand.
Yeah, I don't see any problem with adding a patch to do that.
impl_init() does need to happen before generic probe starts touching any
registers, but it wouldn't have any business overriding the platform
resources or anything that would affect the ioremap itself. Plus it's
reasonable that some theoretical future impl_init() might want to check
registers for, say, a particular hardware revision, so having
smmmu->base mapped and valid at that point would be no bad thing.
Robin.
Powered by blists - more mailing lists