Re: [PATCH v1 2/2] drivers/gpu/drm: don't select DMA_CMA or CMA from aspeed or etnaviv
From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-04-08 20:29:37
Also in:
dri-devel, linux-aspeed, linux-fbdev, linux-mm, lkml
On Thu, Apr 8, 2021 at 6:45 PM David Hildenbrand [off-list ref] wrote:
On 08.04.21 14:49, Linus Walleij wrote:quoted
On Thu, Apr 8, 2021 at 2:01 PM David Hildenbrand [off-list ref] wrote:quoted
quoted
This is something you could do using a hidden helper symbol like config DRMA_ASPEED_GFX bool "Aspeed display driver" select DRM_WANT_CMA config DRM_WANT_CMA bool help Select this from any driver that benefits from CMA being enabled config DMA_CMA bool "Use CMA helpers for DRM" default DRM_WANT_CMA ArndThat's precisely what I had first, with an additional "WANT_CMA" -- but looking at the number of such existing options (I was able to spot 1 !)If you do this it probably makes sense to fix a few other drivers Kconfig in the process. It's not just a problem with your driver. "my" drivers::) I actually wanted to convert them to "depends on DMA_CMA" but ran into recursive dependencies ...quoted
drivers/gpu/drm/mcde/Kconfig drivers/gpu/drm/pl111/Kconfig drivers/gpu/drm/tve200/Kconfig
Right, this is the main problem caused by using 'select' to force-enable symbols that other drivers depend on. Usually, the answer is to be consistent about the use of 'select' and 'depends on', using the former only to enable symbols that are hidden, while using 'depends on' for anything that is an actual build time dependency.
I was assuming these are "real" dependencies. Will it also work without DMA_CMA?
I think in this case, it is fairly likely to work without DMA_CMA when the
probe function gets called during a fresh boot, but fairly likely to fail if
it gets called after the system has run for long enough to fragment the
free memory.
The point of DMA_CMA is to make it work reliably.
Arnd
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel