Andres Salomon wrote: > Greg KH wrote: > >> On Thu, Jan 11, 2007 at 09:29:54PM +0000, Chris Ball wrote: >> >>>>> On Thu, 11 Jan 2007 18:55:05, Rui Santos <[EMAIL PROTECTED]> said: >>>>> >>> > Hi, By applying this patch on kernel 2.6.19.1 the effect is the >>> > opposite on some Network Cards. The Hardware I used to test it was >>> > 'D-Link DUB-E100 Rev. B1' and 'D-Link DUB-E100 Rev. B1 >>> > Alternate'. It works without the patch, and stops working after >>> > applying it. The Network Card is detected, the driver is loaded >>> > with no apparent errors, the ethtool seems to report the same >>> > applied settings but, not even a ping gets trough. >>> >>> Confirmed, our DUB-E100s stop working with this patch too. >>> >> Not good. David, any thoughts? >> >> thanks, >> >> greg k-h >> > > Does the attached patch work for you folks? The original patch causes > the driver to always use the external PHY; something we don't want if > the hardware is telling us that we should be using an internal PHY. > This patch checks whether to not to use the internal phy. > Both 'D-Link DUB-E100 Rev. B1' and 'D-Link DUB-E100 Rev. B1 Alternate' work with this patch applied on 2.6.19.2. Chris, can you confirm ?
I'd also like to remember ( forgot on my first email ), that this issue does not apply to 'D-Link DUB-E100 Original' (Rev. Ax), which have an AX88172 chip instead of the AX88772 one. > > ------------------------------------------------------------------------ > > >From c9aabfc121a62b12e35223482c4aa132b12d9fd1 Mon Sep 17 00:00:00 2001 > From: Andres Salomon <[EMAIL PROTECTED]> > Date: Thu, 11 Jan 2007 18:39:16 -0500 > Subject: [PATCH] asix: Detect internal PHY and enable/use accordingly > > Different AX88772 dongles use different PHYs; the chip is capable of using > both a primary and secondary PHY, and supports an internal and external PHY. > > It appears that some DUB-E100 devices use the internal PHY, so trying to use > an external one will not work (note that this is different across revisions, > as well; the "A" and "B" revs of the DUB-E100 use different PHYs!). The data > sheet for the AX88772 chip specifies that the internal PHY id will be 0x10, > so if that's read from the EEPROM, we should use that rather than attempting > to use an external PHY. > > Thanks to Mitch Bradley for pointing this out! > > Signed-off-by: Andres Salomon <[EMAIL PROTECTED]> > --- > drivers/usb/net/asix.c | 18 +++++++++++++----- > 1 files changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c > index f538013..896449f 100644 > --- a/drivers/usb/net/asix.c > +++ b/drivers/usb/net/asix.c > @@ -898,7 +898,7 @@ static int ax88772_link_reset(struct usb > > static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf) > { > - int ret; > + int ret, embd_phy; > void *buf; > u16 rx_ctl; > struct asix_data *data = (struct asix_data *)&dev->data; > @@ -919,13 +919,15 @@ static int ax88772_bind(struct usbnet *d > AX_GPIO_RSE | AX_GPIO_GPO_2 | AX_GPIO_GPO2EN, 5)) < 0) > goto out2; > > + /* 0x10 is the phy id of the embedded 10/100 ethernet phy */ > + embd_phy = ((asix_get_phy_addr(dev) & 0x1f) == 0x10 ? 1 : 0); > if ((ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT, > - 1, 0, 0, buf)) < 0) { > + embd_phy, 0, 0, buf)) < 0) { > dbg("Select PHY #1 failed: %d", ret); > goto out2; > } > > - if ((ret = asix_sw_reset(dev, AX_SWRESET_IPPD)) < 0) > + if ((ret = asix_sw_reset(dev, AX_SWRESET_IPPD | AX_SWRESET_PRL)) < 0) > goto out2; > > msleep(150); > @@ -933,8 +935,14 @@ static int ax88772_bind(struct usbnet *d > goto out2; > > msleep(150); > - if ((ret = asix_sw_reset(dev, AX_SWRESET_IPRL | AX_SWRESET_PRL)) < 0) > - goto out2; > + if (embd_phy) { > + if ((ret = asix_sw_reset(dev, AX_SWRESET_IPRL)) < 0) > + goto out2; > + } > + else { > + if ((ret = asix_sw_reset(dev, AX_SWRESET_PRTE)) < 0) > + goto out2; > + } > > msleep(150); > rx_ctl = asix_read_rx_ctl(dev); > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel