Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memstick: add support for JMicron JMB 385 and 390 controllers

Signed-off-by: Aries Lee <arieslee@jmicron.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Takashi Iwai and committed by
Linus Torvalds
8930c8aa 68860b96

+17 -2
+15 -2
drivers/memstick/host/jmb38x_ms.c
··· 765 765 #define PMOS0_SW_LED_POLARITY_ENABLE 0x80 766 766 #define PMOS0_ACTIVE_BITS (PMOS0_ENABLE | PMOS0_EN_OVERCURRENT_DEBOUNCE | \ 767 767 PMOS0_OVERCURRENT_LEVEL_2_4V) 768 + #define PCI_PMOS1_CONTROL 0xbd 769 + #define PMOS1_ACTIVE_BITS 0x4a 768 770 #define PCI_CLOCK_CTL 0xb9 769 771 770 772 static int jmb38x_ms_pmos(struct pci_dev *pdev, int flag) ··· 780 778 val &= ~PMOS0_ACTIVE_BITS; 781 779 pci_write_config_byte(pdev, PCI_PMOS0_CONTROL, val); 782 780 dev_dbg(&pdev->dev, "JMB38x: set PMOS0 val 0x%x\n", val); 781 + 782 + if (pci_resource_flags(pdev, 1)) { 783 + pci_read_config_byte(pdev, PCI_PMOS1_CONTROL, &val); 784 + if (flag) 785 + val |= PMOS1_ACTIVE_BITS; 786 + else 787 + val &= ~PMOS1_ACTIVE_BITS; 788 + pci_write_config_byte(pdev, PCI_PMOS1_CONTROL, val); 789 + dev_dbg(&pdev->dev, "JMB38x: set PMOS1 val 0x%x\n", val); 790 + } 783 791 784 792 pci_read_config_byte(pdev, PCI_CLOCK_CTL, &val); 785 793 pci_write_config_byte(pdev, PCI_CLOCK_CTL, val & ~0x0f); ··· 1030 1018 } 1031 1019 1032 1020 static struct pci_device_id jmb38x_ms_id_tbl [] = { 1033 - { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_MS, PCI_ANY_ID, 1034 - PCI_ANY_ID, 0, 0, 0 }, 1021 + { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_MS) }, 1022 + { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB385_MS) }, 1023 + { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB390_MS) }, 1035 1024 { } 1036 1025 }; 1037 1026
+2
include/linux/pci_ids.h
··· 2369 2369 #define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381 2370 2370 #define PCI_DEVICE_ID_JMICRON_JMB38X_MMC 0x2382 2371 2371 #define PCI_DEVICE_ID_JMICRON_JMB38X_MS 0x2383 2372 + #define PCI_DEVICE_ID_JMICRON_JMB385_MS 0x2388 2372 2373 #define PCI_DEVICE_ID_JMICRON_JMB388_SD 0x2391 2373 2374 #define PCI_DEVICE_ID_JMICRON_JMB388_ESD 0x2392 2375 + #define PCI_DEVICE_ID_JMICRON_JMB390_MS 0x2393 2374 2376 2375 2377 #define PCI_VENDOR_ID_KORENIX 0x1982 2376 2378 #define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600