linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support
@ 2019-09-17 16:12 Adam Ford
  2019-09-17 16:12 ` [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel Adam Ford
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Adam Ford @ 2019-09-17 16:12 UTC (permalink / raw)
  To: dri-devel
  Cc: linux-omap, adam.ford, Adam Ford, Thierry Reding, Sam Ravnborg,
	David Airlie, Daniel Vetter, Rob Herring, Mark Rutland,
	devicetree, linux-kernel

Previously, there was an omap panel-dpi driver that would
read generic timings from the device tree and set the display
timing accordingly.  This driver was removed so the screen
no longer functions.  This patch modifies the panel-simple
file to setup the timings to the same values previously used.

Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")

Signed-off-by: Adam Ford <aford173@gmail.com>

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 5a93c4edf1e4..c86c30f3a8a1 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1900,6 +1900,40 @@ static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
 	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
 };
 
+static const struct drm_display_mode logicpd_type_28_mode = {
+	.clock = 9000,
+	.hdisplay = 480,
+	.hsync_start = 480 + 3,
+	.hsync_end = 480 + 3 + 42,
+	.htotal = 480 + 3 + 42 + 2,
+
+	.vdisplay = 272,
+	.vsync_start = 272 + 2,
+	.vsync_end = 272 + 2 + 11,
+	.vtotal = 272 + 2 + 11 + 3,
+	.vrefresh = 60,
+	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct panel_desc logicpd_type_28 = {
+	.modes = &logicpd_type_28_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width = 105,
+		.height = 67,
+	},
+	.delay = {
+		.prepare = 200,
+		.enable = 200,
+		.unprepare = 200,
+		.disable = 200,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
+		     DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
+};
+
 static const struct panel_desc mitsubishi_aa070mc01 = {
 	.modes = &mitsubishi_aa070mc01_mode,
 	.num_modes = 1,
@@ -2948,6 +2982,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "lg,lp129qe",
 		.data = &lg_lp129qe,
+	}, {
+		.compatible = "logicpd,type28",
+		.data = &logicpd_type_28,
 	}, {
 		.compatible = "mitsubishi,aa070mc01-ca1",
 		.data = &mitsubishi_aa070mc01,
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel
  2019-09-17 16:12 [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Adam Ford
@ 2019-09-17 16:12 ` Adam Ford
  2019-09-21 19:07   ` Sam Ravnborg
  2019-09-17 16:12 ` [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel Adam Ford
  2019-09-21 19:07 ` [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Sam Ravnborg
  2 siblings, 1 reply; 8+ messages in thread
From: Adam Ford @ 2019-09-17 16:12 UTC (permalink / raw)
  To: dri-devel
  Cc: linux-omap, adam.ford, Adam Ford, Thierry Reding, Sam Ravnborg,
	David Airlie, Daniel Vetter, Rob Herring, Mark Rutland,
	devicetree, linux-kernel

This patch adds documentation of device tree bindings for the WVGA panel
Logic PD Type 28 display.

Signed-off-by: Adam Ford <aford173@gmail.com>

diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
new file mode 100644
index 000000000000..829fc5210e06
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
@@ -0,0 +1,26 @@
+Logic PD Type 28 4.3" WQVGA TFT LCD panel
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
+
+Required properties:
+- compatible: should be "logicpd,type28"
+
+Optional properties:
+- power-supply: regulator to provide the supply voltage
+- enable-gpios: GPIO pin to enable or disable the panel
+- backlight: phandle of the backlight device attached to the panel
+
+Optional nodes:
+- Video port for RGB input.
+
+Example:
+	lcd0: display {
+		compatible = "logicpd,type28";
+		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
+		port {
+			lcd_in: endpoint {
+				remote-endpoint = <&dpi_out>;
+			};
+		};
+	};
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
  2019-09-17 16:12 [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Adam Ford
  2019-09-17 16:12 ` [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel Adam Ford
@ 2019-09-17 16:12 ` Adam Ford
  2019-09-21 19:09   ` Sam Ravnborg
  2019-09-21 19:07 ` [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Sam Ravnborg
  2 siblings, 1 reply; 8+ messages in thread
From: Adam Ford @ 2019-09-17 16:12 UTC (permalink / raw)
  To: dri-devel
  Cc: linux-omap, adam.ford, Adam Ford, Thierry Reding, Sam Ravnborg,
	David Airlie, Daniel Vetter, Rob Herring, Mark Rutland,
	devicetree, linux-kernel

With the removal of the panel-dpi from the omap drivers, the
LCD no longer works.  This patch points the device tree to
a newly created panel named "logicpd,type28"

Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")

Signed-off-by: Adam Ford <aford173@gmail.com>

diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
index 07ac99b9cda6..00c426bd51a0 100644
--- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
+++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
@@ -11,22 +11,8 @@
 #include "logicpd-torpedo-37xx-devkit.dts"
 
 &lcd0 {
-
+	/* This isn't the exact LCD, but the timings meet spec */
+	/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
+	compatible = "logicpd,type28";
 	label = "28";
-
-	panel-timing {
-		clock-frequency = <9000000>;
-		hactive = <480>;
-		vactive = <272>;
-		hfront-porch = <3>;
-		hback-porch = <2>;
-		hsync-len = <42>;
-		vback-porch = <3>;
-		vfront-porch = <2>;
-		vsync-len = <11>;
-		hsync-active = <1>;
-		vsync-active = <1>;
-		de-active = <1>;
-		pixelclk-active = <0>;
-	};
 };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel
  2019-09-17 16:12 ` [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel Adam Ford
@ 2019-09-21 19:07   ` Sam Ravnborg
  2019-09-23 13:31     ` Adam Ford
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2019-09-21 19:07 UTC (permalink / raw)
  To: Adam Ford
  Cc: dri-devel, linux-omap, adam.ford, Thierry Reding, David Airlie,
	Daniel Vetter, Rob Herring, Mark Rutland, devicetree,
	linux-kernel

Hi Adam.

Good with even more panels.
But for new bindings please use meta-schema (.yaml) format.
This is what we use for new bindings as it allows better
validation.

	Sam

On Tue, Sep 17, 2019 at 11:12:12AM -0500, Adam Ford wrote:
> This patch adds documentation of device tree bindings for the WVGA panel
> Logic PD Type 28 display.
> 
> Signed-off-by: Adam Ford <aford173@gmail.com>
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
> new file mode 100644
> index 000000000000..829fc5210e06
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
> @@ -0,0 +1,26 @@
> +Logic PD Type 28 4.3" WQVGA TFT LCD panel
> +
> +This binding is compatible with the simple-panel binding, which is specified
> +in simple-panel.txt in this directory.
> +
> +Required properties:
> +- compatible: should be "logicpd,type28"
> +
> +Optional properties:
> +- power-supply: regulator to provide the supply voltage
> +- enable-gpios: GPIO pin to enable or disable the panel
> +- backlight: phandle of the backlight device attached to the panel
Is it correct that these are optional for the descrivbed panel?

> +
> +Optional nodes:
> +- Video port for RGB input.
> +
> +Example:
> +	lcd0: display {
> +		compatible = "logicpd,type28";
> +		enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
> +		port {
> +			lcd_in: endpoint {
> +				remote-endpoint = <&dpi_out>;
> +			};
> +		};
> +	};
> -- 
> 2.17.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support
  2019-09-17 16:12 [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Adam Ford
  2019-09-17 16:12 ` [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel Adam Ford
  2019-09-17 16:12 ` [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel Adam Ford
@ 2019-09-21 19:07 ` Sam Ravnborg
  2 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2019-09-21 19:07 UTC (permalink / raw)
  To: Adam Ford
  Cc: dri-devel, linux-omap, adam.ford, Thierry Reding, David Airlie,
	Daniel Vetter, Rob Herring, Mark Rutland, devicetree,
	linux-kernel

Hi Adam.

On Tue, Sep 17, 2019 at 11:12:11AM -0500, Adam Ford wrote:
> Previously, there was an omap panel-dpi driver that would
> read generic timings from the device tree and set the display
> timing accordingly.  This driver was removed so the screen
> no longer functions.  This patch modifies the panel-simple
> file to setup the timings to the same values previously used.
> 
> Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")
> 
> Signed-off-by: Adam Ford <aford173@gmail.com>

Patch looks good.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> 
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 5a93c4edf1e4..c86c30f3a8a1 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -1900,6 +1900,40 @@ static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
>  	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>  };
>  
> +static const struct drm_display_mode logicpd_type_28_mode = {
> +	.clock = 9000,
> +	.hdisplay = 480,
> +	.hsync_start = 480 + 3,
> +	.hsync_end = 480 + 3 + 42,
> +	.htotal = 480 + 3 + 42 + 2,
> +
> +	.vdisplay = 272,
> +	.vsync_start = 272 + 2,
> +	.vsync_end = 272 + 2 + 11,
> +	.vtotal = 272 + 2 + 11 + 3,
> +	.vrefresh = 60,
> +	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
> +};
> +
> +static const struct panel_desc logicpd_type_28 = {
> +	.modes = &logicpd_type_28_mode,
> +	.num_modes = 1,
> +	.bpc = 8,
> +	.size = {
> +		.width = 105,
> +		.height = 67,
> +	},
> +	.delay = {
> +		.prepare = 200,
> +		.enable = 200,
> +		.unprepare = 200,
> +		.disable = 200,
> +	},
> +	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> +	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
> +		     DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
> +};
> +
>  static const struct panel_desc mitsubishi_aa070mc01 = {
>  	.modes = &mitsubishi_aa070mc01_mode,
>  	.num_modes = 1,
> @@ -2948,6 +2982,9 @@ static const struct of_device_id platform_of_match[] = {
>  	}, {
>  		.compatible = "lg,lp129qe",
>  		.data = &lg_lp129qe,
> +	}, {
> +		.compatible = "logicpd,type28",
> +		.data = &logicpd_type_28,
>  	}, {
>  		.compatible = "mitsubishi,aa070mc01-ca1",
>  		.data = &mitsubishi_aa070mc01,
> -- 
> 2.17.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
  2019-09-17 16:12 ` [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel Adam Ford
@ 2019-09-21 19:09   ` Sam Ravnborg
  2019-09-23 13:32     ` Adam Ford
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2019-09-21 19:09 UTC (permalink / raw)
  To: Adam Ford
  Cc: dri-devel, linux-omap, adam.ford, Thierry Reding, David Airlie,
	Daniel Vetter, Rob Herring, Mark Rutland, devicetree,
	linux-kernel

Hi Adam.

On Tue, Sep 17, 2019 at 11:12:13AM -0500, Adam Ford wrote:
> With the removal of the panel-dpi from the omap drivers, the
> LCD no longer works.  This patch points the device tree to
> a newly created panel named "logicpd,type28"
> 
> Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")
> 
> Signed-off-by: Adam Ford <aford173@gmail.com>
Looks good.
One nit below.

With this addressed:

Acked-by: Sam Ravnborg <sam@ravnborg.org>

	Sam
> 
> diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> index 07ac99b9cda6..00c426bd51a0 100644
> --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> @@ -11,22 +11,8 @@
>  #include "logicpd-torpedo-37xx-devkit.dts"
>  
>  &lcd0 {
> -
> +	/* This isn't the exact LCD, but the timings meet spec */
> +	/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
> +	compatible = "logicpd,type28";
>  	label = "28";
You left this property - but us it documented and what use has it?

> -
> -	panel-timing {
> -		clock-frequency = <9000000>;
> -		hactive = <480>;
> -		vactive = <272>;
> -		hfront-porch = <3>;
> -		hback-porch = <2>;
> -		hsync-len = <42>;
> -		vback-porch = <3>;
> -		vfront-porch = <2>;
> -		vsync-len = <11>;
> -		hsync-active = <1>;
> -		vsync-active = <1>;
> -		de-active = <1>;
> -		pixelclk-active = <0>;
> -	};
>  };
> -- 
> 2.17.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel
  2019-09-21 19:07   ` Sam Ravnborg
@ 2019-09-23 13:31     ` Adam Ford
  0 siblings, 0 replies; 8+ messages in thread
From: Adam Ford @ 2019-09-23 13:31 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: dri-devel, Linux-OMAP, Adam Ford, Thierry Reding, David Airlie,
	Daniel Vetter, Rob Herring, Mark Rutland, devicetree,
	Linux Kernel Mailing List

On Sat, Sep 21, 2019 at 2:07 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Hi Adam.
>
> Good with even more panels.
> But for new bindings please use meta-schema (.yaml) format.
> This is what we use for new bindings as it allows better
> validation.

I don't know that syntax, but I'll try to piece together a few
different examples to come up with something.  I should have a V2
today.

adam
>
>         Sam
>
> On Tue, Sep 17, 2019 at 11:12:12AM -0500, Adam Ford wrote:
> > This patch adds documentation of device tree bindings for the WVGA panel
> > Logic PD Type 28 display.
> >
> > Signed-off-by: Adam Ford <aford173@gmail.com>
> >
> > diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
> > new file mode 100644
> > index 000000000000..829fc5210e06
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt
> > @@ -0,0 +1,26 @@
> > +Logic PD Type 28 4.3" WQVGA TFT LCD panel
> > +
> > +This binding is compatible with the simple-panel binding, which is specified
> > +in simple-panel.txt in this directory.
> > +
> > +Required properties:
> > +- compatible: should be "logicpd,type28"
> > +
> > +Optional properties:
> > +- power-supply: regulator to provide the supply voltage
> > +- enable-gpios: GPIO pin to enable or disable the panel
> > +- backlight: phandle of the backlight device attached to the panel
> Is it correct that these are optional for the descrivbed panel?
>
> > +
> > +Optional nodes:
> > +- Video port for RGB input.
> > +
> > +Example:
> > +     lcd0: display {
> > +             compatible = "logicpd,type28";
> > +             enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
> > +             port {
> > +                     lcd_in: endpoint {
> > +                             remote-endpoint = <&dpi_out>;
> > +                     };
> > +             };
> > +     };
> > --
> > 2.17.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
  2019-09-21 19:09   ` Sam Ravnborg
@ 2019-09-23 13:32     ` Adam Ford
  0 siblings, 0 replies; 8+ messages in thread
From: Adam Ford @ 2019-09-23 13:32 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: dri-devel, Linux-OMAP, Adam Ford, Thierry Reding, David Airlie,
	Daniel Vetter, Rob Herring, Mark Rutland, devicetree,
	Linux Kernel Mailing List

On Sat, Sep 21, 2019 at 2:09 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Hi Adam.
>
> On Tue, Sep 17, 2019 at 11:12:13AM -0500, Adam Ford wrote:
> > With the removal of the panel-dpi from the omap drivers, the
> > LCD no longer works.  This patch points the device tree to
> > a newly created panel named "logicpd,type28"
> >
> > Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")
> >
> > Signed-off-by: Adam Ford <aford173@gmail.com>
> Looks good.
> One nit below.
>
> With this addressed:
>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
>
>         Sam
> >
> > diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> > index 07ac99b9cda6..00c426bd51a0 100644
> > --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> > +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts
> > @@ -11,22 +11,8 @@
> >  #include "logicpd-torpedo-37xx-devkit.dts"
> >
> >  &lcd0 {
> > -
> > +     /* This isn't the exact LCD, but the timings meet spec */
> > +     /* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
> > +     compatible = "logicpd,type28";
> >       label = "28";
> You left this property - but us it documented and what use has it?

Good catch, I'll remove it and post a V2 today once I can figure out
the yaml stuff.

adam
>
> > -
> > -     panel-timing {
> > -             clock-frequency = <9000000>;
> > -             hactive = <480>;
> > -             vactive = <272>;
> > -             hfront-porch = <3>;
> > -             hback-porch = <2>;
> > -             hsync-len = <42>;
> > -             vback-porch = <3>;
> > -             vfront-porch = <2>;
> > -             vsync-len = <11>;
> > -             hsync-active = <1>;
> > -             vsync-active = <1>;
> > -             de-active = <1>;
> > -             pixelclk-active = <0>;
> > -     };
> >  };
> > --
> > 2.17.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-23 13:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-17 16:12 [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Adam Ford
2019-09-17 16:12 ` [PATCH 2/3] dt-bindings: Add Logic PD Type 28 display panel Adam Ford
2019-09-21 19:07   ` Sam Ravnborg
2019-09-23 13:31     ` Adam Ford
2019-09-17 16:12 ` [PATCH 3/3] ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel Adam Ford
2019-09-21 19:09   ` Sam Ravnborg
2019-09-23 13:32     ` Adam Ford
2019-09-21 19:07 ` [PATCH 1/3] drm/panel: simple: Add Logic PD Type 28 display support Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).