[PATCH v3 28/43] drm/renesas/rcar-du: Use fbdev-dma

Geert Uytterhoeven geert at linux-m68k.org
Mon Jun 17 17:33:04 UTC 2024


Hi Thomas,

On Fri, Apr 19, 2024 at 10:34 AM Thomas Zimmermann <tzimmermann at suse.de> wrote:
> Implement fbdev emulation with fbdev-dma. Fbdev-dma now supports
> damage handling, which is required by rcar-du. Avoids the overhead of
> fbdev-generic's additional shadow buffering. No functional changes.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Cc: Kieran Bingham <kieran.bingham+renesas at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>

Thanks for your patch, which is now commit b3fdbd60d35ce340
("drm/renesas/rcar-du: Use fbdev-dma") in drm-misc/drm-misc-next.

Probably this doesn't come as a surprise, but with CONFIG_DEBUG_VIRTUAL=y,
this triggers the following warning on R-Car Gen3/Gen4 (arm64),
e.g. on White-Hawk:

    virt_to_phys used for non-linear address: (____ptrval____)
(0xffffffc088001000)
    WARNING: CPU: 0 PID: 44 at arch/arm64/mm/physaddr.c:12
__virt_to_phys+0x38/0x70
    Modules linked in:
    CPU: 0 PID: 44 Comm: kworker/u17:2 Not tainted
6.9.0-rc6-white-hawk-01422-gb3fdbd60d35c-dirty #283
    Hardware name: Renesas White Hawk CPU and Breakout boards based on
r8a779g0 (DT)
    Workqueue: events_unbound deferred_probe_work_func
    pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    pc : __virt_to_phys+0x38/0x70
    lr : __virt_to_phys+0x38/0x70
    sp : ffffffc08297b930
    x29: ffffffc08297b930 x28: ffffff844527c000 x27: ffffffc080cb6a47
    x26: ffffffc0810c0000 x25: ffffff84452a7800 x24: ffffff8445370018
    x23: ffffff8443d34480 x22: ffffff8443d32c00 x21: ffffffc08297ba30
    x20: ffffff84452a5800 x19: ffffffc088001000 x18: 0000000000000000
    x17: 666678302820295f x16: 5f5f5f6c61767274 x15: 0720072007200720
    x14: 0720072007200720 x13: 0720072007200720 x12: 0720072007200720
    x11: 0000000000000180 x10: ffffffc0810e9aa0 x9 : ffffffc0813a9c80
    x8 : ffffffc08297b638 x7 : ffffffc08297b640 x6 : 00000000ffff7fff
    x5 : c0000000ffff7fff x4 : 0000000000000000 x3 : 0000000000000001
    x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffffff8441ba2940
    Call trace:
     __virt_to_phys+0x38/0x70
     drm_fbdev_dma_helper_fb_probe+0x178/0x1e8
     __drm_fb_helper_initial_config_and_unlock+0x26c/0x4b8
     drm_fb_helper_initial_config+0x30/0x44
     drm_fbdev_dma_client_hotplug+0x84/0xb4
     drm_client_register+0x74/0xb8
     drm_fbdev_dma_setup+0x118/0x11c
     rcar_du_probe+0x160/0x174
     platform_probe+0x64/0xb0
     really_probe+0x130/0x260
     __driver_probe_device+0xec/0x104
     driver_probe_device+0x4c/0xf8
     __device_attach_driver+0xa8/0xc8
     bus_for_each_drv+0xa4/0xc8
     __device_attach+0xe4/0x144
     device_initial_probe+0x10/0x18
     bus_probe_device+0x38/0xa0
     deferred_probe_work_func+0xb8/0xd0
     process_scheduled_works+0x314/0x4d4
     worker_thread+0x1b8/0x20c
     kthread+0xd8/0xe8
     ret_from_fork+0x10/0x20
    irq event stamp: 7568
    hardirqs last  enabled at (7567): [<ffffffc080928828>]
_raw_spin_unlock_irq+0x2c/0x40
    hardirqs last disabled at (7568): [<ffffffc080922b20>]
__schedule+0x1cc/0x868
    softirqs last  enabled at (5004): [<ffffffc0800102fc>]
__do_softirq+0x1ac/0x3a8
    softirqs last disabled at (4999): [<ffffffc080015624>]
____do_softirq+0xc/0x14

Interestingly, the warning is not triggered on R-Car Gen2 (arm32),
although arch/arm/mm/physaddr.c has a similar check.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


More information about the dri-devel mailing list