Re: [Freedreno] [PATCH v2 00/10] drm/msm: probe deferral fixes

2022-10-20 Thread Johan Hovold
On Tue, Sep 20, 2022 at 11:06:30AM +0200, Johan Hovold wrote: > On Tue, Sep 13, 2022 at 10:53:10AM +0200, Johan Hovold wrote: > > The MSM DRM driver is currently broken in multiple ways with respect to > > probe deferral. Not only does the driver currently fail to probe again > > after a late defer

Re: [Freedreno] [PATCH 2/2] drm/msm: move domain allocation into msm_iommu_new()

2022-10-20 Thread kernel test robot
Hi Dmitry, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on linus/master v6.1-rc1 next-20221020] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use

[Freedreno] [PATCH 2/2] drm/msm: move domain allocation into msm_iommu_new()

2022-10-20 Thread Dmitry Baryshkov
After the msm_iommu instance is created, the IOMMU domain is completely handled inside the msm_iommu code. Move the iommu_domain_alloc() call into the msm_iommu_new() to simplify callers code. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/adreno/a6xx_gmu.c| 7 --- drivers/gpu/

[Freedreno] [PATCH 0/2] drm/msm: clean up iommu interface a bit

2022-10-20 Thread Dmitry Baryshkov
This series started as an attempt to rework the drivers usage of IOMMU domains. While the idea ended up to be wrong, these two provide a sensibly looking cleanup. Dmitry Baryshkov (2): drm/msm: remove duplicated code from a6xx_create_address_space drm/msm: move domain allocation into msm_iommu

[Freedreno] [PATCH 1/2] drm/msm: remove duplicated code from a6xx_create_address_space

2022-10-20 Thread Dmitry Baryshkov
The function a6xx_create_address_space() is mostly a copy of adreno_iommu_create_address_space() with added quirk setting. Reuse the original function to do the work, while introducing the wrapper to set the quirk. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 31

Re: [Freedreno] [PATCH 03/21] drm/ingenic: Don't set struct drm_driver.lastclose

2022-10-20 Thread Sergey Shtylyov
Hello! On 10/20/22 1:37 PM, Thomas Zimmermann wrote: > Don't set struct drm_mode_config.output_poll_changed. It's used to > inform the fbdev console about conncetor changes. But as ingenic Connector. :-) > uses generic fbdev emulation, the console is being informed by the > DRM client helper

Re: [Freedreno] [PATCH 01/21] drm/amdgpu: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Hi Am 20.10.22 um 13:48 schrieb Christian König: Am 20.10.22 um 12:37 schrieb Thomas Zimmermann: Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as amdgpu uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the ca

Re: [Freedreno] [PATCH 01/21] drm/amdgpu: Don't set struct drm_driver.lastclose

2022-10-20 Thread Christian König
Am 20.10.22 um 12:37 schrieb Thomas Zimmermann: Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as amdgpu uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose().

[Freedreno] [PATCH 21/21] drm/fb-helper: Remove unnecessary include statements

2022-10-20 Thread Thomas Zimmermann
Remove include statements for where it is not required (i.e., most of them). In a few places include other header files that are required by the source code. Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_display.c

[Freedreno] [PATCH 14/21] drm/fb-helper: Rename drm_fb_helper_unregister_fbi() to use _info postfix

2022-10-20 Thread Thomas Zimmermann
Rename drm_fb_helper_unregister_fbi() to drm_fb_helper_unregister_info() as part of unifying the naming within fbdev helpers. Adapt drivers. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/armada/armada_fbdev.c | 2 +- drivers/gpu/drm/drm_fb_helper.c|

[Freedreno] [PATCH 19/21] drm/fb-helper: Always initialize generic fbdev emulation

2022-10-20 Thread Thomas Zimmermann
Initialize the generic fbdev emulation even if it has been disabled on the kernel command line. The hotplug and mode initialization will fail accordingly. The kernel parameter can still be changed at runtime and the emulation will initialize after hotplugging the connector. Signed-off-by: Thomas

[Freedreno] [PATCH 12/21] drm/fb_helper: Rename field fbdev to info in struct drm_fb_helper

2022-10-20 Thread Thomas Zimmermann
Rename struct drm_fb_helper.fbdev to info. The current name is misleading as it overlaps with generic fbdev naming conventions. Adapt to the usual naming in fbdev drivers by calling the field 'info'. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/drm_fb_helper.c

[Freedreno] [PATCH 09/21] drm/panel-ili9341: Include

2022-10-20 Thread Thomas Zimmermann
Include for devm_of_find_backlight(). Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c index 39dc40cf681f0..b59472c29

[Freedreno] [PATCH 20/21] drm/fb-helper: Move generic fbdev emulation into separate source file

2022-10-20 Thread Thomas Zimmermann
Move the generic fbdev implementation into its own source and header file. Adapt drivers. No functonal changes, but some of the internal helpers have been renamed to fit into the drm_fbdev_ naming scheme. Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/Makefile | 2 +-

[Freedreno] [PATCH 16/21] drm/fb-helper: Call fb_sync in I/O functions

2022-10-20 Thread Thomas Zimmermann
Call struct fb_ops.fb_sync in drm_fbdev_{read,write}() to mimic the behavior of fbdev. Fbdev implementations of fb_read and fb_write in struct fb_ops invoke fb_sync to synchronize with outstanding operations before I/O. Doing the same in DRM implementations will allow us to use them throughout DRM

[Freedreno] [PATCH 18/21] drm/fb_helper: Minimize damage-helper overhead

2022-10-20 Thread Thomas Zimmermann
Pull the test for fb_dirty into the caller to avoid extra work if no callback has been set. In this case no damage handling is required and no damage area needs to be computed. Print a warning if the damage worker runs without getting an fb_dirty callback. Signed-off-by: Thomas Zimmermann --- dr

[Freedreno] [PATCH 17/21] drm/fb-helper: Perform all fbdev I/O with the same implementation

2022-10-20 Thread Thomas Zimmermann
Implement the fbdev's read/write helpers with the same functions. Use the generic fbdev's code as template. Convert all drivers. DRM's fb helpers must implement regular I/O functionality in struct fb_ops and possibly perform a damage update. Handle all this in the same functions and convert driver

[Freedreno] [PATCH 10/21] drm/tve200: Include

2022-10-20 Thread Thomas Zimmermann
Include for of_match_ptr(). Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/tve200/tve200_drv.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/tve200/tve200_drv.c b/drivers/gpu/drm/tve200/tve200_drv.c index 04db72e3fa9c2..611785e097576 100644 --- a/drivers/gpu/drm/tve

[Freedreno] [PATCH 07/21] drm/rockchip: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as rockchip uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/

[Freedreno] [PATCH 15/21] drm/fb-helper: Disconnect damage worker from update logic

2022-10-20 Thread Thomas Zimmermann
The fbdev helpers implement a damage worker that forwards fbdev updates to the DRM driver. The worker's update logic depends on the generic fbdev emulation. Separate the two via function pointer. The generic fbdev emulation sets struct drm_fb_helper_funcs.fb_dirty, a new callback that hides the up

[Freedreno] [PATCH 06/21] drm/mcde: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as mcde uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/gpu/

[Freedreno] [PATCH 08/21] drm/vboxvideo: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as vboxvideo uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers

[Freedreno] [PATCH 03/21] drm/ingenic: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_mode_config.output_poll_changed. It's used to inform the fbdev console about conncetor changes. But as ingenic uses generic fbdev emulation, the console is being informed by the DRM client helpers already. See the calls to drm_client_dev_hotplug() in drm_probe_helper.c. Signed

[Freedreno] [PATCH 11/21] drm/fb-helper: Cleanup include statements in header file

2022-10-20 Thread Thomas Zimmermann
Only include what we have to. Signed-off-by: Thomas Zimmermann --- include/drm/drm_fb_helper.h | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h index fddd0d1af6891..e923089522896 100644 --- a/include/drm/drm_fb_he

[Freedreno] [PATCH 13/21] drm/fb-helper: Rename drm_fb_helper_alloc_fbi() to use _info postfix

2022-10-20 Thread Thomas Zimmermann
Rename drm_fb_helper_alloc_fbi() to drm_fb_helper_alloc_info() as part of unifying the naming within fbdev helpers. Adapt drivers. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/gpu/drm/armada/armada_fbdev.c | 2 +- drivers/gpu/drm/drm_fb_helper.c| 8 ---

[Freedreno] [PATCH 02/21] drm/imx: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as imx uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/gpu/d

[Freedreno] [PATCH 05/21] drm/logicvc: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as logicvc uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/g

[Freedreno] [PATCH 04/21] drm/komeda: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as komeda uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/gp

[Freedreno] [PATCH 00/21] drm/fb-helper: Untangle fbdev emulation and helpers

2022-10-20 Thread Thomas Zimmermann
Separate generic fbdev emulation from the helper code that is shared among the various fbdev implementations within DRM. Affects many drivers. The goal of this patchset is to improve readability and streamline the fbdev helper code within DRM. In the long term, we want to get to a point where driv

[Freedreno] [PATCH 01/21] drm/amdgpu: Don't set struct drm_driver.lastclose

2022-10-20 Thread Thomas Zimmermann
Don't set struct drm_driver.lastclose. It's used to restore the fbdev console. But as amdgpu uses generic fbdev emulation, the console is being restored by the DRM client helpers already. See the call to drm_client_dev_restore() in drm_lastclose(). Signed-off-by: Thomas Zimmermann --- drivers/gp