Re: [Freedreno] [PATCH 0/4] drm/msm/dp: Add support for SC8180x eDP controller

From: Bjorn Andersson
Date: Wed May 19 2021 - 10:51:55 EST


On Tue 18 May 22:41 CDT 2021, abhinavk@xxxxxxxxxxxxxx wrote:

> Hi Bjorn
>
> I had a quick glance on the series and before getting to other things wanted
> to know how you are initializing two different connectors for
> DP & EDP resp.
>
> The connector type for DP should be DRM_MODE_CONNECTOR_DisplayPort and eDP
> should be DRM_MODE_CONNECTOR_eDP.

As far as I've been able to conclude there is no eDP support in the
upstream DPU driver; an encoder of type DRM_MODE_ENCODER_TMDS will only
attach to INTF_DP.

> We need both to be created so that both EDP and DP can be supported
> concurrently.
>

Further more the DP controller driver has a global variable to track
state and the INTF-picker will always pick the interface of index 0 when
setting up the DP controller.

> Will these changes work for concurrent eDP and DP case?
>

The proposed changes are all that I need to get eDP working on my
sc8180x laptop. But the DPU code does not currently support more than a
single DP interface - and that has to be on the first INTF_DP that the
DPU driver knows about.

But this is a limitation we should fix, rather than claiming that you
can only have one of each. Further more, afaict the sc7280 DP controller
can do both DP and eDP, so it would make sense not to distinguish the
interfaces as eDP or DP - just because the product in mind will use eDP.


PS. I've currently disabled the eDP interface on my laptop and am
working on trying to get Type-C DP working. Once that's in place I'd
need a better INTF/encoder picker - because the current model of just
picking INTF_DP 0 (or in a sequential fashion) won't work.

Regards,
Bjorn

> Thanks
>
> Abhinav
>
> On 2021-05-10 21:20, Bjorn Andersson wrote:
> > The first patch in the series is somewhat unrelated to the support, but
> > simplifies reasoning and debugging of timing related issues.
> >
> > The second patch introduces support for dealing with different register
> > block
> > layouts, which is used in the forth patch to describe the hardware
> > blocks found
> > in the SC8180x eDP block.
> >
> > The third patch configures the INTF_CONFIG register, which carries the
> > configuration for widebus handling. As with the DPU the bootloader
> > enables
> > widebus and we need to disable it, or implement support for adjusting
> > the
> > timing.
> >
> > Bjorn Andersson (4):
> > drm/msm/dp: Simplify the mvid/nvid calculation
> > drm/msm/dp: Store each subblock in the io region
> > drm/msm/dp: Initialize the INTF_CONFIG register
> > drm/msm/dp: Add support for SC8180x eDP
> >
> > drivers/gpu/drm/msm/dp/dp_catalog.c | 99 +++++++----------------------
> > drivers/gpu/drm/msm/dp/dp_display.c | 1 +
> > drivers/gpu/drm/msm/dp/dp_parser.c | 22 +++++++
> > drivers/gpu/drm/msm/dp/dp_parser.h | 8 +++
> > 4 files changed, 53 insertions(+), 77 deletions(-)