All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Abhinav Kumar <quic_abhinavk@quicinc.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Stephen Boyd <swboyd@chromium.org>,
	Daniel Vetter <daniel@ffwll.ch>,
	freedreno@lists.freedesktop.org
Subject: Re: [Freedreno] [PATCH v3 5/5] drm/msm: allow compile time selection of driver components
Date: Thu, 17 Mar 2022 15:44:26 +0300	[thread overview]
Message-ID: <c5a5cec0-5143-1511-a66d-674dd23e83a8@linaro.org> (raw)
In-Reply-To: <063a761c-0591-79e4-dcfc-1587a60d605a@quicinc.com>

On 16/03/2022 20:26, Abhinav Kumar wrote:
> 
> 
> On 3/16/2022 12:31 AM, Dmitry Baryshkov wrote:
>> On 16/03/2022 03:28, Abhinav Kumar wrote:
>>>
>>>
>>> On 3/3/2022 7:21 PM, Dmitry Baryshkov wrote:
>>>> MSM DRM driver already allows one to compile out the DP or DSI support.
>>>> Add support for disabling other features like MDP4/MDP5/DPU drivers or
>>>> direct HDMI output support.
>>>>
>>>> Suggested-by: Stephen Boyd <swboyd@chromium.org>
>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>>> ---
>>>>   drivers/gpu/drm/msm/Kconfig    | 50 
>>>> ++++++++++++++++++++++++++++++++--
>>>>   drivers/gpu/drm/msm/Makefile   | 18 ++++++++++--
>>>>   drivers/gpu/drm/msm/msm_drv.h  | 33 ++++++++++++++++++++++
>>>>   drivers/gpu/drm/msm/msm_mdss.c | 13 +++++++--
>>>>   4 files changed, 106 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
>>>> index 9b019598e042..3735fd41eb3b 100644
>>>> --- a/drivers/gpu/drm/msm/Kconfig
>>>> +++ b/drivers/gpu/drm/msm/Kconfig
>>>> @@ -46,12 +46,39 @@ config DRM_MSM_GPU_SUDO
>>>>         Only use this if you are a driver developer.  This should *not*
>>>>         be enabled for production kernels.  If unsure, say N.
>>>> -config DRM_MSM_HDMI_HDCP
>>>> -    bool "Enable HDMI HDCP support in MSM DRM driver"
>>>> +config DRM_MSM_MDSS
>>>> +    bool
>>>> +    depends on DRM_MSM
>>>> +    default n
>>> shouldnt DRM_MSM_MDSS be defaulted to y?
>>
>> No, it will be selected either by MDP5 or by DPU1. It is not used if 
>> DRM_MSM is compiled with just MDP4 or headless support in mind.
> Ok got it.
>>
>>>
>>> Another question is the compilation validation of the combinations of 
>>> these.
>>>
>>> So we need to try:
>>>
>>> 1) DRM_MSM_MDSS + DRM_MSM_MDP4
>>> 2) DRM_MSM_MDSS + DRM_MSM_MDP5
>>> 3) DRM_MSM_MDSS + DRM_MSM_DPU
>>>
>>> Earlier since all of them were compiled together any 
>>> inter-dependencies will not show up. Now since we are separating it 
>>> out, just wanted to make sure each of the combos compile?
>>
>> I think you meant:
>> - headless
>> - MDP4
>> - MDP5
>> - DPU1
>> - MDP4 + MDP5
>> - MDP4 + DPU1
>> - MDP5 + DPU1
>> - all three drivers
>>
> Yes, each of these combinations.

Each of them was tested.

>>>
>>>> +
>>>> +config DRM_MSM_MDP4
>>>> +    bool "Enable MDP4 support in MSM DRM driver"
>>>>       depends on DRM_MSM
>>>>       default y
>>>>       help
>>>> -      Choose this option to enable HDCP state machine
>>>> +      Compile in support for the Mobile Display Processor v4 (MDP4) in
>>>> +      the MSM DRM driver. It is the older display controller found in
>>>> +      devices using APQ8064/MSM8960/MSM8x60 platforms.
>>>> +
>>>> +config DRM_MSM_MDP5
>>>> +    bool "Enable MDP5 support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    select DRM_MSM_MDSS
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the Mobile Display Processor v5 (MDP4) in
>>>> +      the MSM DRM driver. It is the display controller found in 
>>>> devices
>>>> +      using e.g. APQ8016/MSM8916/APQ8096/MSM8996/MSM8974/SDM6x0 
>>>> platforms.
>>>> +
>>>> +config DRM_MSM_DPU
>>>> +    bool "Enable DPU support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    select DRM_MSM_MDSS
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the Display Processing Unit in
>>>> +      the MSM DRM driver. It is the display controller found in 
>>>> devices
>>>> +      using e.g. SDM845 and newer platforms.
>>>>   config DRM_MSM_DP
>>>>       bool "Enable DisplayPort support in MSM DRM driver"
>>>> @@ -116,3 +143,20 @@ config DRM_MSM_DSI_7NM_PHY
>>>>       help
>>>>         Choose this option if DSI PHY on SM8150/SM8250/SC7280 is 
>>>> used on
>>>>         the platform.
>>>> +
>>>> +config DRM_MSM_HDMI
>>>> +    bool "Enable HDMI support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the HDMI output MSM DRM driver. It can
>>>> +      be a primary or a secondary display on device. Note that this 
>>>> is used
>>>> +      only for the direct HDMI output. If the device outputs HDMI data
>>>> +      throught some kind of DSI-to-HDMI bridge, this option can be 
>>>> disabled.
>>>> +
>>>> +config DRM_MSM_HDMI_HDCP
>>>> +    bool "Enable HDMI HDCP support in MSM DRM driver"
>>>> +    depends on DRM_MSM && DRM_MSM_HDMI
>>>> +    default y
>>>> +    help
>>>> +      Choose this option to enable HDCP state machine
>>>> diff --git a/drivers/gpu/drm/msm/Makefile 
>>>> b/drivers/gpu/drm/msm/Makefile
>>>> index e76927b42033..5fe9c20ab9ee 100644
>>>> --- a/drivers/gpu/drm/msm/Makefile
>>>> +++ b/drivers/gpu/drm/msm/Makefile
>>>> @@ -16,6 +16,8 @@ msm-y := \
>>>>       adreno/a6xx_gpu.o \
>>>>       adreno/a6xx_gmu.o \
>>>>       adreno/a6xx_hfi.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_HDMI) += \
>>>>       hdmi/hdmi.o \
>>>>       hdmi/hdmi_audio.o \
>>>>       hdmi/hdmi_bridge.o \
>>>> @@ -27,8 +29,8 @@ msm-y := \
>>>>       hdmi/hdmi_phy_8x60.o \
>>>>       hdmi/hdmi_phy_8x74.o \
>>>>       hdmi/hdmi_pll_8960.o \
>>>> -    disp/mdp_format.o \
>>>> -    disp/mdp_kms.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDP4) += \
>>>>       disp/mdp4/mdp4_crtc.o \
>>>>       disp/mdp4/mdp4_dtv_encoder.o \
>>>>       disp/mdp4/mdp4_lcdc_encoder.o \
>>>> @@ -37,6 +39,8 @@ msm-y := \
>>>>       disp/mdp4/mdp4_irq.o \
>>>>       disp/mdp4/mdp4_kms.o \
>>>>       disp/mdp4/mdp4_plane.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDP5) += \
>>>>       disp/mdp5/mdp5_cfg.o \
>>>>       disp/mdp5/mdp5_ctl.o \
>>>>       disp/mdp5/mdp5_crtc.o \
>>>> @@ -47,6 +51,8 @@ msm-y := \
>>>>       disp/mdp5/mdp5_mixer.o \
>>>>       disp/mdp5/mdp5_plane.o \
>>>>       disp/mdp5/mdp5_smp.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_DPU) += \
>>>>       disp/dpu1/dpu_core_perf.o \
>>>>       disp/dpu1/dpu_crtc.o \
>>>>       disp/dpu1/dpu_encoder.o \
>>>> @@ -69,6 +75,13 @@ msm-y := \
>>>>       disp/dpu1/dpu_plane.o \
>>>>       disp/dpu1/dpu_rm.o \
>>>>       disp/dpu1/dpu_vbif.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDSS) += \
>>>> +    msm_mdss.o \
>>>> +
>>>> +msm-y += \
>>>> +    disp/mdp_format.o \
>>>> +    disp/mdp_kms.o \
>>>>       disp/msm_disp_snapshot.o \
>>>>       disp/msm_disp_snapshot_util.o \
>>>>       msm_atomic.o \
>>>> @@ -86,7 +99,6 @@ msm-y := \
>>>>       msm_gpu_devfreq.o \
>>>>       msm_io_utils.o \
>>>>       msm_iommu.o \
>>>> -    msm_mdss.o \
>>>>       msm_perf.o \
>>>>       msm_rd.o \
>>>>       msm_ringbuffer.o \
>>>> diff --git a/drivers/gpu/drm/msm/msm_drv.h 
>>>> b/drivers/gpu/drm/msm/msm_drv.h
>>>> index c1aaadfbea34..6bad7e7b479d 100644
>>>> --- a/drivers/gpu/drm/msm/msm_drv.h
>>>> +++ b/drivers/gpu/drm/msm/msm_drv.h
>>>> @@ -314,10 +314,20 @@ struct drm_fb_helper *msm_fbdev_init(struct 
>>>> drm_device *dev);
>>>>   void msm_fbdev_free(struct drm_device *dev);
>>>>   struct hdmi;
>>>> +#ifdef CONFIG_DRM_MSM_HDMI
>>>>   int msm_hdmi_modeset_init(struct hdmi *hdmi, struct drm_device *dev,
>>>>           struct drm_encoder *encoder);
>>>>   void __init msm_hdmi_register(void);
>>>>   void __exit msm_hdmi_unregister(void);
>>>> +#else
>>>> +static inline int msm_hdmi_modeset_init(struct hdmi *hdmi, struct 
>>>> drm_device *dev,
>>>> +        struct drm_encoder *encoder)
>>>> +{
>>>> +    return -EINVAL;
>>>> +}
>>>> +static inline void __init msm_hdmi_register(void) {}
>>>> +static inline void __exit msm_hdmi_unregister(void) {}
>>>> +#endif
>>>>   struct msm_dsi;
>>>>   #ifdef CONFIG_DRM_MSM_DSI
>>>> @@ -432,14 +442,37 @@ static inline void msm_dp_debugfs_init(struct 
>>>> msm_dp *dp_display,
>>>>   #endif
>>>> +#ifdef CONFIG_DRM_MSM_MDP4
>>>>   void msm_mdp4_register(void);
>>>>   void msm_mdp4_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdp4_register(void) {}
>>>> +static inline void msm_mdp4_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDP5
>>>>   void msm_mdp_register(void);
>>>>   void msm_mdp_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdp_register(void) {}
>>>> +static inline void msm_mdp_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_DPU
>>>>   void msm_dpu_register(void);
>>>>   void msm_dpu_unregister(void);
>>>> +#else
>>>> +static inline void msm_dpu_register(void) {}
>>>> +static inline void msm_dpu_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDSS
>>>>   void msm_mdss_register(void);
>>>>   void msm_mdss_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdss_register(void) {}
>>>> +static inline void msm_mdss_unregister(void) {}
>>>> +#endif
>>>>   #ifdef CONFIG_DEBUG_FS
>>>>   void msm_framebuffer_describe(struct drm_framebuffer *fb, struct 
>>>> seq_file *m);
>>>> diff --git a/drivers/gpu/drm/msm/msm_mdss.c 
>>>> b/drivers/gpu/drm/msm/msm_mdss.c
>>>> index 4d25d8955301..66714b356762 100644
>>>> --- a/drivers/gpu/drm/msm/msm_mdss.c
>>>> +++ b/drivers/gpu/drm/msm/msm_mdss.c
>>>> @@ -303,8 +303,17 @@ static const struct dev_pm_ops mdss_pm_ops = {
>>>>   static int find_mdp_node(struct device *dev, void *data)
>>>>   {
>>>> -    return of_match_node(dpu_dt_match, dev->of_node) ||
>>>> -        of_match_node(mdp5_dt_match, dev->of_node);
>>>> +#ifdef CONFIG_DRM_MSM_DPU
>>>> +    if (of_match_node(dpu_dt_match, dev->of_node))
>>>> +        return true;
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDP5
>>>> +    if (of_match_node(mdp5_dt_match, dev->of_node))
>>>> +        return true;
>>>> +#endif
>>>> +
>>>> +    return false;
>>>>   }
>>>>   static int mdss_probe(struct platform_device *pdev)
>>
>>


-- 
With best wishes
Dmitry

WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Abhinav Kumar <quic_abhinavk@quicinc.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Stephen Boyd <swboyd@chromium.org>,
	freedreno@lists.freedesktop.org
Subject: Re: [Freedreno] [PATCH v3 5/5] drm/msm: allow compile time selection of driver components
Date: Thu, 17 Mar 2022 15:44:26 +0300	[thread overview]
Message-ID: <c5a5cec0-5143-1511-a66d-674dd23e83a8@linaro.org> (raw)
In-Reply-To: <063a761c-0591-79e4-dcfc-1587a60d605a@quicinc.com>

On 16/03/2022 20:26, Abhinav Kumar wrote:
> 
> 
> On 3/16/2022 12:31 AM, Dmitry Baryshkov wrote:
>> On 16/03/2022 03:28, Abhinav Kumar wrote:
>>>
>>>
>>> On 3/3/2022 7:21 PM, Dmitry Baryshkov wrote:
>>>> MSM DRM driver already allows one to compile out the DP or DSI support.
>>>> Add support for disabling other features like MDP4/MDP5/DPU drivers or
>>>> direct HDMI output support.
>>>>
>>>> Suggested-by: Stephen Boyd <swboyd@chromium.org>
>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>>> ---
>>>>   drivers/gpu/drm/msm/Kconfig    | 50 
>>>> ++++++++++++++++++++++++++++++++--
>>>>   drivers/gpu/drm/msm/Makefile   | 18 ++++++++++--
>>>>   drivers/gpu/drm/msm/msm_drv.h  | 33 ++++++++++++++++++++++
>>>>   drivers/gpu/drm/msm/msm_mdss.c | 13 +++++++--
>>>>   4 files changed, 106 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
>>>> index 9b019598e042..3735fd41eb3b 100644
>>>> --- a/drivers/gpu/drm/msm/Kconfig
>>>> +++ b/drivers/gpu/drm/msm/Kconfig
>>>> @@ -46,12 +46,39 @@ config DRM_MSM_GPU_SUDO
>>>>         Only use this if you are a driver developer.  This should *not*
>>>>         be enabled for production kernels.  If unsure, say N.
>>>> -config DRM_MSM_HDMI_HDCP
>>>> -    bool "Enable HDMI HDCP support in MSM DRM driver"
>>>> +config DRM_MSM_MDSS
>>>> +    bool
>>>> +    depends on DRM_MSM
>>>> +    default n
>>> shouldnt DRM_MSM_MDSS be defaulted to y?
>>
>> No, it will be selected either by MDP5 or by DPU1. It is not used if 
>> DRM_MSM is compiled with just MDP4 or headless support in mind.
> Ok got it.
>>
>>>
>>> Another question is the compilation validation of the combinations of 
>>> these.
>>>
>>> So we need to try:
>>>
>>> 1) DRM_MSM_MDSS + DRM_MSM_MDP4
>>> 2) DRM_MSM_MDSS + DRM_MSM_MDP5
>>> 3) DRM_MSM_MDSS + DRM_MSM_DPU
>>>
>>> Earlier since all of them were compiled together any 
>>> inter-dependencies will not show up. Now since we are separating it 
>>> out, just wanted to make sure each of the combos compile?
>>
>> I think you meant:
>> - headless
>> - MDP4
>> - MDP5
>> - DPU1
>> - MDP4 + MDP5
>> - MDP4 + DPU1
>> - MDP5 + DPU1
>> - all three drivers
>>
> Yes, each of these combinations.

Each of them was tested.

>>>
>>>> +
>>>> +config DRM_MSM_MDP4
>>>> +    bool "Enable MDP4 support in MSM DRM driver"
>>>>       depends on DRM_MSM
>>>>       default y
>>>>       help
>>>> -      Choose this option to enable HDCP state machine
>>>> +      Compile in support for the Mobile Display Processor v4 (MDP4) in
>>>> +      the MSM DRM driver. It is the older display controller found in
>>>> +      devices using APQ8064/MSM8960/MSM8x60 platforms.
>>>> +
>>>> +config DRM_MSM_MDP5
>>>> +    bool "Enable MDP5 support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    select DRM_MSM_MDSS
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the Mobile Display Processor v5 (MDP4) in
>>>> +      the MSM DRM driver. It is the display controller found in 
>>>> devices
>>>> +      using e.g. APQ8016/MSM8916/APQ8096/MSM8996/MSM8974/SDM6x0 
>>>> platforms.
>>>> +
>>>> +config DRM_MSM_DPU
>>>> +    bool "Enable DPU support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    select DRM_MSM_MDSS
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the Display Processing Unit in
>>>> +      the MSM DRM driver. It is the display controller found in 
>>>> devices
>>>> +      using e.g. SDM845 and newer platforms.
>>>>   config DRM_MSM_DP
>>>>       bool "Enable DisplayPort support in MSM DRM driver"
>>>> @@ -116,3 +143,20 @@ config DRM_MSM_DSI_7NM_PHY
>>>>       help
>>>>         Choose this option if DSI PHY on SM8150/SM8250/SC7280 is 
>>>> used on
>>>>         the platform.
>>>> +
>>>> +config DRM_MSM_HDMI
>>>> +    bool "Enable HDMI support in MSM DRM driver"
>>>> +    depends on DRM_MSM
>>>> +    default y
>>>> +    help
>>>> +      Compile in support for the HDMI output MSM DRM driver. It can
>>>> +      be a primary or a secondary display on device. Note that this 
>>>> is used
>>>> +      only for the direct HDMI output. If the device outputs HDMI data
>>>> +      throught some kind of DSI-to-HDMI bridge, this option can be 
>>>> disabled.
>>>> +
>>>> +config DRM_MSM_HDMI_HDCP
>>>> +    bool "Enable HDMI HDCP support in MSM DRM driver"
>>>> +    depends on DRM_MSM && DRM_MSM_HDMI
>>>> +    default y
>>>> +    help
>>>> +      Choose this option to enable HDCP state machine
>>>> diff --git a/drivers/gpu/drm/msm/Makefile 
>>>> b/drivers/gpu/drm/msm/Makefile
>>>> index e76927b42033..5fe9c20ab9ee 100644
>>>> --- a/drivers/gpu/drm/msm/Makefile
>>>> +++ b/drivers/gpu/drm/msm/Makefile
>>>> @@ -16,6 +16,8 @@ msm-y := \
>>>>       adreno/a6xx_gpu.o \
>>>>       adreno/a6xx_gmu.o \
>>>>       adreno/a6xx_hfi.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_HDMI) += \
>>>>       hdmi/hdmi.o \
>>>>       hdmi/hdmi_audio.o \
>>>>       hdmi/hdmi_bridge.o \
>>>> @@ -27,8 +29,8 @@ msm-y := \
>>>>       hdmi/hdmi_phy_8x60.o \
>>>>       hdmi/hdmi_phy_8x74.o \
>>>>       hdmi/hdmi_pll_8960.o \
>>>> -    disp/mdp_format.o \
>>>> -    disp/mdp_kms.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDP4) += \
>>>>       disp/mdp4/mdp4_crtc.o \
>>>>       disp/mdp4/mdp4_dtv_encoder.o \
>>>>       disp/mdp4/mdp4_lcdc_encoder.o \
>>>> @@ -37,6 +39,8 @@ msm-y := \
>>>>       disp/mdp4/mdp4_irq.o \
>>>>       disp/mdp4/mdp4_kms.o \
>>>>       disp/mdp4/mdp4_plane.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDP5) += \
>>>>       disp/mdp5/mdp5_cfg.o \
>>>>       disp/mdp5/mdp5_ctl.o \
>>>>       disp/mdp5/mdp5_crtc.o \
>>>> @@ -47,6 +51,8 @@ msm-y := \
>>>>       disp/mdp5/mdp5_mixer.o \
>>>>       disp/mdp5/mdp5_plane.o \
>>>>       disp/mdp5/mdp5_smp.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_DPU) += \
>>>>       disp/dpu1/dpu_core_perf.o \
>>>>       disp/dpu1/dpu_crtc.o \
>>>>       disp/dpu1/dpu_encoder.o \
>>>> @@ -69,6 +75,13 @@ msm-y := \
>>>>       disp/dpu1/dpu_plane.o \
>>>>       disp/dpu1/dpu_rm.o \
>>>>       disp/dpu1/dpu_vbif.o \
>>>> +
>>>> +msm-$(CONFIG_DRM_MSM_MDSS) += \
>>>> +    msm_mdss.o \
>>>> +
>>>> +msm-y += \
>>>> +    disp/mdp_format.o \
>>>> +    disp/mdp_kms.o \
>>>>       disp/msm_disp_snapshot.o \
>>>>       disp/msm_disp_snapshot_util.o \
>>>>       msm_atomic.o \
>>>> @@ -86,7 +99,6 @@ msm-y := \
>>>>       msm_gpu_devfreq.o \
>>>>       msm_io_utils.o \
>>>>       msm_iommu.o \
>>>> -    msm_mdss.o \
>>>>       msm_perf.o \
>>>>       msm_rd.o \
>>>>       msm_ringbuffer.o \
>>>> diff --git a/drivers/gpu/drm/msm/msm_drv.h 
>>>> b/drivers/gpu/drm/msm/msm_drv.h
>>>> index c1aaadfbea34..6bad7e7b479d 100644
>>>> --- a/drivers/gpu/drm/msm/msm_drv.h
>>>> +++ b/drivers/gpu/drm/msm/msm_drv.h
>>>> @@ -314,10 +314,20 @@ struct drm_fb_helper *msm_fbdev_init(struct 
>>>> drm_device *dev);
>>>>   void msm_fbdev_free(struct drm_device *dev);
>>>>   struct hdmi;
>>>> +#ifdef CONFIG_DRM_MSM_HDMI
>>>>   int msm_hdmi_modeset_init(struct hdmi *hdmi, struct drm_device *dev,
>>>>           struct drm_encoder *encoder);
>>>>   void __init msm_hdmi_register(void);
>>>>   void __exit msm_hdmi_unregister(void);
>>>> +#else
>>>> +static inline int msm_hdmi_modeset_init(struct hdmi *hdmi, struct 
>>>> drm_device *dev,
>>>> +        struct drm_encoder *encoder)
>>>> +{
>>>> +    return -EINVAL;
>>>> +}
>>>> +static inline void __init msm_hdmi_register(void) {}
>>>> +static inline void __exit msm_hdmi_unregister(void) {}
>>>> +#endif
>>>>   struct msm_dsi;
>>>>   #ifdef CONFIG_DRM_MSM_DSI
>>>> @@ -432,14 +442,37 @@ static inline void msm_dp_debugfs_init(struct 
>>>> msm_dp *dp_display,
>>>>   #endif
>>>> +#ifdef CONFIG_DRM_MSM_MDP4
>>>>   void msm_mdp4_register(void);
>>>>   void msm_mdp4_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdp4_register(void) {}
>>>> +static inline void msm_mdp4_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDP5
>>>>   void msm_mdp_register(void);
>>>>   void msm_mdp_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdp_register(void) {}
>>>> +static inline void msm_mdp_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_DPU
>>>>   void msm_dpu_register(void);
>>>>   void msm_dpu_unregister(void);
>>>> +#else
>>>> +static inline void msm_dpu_register(void) {}
>>>> +static inline void msm_dpu_unregister(void) {}
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDSS
>>>>   void msm_mdss_register(void);
>>>>   void msm_mdss_unregister(void);
>>>> +#else
>>>> +static inline void msm_mdss_register(void) {}
>>>> +static inline void msm_mdss_unregister(void) {}
>>>> +#endif
>>>>   #ifdef CONFIG_DEBUG_FS
>>>>   void msm_framebuffer_describe(struct drm_framebuffer *fb, struct 
>>>> seq_file *m);
>>>> diff --git a/drivers/gpu/drm/msm/msm_mdss.c 
>>>> b/drivers/gpu/drm/msm/msm_mdss.c
>>>> index 4d25d8955301..66714b356762 100644
>>>> --- a/drivers/gpu/drm/msm/msm_mdss.c
>>>> +++ b/drivers/gpu/drm/msm/msm_mdss.c
>>>> @@ -303,8 +303,17 @@ static const struct dev_pm_ops mdss_pm_ops = {
>>>>   static int find_mdp_node(struct device *dev, void *data)
>>>>   {
>>>> -    return of_match_node(dpu_dt_match, dev->of_node) ||
>>>> -        of_match_node(mdp5_dt_match, dev->of_node);
>>>> +#ifdef CONFIG_DRM_MSM_DPU
>>>> +    if (of_match_node(dpu_dt_match, dev->of_node))
>>>> +        return true;
>>>> +#endif
>>>> +
>>>> +#ifdef CONFIG_DRM_MSM_MDP5
>>>> +    if (of_match_node(mdp5_dt_match, dev->of_node))
>>>> +        return true;
>>>> +#endif
>>>> +
>>>> +    return false;
>>>>   }
>>>>   static int mdss_probe(struct platform_device *pdev)
>>
>>


-- 
With best wishes
Dmitry

  reply	other threads:[~2022-03-17 12:44 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-04  3:21 [PATCH v3 0/5] drm/msm: rework MDSS drivers Dmitry Baryshkov
2022-03-04  3:21 ` Dmitry Baryshkov
2022-03-04  3:21 ` [PATCH v3 1/5] drm/msm: unify " Dmitry Baryshkov
2022-03-04  3:21   ` Dmitry Baryshkov
2022-03-05  0:39   ` Abhinav Kumar
2022-03-05  0:39     ` Abhinav Kumar
2022-03-08 20:25   ` Stephen Boyd
2022-03-08 20:25     ` Stephen Boyd
2022-03-04  3:21 ` [PATCH v3 2/5] drm/msm: remove extra indirection for msm_mdss Dmitry Baryshkov
2022-03-04  3:21   ` Dmitry Baryshkov
2022-03-05  0:42   ` Abhinav Kumar
2022-03-05  0:42     ` Abhinav Kumar
2022-03-08 20:26   ` Stephen Boyd
2022-03-08 20:26     ` Stephen Boyd
2022-03-04  3:21 ` [PATCH v3 3/5] drm/msm: split the main platform driver Dmitry Baryshkov
2022-03-04  3:21   ` Dmitry Baryshkov
2022-03-05  2:10   ` Abhinav Kumar
2022-03-05  2:10     ` Abhinav Kumar
2022-03-08 20:31   ` Stephen Boyd
2022-03-08 20:31     ` Stephen Boyd
2022-03-04  3:21 ` [PATCH v3 4/5] drm/msm: stop using device's match data pointer Dmitry Baryshkov
2022-03-04  3:21   ` Dmitry Baryshkov
2022-03-08 20:32   ` Stephen Boyd
2022-03-08 20:32     ` Stephen Boyd
2022-03-16  0:20   ` Abhinav Kumar
2022-03-16  0:20     ` Abhinav Kumar
2022-03-04  3:21 ` [PATCH v3 5/5] drm/msm: allow compile time selection of driver components Dmitry Baryshkov
2022-03-04  3:21   ` Dmitry Baryshkov
2022-03-04 22:00   ` Rob Clark
2022-03-04 22:00     ` Rob Clark
2022-03-08 20:36   ` Stephen Boyd
2022-03-08 20:36     ` Stephen Boyd
2022-03-16  0:28   ` Abhinav Kumar
2022-03-16  0:28     ` Abhinav Kumar
2022-03-16  7:31     ` Dmitry Baryshkov
2022-03-16  7:31       ` Dmitry Baryshkov
2022-03-16 17:26       ` [Freedreno] " Abhinav Kumar
2022-03-16 17:26         ` Abhinav Kumar
2022-03-17 12:44         ` Dmitry Baryshkov [this message]
2022-03-17 12:44           ` Dmitry Baryshkov
2022-03-17 15:43           ` Dmitry Baryshkov
2022-03-17 15:43             ` Dmitry Baryshkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c5a5cec0-5143-1511-a66d-674dd23e83a8@linaro.org \
    --to=dmitry.baryshkov@linaro.org \
    --cc=airlied@linux.ie \
    --cc=bjorn.andersson@linaro.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=sean@poorly.run \
    --cc=swboyd@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.