[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPDyKFqhaLUzzVtSosRQgd1p=QquwHpXEkV9BdgHrBs1nLiLMw@mail.gmail.com>
Date: Tue, 12 Apr 2016 16:49:11 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Marek Szyprowski <m.szyprowski@...sung.com>
Cc: linux-samsung-soc <linux-samsung-soc@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Russell King - ARM Linux <linux@....linux.org.uk>,
Krzysztof Kozlowski <k.kozlowski@...sung.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>
Subject: Re: [PATCH v6] drivers: amba: properly handle devices with power domains
[...]
>
> +static int __init amba_deferred_device_init(void)
> +{
> + struct deferred_device *ddev, *tmp;
> +
> + list_for_each_entry_safe(ddev, tmp, &deferred_devices, node) {
> + int ret = amba_device_try_add(ddev->dev, ddev->parent);
> +
> + if (ret == -EPROBE_DEFER)
> + continue;
What happens with devices that still fails to be added here? Should we
schedule a periodic work to re-try?
> +
> + list_del_init(&ddev->node);
> + kfree(ddev);
> + }
> +
> + return 0;
> +}
> +late_initcall(amba_deferred_device_init);
> +
> static struct amba_device *
> amba_aphb_device_add(struct device *parent, const char *name,
> resource_size_t base, size_t size, int irq1, int irq2,
> --
> 1.9.2
>
I assume there are other similar buses like AMBA that needs
enumeration before it can bind an appropriate driver for its device.
Perhaps that's a good reason to make this new "device add re-try"
mechanism a generic thing supported by the driver core?
Kind regards
Uffe
Powered by blists - more mailing lists