[PATCH 2/5] drivers/bus: Split Arm CCI driver

Robin Murphy robin.murphy at arm.com
Wed Feb 14 04:07:13 PST 2018


On 14/02/18 11:51, Will Deacon wrote:
> On Wed, Feb 07, 2018 at 01:07:53PM +0000, Robin Murphy wrote:
>> Hi Punit,
>>
>> On 07/02/18 12:22, Punit Agrawal wrote:
>> [...]
>>>> -static void __iomem *cci_ctrl_base;
>>>> +void __iomem *cci_ctrl_base __ro_after_init;
>>>
>>> Initially I wondered if cci_ctrl_base gets used in the pmu driver before
>>> it's initialised. But as it gets set in early_initcall() that looks to
>>> be fine.
>>
>> In fact it's even more robust than initcall ordering, since the PMU device
>> will only be created at all via cci_platform_probe(), thus cci_init() is
>> guaranteed to have run successfully before the PMU driver probe can ever
>> touch anything.
> 
> Could you hijack the platform data at this point by passing an of_dev_auxdata
> to of_platform_populate and then use that to pass the __iomem address to the
> PMU driver?

Ooh, probably - auxdata looks a bit crufty, but it's still arguably 
nicer than exporting a global. I'll look into it, thanks for the idea.

Robin.



More information about the linux-arm-kernel mailing list