Hi
DRM_STM is 'default y' on ARCH_MULTIPLATFORM and it selects FB_PROVIDE_GET_FB_UNMAPPED_AREA. This breaks fbdev mmap for me on Raspberry Pi. mmap returns -ENOMEM.
Disabling DRM_STM gives me working mmap.
Noralf.
config DRM_STM tristate "DRM Support for STMicroelectronics SoC Series" depends on DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) select DRM_KMS_HELPER select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL select VIDEOMODE_HELPERS select FB_PROVIDE_GET_FB_UNMAPPED_AREA default y
help Enable support for the on-chip display controller on STMicroelectronics STM32 MCUs. To compile this driver as a module, choose M here: the module will be called stm-drm.
2017-07-10 12:53 GMT+02:00 Noralf Trønnes noralf@tronnes.org:
Hi
DRM_STM is 'default y' on ARCH_MULTIPLATFORM and it selects FB_PROVIDE_GET_FB_UNMAPPED_AREA. This breaks fbdev mmap for me on Raspberry Pi. mmap returns -ENOMEM.
Disabling DRM_STM gives me working mmap.
Noralf.
config DRM_STM tristate "DRM Support for STMicroelectronics SoC Series" depends on DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) select DRM_KMS_HELPER select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL select VIDEOMODE_HELPERS select FB_PROVIDE_GET_FB_UNMAPPED_AREA
I think to two solutions: - add "if !MMU" after FB_PROVIDE_GET_FB_UNMAPPED_AREA in this Kconfig but other drivers could do the same. - add !MMU when FB_PROVIDE_GET_FB_UNMAPPED_AREA is used in fbmen.c
default y help Enable support for the on-chip display controller on STMicroelectronics STM32 MCUs. To compile this driver as a module, choose M here: the module will be called stm-drm.
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 10 July 2017 at 12:49, Benjamin Gaignard benjamin.gaignard@linaro.org wrote:
2017-07-10 12:53 GMT+02:00 Noralf Trønnes noralf@tronnes.org:
Hi
DRM_STM is 'default y' on ARCH_MULTIPLATFORM and it selects FB_PROVIDE_GET_FB_UNMAPPED_AREA. This breaks fbdev mmap for me on Raspberry Pi. mmap returns -ENOMEM.
Disabling DRM_STM gives me working mmap.
Noralf.
config DRM_STM tristate "DRM Support for STMicroelectronics SoC Series" depends on DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) select DRM_KMS_HELPER select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL select VIDEOMODE_HELPERS select FB_PROVIDE_GET_FB_UNMAPPED_AREA
I think to two solutions:
- add "if !MMU" after FB_PROVIDE_GET_FB_UNMAPPED_AREA in this Kconfig
but other drivers could do the same.
- add !MMU when FB_PROVIDE_GET_FB_UNMAPPED_AREA is used in fbmen.c
In parallel to the actual fix - perhaps one should drop the default line?
From a quick look, I cannot see another DRM driver that sets it.
-Emil
On Mon, Jul 10, 2017 at 2:23 PM, Emil Velikov emil.l.velikov@gmail.com wrote:
In parallel to the actual fix - perhaps one should drop the default line? From a quick look, I cannot see another DRM driver that sets it.
Yes, default y is considered very much not cool. Default for drivers should always be n, including sub-driver options. There's yet again a massive rant about that ongoing on lkml ...
Please fix this. -Daniel
Benjamin Gaignard benjamin.gaignard@linaro.org writes:
2017-07-10 12:53 GMT+02:00 Noralf Trønnes noralf@tronnes.org:
Hi
DRM_STM is 'default y' on ARCH_MULTIPLATFORM and it selects FB_PROVIDE_GET_FB_UNMAPPED_AREA. This breaks fbdev mmap for me on Raspberry Pi. mmap returns -ENOMEM.
Disabling DRM_STM gives me working mmap.
Noralf.
config DRM_STM tristate "DRM Support for STMicroelectronics SoC Series" depends on DRM && (ARCH_STM32 || ARCH_MULTIPLATFORM) select DRM_KMS_HELPER select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL select VIDEOMODE_HELPERS select FB_PROVIDE_GET_FB_UNMAPPED_AREA
I think to two solutions:
- add "if !MMU" after FB_PROVIDE_GET_FB_UNMAPPED_AREA in this Kconfig
but other drivers could do the same.
- add !MMU when FB_PROVIDE_GET_FB_UNMAPPED_AREA is used in fbmen.c
This is the most important fix, regardless of whether the driver is default y or not. The unmapped area helper getting filled in on MMU platforms definitely breaks mmap.
dri-devel@lists.freedesktop.org