diff options
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c')
-rw-r--r-- | uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c b/uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c index dd03ef7..924ee88 100644 --- a/uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c +++ b/uClinux-2.4.20-uc1/drivers/usb/storage/initializers.c @@ -46,14 +46,33 @@ int usb_stor_euscsi_init(struct us_data *us) { unsigned char data = 0x1; int result; +#ifdef CONFIG_BOARD_W90N745 + unsigned char *datap = kmalloc(sizeof(unsigned char)*1, GFP_KERNEL); + + if(!datap) { + printk("Can't alloc memory for eusci_init\n"); + return 0; + } + datap = (unsigned char *)((unsigned long)datap | 0x80000000); +#endif US_DEBUGP("Attempting to init eUSCSI bridge...\n"); +#ifndef CONFIG_BOARD_W90N745 result = usb_control_msg(us->pusb_dev, usb_sndctrlpipe(us->pusb_dev, 0), 0x0C, USB_RECIP_INTERFACE | USB_TYPE_VENDOR, 0x01, 0x0, &data, 0x1, 5*HZ); US_DEBUGP("-- result is %d\n", result); US_DEBUGP("-- data afterwards is %d\n", data); +#else + result = usb_control_msg(us->pusb_dev, usb_sndctrlpipe(us->pusb_dev, 0), + 0x0C, USB_RECIP_INTERFACE | USB_TYPE_VENDOR, + 0x01, 0x0, datap, 0x1, 5*HZ); + US_DEBUGP("-- result is %d\n", result); + US_DEBUGP("-- data afterwards is %d\n", *datap); + if(datap) + kfree((unsigned char *)((unsigned long)datap & 0x7fffffff)); +#endif return 0; } |