With the introduction of sync_state in the genpd framework, any consumer device of GCC and GPUCC which is not bound to a driver will result in bootup warnings like below:
[ 24.362666] gcc-kaanapali 100000.clock-controller: sync_state() pending due to 3d37000.gmu [ 24.371210] gxclkctl-kaanapali 3d64000.clock-controller: sync_state() pending due to 3d37000.gmu [ 24.380268] gpucc-kaanapali 3d90000.clock-controller: sync_state() pending due to 3d37000.gmu To silence these warnings and also to have a proper state in driver core, attach a driver to the GMU and set it up as a component device for the drm master device. The first few patches are preparatory fixes. And the later patches introduces a driver for GMU device and a couple of minor refactors. I have ignored most of the T-b/R-b tags as there is significant code churn in v2 when compared to v1. Signed-off-by: Akhil P Oommen <[email protected]> --- Changes in v2: - Reorder patches to move fixes to the front (Dmitry) - New patch to remove unused gpu_ops paramer (Dmitry) - New patch to consolidate msm_gpu_probe into msm_drv_probe - Drop patch#2 in the v1 series as it doesn't make sense after rebase - A new patch to pass around DRM private data via devres - Retrieve GPU data from master's private data during GMU bind - Move devfreq initialiation post GPU/GMU bind to avoid handling thermal mitigation while GMU device is not bound to the driver. - Ensure GPU is queicent before GMU unbind. - Link to v1: https://lore.kernel.org/r/[email protected] --- Akhil P Oommen (6): drm/msm/adreno: Fix invalid drvdata typecast in adreno_remove() drm/msm/adreno/a6xx: Mark cxpd device_link as stateless drm/msm: Keep DRM private data separate from GPU drvdata drm/msm/adreno: Simplify adreno_probe() drm/msm: Always use component model for standalone GPU drm/msm: Attach a driver to the GMU Haitao Xu (2): drm/msm: Remove dead gpu_ops parameter from msm_drm_init/uninit drm/msm: Consolidate msm_gpu_probe into msm_drv_probe drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 117 +++++++++++++++++++--------- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 19 +---- drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 3 - drivers/gpu/drm/msm/adreno/adreno_device.c | 40 ++++++---- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 2 + drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 3 +- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 9 +-- drivers/gpu/drm/msm/dp/dp_display.c | 4 +- drivers/gpu/drm/msm/dsi/dsi.c | 4 +- drivers/gpu/drm/msm/hdmi/hdmi.c | 4 +- drivers/gpu/drm/msm/msm_drv.c | 119 +++++++++++++++-------------- drivers/gpu/drm/msm/msm_drv.h | 9 ++- drivers/gpu/drm/msm/msm_gpu.c | 3 - drivers/gpu/drm/msm/msm_gpu.h | 1 + drivers/gpu/drm/msm/msm_gpu_devfreq.c | 5 ++ drivers/gpu/drm/msm/msm_kms.c | 17 ++--- 17 files changed, 205 insertions(+), 162 deletions(-) --- base-commit: 5fed66a6fde4dcc6a63ecec6f32e1a331dc4e1a4 change-id: 20260511-gmu-sync-state-fix-bc6b2d809371 Best regards, -- Akhil P Oommen <[email protected]>
