Like some other TI SDHCI parts, PCI_PRODUCT_TI_PCIXX12SD also needs the SD

card moved to the SDHCI controller.
This commit is contained in:
jakllsch 2011-02-02 04:18:14 +00:00
parent 7be202c26c
commit 9f64a25fb5
1 changed files with 22 additions and 5 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: sdhc_pci.c,v 1.3 2009/10/02 04:38:47 uebayasi Exp $ */
/* $NetBSD: sdhc_pci.c,v 1.4 2011/02/02 04:18:14 jakllsch Exp $ */
/* $OpenBSD: sdhc_pci.c,v 1.7 2007/10/30 18:13:45 chl Exp $ */
/*
@ -18,7 +18,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sdhc_pci.c,v 1.3 2009/10/02 04:38:47 uebayasi Exp $");
__KERNEL_RCSID(0, "$NetBSD: sdhc_pci.c,v 1.4 2011/02/02 04:18:14 jakllsch Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -88,6 +88,15 @@ static const struct sdhc_pci_quirk {
SDHC_PCI_QUIRK_TI_HACK
},
{
PCI_VENDOR_TI,
PCI_PRODUCT_TI_PCIXX12SD,
0xffff,
0xffff,
3,
SDHC_PCI_QUIRK_TI_HACK
},
{
PCI_VENDOR_ENE,
PCI_PRODUCT_ENE_CB712,
@ -278,11 +287,19 @@ sdhc_pci_quirk_ti_hack(struct pci_attach_args *pa)
pcitag_t tag;
pcireg_t id, reg;
/* Look at func 3 for the flash device */
tag = pci_make_tag(pc, pa->pa_bus, pa->pa_device, 3);
/* Look at func - 1 for the flash device */
tag = pci_make_tag(pc, pa->pa_bus, pa->pa_device, pa->pa_function - 1);
id = pci_conf_read(pc, tag, PCI_ID_REG);
if (PCI_PRODUCT(id) != PCI_PRODUCT_TI_PCI72111FM)
if (PCI_VENDOR(id) != PCI_VENDOR_TI) {
return;
}
switch (PCI_PRODUCT(id)) {
case PCI_PRODUCT_TI_PCI72111FM:
case PCI_PRODUCT_TI_PCIXX12FM:
break;
default:
return;
}
/*
* Disable MMC/SD on the flash media controller so the