diff mbox series

[01/10] drm: Add SPI connector type

Message ID 20190717115817.30110-2-noralf@tronnes.org (mailing list archive)
State New, archived
Headers show
Series drm/tinydrm: Remove tinydrm.ko | expand

Commit Message

Noralf Trønnes July 17, 2019, 11:58 a.m. UTC
tinydrm drivers announce DRM_MODE_CONNECTOR_VIRTUAL for its SPI drivers.
Stop lying and add a SPI connector type

Cc: David Lechner <david@lechnology.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
 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(-)

Comments

David Lechner July 17, 2019, 7:24 p.m. UTC | #1
On 7/17/19 6:58 AM, 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@lechnology.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> ---

Acked-by: David Lechner <david@lechnology.com>
Daniel Vetter July 19, 2019, 9:17 a.m. UTC | #2
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@lechnology.com>
> Signed-off-by: Noralf Trønnes <noralf@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?
-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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Noralf Trønnes July 19, 2019, 12:34 p.m. UTC | #3
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@lechnology.com>
>> Signed-off-by: Noralf Trønnes <noralf@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.

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@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
Daniel Vetter July 19, 2019, 12:39 p.m. UTC | #4
On Fri, Jul 19, 2019 at 2:34 PM Noralf Trønnes <noralf@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@lechnology.com>
> >> Signed-off-by: Noralf Trønnes <noralf@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@lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >
diff mbox series

Patch

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 {