[PATCH 01/10] drm: Add SPI connector type

Daniel Vetter daniel at ffwll.ch
Fri Jul 19 12:39:23 UTC 2019


On Fri, Jul 19, 2019 at 2:34 PM Noralf Trønnes <noralf at tronnes.org> wrote:
>
>
>
> Den 19.07.2019 11.17, skrev Daniel Vetter:
> > On Wed, Jul 17, 2019 at 01:58:08PM +0200, Noralf Trønnes wrote:
> >> tinydrm drivers announce DRM_MODE_CONNECTOR_VIRTUAL for its SPI drivers.
> >> Stop lying and add a SPI connector type
> >>
> >> Cc: David Lechner <david at lechnology.com>
> >> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
> >
> > Note this will break X (and probably a pile of others), which is why we
> > tried hard to avoid adding new connector types. Or did this all get fixed
> > by now?
>
> X lists it as Unknown:
>
> X.Org X Server 1.19.2
> Release Date: 2017-03-02
> <...>
> [ 53523.905] (II) modeset(0): Output Unknown19-1 has no monitor section
> [ 53523.908] (II) modeset(0): EDID for output Unknown19-1
> [ 53523.910] (II) modeset(0): Printing probed modes for output Unknown19-1
> [ 53523.911] (II) modeset(0): Modeline "320x240"x0.0    0.00  320 320
> 320 320  240 240 240 240 (0.0 kHz eP)
> [ 53523.911] (II) modeset(0): Output Unknown19-1 connected
> [ 53523.912] (II) modeset(0): Using exact sizes for initial modes
> [ 53523.912] (II) modeset(0): Output Unknown19-1 using initial mode
> 320x240 +0+0
>
> Looking at the weston source it will list it as UNNAMED.
>
> This is not important for me to change, I'm just ticking off todo's.
> I won't chase down userspace to fix this up, but I assume that it will
> trickle in eventually.
>
> I can drop this if you're not to happy about it.

I'm totally fine with UNNAMED/unknown, that's not worse or better than
virtual. I was only worried about userspace blowing up because e.g.
array deref for an element that doesn't exist. If you add the above to
the commit message this is imo all fine.

Also maybe split out the addition of the core bits into a separate
prep patch would be good.
-Daniel

>
> Noralf.
>
> > -Daniel
> >
> >> ---
> >>  drivers/gpu/drm/drm_connector.c    | 1 +
> >>  drivers/gpu/drm/tinydrm/mipi-dbi.c | 3 +--
> >>  drivers/gpu/drm/tinydrm/repaper.c  | 2 +-
> >>  drivers/gpu/drm/tinydrm/st7586.c   | 2 +-
> >>  include/uapi/drm/drm_mode.h        | 1 +
> >>  5 files changed, 5 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> >> index 068d4b05f1be..cbb548b3708f 100644
> >> --- a/drivers/gpu/drm/drm_connector.c
> >> +++ b/drivers/gpu/drm/drm_connector.c
> >> @@ -92,6 +92,7 @@ static struct drm_conn_prop_enum_list drm_connector_enum_list[] = {
> >>      { DRM_MODE_CONNECTOR_DSI, "DSI" },
> >>      { DRM_MODE_CONNECTOR_DPI, "DPI" },
> >>      { DRM_MODE_CONNECTOR_WRITEBACK, "Writeback" },
> >> +    { DRM_MODE_CONNECTOR_SPI, "SPI" },
> >>  };
> >>
> >>  void drm_connector_ida_init(void)
> >> diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> >> index ca9da654fc6f..791a0b43beef 100644
> >> --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c
> >> +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> >> @@ -445,9 +445,8 @@ int mipi_dbi_init(struct mipi_dbi *mipi,
> >>      if (!mipi->tx_buf)
> >>              return -ENOMEM;
> >>
> >> -    /* TODO: Maybe add DRM_MODE_CONNECTOR_SPI */
> >>      ret = tinydrm_display_pipe_init(drm, &mipi->pipe, funcs,
> >> -                                    DRM_MODE_CONNECTOR_VIRTUAL,
> >> +                                    DRM_MODE_CONNECTOR_SPI,
> >>                                      mipi_dbi_formats,
> >>                                      ARRAY_SIZE(mipi_dbi_formats), mode,
> >>                                      rotation);
> >> diff --git a/drivers/gpu/drm/tinydrm/repaper.c b/drivers/gpu/drm/tinydrm/repaper.c
> >> index 85acfccefcdb..40afa66107e5 100644
> >> --- a/drivers/gpu/drm/tinydrm/repaper.c
> >> +++ b/drivers/gpu/drm/tinydrm/repaper.c
> >> @@ -1110,7 +1110,7 @@ static int repaper_probe(struct spi_device *spi)
> >>              return -ENOMEM;
> >>
> >>      ret = tinydrm_display_pipe_init(drm, &epd->pipe, &repaper_pipe_funcs,
> >> -                                    DRM_MODE_CONNECTOR_VIRTUAL,
> >> +                                    DRM_MODE_CONNECTOR_SPI,
> >>                                      repaper_formats,
> >>                                      ARRAY_SIZE(repaper_formats), mode, 0);
> >>      if (ret)
> >> diff --git a/drivers/gpu/drm/tinydrm/st7586.c b/drivers/gpu/drm/tinydrm/st7586.c
> >> index 204face7b311..7ae39004aa88 100644
> >> --- a/drivers/gpu/drm/tinydrm/st7586.c
> >> +++ b/drivers/gpu/drm/tinydrm/st7586.c
> >> @@ -384,7 +384,7 @@ static int st7586_probe(struct spi_device *spi)
> >>      mipi->swap_bytes = true;
> >>
> >>      ret = tinydrm_display_pipe_init(drm, &mipi->pipe, &st7586_pipe_funcs,
> >> -                                    DRM_MODE_CONNECTOR_VIRTUAL,
> >> +                                    DRM_MODE_CONNECTOR_SPI,
> >>                                      st7586_formats, ARRAY_SIZE(st7586_formats),
> >>                                      &st7586_mode, rotation);
> >>      if (ret)
> >> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> >> index 5ab331e5dc23..735c8cfdaaa1 100644
> >> --- a/include/uapi/drm/drm_mode.h
> >> +++ b/include/uapi/drm/drm_mode.h
> >> @@ -361,6 +361,7 @@ enum drm_mode_subconnector {
> >>  #define DRM_MODE_CONNECTOR_DSI              16
> >>  #define DRM_MODE_CONNECTOR_DPI              17
> >>  #define DRM_MODE_CONNECTOR_WRITEBACK        18
> >> +#define DRM_MODE_CONNECTOR_SPI              19
> >>
> >>  struct drm_mode_get_connector {
> >>
> >> --
> >> 2.20.1
> >>
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list