diff options
author | huajun li <huajun.li.lee@gmail.com> | 2011-03-04 02:56:18 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-03-07 21:40:59 (GMT) |
commit | 41e568d14ec0aca1b2bb19563517aad3b06d6805 (patch) | |
tree | e1c9e5a384bb0ae1909ab373b13d127ef0f0b0de /drivers/staging/keucr/usb.c | |
parent | 153775d94899503f5f66baaa9751a43c74d4f371 (diff) | |
download | linux-fsl-qoriq-41e568d14ec0aca1b2bb19563517aad3b06d6805.tar.xz |
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.c | 21 |
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 */ |