# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.417 -> 1.418 # drivers/usb/Config.in 1.19 -> 1.20 # drivers/usb/pegasus.h 1.10 -> 1.11 # drivers/usb/pegasus.c 1.18 -> 1.19 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/03/13 greg@kroah.com 1.418 # USB pegasus driver # # Elcon vendor/device support added. # -------------------------------------------- # diff -Nru a/drivers/usb/Config.in b/drivers/usb/Config.in --- a/drivers/usb/Config.in Wed Mar 13 15:02:56 2002 +++ b/drivers/usb/Config.in Wed Mar 13 15:02:56 2002 @@ -86,7 +86,7 @@ if [ "$CONFIG_NET" = "n" ]; then comment ' Networking support is needed for USB Networking device support' else - dep_tristate ' USB ADMtek Pegasus-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_PEGASUS $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL + dep_tristate ' USB Pegasus/Pegasus-II based ethernet device support (EXPERIMENTAL)' CONFIG_USB_PEGASUS $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL dep_tristate ' USB KLSI KL5USB101-based ethernet device support (EXPERIMENTAL)' CONFIG_USB_KAWETH $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL dep_tristate ' USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)' CONFIG_USB_CATC $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL dep_tristate ' USB Communication Class Ethernet device support (EXPERIMENTAL)' CONFIG_USB_CDCETHER $CONFIG_USB $CONFIG_NET $CONFIG_EXPERIMENTAL diff -Nru a/drivers/usb/pegasus.c b/drivers/usb/pegasus.c --- a/drivers/usb/pegasus.c Wed Mar 13 15:02:56 2002 +++ b/drivers/usb/pegasus.c Wed Mar 13 15:02:56 2002 @@ -464,12 +464,16 @@ if ( i == REG_TIMEOUT ) return 1; - if ( usb_dev_id[pegasus->dev_index].vendor == VENDOR_LINKSYS || - usb_dev_id[pegasus->dev_index].vendor == VENDOR_DLINK ) { + if (usb_dev_id[pegasus->dev_index].vendor == VENDOR_LINKSYS || + usb_dev_id[pegasus->dev_index].vendor == VENDOR_DLINK) { __u16 auxmode; - - read_mii_word( pegasus, 0, MII_TPISTATUS, &auxmode ); - write_mii_word( pegasus, 0, MII_TPISTATUS, auxmode | 4 ); + read_mii_word(pegasus, 1, MII_TPISTATUS, &auxmode); + write_mii_word(pegasus, 1, MII_TPISTATUS, auxmode | 4); + } + if (usb_dev_id[pegasus->dev_index].vendor == VENDOR_ELCON) { + __u16 auxmode; + read_mii_word(pegasus, 3, 0x1b, &auxmode); + write_mii_word(pegasus, 3, 0x1b, auxmode | 4); } return 0; diff -Nru a/drivers/usb/pegasus.h b/drivers/usb/pegasus.h --- a/drivers/usb/pegasus.h Wed Mar 13 15:02:56 2002 +++ b/drivers/usb/pegasus.h Wed Mar 13 15:02:56 2002 @@ -66,7 +66,6 @@ #define PEGASUS_REQ_GET_REGS 0xf0 #define PEGASUS_REQ_SET_REGS 0xf1 #define PEGASUS_REQ_SET_REG PEGASUS_REQ_SET_REGS -#define ALIGN(x) x __attribute__((aligned(L1_CACHE_BYTES))) enum pegasus_registers { EthCtrl0 = 0, @@ -103,9 +102,9 @@ struct usb_ctrlrequest dr; wait_queue_head_t ctrl_wait; struct semaphore ctrl_sem; - unsigned char ALIGN(rx_buff[PEGASUS_MAX_MTU]); - unsigned char ALIGN(tx_buff[PEGASUS_MAX_MTU]); - unsigned char ALIGN(intr_buff[8]); + unsigned char rx_buff[PEGASUS_MAX_MTU]; + unsigned char tx_buff[PEGASUS_MAX_MTU]; + unsigned char intr_buff[8]; __u8 eth_regs[4]; __u8 phy; __u8 gpio_res; @@ -129,6 +128,7 @@ #define VENDOR_COMPAQ 0x049f #define VENDOR_COREGA 0x07aa #define VENDOR_DLINK 0x2001 +#define VENDOR_ELCON 0x0db7 #define VENDOR_ELSA 0x05cc #define VENDOR_HAWKING 0x0e66 #define VENDOR_IODATA 0x04bb @@ -208,6 +208,8 @@ DEFAULT_GPIO_RESET | HAS_HOME_PNA ) PEGASUS_DEV( "D-Link DSB-650", VENDOR_DLINK, 0xabc1, DEFAULT_GPIO_RESET ) +PEGASUS_DEV( "ELCON EPLC10Mi USB to Powerline Adapter", VENDOR_ELCON, 0x0002, + DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA ) PEGASUS_DEV( "Elsa Micolink USB2Ethernet", VENDOR_ELSA, 0x3000, DEFAULT_GPIO_RESET ) PEGASUS_DEV( "Hawking UF100 10/100 Ethernet", VENDOR_HAWKING, 0x400c,