From: Dave Airlie Date: Wed, 11 May 2022 02:40:47 +0000 (+1000) Subject: Merge tag 'drm-msm-next-2022-05-09' of https://gitlab.freedesktop.org/drm/msm into... X-Git-Tag: v6.1-rc5~1171^2~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f83493f7d34da258310ecd3d07f0cc78f884c954;p=platform%2Fkernel%2Flinux-starfive.git Merge tag 'drm-msm-next-2022-05-09' of https://gitlab.freedesktop.org/drm/msm into drm-next - Fourcc modifier for tiled but not compressed layouts - Support for userspace allocated IOVA (GPU virtual address) - Devfreq clamp_to_idle fix - DPU: DSC (Display Stream Compression) support - DPU: inline rotation support on SC7280 - DPU: update DP timings to follow vendor recommendations - DP, DPU: add support for wide bus (on newer chipsets) - DP: eDP support - Merge DPU1 and MDP5 MDSS driver, make dpu/mdp device the master component - MDSS: optionally reset the IP block at the bootup to drop bootloader state - Properly register and unregister internal bridges in the DRM framework - Complete DPU IRQ cleanup - DP: conversion to use drm_bridge and drm_bridge_connector - eDP: drop old eDP parts again - DPU: writeback support - Misc small fixes Signed-off-by: Dave Airlie From: Rob Clark Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGvJCr_1D8d0dgmyQC5HD4gmXeZw=bFV_CNCfceZbpMxRw@mail.gmail.com --- f83493f7d34da258310ecd3d07f0cc78f884c954 diff --cc drivers/gpu/drm/msm/Kconfig index 864fdc2,a6110fc..4e0cbd6 --- a/drivers/gpu/drm/msm/Kconfig +++ b/drivers/gpu/drm/msm/Kconfig @@@ -12,8 -12,8 +12,9 @@@ config DRM_MS select IOMMU_IO_PGTABLE select QCOM_MDT_LOADER if ARCH_QCOM select REGULATOR + select DRM_DP_AUX_BUS - select DRM_DP_HELPER + select DRM_DISPLAY_DP_HELPER + select DRM_DISPLAY_HELPER select DRM_KMS_HELPER select DRM_PANEL select DRM_BRIDGE diff --cc drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h index 0000000,164e5f5..b39ee4e mode 000000,100644..100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h @@@ -1,0 -1,80 +1,80 @@@ + /* SPDX-License-Identifier: GPL-2.0-only */ + /* Copyright (c) 2020-2022, Linaro Limited */ + + #ifndef _DPU_HW_DSC_H + #define _DPU_HW_DSC_H + -#include ++#include + + #define DSC_MODE_SPLIT_PANEL BIT(0) + #define DSC_MODE_MULTIPLEX BIT(1) + #define DSC_MODE_VIDEO BIT(2) + + struct dpu_hw_dsc; + + /** + * struct dpu_hw_dsc_ops - interface to the dsc hardware driver functions + * Assumption is these functions will be called after clocks are enabled + */ + struct dpu_hw_dsc_ops { + /** + * dsc_disable - disable dsc + * @hw_dsc: Pointer to dsc context + */ + void (*dsc_disable)(struct dpu_hw_dsc *hw_dsc); + + /** + * dsc_config - configures dsc encoder + * @hw_dsc: Pointer to dsc context + * @dsc: panel dsc parameters + * @mode: dsc topology mode to be set + * @initial_lines: amount of initial lines to be used + */ + void (*dsc_config)(struct dpu_hw_dsc *hw_dsc, + struct msm_display_dsc_config *dsc, + u32 mode, + u32 initial_lines); + + /** + * dsc_config_thresh - programs panel thresholds + * @hw_dsc: Pointer to dsc context + * @dsc: panel dsc parameters + */ + void (*dsc_config_thresh)(struct dpu_hw_dsc *hw_dsc, + struct msm_display_dsc_config *dsc); + }; + + struct dpu_hw_dsc { + struct dpu_hw_blk base; + struct dpu_hw_blk_reg_map hw; + + /* dsc */ + enum dpu_dsc idx; + const struct dpu_dsc_cfg *caps; + + /* ops */ + struct dpu_hw_dsc_ops ops; + }; + + /** + * dpu_hw_dsc_init - initializes the dsc block for the passed dsc idx. + * @idx: DSC index for which driver object is required + * @addr: Mapped register io address of MDP + * @m: Pointer to mdss catalog data + * Returns: Error code or allocated dpu_hw_dsc context + */ + struct dpu_hw_dsc *dpu_hw_dsc_init(enum dpu_dsc idx, void __iomem *addr, + struct dpu_mdss_cfg *m); + + /** + * dpu_hw_dsc_destroy - destroys dsc driver context + * @dsc: Pointer to dsc driver context returned by dpu_hw_dsc_init + */ + void dpu_hw_dsc_destroy(struct dpu_hw_dsc *dsc); + + static inline struct dpu_hw_dsc *to_dpu_hw_dsc(struct dpu_hw_blk *hw) + { + return container_of(hw, struct dpu_hw_dsc, base); + } + + #endif /* _DPU_HW_DSC_H */ diff --cc drivers/gpu/drm/msm/dp/dp_display.c index a42732b,da5c03a..09174c2 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@@ -10,7 -10,7 +10,7 @@@ #include #include #include - #include -#include ++#include #include "msm_drv.h" #include "msm_kms.h" diff --cc drivers/gpu/drm/msm/msm_drv.h index d661deb,fdbaad5..08388d7 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@@ -30,6 -30,7 +30,7 @@@ #include #include #include -#include ++#include #include #include