Re: Pegasus: Bug / Correction (?)
flat view
From: Davide Rizzo <hidden>
Date: 2009-08-15 05:57:10
No, I have only ADM8515 to test with. This is not a general solution to be merged in streamline code, but a bug report with a (bad) solution that I tested only on ADM8515. The bug was difficult to report because normal users don't care about MAC address correctness. I did. I'm sorry but I don't know enough of USB kernel internals to provide an elegant, general solution. 2009/8/14 [off-list ref]:
Not good - the correction will disable set_address for older controllers. Have you tried this code on a different device? Petkoquoted
Bug Correction ADM8515 fails to read central 2 bytes of MAC address This patch solves the problem, but I didn't understand it. Signed-off-by: Davide Rizzo <redacted> --- diff -urNp linux-2.6.30.4/drivers/net/usb/pegasus.c linux-2.6.30.4.elpa/drivers/net/usb/pegasus.c--- linux-2.6.30.4/drivers/net/usb/pegasus.c 2009-08-13 07:14:57.000000000 +0200 +++ linux-2.6.30.4.elpa/drivers/net/usb/pegasus.c 2009-08-1308:39:01.000000000 +0200@@ -425,7 +425,6 @@ fail: static inline void enable_eprom_write(pegasus_t * pegasus) { __u8 tmp; - int ret; get_registers(pegasus, EthCtrl2, 1, &tmp); set_register(pegasus, EthCtrl2, tmp | EPROM_WR_ENABLE);@@ -434,7 +433,6 @@ static inline void enable_eprom_write(pe static inline void disable_eprom_write(pegasus_t * pegasus) { __u8 tmp; - int ret; get_registers(pegasus, EthCtrl2, 1, &tmp); set_register(pegasus, EpromCtrl, 0);@@ -486,9 +525,9 @@ static void set_ethernet_addr(pegasus_t { __u8 node_id[6]; - if (pegasus->features & PEGASUS_II) { +/*if (pegasus->features & PEGASUS_II) { get_registers(pegasus, 0x10, sizeof(node_id), node_id); - } else { + } else*/ { get_node_id(pegasus, node_id); set_registers(pegasus, EthID, sizeof (node_id), node_id); }
-- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html