Loading drivers/mmc/host/sdhci.c +12 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,10 @@ static unsigned int debug_quirks = 0; /* For multi controllers in one platform case */ static u16 chip_index = 0; static spinlock_t index_lock; /* * Different quirks to handle when the hardware deviates from a strict * interpretation of the SDHCI specification. Loading Loading @@ -1320,7 +1324,7 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot) DBG("slot %d at 0x%08lx, irq %d\n", slot, host->addr, host->irq); snprintf(host->slot_descr, 20, "sdhci:slot%d", slot); snprintf(host->slot_descr, 20, "sdhc%d:slot%d", chip->index, slot); ret = pci_request_region(pdev, host->bar, host->slot_descr); if (ret) Loading Loading @@ -1585,6 +1589,11 @@ static int __devinit sdhci_probe(struct pci_dev *pdev, chip->num_slots = slots; pci_set_drvdata(pdev, chip); /* Add for multi controller case */ spin_lock(&index_lock); chip->index = chip_index++; spin_unlock(&index_lock); for (i = 0;i < slots;i++) { ret = sdhci_probe_slot(pdev, i); if (ret) { Loading Loading @@ -1645,6 +1654,8 @@ static int __init sdhci_drv_init(void) ": Secure Digital Host Controller Interface driver\n"); printk(KERN_INFO DRIVER_NAME ": Copyright(c) Pierre Ossman\n"); spin_lock_init(&index_lock); return pci_register_driver(&sdhci_driver); } Loading drivers/mmc/host/sdhci.h +1 −0 Original line number Diff line number Diff line Loading @@ -208,6 +208,7 @@ struct sdhci_chip { unsigned long quirks; int index; /* Index for chip0, chip1 ...*/ int num_slots; /* Slots on controller */ struct sdhci_host *hosts[0]; /* Pointers to hosts */ }; Loading
drivers/mmc/host/sdhci.c +12 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,10 @@ static unsigned int debug_quirks = 0; /* For multi controllers in one platform case */ static u16 chip_index = 0; static spinlock_t index_lock; /* * Different quirks to handle when the hardware deviates from a strict * interpretation of the SDHCI specification. Loading Loading @@ -1320,7 +1324,7 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot) DBG("slot %d at 0x%08lx, irq %d\n", slot, host->addr, host->irq); snprintf(host->slot_descr, 20, "sdhci:slot%d", slot); snprintf(host->slot_descr, 20, "sdhc%d:slot%d", chip->index, slot); ret = pci_request_region(pdev, host->bar, host->slot_descr); if (ret) Loading Loading @@ -1585,6 +1589,11 @@ static int __devinit sdhci_probe(struct pci_dev *pdev, chip->num_slots = slots; pci_set_drvdata(pdev, chip); /* Add for multi controller case */ spin_lock(&index_lock); chip->index = chip_index++; spin_unlock(&index_lock); for (i = 0;i < slots;i++) { ret = sdhci_probe_slot(pdev, i); if (ret) { Loading Loading @@ -1645,6 +1654,8 @@ static int __init sdhci_drv_init(void) ": Secure Digital Host Controller Interface driver\n"); printk(KERN_INFO DRIVER_NAME ": Copyright(c) Pierre Ossman\n"); spin_lock_init(&index_lock); return pci_register_driver(&sdhci_driver); } Loading
drivers/mmc/host/sdhci.h +1 −0 Original line number Diff line number Diff line Loading @@ -208,6 +208,7 @@ struct sdhci_chip { unsigned long quirks; int index; /* Index for chip0, chip1 ...*/ int num_slots; /* Slots on controller */ struct sdhci_host *hosts[0]; /* Pointers to hosts */ };