[PATCH] drm/exynos: gsc: Get device id from OF alias
Krzysztof Kozlowski
krzk at kernel.org
Wed Jun 20 11:53:33 UTC 2018
On 20 June 2018 at 13:38, Andrzej Hajda <a.hajda at samsung.com> wrote:
> Hi Krzysztof,
>
> On 20.06.2018 12:40, Krzysztof Kozlowski wrote:
>> On 15 June 2018 at 14:26, Marek Szyprowski <m.szyprowski at samsung.com> wrote:
>>> Platform devices instantiated from device-tree always have pdev->id set to
>>> -1, so use of_get_alias_id() helper to retrieve proper device id.
>>>
>>> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
>>> ---
>>> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 9 +++++++--
>>> 1 file changed, 7 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
>>> index e99dd1e4ba65..a63287597985 100644
>>> --- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
>>> +++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
>>> @@ -1196,7 +1196,12 @@ static int gsc_probe(struct platform_device *pdev)
>>> struct exynos_drm_ipp_formats *formats;
>>> struct gsc_context *ctx;
>>> struct resource *res;
>>> - int ret, i;
>>> + int ret, i, id;
>>> +
>>> + ret = of_alias_get_id(pdev->dev.of_node, "gsc");
>>> + if (ret < 0)
>>> + return ret;
>>> + id = ret;
>>>
>>> ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
>>> if (!ctx)
>>> @@ -1254,7 +1259,7 @@ static int gsc_probe(struct platform_device *pdev)
>>> }
>>>
>>> /* context initailization */
>>> - ctx->id = pdev->id;
>>> + ctx->id = id;
>> Why do you need ctx->id at all? I see it is used only in dev_dbg and
>> dev_err messages but these should be easily identifiable by device
>> name+address. Maybe get rid of ctx->id entirely?
>
> I am working on patches adding framebuffer display pre-processing
> on-the-fly, they requires gscaler id to program sysreg registers. I hope
> to post it in near future.
OK, makes sense. Then I have a dependent comment - if alias id is used
by driver then probably it should be validated to prevent errors like
out-of-bounds access. DTB theoretically might come from out-of-tree or
from older version. Something like this was reported for our pinctrl
driver:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=93b0beae721b3344923b4b8317e9d83b542f4ca6
Probably the validation should come with your code, Andrzej. Not here.
Best regards,
Krzysztof
More information about the dri-devel
mailing list