Hi All,

  I'm trying  to use an USB  ethernet adapter (ASIX AX8817x  based) on a
Mac  Mini PPC  machine. In  order to  make it  work, I  applied the  two
attached  patches on  the  2.6.19-gentoo-r2 kernel.  They are  extracted
respectively from patch-2.6.20-rc3 and patch-2.6.20-rc3-git8 and applied
cleanly.

  Everything is  fine until  I change  the MAC  address of  the adapter.
ifconfig  indeed shows  the new  one, but  I'm unable  to ping  the host
unless the interface is in promiscuous mode (ifconfig eth1 promisc).

  Does this tell  something to you? It would seem  that the kernel knows
that it  should answer to frames  sent to that MAC,  but the card/driver
doesn't "lift" packets off the wire  that bear that destination. It only
does so when instructed to receive any packet, regardless of their MAC.

  The new MAC is valid and works on the Mac Mini's integrated NIC.

  Maybe the issue is not strictly  tied to the PPC architecture, I still
have to do the same tests on x86. Could also be an hardware problem, I'm
not sure...

thanks for your help,
ciao,
-- 
Giuliano

#!/usr/bin/perl
$i=$j=$r=$b=-16.0;while((print"\n"),$b++<15){foreach$a(0..78){print
+(split //,' .:-;!/>)|&IH%*#')[$k&15];for($i=$k=$r=0;$j=$r*$r-$i*$i
-2+$a/25,$i=2*$r*$i+$b/10,$j*$j+$i*$i<11&&$k++<111;$r=$j){}}}
diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c
index 95e682e..f538013 100644
--- a/drivers/usb/net/asix.c
+++ b/drivers/usb/net/asix.c
@@ -920,7 +920,7 @@ static int ax88772_bind(struct usbnet *dev, struct 
usb_interface *intf)
                goto out2;
 
        if ((ret = asix_write_cmd(dev, AX_CMD_SW_PHY_SELECT,
-                               0x0000, 0, 0, buf)) < 0) {
+                               1, 0, 0, buf)) < 0) {
                dbg("Select PHY #1 failed: %d", ret);
                goto out2;
        }
diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c
index 881841e..95e682e 100644
--- a/drivers/usb/net/asix.c
+++ b/drivers/usb/net/asix.c
@@ -249,9 +249,9 @@ asix_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value, 
u16 index,
 
        req->bRequestType = USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE;
        req->bRequest = cmd;
-       req->wValue = value;
-       req->wIndex = index;
-       req->wLength = size;
+       req->wValue = cpu_to_le16(value);
+       req->wIndex = cpu_to_le16(index);
+       req->wLength = cpu_to_le16(size);
 
        usb_fill_control_urb(urb, dev->udev,
                             usb_sndctrlpipe(dev->udev, 0),
-------------------------------------------------------------------------
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

Reply via email to