[PATCH 1/2] drivers: amba: properly handle devices with power domains
Marek Szyprowski
m.szyprowski at samsung.com
Wed Nov 25 05:34:46 PST 2015
Hello,
On 2015-11-25 14:24, Russell King - ARM Linux wrote:
> On Wed, Nov 25, 2015 at 01:58:09PM +0100, Marek Szyprowski wrote:
>> To read pid/cid registers, the probed device need to be properly turned on.
>> When it is inside a power domain, the bus code should ensure that the
>> given power domain is enabled before trying to access device's registers.
>>
>> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
>> ---
>> drivers/amba/bus.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
>> index f009936..25715cb 100644
>> --- a/drivers/amba/bus.c
>> +++ b/drivers/amba/bus.c
>> @@ -373,6 +373,12 @@ int amba_device_add(struct amba_device *dev, struct resource *parent)
>> goto err_release;
>> }
>>
>> + ret = dev_pm_domain_attach(&dev->dev, true);
>> + if (ret) {
>> + iounmap(tmp);
>> + goto err_release;
>> + }
>> +
> NAK. If dev_pm_domain_attach() returns an error, even -EPROBE_DEFER,
> the result will be a missing device that has no way to be recovered.
> This is too fragile.
Then how the problem of accessing registers in turned-off device should
be solved?
Is ignoring dev_pm_domain_attach() return value a solution for you?
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
More information about the linux-arm-kernel
mailing list