mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-13 16:50:05 +00:00
mmc: sdhci-pci: add quirks for broken MSI on O2Micro controllers
MSI on my O2Micro OZ600 SD card reader is broken. This patch adds a quirk to disable MSI on these controllers. Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
parent
eb91b9118d
commit
210b7d2859
@ -561,6 +561,7 @@ static int jmicron_resume(struct sdhci_pci_chip *chip)
|
|||||||
|
|
||||||
static const struct sdhci_pci_fixes sdhci_o2 = {
|
static const struct sdhci_pci_fixes sdhci_o2 = {
|
||||||
.probe = o2_probe,
|
.probe = o2_probe,
|
||||||
|
.quirks2 = SDHCI_QUIRK2_BROKEN_MSI,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct sdhci_pci_fixes sdhci_jmicron = {
|
static const struct sdhci_pci_fixes sdhci_jmicron = {
|
||||||
@ -1418,7 +1419,8 @@ static int __devinit sdhci_pci_probe(struct pci_dev *pdev,
|
|||||||
|
|
||||||
slots = chip->num_slots; /* Quirk may have changed this */
|
slots = chip->num_slots; /* Quirk may have changed this */
|
||||||
|
|
||||||
pci_enable_msi(pdev);
|
if (!(chip->quirks2 & SDHCI_QUIRK2_BROKEN_MSI))
|
||||||
|
pci_enable_msi(pdev);
|
||||||
|
|
||||||
for (i = 0; i < slots; i++) {
|
for (i = 0; i < slots; i++) {
|
||||||
slot = sdhci_pci_probe_slot(pdev, chip, first_bar, i);
|
slot = sdhci_pci_probe_slot(pdev, chip, first_bar, i);
|
||||||
|
@ -91,6 +91,8 @@ struct sdhci_host {
|
|||||||
unsigned int quirks2; /* More deviations from spec. */
|
unsigned int quirks2; /* More deviations from spec. */
|
||||||
|
|
||||||
#define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0)
|
#define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0)
|
||||||
|
/* broken MSI Interrupts */
|
||||||
|
#define SDHCI_QUIRK2_BROKEN_MSI (1<<1)
|
||||||
|
|
||||||
int irq; /* Device IRQ */
|
int irq; /* Device IRQ */
|
||||||
void __iomem *ioaddr; /* Mapped address */
|
void __iomem *ioaddr; /* Mapped address */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user