staging: rts_pstor: set lun_mode in a different place
authorwwang <wei_wang@realsil.com.cn>
Tue, 15 Mar 2011 08:22:16 +0000 (16:22 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 5 Apr 2011 04:33:27 +0000 (21:33 -0700)
In sony notebook, card reader will be configured as two-lun mode
through EFUSE. In this situation, MS card can't be recognized
properly because driver does only support single-lun mode in default.
In this patch, lun_mode is set in a different place, so driver can
detect the EFUSE configuation automatically.

Signed-off-by: wwang <wei_wang@realsil.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/rts_pstor/rtsx_chip.c

index f443d97a56f83dac9f3da32f2fd28f778bcf30c5..d2f1c715a684201eae59e646ead22096bb154033 100644 (file)
@@ -684,6 +684,11 @@ static int rts5209_init(struct rtsx_chip *chip)
        RTSX_DEBUGP("dw in 0x724: 0x%x\n", lval);
        val = (u8)lval;
        if (!(val & 0x80)) {
+               if (val & 0x08)
+                       chip->lun_mode = DEFAULT_SINGLE;
+               else
+                       chip->lun_mode = SD_MS_2LUN;
+
                if (val & 0x04) {
                        SET_SDIO_EXIST(chip);
                } else {
@@ -705,12 +710,6 @@ static int rts5209_init(struct rtsx_chip *chip)
 
                chip->aspm_l0s_l1_en = (val >> 5) & 0x03;
 
-               if (val & 0x08) {
-                       chip->lun_mode = DEFAULT_SINGLE;
-               } else {
-                       chip->lun_mode = SD_MS_2LUN;
-               }
-
                val = (u8)(lval >> 8);
 
                clk = (val >> 5) & 0x07;