netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Phylib changes
@ 2013-05-31  6:08 Michal Simek
  2013-05-31  6:08 ` [PATCH v2 1/5] phy: Clean coding style in vitesse phy Michal Simek
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, Stephen Hemminger, Anirudha Sarangi,
	netdev, Christian Hohnstaedt, David S. Miller, Steven Wang,
	Lars-Peter Clausen, Rick Hoover

[-- Attachment #1: Type: text/plain, Size: 695 bytes --]

We have these changes in our tree for quite a long
time and I would like to ask you for review.
All phys are used on xilinx zynq boards.

Thanks,
Michal

v2: Resent these phy patches without emaclite changes

Changes in v2:
- None

Michal Simek (5):
  phy: Clean coding style in vitesse phy
  phy: Add Vitesse 8211 phy ID
  phy: Use macros instead of hardcoded values in marvell phy driver
  phy: Add Marvell 88E1116R phy ID
  phy: Add Marvell 88E1510 phy ID

 drivers/net/phy/marvell.c   | 108 ++++++++++++++++++++++++++++++++++++++++----
 drivers/net/phy/vitesse.c   |  38 +++++++++++-----
 include/linux/marvell_phy.h |   2 +
 3 files changed, 127 insertions(+), 21 deletions(-)

--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* [PATCH v2 1/5] phy: Clean coding style in vitesse phy
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
@ 2013-05-31  6:08 ` Michal Simek
  2013-05-31  6:08 ` [PATCH v2 2/5] phy: Add Vitesse 8211 phy ID Michal Simek
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, David S. Miller, Stephen Hemminger,
	Christian Hohnstaedt, netdev

[-- Attachment #1: Type: text/plain, Size: 2203 bytes --]

- Remove trailing white space
- Remove spaces before tag
- Fix comments

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v2: None

 drivers/net/phy/vitesse.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/vitesse.c
index 3492b53..d6e988f 100644
--- a/drivers/net/phy/vitesse.c
+++ b/drivers/net/phy/vitesse.c
@@ -44,12 +44,12 @@
 #define MII_VSC8244_ISTAT_DUPLEX	0x1000

 /* Vitesse Auxiliary Control/Status Register */
-#define MII_VSC8244_AUX_CONSTAT        	0x1c
-#define MII_VSC8244_AUXCONSTAT_INIT    	0x0000
-#define MII_VSC8244_AUXCONSTAT_DUPLEX  	0x0020
-#define MII_VSC8244_AUXCONSTAT_SPEED   	0x0018
-#define MII_VSC8244_AUXCONSTAT_GBIT    	0x0010
-#define MII_VSC8244_AUXCONSTAT_100     	0x0008
+#define MII_VSC8244_AUX_CONSTAT		0x1c
+#define MII_VSC8244_AUXCONSTAT_INIT	0x0000
+#define MII_VSC8244_AUXCONSTAT_DUPLEX	0x0020
+#define MII_VSC8244_AUXCONSTAT_SPEED	0x0018
+#define MII_VSC8244_AUXCONSTAT_GBIT	0x0010
+#define MII_VSC8244_AUXCONSTAT_100	0x0008

 #define MII_VSC8221_AUXCONSTAT_INIT	0x0004 /* need to set this bit? */
 #define MII_VSC8221_AUXCONSTAT_RESERVED	0x0004
@@ -100,9 +100,8 @@ static int vsc824x_config_init(struct phy_device *phydev)
 static int vsc824x_ack_interrupt(struct phy_device *phydev)
 {
 	int err = 0;
-	
-	/*
-	 * Don't bother to ACK the interrupts if interrupts
+
+	/* Don't bother to ACK the interrupts if interrupts
 	 * are disabled.  The 824x cannot clear the interrupts
 	 * if they are disabled.
 	 */
@@ -122,8 +121,7 @@ static int vsc82xx_config_intr(struct phy_device *phydev)
 				MII_VSC8244_IMASK_MASK :
 				MII_VSC8221_IMASK_MASK);
 	else {
-		/*
-		 * The Vitesse PHY cannot clear the interrupt
+		/* The Vitesse PHY cannot clear the interrupt
 		 * once it has disabled them, so we clear them first
 		 */
 		err = phy_read(phydev, MII_VSC8244_ISTAT);
@@ -146,7 +144,8 @@ static int vsc8221_config_init(struct phy_device *phydev)
 	return err;

 	/* Perhaps we should set EXT_CON1 based on the interface?
-	   Options are 802.3Z SerDes or SGMII */
+	 * Options are 802.3Z SerDes or SGMII
+	 */
 }

 /* Vitesse 824x */
--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* [PATCH v2 2/5] phy: Add Vitesse 8211 phy ID
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
  2013-05-31  6:08 ` [PATCH v2 1/5] phy: Clean coding style in vitesse phy Michal Simek
@ 2013-05-31  6:08 ` Michal Simek
  2013-05-31  6:08 ` [PATCH v2 3/5] phy: Use macros instead of hardcoded values in marvell phy driver Michal Simek
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, David S. Miller, Stephen Hemminger,
	Christian Hohnstaedt, netdev

[-- Attachment #1: Type: text/plain, Size: 1452 bytes --]

Phy is compatible with Vitesse 8221.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v2: None

 drivers/net/phy/vitesse.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/vitesse.c
index d6e988f..69b482b 100644
--- a/drivers/net/phy/vitesse.c
+++ b/drivers/net/phy/vitesse.c
@@ -56,6 +56,7 @@

 #define PHY_ID_VSC8244			0x000fc6c0
 #define PHY_ID_VSC8221			0x000fc550
+#define PHY_ID_VSC8211			0x000fc4b0

 MODULE_DESCRIPTION("Vitesse PHY driver");
 MODULE_AUTHOR("Kriston Carson");
@@ -175,6 +176,19 @@ static struct phy_driver vsc82xx_driver[] = {
 	.ack_interrupt	= &vsc824x_ack_interrupt,
 	.config_intr	= &vsc82xx_config_intr,
 	.driver		= { .owner = THIS_MODULE,},
+}, {
+	/* Vitesse 8211 */
+	.phy_id		= PHY_ID_VSC8211,
+	.phy_id_mask	= 0x000ffff0,
+	.name		= "Vitesse VSC8211",
+	.features	= PHY_GBIT_FEATURES,
+	.flags		= PHY_HAS_INTERRUPT,
+	.config_init	= &vsc8221_config_init,
+	.config_aneg	= &genphy_config_aneg,
+	.read_status	= &genphy_read_status,
+	.ack_interrupt	= &vsc824x_ack_interrupt,
+	.config_intr	= &vsc82xx_config_intr,
+	.driver		= { .owner = THIS_MODULE,},
 } };

 static int __init vsc82xx_init(void)
@@ -195,6 +209,7 @@ module_exit(vsc82xx_exit);
 static struct mdio_device_id __maybe_unused vitesse_tbl[] = {
 	{ PHY_ID_VSC8244, 0x000fffc0 },
 	{ PHY_ID_VSC8221, 0x000ffff0 },
+	{ PHY_ID_VSC8211, 0x000ffff0 },
 	{ }
 };

--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* [PATCH v2 3/5] phy: Use macros instead of hardcoded values in marvell phy driver
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
  2013-05-31  6:08 ` [PATCH v2 1/5] phy: Clean coding style in vitesse phy Michal Simek
  2013-05-31  6:08 ` [PATCH v2 2/5] phy: Add Vitesse 8211 phy ID Michal Simek
@ 2013-05-31  6:08 ` Michal Simek
  2013-05-31  6:08 ` [PATCH v2 4/5] phy: Add Marvell 88E1116R phy ID Michal Simek
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, David S. Miller, Lars-Peter Clausen,
	Christian Hohnstaedt, Rick Hoover, netdev

[-- Attachment #1: Type: text/plain, Size: 1323 bytes --]

Use macros from linux/marvell_phy.h instead of duplicate
magic phy ID in the driver.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v2: None

 drivers/net/phy/marvell.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 202fe1f..371353c 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -958,15 +958,15 @@ module_init(marvell_init);
 module_exit(marvell_exit);

 static struct mdio_device_id __maybe_unused marvell_tbl[] = {
-	{ 0x01410c60, 0xfffffff0 },
-	{ 0x01410c90, 0xfffffff0 },
-	{ 0x01410cc0, 0xfffffff0 },
-	{ 0x01410e10, 0xfffffff0 },
-	{ 0x01410cb0, 0xfffffff0 },
-	{ 0x01410cd0, 0xfffffff0 },
-	{ 0x01410e50, 0xfffffff0 },
-	{ 0x01410e30, 0xfffffff0 },
-	{ 0x01410e90, 0xfffffff0 },
+	{ MARVELL_PHY_ID_88E1101, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1112, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
 	{ }
 };

--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* [PATCH v2 4/5] phy: Add Marvell 88E1116R phy ID
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
                   ` (2 preceding siblings ...)
  2013-05-31  6:08 ` [PATCH v2 3/5] phy: Use macros instead of hardcoded values in marvell phy driver Michal Simek
@ 2013-05-31  6:08 ` Michal Simek
  2013-05-31  6:08 ` [PATCH v2 5/5] phy: Add Marvell 88E1510 " Michal Simek
  2013-05-31  7:48 ` [PATCH v2 0/5] Phylib changes David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, David S. Miller, Lars-Peter Clausen,
	Christian Hohnstaedt, Rick Hoover, Anirudha Sarangi, Steven Wang,
	netdev

[-- Attachment #1: Type: text/plain, Size: 3439 bytes --]

This phy is on Xilinx ZC702 zynq development board.

Signed-off-by: Anirudha Sarangi <anirudh@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v2: None

 drivers/net/phy/marvell.c   | 65 +++++++++++++++++++++++++++++++++++++++++++++
 include/linux/marvell_phy.h |  1 +
 2 files changed, 66 insertions(+)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 371353c..df5a9f6 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -116,6 +116,8 @@
 #define MII_M1011_PHY_STATUS_RESOLVED	0x0800
 #define MII_M1011_PHY_STATUS_LINK	0x0400

+#define MII_M1116R_CONTROL_REG_MAC	21
+

 MODULE_DESCRIPTION("Marvell PHY driver");
 MODULE_AUTHOR("Andy Fleming");
@@ -372,6 +374,55 @@ static int m88e1318_config_aneg(struct phy_device *phydev)
 	return m88e1121_config_aneg(phydev);
 }

+static int m88e1116r_config_init(struct phy_device *phydev)
+{
+	int temp;
+	int err;
+
+	temp = phy_read(phydev, MII_BMCR);
+	temp |= BMCR_RESET;
+	err = phy_write(phydev, MII_BMCR, temp);
+	if (err < 0)
+		return err;
+
+	mdelay(500);
+
+	err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0);
+	if (err < 0)
+		return err;
+
+	temp = phy_read(phydev, MII_M1011_PHY_SCR);
+	temp |= (7 << 12);	/* max number of gigabit attempts */
+	temp |= (1 << 11);	/* enable downshift */
+	temp |= MII_M1011_PHY_SCR_AUTO_CROSS;
+	err = phy_write(phydev, MII_M1011_PHY_SCR, temp);
+	if (err < 0)
+		return err;
+
+	err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 2);
+	if (err < 0)
+		return err;
+	temp = phy_read(phydev, MII_M1116R_CONTROL_REG_MAC);
+	temp |= (1 << 5);
+	temp |= (1 << 4);
+	err = phy_write(phydev, MII_M1116R_CONTROL_REG_MAC, temp);
+	if (err < 0)
+		return err;
+	err = phy_write(phydev, MII_MARVELL_PHY_PAGE, 0);
+	if (err < 0)
+		return err;
+
+	temp = phy_read(phydev, MII_BMCR);
+	temp |= BMCR_RESET;
+	err = phy_write(phydev, MII_BMCR, temp);
+	if (err < 0)
+		return err;
+
+	mdelay(500);
+
+	return 0;
+}
+
 static int m88e1111_config_init(struct phy_device *phydev)
 {
 	int err;
@@ -940,6 +991,19 @@ static struct phy_driver marvell_drivers[] = {
 		.config_intr = &marvell_config_intr,
 		.driver = { .owner = THIS_MODULE },
 	},
+	{
+		.phy_id = MARVELL_PHY_ID_88E1116R,
+		.phy_id_mask = MARVELL_PHY_ID_MASK,
+		.name = "Marvell 88E1116R",
+		.features = PHY_GBIT_FEATURES,
+		.flags = PHY_HAS_INTERRUPT,
+		.config_init = &m88e1116r_config_init,
+		.config_aneg = &genphy_config_aneg,
+		.read_status = &genphy_read_status,
+		.ack_interrupt = &marvell_ack_interrupt,
+		.config_intr = &marvell_config_intr,
+		.driver = { .owner = THIS_MODULE },
+	},
 };

 static int __init marvell_init(void)
@@ -967,6 +1031,7 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
 	{ MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
 	{ }
 };

diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index dd3c34e..ec41025 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -14,6 +14,7 @@
 #define MARVELL_PHY_ID_88E1149R		0x01410e50
 #define MARVELL_PHY_ID_88E1240		0x01410e30
 #define MARVELL_PHY_ID_88E1318S		0x01410e90
+#define MARVELL_PHY_ID_88E1116R		0x01410e40

 /* struct phy_device dev_flags definitions */
 #define MARVELL_PHY_M1145_FLAGS_RESISTANCE	0x00000001
--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* [PATCH v2 5/5] phy: Add Marvell 88E1510 phy ID
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
                   ` (3 preceding siblings ...)
  2013-05-31  6:08 ` [PATCH v2 4/5] phy: Add Marvell 88E1116R phy ID Michal Simek
@ 2013-05-31  6:08 ` Michal Simek
  2013-05-31  7:48 ` [PATCH v2 0/5] Phylib changes David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Michal Simek @ 2013-05-31  6:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Michal Simek, Michal Simek, David S. Miller, Lars-Peter Clausen,
	Christian Hohnstaedt, Rick Hoover, Anirudha Sarangi, Steven Wang,
	netdev

[-- Attachment #1: Type: text/plain, Size: 2365 bytes --]

Add support for this new phy ID.

Signed-off-by: Rick Hoover <RHoover@digilentinc.com>
Signed-off-by: Steven Wang <steven.wang@digilentinc.com>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v2:
- None

 drivers/net/phy/marvell.c   | 25 +++++++++++++++++++++++++
 include/linux/marvell_phy.h |  1 +
 2 files changed, 26 insertions(+)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index df5a9f6..2e91477 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -374,6 +374,17 @@ static int m88e1318_config_aneg(struct phy_device *phydev)
 	return m88e1121_config_aneg(phydev);
 }

+static int m88e1510_config_aneg(struct phy_device *phydev)
+{
+	int err;
+
+	err = m88e1318_config_aneg(phydev);
+	if (err < 0)
+		return err;
+
+	return marvell_of_reg_init(phydev);
+}
+
 static int m88e1116r_config_init(struct phy_device *phydev)
 {
 	int temp;
@@ -1004,6 +1015,19 @@ static struct phy_driver marvell_drivers[] = {
 		.config_intr = &marvell_config_intr,
 		.driver = { .owner = THIS_MODULE },
 	},
+	{
+		.phy_id = MARVELL_PHY_ID_88E1510,
+		.phy_id_mask = MARVELL_PHY_ID_MASK,
+		.name = "Marvell 88E1510",
+		.features = PHY_GBIT_FEATURES,
+		.flags = PHY_HAS_INTERRUPT,
+		.config_aneg = &m88e1510_config_aneg,
+		.read_status = &marvell_read_status,
+		.ack_interrupt = &marvell_ack_interrupt,
+		.config_intr = &marvell_config_intr,
+		.did_interrupt = &m88e1121_did_interrupt,
+		.driver = { .owner = THIS_MODULE },
+	},
 };

 static int __init marvell_init(void)
@@ -1032,6 +1056,7 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
 	{ MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
+	{ MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK },
 	{ }
 };

diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index ec41025..8e9a029 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -15,6 +15,7 @@
 #define MARVELL_PHY_ID_88E1240		0x01410e30
 #define MARVELL_PHY_ID_88E1318S		0x01410e90
 #define MARVELL_PHY_ID_88E1116R		0x01410e40
+#define MARVELL_PHY_ID_88E1510		0x01410dd0

 /* struct phy_device dev_flags definitions */
 #define MARVELL_PHY_M1145_FLAGS_RESISTANCE	0x00000001
--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: [PATCH v2 0/5] Phylib changes
  2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
                   ` (4 preceding siblings ...)
  2013-05-31  6:08 ` [PATCH v2 5/5] phy: Add Marvell 88E1510 " Michal Simek
@ 2013-05-31  7:48 ` David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2013-05-31  7:48 UTC (permalink / raw)
  To: michal.simek
  Cc: linux-kernel, monstr, stephen, anirudh, netdev, chohnstaedt,
	steven.wang, lars, RHoover

From: Michal Simek <michal.simek@xilinx.com>
Date: Fri, 31 May 2013 08:08:22 +0200

> We have these changes in our tree for quite a long
> time and I would like to ask you for review.
> All phys are used on xilinx zynq boards.

All applied to net-next, thanks.

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

end of thread, other threads:[~2013-05-31  7:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-31  6:08 [PATCH v2 0/5] Phylib changes Michal Simek
2013-05-31  6:08 ` [PATCH v2 1/5] phy: Clean coding style in vitesse phy Michal Simek
2013-05-31  6:08 ` [PATCH v2 2/5] phy: Add Vitesse 8211 phy ID Michal Simek
2013-05-31  6:08 ` [PATCH v2 3/5] phy: Use macros instead of hardcoded values in marvell phy driver Michal Simek
2013-05-31  6:08 ` [PATCH v2 4/5] phy: Add Marvell 88E1116R phy ID Michal Simek
2013-05-31  6:08 ` [PATCH v2 5/5] phy: Add Marvell 88E1510 " Michal Simek
2013-05-31  7:48 ` [PATCH v2 0/5] Phylib changes David Miller

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).