[PATCH] asix - Add support for LyconSys FiberGecko

STALE539d

9 messages, 6 authors, 2025-02-14 · open the first message on its own page

[PATCH] asix - Add support for LyconSys FiberGecko

From: David Hollis <hidden>
Date: 2014-08-07 16:00:08

Reported-by: Sven Kreiensen <redacted>
Signed-off-by: David Hollis <redacted>

David Hollis (1):
  asix - Add support for LyconSys FiberGecko

 drivers/net/usb/asix_devices.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

-- 
1.8.3.1

[PATCH] asix - Add support for LyconSys FiberGecko

From: David Hollis <hidden>
Date: 2014-08-07 16:00:08

Reported-by: Sven Kreiensen <redacted>
Signed-off-by: David Hollis <redacted>

---
 drivers/net/usb/asix_devices.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 5d19409..d09f2ea 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -1,6 +1,6 @@
 /*
  * ASIX AX8817X based USB 2.0 Ethernet Devices
- * Copyright (C) 2003-2006 David Hollis <dhollis@davehollis.com>
+ * Copyright (C) 2003-2014 David Hollis <dhollis@davehollis.com>
  * Copyright (C) 2005 Phil Chang <pchang23@sbcglobal.net>
  * Copyright (C) 2006 James Painter <jamie.painter@iname.com>
  * Copyright (c) 2002-2003 TiVo Inc.
@@ -648,6 +648,12 @@ static int ax88178_reset(struct usbnet *dev)
 	asix_sw_reset(dev, 0);
 	msleep(150);
 
+	/* LyconSys FiberGecko: Turn on PHY */
+	if (dev->driver_info->flags == 0x20061201) {
+		/* Power on Phy: set gpio2=high */
+		asix_write_gpio(dev, AX_GPIO_GPO2EN | AX_GPIO_GPO_2, 50);
+	}
+
 	asix_sw_reset(dev, AX_SWRESET_PRL | AX_SWRESET_IPPD);
 	msleep(150);
 
@@ -946,6 +952,19 @@ static const struct driver_info hg20f9_info = {
 	.data = FLAG_EEPROM_MAC,
 };
 
+static const struct driver_info lyconsys_fibergecko100_info = {
+	.description = "LyconSys FiberGecko 100 USB 2.0 to Ethernet Adapter",
+	.bind = ax88178_bind,
+	.status = asix_status,
+	.link_reset = ax88178_link_reset,
+	.reset = ax88178_link_reset,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR |
+		 FLAG_MULTI_PACKET,
+	.rx_fixup =	asix_rx_fixup_common,
+	.tx_fixup =	asix_tx_fixup,
+	.data = 0x20061201,
+};
+
 static const struct usb_device_id	products [] = {
 {
 	// Linksys USB200M
@@ -1091,6 +1110,10 @@ static const struct usb_device_id	products [] = {
 	 */
 	USB_DEVICE(0x066b, 0x20f9),
 	.driver_info = (unsigned long) &hg20f9_info,
+}, {
+	/* LyconSys FiberGecko 100 */
+	USB_DEVICE(0x1d2a, 0x0801),
+	.driver_info = (unsigned long) &lyconsys_fibergecko100_info,
 },
 	{ },		// END
 };
-- 
1.8.3.1

Re: [PATCH] asix - Add support for LyconSys FiberGecko

From: Sergei Shtylyov <hidden>
Date: 2014-08-07 16:33:57

Hello.

On 08/07/2014 07:53 PM, David Hollis wrote:
Reported-by: Sven Kreiensen <redacted>
Signed-off-by: David Hollis <redacted>
---
  drivers/net/usb/asix_devices.c | 25 ++++++++++++++++++++++++-
  1 file changed, 24 insertions(+), 1 deletion(-)
quoted hunk
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 5d19409..d09f2ea 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
[...]
quoted hunk
@@ -648,6 +648,12 @@ static int ax88178_reset(struct usbnet *dev)
  	asix_sw_reset(dev, 0);
  	msleep(150);

+	/* LyconSys FiberGecko: Turn on PHY */
+	if (dev->driver_info->flags == 0x20061201) {
    Hm, don't use magic values please. Doesn't the flags get assigned a 
combination  of FLAG_* values below? Or you mixed up 'flags' and 'data' fields?
quoted hunk
+		/* Power on Phy: set gpio2=high */
+		asix_write_gpio(dev, AX_GPIO_GPO2EN | AX_GPIO_GPO_2, 50);
+	}
+
  	asix_sw_reset(dev, AX_SWRESET_PRL | AX_SWRESET_IPPD);
  	msleep(150);
@@ -946,6 +952,19 @@ static const struct driver_info hg20f9_info = {
  	.data = FLAG_EEPROM_MAC,
  };

+static const struct driver_info lyconsys_fibergecko100_info = {
+	.description = "LyconSys FiberGecko 100 USB 2.0 to Ethernet Adapter",
+	.bind = ax88178_bind,
+	.status = asix_status,
+	.link_reset = ax88178_link_reset,
+	.reset = ax88178_link_reset,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR |
+		 FLAG_MULTI_PACKET,
+	.rx_fixup =	asix_rx_fixup_common,
+	.tx_fixup =	asix_tx_fixup,
    Hm, why this sudden change of the initializer style?
+	.data = 0x20061201,
+};
+
WBR, Sergei

[PATCH] net: usb: asix: add FiberGecko DeviceID

From: Max Schulze <hidden>
Date: 2025-01-26 11:42:28

Signed-off-by: Max Schulze <redacted>
Tested-by: Max Schulze <redacted>
Suggested-by: David Hollis <redacted>
Reported-by: Sven Kreiensen <redacted>
Link: https://marc.info/?l=linux-netdev&m=140742722321328
---

This patch had previously been suggested at "Link:".

However, I found that the flag quirk is not necessary and I suspect
it has never worked (because it references ".flag" whereas the
identifying value is in ".data")

I have compiled this and tested successfully with two devices.
As it now only adds the USB Id it generates no extra maintenance
burden that's why I suggest it for inclusion.

 drivers/net/usb/asix_devices.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 57d6e5abc30e..ef7aae8f3594 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -1421,6 +1421,19 @@ static const struct driver_info hg20f9_info = {
 	.data = FLAG_EEPROM_MAC,
 };

+static const struct driver_info lyconsys_fibergecko100_info = {
+	.description = "LyconSys FiberGecko 100 USB 2.0 to SFP Adapter",
+	.bind = ax88178_bind,
+	.status = asix_status,
+	.link_reset = ax88178_link_reset,
+	.reset = ax88178_link_reset,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR |
+		 FLAG_MULTI_PACKET,
+	.rx_fixup =	asix_rx_fixup_common,
+	.tx_fixup =	asix_tx_fixup,
+	.data = 0x20061201,
+};
+
 static const struct usb_device_id	products [] = {
 {
 	// Linksys USB200M
@@ -1578,6 +1591,10 @@ static const struct usb_device_id	products [] = {
 	// Linux Automation GmbH USB 10Base-T1L
 	USB_DEVICE(0x33f7, 0x0004),
 	.driver_info = (unsigned long) &lxausb_t1l_info,
+}, {
+	/* LyconSys FiberGecko 100 */
+	USB_DEVICE(0x1d2a, 0x0801),
+	.driver_info = (unsigned long) &lyconsys_fibergecko100_info,
 },
 	{ },		// END
 };
--
2.43.0

[PATCH v2] net: usb: asix: add FiberGecko DeviceID

From: Max Schulze <hidden>
Date: 2025-01-26 12:12:46

Signed-off-by: Max Schulze <redacted>
Tested-by: Max Schulze <redacted>
Suggested-by: David Hollis <redacted>
Reported-by: Sven Kreiensen <redacted>

---

v2: change Spacing on Initializer, change Mailing List link
This patch had previously been suggested at
https://lore.kernel.org/netdev/1407426826-11335-2-git-send-email-dhollis@davehollis.com/

However, I found that the flag quirk is not necessary and I suspect
it has never worked (because it references ".flag" whereas the
identifying value is in ".data")

I have compiled this and tested successfully with two devices.
As it now only adds the USB Id it generates no extra maintenance
burden that's why I suggest it for inclusion.

 drivers/net/usb/asix_devices.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 57d6e5abc30e..ef7aae8f3594 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -1421,6 +1421,19 @@ static const struct driver_info hg20f9_info = {
 	.data = FLAG_EEPROM_MAC,
 };

+static const struct driver_info lyconsys_fibergecko100_info = {
+	.description = "LyconSys FiberGecko 100 USB 2.0 to SFP Adapter",
+	.bind = ax88178_bind,
+	.status = asix_status,
+	.link_reset = ax88178_link_reset,
+	.reset = ax88178_link_reset,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR |
+		 FLAG_MULTI_PACKET,
+	.rx_fixup = asix_rx_fixup_common,
+	.tx_fixup = asix_tx_fixup,
+	.data = 0x20061201,
+};
+
 static const struct usb_device_id	products [] = {
 {
 	// Linksys USB200M
@@ -1578,6 +1591,10 @@ static const struct usb_device_id	products [] = {
 	// Linux Automation GmbH USB 10Base-T1L
 	USB_DEVICE(0x33f7, 0x0004),
 	.driver_info = (unsigned long) &lxausb_t1l_info,
+}, {
+	/* LyconSys FiberGecko 100 */
+	USB_DEVICE(0x1d2a, 0x0801),
+	.driver_info = (unsigned long) &lyconsys_fibergecko100_info,
 },
 	{ },		// END
 };
--
2.43.0

Re: [PATCH v2] net: usb: asix: add FiberGecko DeviceID

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2025-01-26 16:21:18

On Sun, Jan 26, 2025 at 01:12:19PM +0100, Max Schulze wrote:
Signed-off-by: Max Schulze <redacted>
Tested-by: Max Schulze <redacted>
Suggested-by: David Hollis <redacted>
Reported-by: Sven Kreiensen <redacted>
For obvious reasons I can't take patches without any changelog messages,
but maybe other subsystems have more relaxed rules :(

thanks,

greg k-h

Re: [PATCH v2] net: usb: asix: add FiberGecko DeviceID

From: Andrew Lunn <andrew@lunn.ch>
Date: 2025-01-26 16:33:33

For obvious reasons I can't take patches without any changelog messages,
but maybe other subsystems have more relaxed rules :(
Same for netdev, we like to see a commit message.

If the intention is this is to be merged via netdev, please read:

https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html

Also not that netdev is closed at the moment due to the emerge window.

    Andrew

---
pw-bot: cr

[PATCH net v3] net: usb: asix_devices: add FiberGecko DeviceID

From: Max Schulze <hidden>
Date: 2025-02-12 15:12:01

The FiberGecko is a small USB module that connects a 100 Mbit/s SFP

Signed-off-by: Max Schulze <redacted>
Tested-by: Max Schulze <redacted>
Suggested-by: David Hollis <redacted>
Reported-by: Sven Kreiensen <redacted>

---

v3: resend out of merge-window, with commit message

v2: change Spacing on Initializer, change Mailing List link
This patch had previously been suggested at
https://lore.kernel.org/netdev/1407426826-11335-2-git-send-email-dhollis@davehollis.com/

However, I found that the flag quirk is not necessary and I suspect
it has never worked (because it references ".flag" whereas the
identifying value is in ".data")

I have compiled this and tested successfully with two devices.
As it now only adds the USB Id it generates no extra maintenance
burden that's why I suggest it for inclusion.

 drivers/net/usb/asix_devices.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index 57d6e5abc30e..ef7aae8f3594 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -1421,6 +1421,19 @@ static const struct driver_info hg20f9_info = {
 	.data = FLAG_EEPROM_MAC,
 };

+static const struct driver_info lyconsys_fibergecko100_info = {
+	.description = "LyconSys FiberGecko 100 USB 2.0 to SFP Adapter",
+	.bind = ax88178_bind,
+	.status = asix_status,
+	.link_reset = ax88178_link_reset,
+	.reset = ax88178_link_reset,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR |
+		 FLAG_MULTI_PACKET,
+	.rx_fixup = asix_rx_fixup_common,
+	.tx_fixup = asix_tx_fixup,
+	.data = 0x20061201,
+};
+
 static const struct usb_device_id	products [] = {
 {
 	// Linksys USB200M
@@ -1578,6 +1591,10 @@ static const struct usb_device_id	products [] = {
 	// Linux Automation GmbH USB 10Base-T1L
 	USB_DEVICE(0x33f7, 0x0004),
 	.driver_info = (unsigned long) &lxausb_t1l_info,
+}, {
+	/* LyconSys FiberGecko 100 */
+	USB_DEVICE(0x1d2a, 0x0801),
+	.driver_info = (unsigned long) &lyconsys_fibergecko100_info,
 },
 	{ },		// END
 };
--
2.43.0

Re: [PATCH net v3] net: usb: asix_devices: add FiberGecko DeviceID

From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-02-14 21:23:19

On Wed, 12 Feb 2025 16:09:51 +0100 Max Schulze wrote:
The FiberGecko is a small USB module that connects a 100 Mbit/s SFP
Applied, thanks!
-- 
pw-bot: accept
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help