mbox

[RFC,0/7] Simplify and correct msm/dp bridge implementation

Message ID 20220107020132.587811-1-dmitry.baryshkov@linaro.org
State New
Headers show

Pull-request

https://git.linaro.org/people/dmitry.baryshkov/kernel.git msm-dp-bridges

Message

Dmitry Baryshkov Jan. 7, 2022, 2:01 a.m. UTC
I noticed that commit 8a3b4c17f863 ("drm/msm/dp: employ bridge mechanism for display
enable and disable") conflicts with the panel-edp (panel bridge)
support. Both bridges will try to attach directly to the drm encoder
itself. I started writing lengthy letter describing what is broken and
how it should be fixed. Then at some point I stopped and quickly coded
this RFC (which is compile-tested only).

Comments and tests (on both DP and eDP setups) are more than welcome.

The following changes since commit 6ed95285382d6f90a3c3a11d5806a5eb7db715c3:

  drm/msm/a5xx: Fix missing CP_PROTECT for SMMU on A540 (2021-12-17 15:09:46 -0800)

are available in the Git repository at:

  https://git.linaro.org/people/dmitry.baryshkov/kernel.git msm-dp-bridges

for you to fetch changes up to 7eff304d50ba520e9193a293a8e42bbd9d7aa0e1:

  drm/msm/dp: stop carying about the connector type (2022-01-07 04:56:06 +0300)

----------------------------------------------------------------
Dmitry Baryshkov (7):
      drm/msm/dp: fix panel bridge attachment
      drm/msm/dp: support attaching bridges to the DP encoder
      drm/msm/dp: replace dp_connector with drm_bridge_connector
      drm/msm/dp: remove extra wrappers and public functions
      drm/msm/dp: remove unused stubs
      drm/msm/dp: remove dp_display_en/disable prototypes and data argument
      drm/msm/dp: stop carying about the connector type

 drivers/gpu/drm/msm/Makefile        |   1 -
 drivers/gpu/drm/msm/dp/dp_display.c | 263 ++++++++++++++++++++++++++----------
 drivers/gpu/drm/msm/dp/dp_display.h |   5 +-
 drivers/gpu/drm/msm/dp/dp_drm.c     | 250 ----------------------------------
 drivers/gpu/drm/msm/dp/dp_parser.c  |  28 ++--
 drivers/gpu/drm/msm/dp/dp_parser.h  |   4 +-
 drivers/gpu/drm/msm/msm_drv.h       |  32 +----
 7 files changed, 203 insertions(+), 380 deletions(-)
 delete mode 100644 drivers/gpu/drm/msm/dp/dp_drm.c

Comments

Stephen Boyd Jan. 7, 2022, 2:16 a.m. UTC | #1
Quoting Dmitry Baryshkov (2022-01-06 18:01:25)
> I noticed that commit 8a3b4c17f863 ("drm/msm/dp: employ bridge mechanism for display
> enable and disable") conflicts with the panel-edp (panel bridge)
> support. Both bridges will try to attach directly to the drm encoder
> itself. I started writing lengthy letter describing what is broken and
> how it should be fixed. Then at some point I stopped and quickly coded
> this RFC (which is compile-tested only).
>
> Comments and tests (on both DP and eDP setups) are more than welcome.

There are some DP patches dribbling in every day or so and it's really
hard to follow along. I asked Kuogee to resend all outstanding patches
as a single series but that hasn't happened. I'm not super interested in
reviewing/testing out these patches until the outstanding patches for DP
on the list are reviewed and landed. Have you looked at those patches?
See [1] for an example.

>
> The following changes since commit 6ed95285382d6f90a3c3a11d5806a5eb7db715c3:
>
>   drm/msm/a5xx: Fix missing CP_PROTECT for SMMU on A540 (2021-12-17 15:09:46 -0800)
>
> are available in the Git repository at:
>
>   https://git.linaro.org/people/dmitry.baryshkov/kernel.git msm-dp-bridges
>
> for you to fetch changes up to 7eff304d50ba520e9193a293a8e42bbd9d7aa0e1:
>
>   drm/msm/dp: stop carying about the connector type (2022-01-07 04:56:06 +0300)
>
> ----------------------------------------------------------------
> Dmitry Baryshkov (7):
>       drm/msm/dp: fix panel bridge attachment
>       drm/msm/dp: support attaching bridges to the DP encoder
>       drm/msm/dp: replace dp_connector with drm_bridge_connector
>       drm/msm/dp: remove extra wrappers and public functions
>       drm/msm/dp: remove unused stubs
>       drm/msm/dp: remove dp_display_en/disable prototypes and data argument
>       drm/msm/dp: stop carying about the connector type
>
>  drivers/gpu/drm/msm/Makefile        |   1 -
>  drivers/gpu/drm/msm/dp/dp_display.c | 263 ++++++++++++++++++++++++++----------
>  drivers/gpu/drm/msm/dp/dp_display.h |   5 +-
>  drivers/gpu/drm/msm/dp/dp_drm.c     | 250 ----------------------------------
>  drivers/gpu/drm/msm/dp/dp_parser.c  |  28 ++--
>  drivers/gpu/drm/msm/dp/dp_parser.h  |   4 +-
>  drivers/gpu/drm/msm/msm_drv.h       |  32 +----
>  7 files changed, 203 insertions(+), 380 deletions(-)
>  delete mode 100644 drivers/gpu/drm/msm/dp/dp_drm.c
>

[1] https://lore.kernel.org/r/1640220845-25266-1-git-send-email-quic_khsieh@quicinc.com
Dmitry Baryshkov Jan. 7, 2022, 3:06 a.m. UTC | #2
On 07/01/2022 05:16, Stephen Boyd wrote:
> Quoting Dmitry Baryshkov (2022-01-06 18:01:25)
>> I noticed that commit 8a3b4c17f863 ("drm/msm/dp: employ bridge mechanism for display
>> enable and disable") conflicts with the panel-edp (panel bridge)
>> support. Both bridges will try to attach directly to the drm encoder
>> itself. I started writing lengthy letter describing what is broken and
>> how it should be fixed. Then at some point I stopped and quickly coded
>> this RFC (which is compile-tested only).
>>
>> Comments and tests (on both DP and eDP setups) are more than welcome.
> 
> There are some DP patches dribbling in every day or so and it's really
> hard to follow along. I asked Kuogee to resend all outstanding patches
> as a single series but that hasn't happened. I'm not super interested in
> reviewing/testing out these patches until the outstanding patches for DP
> on the list are reviewed and landed. Have you looked at those patches?

I haven't been following the DP patches. Well, in fact I was mostly 
stopping myself from looking onto the DP driver and getting elbow deep 
in it. Partially because some of the patches circulating on the list 
were clear hacks (e.g. PHY timeouts). Some would be too complex to 
review them without deep diving into DP. Most of my attention (and spare 
time) goes to the DPU/DSI/MDP5 (and to lesser extent MDP4/HDMI) drives.

With regards to this patch series, the patch 1 is probably most 
important (and might warrant sending it separately), as it should fix 
eDP support for Bjorn.

So, initially I wrote just patch 1. And then the surrounding code 
immediately prompted me to update the rest of the drm glue code. Elbow 
deep, as I said. Patch 7 might be a bit advantageous (and maybe I should 
remove it in future),

> See [1] for an example.

I think most of the patches circulating through the list are irrelevant 
to this patch series, as they do not touch the drm glue code.

>> The following changes since commit 6ed95285382d6f90a3c3a11d5806a5eb7db715c3:
>>
>>    drm/msm/a5xx: Fix missing CP_PROTECT for SMMU on A540 (2021-12-17 15:09:46 -0800)
>>
>> are available in the Git repository at:
>>
>>    https://git.linaro.org/people/dmitry.baryshkov/kernel.git msm-dp-bridges
>>
>> for you to fetch changes up to 7eff304d50ba520e9193a293a8e42bbd9d7aa0e1:
>>
>>    drm/msm/dp: stop carying about the connector type (2022-01-07 04:56:06 +0300)
>>
>> ----------------------------------------------------------------
>> Dmitry Baryshkov (7):
>>        drm/msm/dp: fix panel bridge attachment
>>        drm/msm/dp: support attaching bridges to the DP encoder
>>        drm/msm/dp: replace dp_connector with drm_bridge_connector
>>        drm/msm/dp: remove extra wrappers and public functions
>>        drm/msm/dp: remove unused stubs
>>        drm/msm/dp: remove dp_display_en/disable prototypes and data argument
>>        drm/msm/dp: stop carying about the connector type
>>
>>   drivers/gpu/drm/msm/Makefile        |   1 -
>>   drivers/gpu/drm/msm/dp/dp_display.c | 263 ++++++++++++++++++++++++++----------
>>   drivers/gpu/drm/msm/dp/dp_display.h |   5 +-
>>   drivers/gpu/drm/msm/dp/dp_drm.c     | 250 ----------------------------------
>>   drivers/gpu/drm/msm/dp/dp_parser.c  |  28 ++--
>>   drivers/gpu/drm/msm/dp/dp_parser.h  |   4 +-
>>   drivers/gpu/drm/msm/msm_drv.h       |  32 +----
>>   7 files changed, 203 insertions(+), 380 deletions(-)
>>   delete mode 100644 drivers/gpu/drm/msm/dp/dp_drm.c
>>
> 
> [1] https://lore.kernel.org/r/1640220845-25266-1-git-send-email-quic_khsieh@quicinc.com