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