With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Archit Taneja (21): drm/cirrus: Remove FB_KMS_HELPER and FB related config options drm/rockchip: Remove FB_KMS_HELPER and FB related config options drm/armada: Remove FB_KMS_HELPER and FB related config options drm/ast: Remove FB_KMS_HELPER and FB related config options drm/omap: Remove FB_KMS_HELPER and FB related config options drm/exynos: Remove FB_KMS_HELPER and FB related config options drm/gma500: Remove FB_KMS_HELPER and FB related config options drm/mgag200: Remove FB_KMS_HELPER and FB related config options drm/radeon: Remove FB_KMS_HELPER and FB related config options drm/qxl: Remove FB_KMS_HELPER and FB related config options drm/nouveau: Remove FB_KMS_HELPER and FB related config options drm/udl: Remove FB_KMS_HELPER and FB related config options drm/bochs: Remove FB_KMS_HELPER and FB related config options drm/amdgpu: Remove FB_KMS_HELPER and FB related config options drm/virtio: Remove FB_KMS_HELPER and FB related config options drm/fb_cma_helper: Remove FB_KMS_HELPER and FB related config options drm/atmel-hlcdc: Remove FB_KMS_HELPER config option drm/imx: Remove FB_KMS_HELPER config option drm/rcar-du: Remove FB_KMS_HELPER config option drm/shmobile: Remove FB_KMS_HELPER config option drm/tilcdc: Remove FB_KMS_HELPER config option
drivers/gpu/drm/Kconfig | 4 ---- drivers/gpu/drm/amd/amdgpu/Kconfig | 4 ---- drivers/gpu/drm/armada/Kconfig | 4 ---- drivers/gpu/drm/ast/Kconfig | 4 ---- drivers/gpu/drm/atmel-hlcdc/Kconfig | 1 - drivers/gpu/drm/bochs/Kconfig | 4 ---- drivers/gpu/drm/cirrus/Kconfig | 4 ---- drivers/gpu/drm/exynos/Kconfig | 6 ------ drivers/gpu/drm/gma500/Kconfig | 4 ---- drivers/gpu/drm/imx/Kconfig | 1 - drivers/gpu/drm/mgag200/Kconfig | 4 ---- drivers/gpu/drm/nouveau/Kconfig | 7 +------ drivers/gpu/drm/omapdrm/Kconfig | 5 ----- drivers/gpu/drm/qxl/Kconfig | 5 ----- drivers/gpu/drm/qxl/qxl_fb.c | 4 ++++ drivers/gpu/drm/radeon/Kconfig | 4 ---- drivers/gpu/drm/rcar-du/Kconfig | 1 - drivers/gpu/drm/rockchip/Kconfig | 4 ---- drivers/gpu/drm/shmobile/Kconfig | 1 - drivers/gpu/drm/tilcdc/Kconfig | 1 - drivers/gpu/drm/udl/Kconfig | 5 ----- drivers/gpu/drm/udl/udl_fb.c | 10 ++++++++++ drivers/gpu/drm/virtio/Kconfig | 4 ---- 23 files changed, 15 insertions(+), 76 deletions(-)
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Thierry Reding treding@nvidia.com Cc: Zach Reizner zachr@google.com Cc: Russell King rmk+kernel@arm.linux.org.uk Cc: Fabian Frederick fabf@skynet.be
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/cirrus/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/cirrus/Kconfig b/drivers/gpu/drm/cirrus/Kconfig index 9864559..04b3c16 100644 --- a/drivers/gpu/drm/cirrus/Kconfig +++ b/drivers/gpu/drm/cirrus/Kconfig @@ -1,11 +1,7 @@ config DRM_CIRRUS_QEMU tristate "Cirrus driver for QEMU emulated device" depends on DRM && PCI - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM help This is a KMS driver for emulated cirrus device in qemu.
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Mark Yao mark.yao@rock-chips.com Cc: Daniel Vetter daniel@ffwll.ch Cc: Rob Clark robdclark@gmail.com Cc: Daniel Kurtz djkurtz@chromium.org
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/rockchip/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig index 35215f6..65d5fdd 100644 --- a/drivers/gpu/drm/rockchip/Kconfig +++ b/drivers/gpu/drm/rockchip/Kconfig @@ -3,11 +3,7 @@ config DRM_ROCKCHIP depends on DRM && ROCKCHIP_IOMMU depends on RESET_CONTROLLER select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_PANEL - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select VIDEOMODE_HELPERS help Choose this option if you have a Rockchip soc chipset.
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Russell King rmk+kernel@arm.linux.org.uk
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/armada/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/armada/Kconfig b/drivers/gpu/drm/armada/Kconfig index 50ae88a..c31454d 100644 --- a/drivers/gpu/drm/armada/Kconfig +++ b/drivers/gpu/drm/armada/Kconfig @@ -1,11 +1,7 @@ config DRM_ARMADA tristate "DRM support for Marvell Armada SoCs" depends on DRM && HAVE_CLK && ARM - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER help Support the "LCD" controllers found on the Marvell Armada 510 devices. There are two controllers on the device, each controller
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: David Airlie airlied@linux.ie Cc: "Y.C. Chen" yc_chen@aspeedtech.com Cc: Alex Deucher alexander.deucher@amd.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/ast/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/ast/Kconfig b/drivers/gpu/drm/ast/Kconfig index 8a784c4..15f6ce7 100644 --- a/drivers/gpu/drm/ast/Kconfig +++ b/drivers/gpu/drm/ast/Kconfig @@ -2,11 +2,7 @@ config DRM_AST tristate "AST server chips" depends on DRM && PCI select DRM_TTM - select FB_SYS_COPYAREA - select FB_SYS_FILLRECT - select FB_SYS_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM help Say yes for experimental AST GPU driver. Do not enable
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Tomi Valkeinen tomi.valkeinen@ti.com Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/omapdrm/Kconfig | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/Kconfig b/drivers/gpu/drm/omapdrm/Kconfig index 6c220cd..340ece7 100644 --- a/drivers/gpu/drm/omapdrm/Kconfig +++ b/drivers/gpu/drm/omapdrm/Kconfig @@ -5,11 +5,6 @@ config DRM_OMAP depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM depends on OMAP2_DSS select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT - select FB_SYS_FOPS default n help DRM display driver for OMAP2/3/4 based boards.
Hi Archit,
Thank you for the patch.
On Monday 13 July 2015 12:13:52 Archit Taneja wrote:
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Tomi Valkeinen tomi.valkeinen@ti.com Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org
I like that, one step closer to removing fbdev altogether (even if there are many steps left) :-)
Acked-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
drivers/gpu/drm/omapdrm/Kconfig | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/Kconfig b/drivers/gpu/drm/omapdrm/Kconfig index 6c220cd..340ece7 100644 --- a/drivers/gpu/drm/omapdrm/Kconfig +++ b/drivers/gpu/drm/omapdrm/Kconfig @@ -5,11 +5,6 @@ config DRM_OMAP depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM depends on OMAP2_DSS select DRM_KMS_HELPER
- select DRM_KMS_FB_HELPER
- select FB_SYS_FILLRECT
- select FB_SYS_COPYAREA
- select FB_SYS_IMAGEBLIT
- select FB_SYS_FOPS default n help DRM display driver for OMAP2/3/4 based boards.
On 08/01/2015 03:32 PM, Laurent Pinchart wrote:
Hi Archit,
Thank you for the patch.
On Monday 13 July 2015 12:13:52 Archit Taneja wrote:
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Tomi Valkeinen tomi.valkeinen@ti.com Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org
I like that, one step closer to removing fbdev altogether (even if there are many steps left) :-)
Acked-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
Thanks for the Acks. I'll use them when I post again.
Archit
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Inki Dae inki.dae@samsung.com Cc: Joonyoung Shim jy0922.shim@samsung.com Cc: Seung-Woo Kim sw0312.kim@samsung.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/exynos/Kconfig | 6 ------ 1 file changed, 6 deletions(-)
diff --git a/drivers/gpu/drm/exynos/Kconfig b/drivers/gpu/drm/exynos/Kconfig index 43003c4..d253007 100644 --- a/drivers/gpu/drm/exynos/Kconfig +++ b/drivers/gpu/drm/exynos/Kconfig @@ -2,10 +2,6 @@ config DRM_EXYNOS tristate "DRM Support for Samsung SoC EXYNOS Series" depends on OF && DRM && (PLAT_SAMSUNG || ARCH_MULTIPLATFORM) select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select VIDEOMODE_HELPERS help Choose this option if you have a Samsung SoC EXYNOS chipset. @@ -19,7 +15,6 @@ config DRM_EXYNOS_IOMMU config DRM_EXYNOS_FIMD bool "Exynos DRM FIMD" depends on DRM_EXYNOS && !FB_S3C - select FB_MODE_HELPERS select MFD_SYSCON help Choose this option if you want to use Exynos FIMD for DRM. @@ -33,7 +28,6 @@ config DRM_EXYNOS5433_DECON config DRM_EXYNOS7_DECON bool "Exynos7 DRM DECON" depends on DRM_EXYNOS && !FB_S3C - select FB_MODE_HELPERS help Choose this option if you want to use Exynos DECON for DRM.
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc:Daniel Vetter daniel.vetter@ffwll.ch Cc: Patrik Jakobsson patrik.r.jakobsson@gmail.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/gma500/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/gma500/Kconfig b/drivers/gpu/drm/gma500/Kconfig index 17f928e..8906d67 100644 --- a/drivers/gpu/drm/gma500/Kconfig +++ b/drivers/gpu/drm/gma500/Kconfig @@ -1,11 +1,7 @@ config DRM_GMA500 tristate "Intel GMA5/600 KMS Framebuffer" depends on DRM && PCI && X86 - select FB_CFB_COPYAREA - select FB_CFB_FILLRECT - select FB_CFB_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM # GMA500 depends on ACPI_VIDEO when ACPI is enabled, just like i915 select ACPI_VIDEO if ACPI
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: David Airlie airlied@linux.ie Cc: Alex Deucher alexander.deucher@amd.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/mgag200/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/mgag200/Kconfig b/drivers/gpu/drm/mgag200/Kconfig index 3a1c5fb..520e5e6 100644 --- a/drivers/gpu/drm/mgag200/Kconfig +++ b/drivers/gpu/drm/mgag200/Kconfig @@ -1,11 +1,7 @@ config DRM_MGAG200 tristate "Kernel modesetting driver for MGA G200 server engines" depends on DRM && PCI - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM help This is a KMS driver for the MGA G200 server chips, it
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Alex Deucher alexander.deucher@amd.com Cc: "Christian König" christian.koenig@amd.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/radeon/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/radeon/Kconfig b/drivers/gpu/drm/radeon/Kconfig index 82c623b..3f1af32 100644 --- a/drivers/gpu/drm/radeon/Kconfig +++ b/drivers/gpu/drm/radeon/Kconfig @@ -1,12 +1,8 @@ config DRM_RADEON tristate "ATI Radeon" depends on DRM && PCI - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select FW_LOADER select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM select POWER_SUPPLY select HWMON
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
The code relying on DEFERRED_IO can't be stubbed out using drm_fb_helper functions. This is because the deferred io members in fbdev core structs are defined based on whether FB_DEFERRED_IO is defined or not.
For now, wrap around deferred io code with an #ifdef check for CONFIG_DEFERRED_IO. We could consider creating stub fb helper functions here, but this would require some changes in the core fbdev structs.
Cc: David Airlie airlied@linux.ie Cc: Frediano Ziglio fziglio@redhat.com Cc: Maarten Lankhorst maarten.lankhorst@canonical.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/qxl/Kconfig | 5 ----- drivers/gpu/drm/qxl/qxl_fb.c | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/qxl/Kconfig b/drivers/gpu/drm/qxl/Kconfig index 38c2bb7..da45b11 100644 --- a/drivers/gpu/drm/qxl/Kconfig +++ b/drivers/gpu/drm/qxl/Kconfig @@ -1,12 +1,7 @@ config DRM_QXL tristate "QXL virtual GPU" depends on DRM && PCI - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT - select FB_DEFERRED_IO select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM select CRC32 help diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c index 41c422f..9391dfe 100644 --- a/drivers/gpu/drm/qxl/qxl_fb.c +++ b/drivers/gpu/drm/qxl/qxl_fb.c @@ -163,6 +163,7 @@ static void qxl_dirty_update(struct qxl_fbdev *qfbdev, schedule_work(&qdev->fb_work); }
+#ifdef CONFIG_FB_DEFERRED_IO static void qxl_deferred_io(struct fb_info *info, struct list_head *pagelist) { @@ -191,6 +192,7 @@ static struct fb_deferred_io qxl_defio = { .delay = QXL_DIRTY_DELAY, .deferred_io = qxl_deferred_io, }; +#endif
static void qxl_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) @@ -420,8 +422,10 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev, goto out_destroy_fbi; }
+#ifdef CONFIG_FB_DEFERRED_IO info->fbdefio = &qxl_defio; fb_deferred_io_init(info); +#endif
qdev->fbdev_info = info; qdev->fbdev_qfb = &qfbdev->qfb;
On Mon, Jul 13, 2015 at 12:13:57PM +0530, Archit Taneja wrote:
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
The code relying on DEFERRED_IO can't be stubbed out using drm_fb_helper functions. This is because the deferred io members in fbdev core structs are defined based on whether FB_DEFERRED_IO is defined or not.
For now, wrap around deferred io code with an #ifdef check for CONFIG_DEFERRED_IO. We could consider creating stub fb helper functions here, but this would require some changes in the core fbdev structs.
Yeah if more drivers grow a ->dirty callback that does something we'd probably want to pull all that code out of qxl/udl into core fbdev. i915 now also has a dirty callback, but for fbcon we're going with a slightly different options: Since all our frontbuffer dirtying are for optional features we just disable them right now.
Anyway just an idea for future patches when someone works in this area. For now I think we simply have to select the relevant options if FBDEV emulation is enabled.
Cc: David Airlie airlied@linux.ie Cc: Frediano Ziglio fziglio@redhat.com Cc: Maarten Lankhorst maarten.lankhorst@canonical.com
Signed-off-by: Archit Taneja architt@codeaurora.org
drivers/gpu/drm/qxl/Kconfig | 5 ----- drivers/gpu/drm/qxl/qxl_fb.c | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/qxl/Kconfig b/drivers/gpu/drm/qxl/Kconfig index 38c2bb7..da45b11 100644 --- a/drivers/gpu/drm/qxl/Kconfig +++ b/drivers/gpu/drm/qxl/Kconfig @@ -1,12 +1,7 @@ config DRM_QXL tristate "QXL virtual GPU" depends on DRM && PCI
- select FB_SYS_FILLRECT
- select FB_SYS_COPYAREA
- select FB_SYS_IMAGEBLIT
- select FB_DEFERRED_IO
I.e. select FB_DEFERRED_IO if DRM_FBDEV_EMULATION
select DRM_KMS_HELPER
- select DRM_KMS_FB_HELPER select DRM_TTM select CRC32 help
diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c index 41c422f..9391dfe 100644 --- a/drivers/gpu/drm/qxl/qxl_fb.c +++ b/drivers/gpu/drm/qxl/qxl_fb.c @@ -163,6 +163,7 @@ static void qxl_dirty_update(struct qxl_fbdev *qfbdev, schedule_work(&qdev->fb_work); }
+#ifdef CONFIG_FB_DEFERRED_IO
and using CONFIG_DMR_FBDEV_EMULATION here instead. Same for udl changes. -Daniel
static void qxl_deferred_io(struct fb_info *info, struct list_head *pagelist) { @@ -191,6 +192,7 @@ static struct fb_deferred_io qxl_defio = { .delay = QXL_DIRTY_DELAY, .deferred_io = qxl_deferred_io, }; +#endif
static void qxl_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) @@ -420,8 +422,10 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev, goto out_destroy_fbi; }
+#ifdef CONFIG_FB_DEFERRED_IO info->fbdefio = &qxl_defio; fb_deferred_io_init(info); +#endif
qdev->fbdev_info = info; qdev->fbdev_qfb = &qfbdev->qfb; -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Removing FB_BACKLIGHT gives dependency issues. For now, make the driver depend on DRM_FBDEV_EMULATION config option. We should remove this once the driver can work without FB_BACKLIGHT too.
Cc: David Airlie airlied@linux.ie Cc: Ben Skeggs bskeggs@redhat.com Cc: Alexandre Courbot acourbot@nvidia.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/nouveau/Kconfig | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig index 5ab13e7..f7e275a6 100644 --- a/drivers/gpu/drm/nouveau/Kconfig +++ b/drivers/gpu/drm/nouveau/Kconfig @@ -1,15 +1,10 @@ config DRM_NOUVEAU tristate "Nouveau (NVIDIA) cards" depends on DRM && PCI + depends on DRM_FBDEV_EMULATION select FW_LOADER select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT - select FB - select FRAMEBUFFER_CONSOLE if !EXPERT select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT select ACPI_VIDEO if ACPI && X86 && BACKLIGHT_CLASS_DEVICE && INPUT select X86_PLATFORM_DEVICES if ACPI && X86
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
The code relying on DEFERRED_IO can't be stubbed out using drm_fb_helper functions. This is because the deferred io members in fbdev core structs are defined based on whether FB_DEFERRED_IO is defined or not.
For now, wrap around deferred io code with an #ifdef check for CONFIG_DEFERRED_IO. We could consider creating stub fb helper functions here, but this would require some changes in the core fbdev structs.
Cc: David Airlie airlied@linux.ie Cc: Haixia Shi hshi@chromium.org Cc: "Stéphane Marchesin" marcheu@chromium.org
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/udl/Kconfig | 5 ----- drivers/gpu/drm/udl/udl_fb.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/udl/Kconfig b/drivers/gpu/drm/udl/Kconfig index 613ab06..1616ec4 100644 --- a/drivers/gpu/drm/udl/Kconfig +++ b/drivers/gpu/drm/udl/Kconfig @@ -4,12 +4,7 @@ config DRM_UDL depends on USB_SUPPORT depends on USB_ARCH_HAS_HCD select USB - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT - select FB_DEFERRED_IO select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER help This is a KMS driver for the USB displaylink video adapters. Say M/Y to add support for these devices via drm/kms interfaces. diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 9fd6e83..4aa5118d 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c @@ -24,11 +24,15 @@
#define DL_DEFIO_WRITE_DELAY (HZ/20) /* fb_deferred_io.delay in jiffies */
+#ifdef CONFIG_FB_DEFERRED_IO static int fb_defio = 0; /* Optionally enable experimental fb_defio mmap support */ +#endif static int fb_bpp = 16;
module_param(fb_bpp, int, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP); +#ifdef CONFIG_FB_DEFERRED_IO module_param(fb_defio, int, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP); +#endif
struct udl_fbdev { struct drm_fb_helper helper; @@ -78,6 +82,7 @@ static uint16_t rgb16(uint32_t col) } #endif
+#ifdef CONFIG_FB_DEFERRED_IO /* * NOTE: fb_defio.c is holding info->fbdefio.mutex * Touching ANY framebuffer memory that triggers a page fault @@ -139,6 +144,7 @@ error: >> 10)), /* Kcycles */ &udl->cpu_kcycles_used); } +#endif
int udl_handle_damage(struct udl_framebuffer *fb, int x, int y, int width, int height) @@ -331,6 +337,7 @@ static int udl_fb_open(struct fb_info *info, int user)
ufbdev->fb_count++;
+#ifdef CONFIG_FB_DEFERRED_IO if (fb_defio && (info->fbdefio == NULL)) { /* enable defio at last moment if not disabled by client */
@@ -346,6 +353,7 @@ static int udl_fb_open(struct fb_info *info, int user) info->fbdefio = fbdefio; fb_deferred_io_init(info); } +#endif
pr_notice("open /dev/fb%d user=%d fb_info=%p count=%d\n", info->node, user, info, ufbdev->fb_count); @@ -363,12 +371,14 @@ static int udl_fb_release(struct fb_info *info, int user)
ufbdev->fb_count--;
+#ifdef CONFIG_FB_DEFERRED_IO if ((ufbdev->fb_count == 0) && (info->fbdefio)) { fb_deferred_io_cleanup(info); kfree(info->fbdefio); info->fbdefio = NULL; info->fbops->fb_mmap = udl_fb_mmap; } +#endif
pr_warn("released /dev/fb%d user=%d count=%d\n", info->node, user, ufbdev->fb_count);
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: David Airlie airlied@linux.ie Cc: Gerd Hoffmann kraxel@redhat.com Cc: Daniel Vetter daniel.vetter@ffwll.ch
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/bochs/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/bochs/Kconfig b/drivers/gpu/drm/bochs/Kconfig index 5f8b0c2..f739763 100644 --- a/drivers/gpu/drm/bochs/Kconfig +++ b/drivers/gpu/drm/bochs/Kconfig @@ -2,10 +2,6 @@ config DRM_BOCHS tristate "DRM Support for bochs dispi vga interface (qemu stdvga)" depends on DRM && PCI select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT select DRM_TTM help Choose this option for qemu.
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Alex Deucher alexander.deucher@amd.com Cc: Oded Gabbay oded.gabbay@gmail.com Cc: "Christian König" christian.koenig@amd.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/amd/amdgpu/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig b/drivers/gpu/drm/amd/amdgpu/Kconfig index da7dcbf..2396482 100644 --- a/drivers/gpu/drm/amd/amdgpu/Kconfig +++ b/drivers/gpu/drm/amd/amdgpu/Kconfig @@ -1,12 +1,8 @@ config DRM_AMDGPU tristate "AMD GPU" depends on DRM && PCI - select FB_CFB_FILLRECT - select FB_CFB_COPYAREA - select FB_CFB_IMAGEBLIT select FW_LOADER select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM select POWER_SUPPLY select HWMON
Remove FB_* config options since the driver doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: David Airlie airlied@linux.ie Cc: Gerd Hoffmann kraxel@redhat.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/virtio/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/virtio/Kconfig b/drivers/gpu/drm/virtio/Kconfig index 9983ead..e1afc3d 100644 --- a/drivers/gpu/drm/virtio/Kconfig +++ b/drivers/gpu/drm/virtio/Kconfig @@ -1,11 +1,7 @@ config DRM_VIRTIO_GPU tristate "Virtio GPU driver" depends on DRM && VIRTIO - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_TTM help This is the virtual GPU driver for virtio. It can be used with
Remove FB_* config options since the helper doesn't call any fbdev functions directly.
Remove FB_KMS_HELPER as this would now be selected by the top level FBDEV_EMULATION config option. If the fbdev emulation isn't selected, the drm_fb_helper functions will be stubbed out.
Cc: Lars-Peter Clausen lars@metafoo.de Cc: Daniel Vetter daniel.vetter@ffwll.ch
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/Kconfig | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 8fd670b..3e540e3 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -89,10 +89,6 @@ config DRM_KMS_CMA_HELPER bool depends on DRM && HAVE_DMA_ATTRS select DRM_GEM_CMA_HELPER - select DRM_KMS_FB_HELPER - select FB_SYS_FILLRECT - select FB_SYS_COPYAREA - select FB_SYS_IMAGEBLIT help Choose this if you need the KMS CMA helper functions
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Boris Brezillon boris.brezillon@free-electrons.com Cc: Sylvain Rochet sylvain.rochet@finsecur.com Cc: Nicolas Ferre nicolas.ferre@atmel.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/atmel-hlcdc/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/atmel-hlcdc/Kconfig b/drivers/gpu/drm/atmel-hlcdc/Kconfig index 99b4f06..32bcc4b 100644 --- a/drivers/gpu/drm/atmel-hlcdc/Kconfig +++ b/drivers/gpu/drm/atmel-hlcdc/Kconfig @@ -3,7 +3,6 @@ config DRM_ATMEL_HLCDC depends on DRM && OF && COMMON_CLK && MFD_ATMEL_HLCDC && ARM select DRM_GEM_CMA_HELPER select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_PANEL help
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Philipp Zabel p.zabel@pengutronix.de
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/imx/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/imx/Kconfig b/drivers/gpu/drm/imx/Kconfig index 35ca4f0..33ae36d 100644 --- a/drivers/gpu/drm/imx/Kconfig +++ b/drivers/gpu/drm/imx/Kconfig @@ -1,7 +1,6 @@ config DRM_IMX tristate "DRM Support for Freescale i.MX" select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select VIDEOMODE_HELPERS select DRM_GEM_CMA_HELPER select DRM_KMS_CMA_HELPER
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/rcar-du/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig index 11485a4..9de5872 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -5,7 +5,6 @@ config DRM_RCAR_DU select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER select DRM_GEM_CMA_HELPER - select DRM_KMS_FB_HELPER select VIDEOMODE_HELPERS help Choose this option if you have an R-Car chipset.
Hi Archit,
Thank you for the patch.
On Monday 13 July 2015 12:14:06 Archit Taneja wrote:
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org
Acked-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
drivers/gpu/drm/rcar-du/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig index 11485a4..9de5872 100644 --- a/drivers/gpu/drm/rcar-du/Kconfig +++ b/drivers/gpu/drm/rcar-du/Kconfig @@ -5,7 +5,6 @@ config DRM_RCAR_DU select DRM_KMS_HELPER select DRM_KMS_CMA_HELPER select DRM_GEM_CMA_HELPER
- select DRM_KMS_FB_HELPER select VIDEOMODE_HELPERS help Choose this option if you have an R-Car chipset.
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/shmobile/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/shmobile/Kconfig b/drivers/gpu/drm/shmobile/Kconfig index b9202aa..389b5f9 100644 --- a/drivers/gpu/drm/shmobile/Kconfig +++ b/drivers/gpu/drm/shmobile/Kconfig @@ -6,7 +6,6 @@ config DRM_SHMOBILE select BACKLIGHT_CLASS_DEVICE select BACKLIGHT_LCD_SUPPORT select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_GEM_CMA_HELPER help
Hi Archit,
Thank you for the patch.
On Monday 13 July 2015 12:14:07 Archit Taneja wrote:
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Laurent Pinchart laurent.pinchart@ideasonboard.com
Signed-off-by: Archit Taneja architt@codeaurora.org
Acked-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
drivers/gpu/drm/shmobile/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/shmobile/Kconfig b/drivers/gpu/drm/shmobile/Kconfig index b9202aa..389b5f9 100644 --- a/drivers/gpu/drm/shmobile/Kconfig +++ b/drivers/gpu/drm/shmobile/Kconfig @@ -6,7 +6,6 @@ config DRM_SHMOBILE select BACKLIGHT_CLASS_DEVICE select BACKLIGHT_LCD_SUPPORT select DRM_KMS_HELPER
- select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_GEM_CMA_HELPER help
The driver internally uses drm_fb_cma helpers to emulate fbdev and allocate buffers. It doesn't need to select DRM_FB_KMS_HELPER. This will be managed by the config option DRM_KMS_CMA_HELPER.
Cc: Ezequiel Garcia ezequiel@vanguardiasur.com.ar Cc: Tomi Valkeinen tomi.valkeinen@ti.com Cc: Jyri Sarha jsarha@ti.com
Signed-off-by: Archit Taneja architt@codeaurora.org --- drivers/gpu/drm/tilcdc/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/tilcdc/Kconfig b/drivers/gpu/drm/tilcdc/Kconfig index 78beafb..72e7944 100644 --- a/drivers/gpu/drm/tilcdc/Kconfig +++ b/drivers/gpu/drm/tilcdc/Kconfig @@ -2,7 +2,6 @@ config DRM_TILCDC tristate "DRM Support for TI LCDC Display Controller" depends on DRM && OF && ARM && HAVE_DMA_ATTRS select DRM_KMS_HELPER - select DRM_KMS_FB_HELPER select DRM_KMS_CMA_HELPER select DRM_GEM_CMA_HELPER select VIDEOMODE_HELPERS
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit Taneja (21): drm/cirrus: Remove FB_KMS_HELPER and FB related config options drm/rockchip: Remove FB_KMS_HELPER and FB related config options drm/armada: Remove FB_KMS_HELPER and FB related config options drm/ast: Remove FB_KMS_HELPER and FB related config options drm/omap: Remove FB_KMS_HELPER and FB related config options drm/exynos: Remove FB_KMS_HELPER and FB related config options drm/gma500: Remove FB_KMS_HELPER and FB related config options drm/mgag200: Remove FB_KMS_HELPER and FB related config options drm/radeon: Remove FB_KMS_HELPER and FB related config options drm/qxl: Remove FB_KMS_HELPER and FB related config options drm/nouveau: Remove FB_KMS_HELPER and FB related config options drm/udl: Remove FB_KMS_HELPER and FB related config options drm/bochs: Remove FB_KMS_HELPER and FB related config options drm/amdgpu: Remove FB_KMS_HELPER and FB related config options drm/virtio: Remove FB_KMS_HELPER and FB related config options drm/fb_cma_helper: Remove FB_KMS_HELPER and FB related config options drm/atmel-hlcdc: Remove FB_KMS_HELPER config option drm/imx: Remove FB_KMS_HELPER config option drm/rcar-du: Remove FB_KMS_HELPER config option drm/shmobile: Remove FB_KMS_HELPER config option drm/tilcdc: Remove FB_KMS_HELPER config option
drivers/gpu/drm/Kconfig | 4 ---- drivers/gpu/drm/amd/amdgpu/Kconfig | 4 ---- drivers/gpu/drm/armada/Kconfig | 4 ---- drivers/gpu/drm/ast/Kconfig | 4 ---- drivers/gpu/drm/atmel-hlcdc/Kconfig | 1 - drivers/gpu/drm/bochs/Kconfig | 4 ---- drivers/gpu/drm/cirrus/Kconfig | 4 ---- drivers/gpu/drm/exynos/Kconfig | 6 ------ drivers/gpu/drm/gma500/Kconfig | 4 ---- drivers/gpu/drm/imx/Kconfig | 1 - drivers/gpu/drm/mgag200/Kconfig | 4 ---- drivers/gpu/drm/nouveau/Kconfig | 7 +------ drivers/gpu/drm/omapdrm/Kconfig | 5 ----- drivers/gpu/drm/qxl/Kconfig | 5 ----- drivers/gpu/drm/qxl/qxl_fb.c | 4 ++++ drivers/gpu/drm/radeon/Kconfig | 4 ---- drivers/gpu/drm/rcar-du/Kconfig | 1 - drivers/gpu/drm/rockchip/Kconfig | 4 ---- drivers/gpu/drm/shmobile/Kconfig | 1 - drivers/gpu/drm/tilcdc/Kconfig | 1 - drivers/gpu/drm/udl/Kconfig | 5 ----- drivers/gpu/drm/udl/udl_fb.c | 10 ++++++++++ drivers/gpu/drm/virtio/Kconfig | 4 ---- 23 files changed, 15 insertions(+), 76 deletions(-)
-- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
On Mon, Jul 13, 2015 at 11:30:34AM -0400, Alex Deucher wrote:
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit for merging I think I'll just keep the current set of patches I have for testing (well until there's a real bug discovered). Can you please collect all the acks/r-bs/t-d when resending so I don't have to digg them out when we merge the final versions of these?
Thanks, Daniel
Hi,
On 07/13/2015 09:07 PM, Daniel Vetter wrote:
On Mon, Jul 13, 2015 at 11:30:34AM -0400, Alex Deucher wrote:
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit for merging I think I'll just keep the current set of patches I have for testing (well until there's a real bug discovered). Can you please collect all the acks/r-bs/t-d when resending so I don't have to digg them out when we merge the final versions of these?
Sure. I'll keep a track of this.
Speaking of bugs, there was one thing I noticed in the series which I am not sure about.
One of the new helpers wraps around framebuffer_alloc(). Most drivers tend to pass the drm_device's dev pointer to this, and this is what I do in the helper too.
But some drivers(nouveau, radeon, qxl and some more) pass their pci_dev's dev pointer.
Looking at the framebuffer code, it looks like the 'dev' we pass to framebuffer_alloc is what is used as the parent device when creating a fb device.
After this patch set, all drivers will use drm_device's dev when calling framebuffer_alloc. I was wondering if this could cause any fbcon issues?
Archit
On Tue, Jul 14, 2015 at 12:01:51PM +0530, Archit Taneja wrote:
Hi,
On 07/13/2015 09:07 PM, Daniel Vetter wrote:
On Mon, Jul 13, 2015 at 11:30:34AM -0400, Alex Deucher wrote:
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit for merging I think I'll just keep the current set of patches I have for testing (well until there's a real bug discovered). Can you please collect all the acks/r-bs/t-d when resending so I don't have to digg them out when we merge the final versions of these?
Sure. I'll keep a track of this.
Speaking of bugs, there was one thing I noticed in the series which I am not sure about.
One of the new helpers wraps around framebuffer_alloc(). Most drivers tend to pass the drm_device's dev pointer to this, and this is what I do in the helper too.
But some drivers(nouveau, radeon, qxl and some more) pass their pci_dev's dev pointer.
Hm, didn't even notice that one.
Looking at the framebuffer code, it looks like the 'dev' we pass to framebuffer_alloc is what is used as the parent device when creating a fb device.
After this patch set, all drivers will use drm_device's dev when calling framebuffer_alloc. I was wondering if this could cause any fbcon issues?
I think it won't matter, this is just about discovering the fbdev instance in sysfs. And all the legacy users that do care about fbdev device nodes don't really use that anyway.
And I think conceptually it also makes more sense to have the emulated fbdev device as a child of the kms device. -Daniel
On Tue, Jul 14, 2015 at 12:01:51PM +0530, Archit Taneja wrote:
Hi,
On 07/13/2015 09:07 PM, Daniel Vetter wrote:
On Mon, Jul 13, 2015 at 11:30:34AM -0400, Alex Deucher wrote:
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit for merging I think I'll just keep the current set of patches I have for testing (well until there's a real bug discovered). Can you please collect all the acks/r-bs/t-d when resending so I don't have to digg them out when we merge the final versions of these?
Sure. I'll keep a track of this.
Speaking of bugs, there was one thing I noticed in the series which I am not sure about.
One of the new helpers wraps around framebuffer_alloc(). Most drivers tend to pass the drm_device's dev pointer to this, and this is what I do in the helper too.
But some drivers(nouveau, radeon, qxl and some more) pass their pci_dev's dev pointer.
As far as I can tell, for all PCI drivers the drm_device's dev pointer is set to the pci_dev's dev pointer (via drm_get_pci_dev()), so this shouldn't be changing anything at all.
Thierry
On 07/14/2015 01:32 PM, Thierry Reding wrote:
On Tue, Jul 14, 2015 at 12:01:51PM +0530, Archit Taneja wrote:
Hi,
On 07/13/2015 09:07 PM, Daniel Vetter wrote:
On Mon, Jul 13, 2015 at 11:30:34AM -0400, Alex Deucher wrote:
On Mon, Jul 13, 2015 at 2:43 AM, Archit Taneja architt@codeaurora.org wrote:
With the top level DRM_FBDEV_EMULATION option, drivers don't need to select DRM_FB_KMS_HELPER or other FB related config options in the driver.
Even if FBDEV_EMULATION isn't select, the stubbed out versions of the drm_fb_helper functions will be called.
There are some drivers which still need some FB stuff even after these changes. They are qxl, udl and nouveau. These are handled a bit differently compared to the other patches.
Series is: Acked-by: Alex Deucher alexander.deucher@amd.com
Archit for merging I think I'll just keep the current set of patches I have for testing (well until there's a real bug discovered). Can you please collect all the acks/r-bs/t-d when resending so I don't have to digg them out when we merge the final versions of these?
Sure. I'll keep a track of this.
Speaking of bugs, there was one thing I noticed in the series which I am not sure about.
One of the new helpers wraps around framebuffer_alloc(). Most drivers tend to pass the drm_device's dev pointer to this, and this is what I do in the helper too.
But some drivers(nouveau, radeon, qxl and some more) pass their pci_dev's dev pointer.
As far as I can tell, for all PCI drivers the drm_device's dev pointer is set to the pci_dev's dev pointer (via drm_get_pci_dev()), so this shouldn't be changing anything at all.
Thanks for pointing this out. This is a non-issue, then.
Archit
dri-devel@lists.freedesktop.org