summaryrefslogtreecommitdiffstats
path: root/drivers/staging/keucr/usb.c
diff options
context:
space:
mode:
authorhuajun li <huajun.li.lee@gmail.com>2011-03-04 10:56:18 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-07 13:40:59 -0800
commit41e568d14ec0aca1b2bb19563517aad3b06d6805 (patch)
treee1c9e5a384bb0ae1909ab373b13d127ef0f0b0de /drivers/staging/keucr/usb.c
parent153775d94899503f5f66baaa9751a43c74d4f371 (diff)
downloadop-kernel-dev-41e568d14ec0aca1b2bb19563517aad3b06d6805.zip
op-kernel-dev-41e568d14ec0aca1b2bb19563517aad3b06d6805.tar.gz
Staging: Merge ENE UB6250 SD card codes from keucr to drivers/usb/storage
The usb portion of this driver can now go into drivers/usb/storage. This leaves the non-usb portion of the code still in staging. Signed-off-by: Huajun Li <huajun.li.lee@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/keucr/usb.c')
-rw-r--r--drivers/staging/keucr/usb.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/staging/keucr/usb.c b/drivers/staging/keucr/usb.c
index c65b988..8c2332e 100644
--- a/drivers/staging/keucr/usb.c
+++ b/drivers/staging/keucr/usb.c
@@ -74,7 +74,6 @@ int eucr_resume(struct usb_interface *iface)
us->Power_IsResum = true;
//
//us->SD_Status.Ready = 0; //??
- us->SD_Status = *(PSD_STATUS)&tmp;
us->MS_Status = *(PMS_STATUS)&tmp;
us->SM_Status = *(PSM_STATUS)&tmp;
@@ -98,7 +97,6 @@ int eucr_reset_resume(struct usb_interface *iface)
us->Power_IsResum = true;
//
//us->SD_Status.Ready = 0; //??
- us->SD_Status = *(PSD_STATUS)&tmp;
us->MS_Status = *(PMS_STATUS)&tmp;
us->SM_Status = *(PSM_STATUS)&tmp;
return 0;
@@ -582,6 +580,7 @@ static int eucr_probe(struct usb_interface *intf, const struct usb_device_id *id
struct Scsi_Host *host;
struct us_data *us;
int result;
+ BYTE MiscReg03 = 0;
struct task_struct *th;
printk("usb --- eucr_probe\n");
@@ -647,6 +646,24 @@ static int eucr_probe(struct usb_interface *intf, const struct usb_device_id *id
goto BadDevice;
}
wake_up_process(th);
+
+ /* probe card type */
+ result = ENE_Read_BYTE(us, REG_CARD_STATUS, &MiscReg03);
+ if (result != USB_STOR_XFER_GOOD) {
+ result = USB_STOR_TRANSPORT_ERROR;
+ quiesce_and_remove_host(us);
+ goto BadDevice;
+ }
+
+ if (!(MiscReg03 & 0x02)) {
+ result = -ENODEV;
+ quiesce_and_remove_host(us);
+ printk(KERN_NOTICE "keucr: The driver only supports SM/MS card.\
+ To use SD card, \
+ please build driver/usb/storage/ums-eneub6250.ko\n");
+ goto BadDevice;
+ }
+
return 0;
/* We come here if there are any problems */
OpenPOWER on IntegriCloud