mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits) PCI: Only build PCI syscalls on architectures that want them PCI: limit pci_get_bus_and_slot to domain 0 PCI: hotplug: acpiphp: avoid acpiphp "cannot get bridge info" PCI hotplug failure PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3 PCI: hotplug: pciehp: wait for 1 second after power off slot PCI: pci_set_power_state(): check for PM capabilities earlier PCI: cpci_hotplug: Convert to use the kthread API PCI: add pci_try_set_mwi PCI: pcie: remove SPIN_LOCK_UNLOCKED PCI: ROUND_UP macro cleanup in drivers/pci PCI: remove pci_dac_dma_... APIs PCI: pci-x-pci-express-read-control-interfaces cleanups PCI: Fix typo in include/linux/pci.h PCI: pci_ids, remove double or more empty lines PCI: pci_ids, add atheros and 3com_2 vendors PCI: pci_ids, reorder some entries PCI: i386: traps, change VENDOR to DEVICE PCI: ATM: lanai, change VENDOR to DEVICE PCI: Change all drivers to use pci_device->revision ...
This commit is contained in:
commit
21ba0f88ae
172 changed files with 760 additions and 1401 deletions
|
|
@ -928,20 +928,18 @@ static int __devinit piix_check_450nx_errata(struct pci_dev *ata_dev)
|
|||
{
|
||||
struct pci_dev *pdev = NULL;
|
||||
u16 cfg;
|
||||
u8 rev;
|
||||
int no_piix_dma = 0;
|
||||
|
||||
while((pdev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454NX, pdev)) != NULL)
|
||||
{
|
||||
/* Look for 450NX PXB. Check for problem configurations
|
||||
A PCI quirk checks bit 6 already */
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
|
||||
pci_read_config_word(pdev, 0x41, &cfg);
|
||||
/* Only on the original revision: IDE DMA can hang */
|
||||
if (rev == 0x00)
|
||||
if (pdev->revision == 0x00)
|
||||
no_piix_dma = 1;
|
||||
/* On all revisions below 5 PXB bus lock must be disabled for IDE */
|
||||
else if (cfg & (1<<14) && rev < 5)
|
||||
else if (cfg & (1<<14) && pdev->revision < 5)
|
||||
no_piix_dma = 2;
|
||||
}
|
||||
if (no_piix_dma)
|
||||
|
|
|
|||
|
|
@ -455,23 +455,21 @@ static struct ata_port_operations ali_c5_port_ops = {
|
|||
|
||||
static void ali_init_chipset(struct pci_dev *pdev)
|
||||
{
|
||||
u8 rev, tmp;
|
||||
u8 tmp;
|
||||
struct pci_dev *north, *isa_bridge;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
|
||||
|
||||
/*
|
||||
* The chipset revision selects the driver operations and
|
||||
* mode data.
|
||||
*/
|
||||
|
||||
if (rev >= 0x20 && rev < 0xC2) {
|
||||
if (pdev->revision >= 0x20 && pdev->revision < 0xC2) {
|
||||
/* 1543-E/F, 1543C-C, 1543C-D, 1543C-E */
|
||||
pci_read_config_byte(pdev, 0x4B, &tmp);
|
||||
/* Clear CD-ROM DMA write bit */
|
||||
tmp &= 0x7F;
|
||||
pci_write_config_byte(pdev, 0x4B, tmp);
|
||||
} else if (rev >= 0xC2) {
|
||||
} else if (pdev->revision >= 0xC2) {
|
||||
/* Enable cable detection logic */
|
||||
pci_read_config_byte(pdev, 0x4B, &tmp);
|
||||
pci_write_config_byte(pdev, 0x4B, tmp | 0x08);
|
||||
|
|
@ -483,21 +481,21 @@ static void ali_init_chipset(struct pci_dev *pdev)
|
|||
/* Configure the ALi bridge logic. For non ALi rely on BIOS.
|
||||
Set the south bridge enable bit */
|
||||
pci_read_config_byte(isa_bridge, 0x79, &tmp);
|
||||
if (rev == 0xC2)
|
||||
if (pdev->revision == 0xC2)
|
||||
pci_write_config_byte(isa_bridge, 0x79, tmp | 0x04);
|
||||
else if (rev > 0xC2 && rev < 0xC5)
|
||||
else if (pdev->revision > 0xC2 && pdev->revision < 0xC5)
|
||||
pci_write_config_byte(isa_bridge, 0x79, tmp | 0x02);
|
||||
}
|
||||
if (rev >= 0x20) {
|
||||
if (pdev->revision >= 0x20) {
|
||||
/*
|
||||
* CD_ROM DMA on (0x53 bit 0). Enable this even if we want
|
||||
* to use PIO. 0x53 bit 1 (rev 20 only) - enable FIFO control
|
||||
* via 0x54/55.
|
||||
*/
|
||||
pci_read_config_byte(pdev, 0x53, &tmp);
|
||||
if (rev <= 0x20)
|
||||
if (pdev->revision <= 0x20)
|
||||
tmp &= ~0x02;
|
||||
if (rev >= 0xc7)
|
||||
if (pdev->revision >= 0xc7)
|
||||
tmp |= 0x03;
|
||||
else
|
||||
tmp |= 0x01; /* CD_ROM enable for DMA */
|
||||
|
|
@ -579,25 +577,23 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
};
|
||||
|
||||
const struct ata_port_info *ppi[] = { NULL, NULL };
|
||||
u8 rev, tmp;
|
||||
u8 tmp;
|
||||
struct pci_dev *isa_bridge;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
|
||||
|
||||
/*
|
||||
* The chipset revision selects the driver operations and
|
||||
* mode data.
|
||||
*/
|
||||
|
||||
if (rev < 0x20) {
|
||||
if (pdev->revision < 0x20) {
|
||||
ppi[0] = &info_early;
|
||||
} else if (rev < 0xC2) {
|
||||
} else if (pdev->revision < 0xC2) {
|
||||
ppi[0] = &info_20;
|
||||
} else if (rev == 0xC2) {
|
||||
} else if (pdev->revision == 0xC2) {
|
||||
ppi[0] = &info_c2;
|
||||
} else if (rev == 0xC3) {
|
||||
} else if (pdev->revision == 0xC3) {
|
||||
ppi[0] = &info_c3;
|
||||
} else if (rev == 0xC4) {
|
||||
} else if (pdev->revision == 0xC4) {
|
||||
ppi[0] = &info_c4;
|
||||
} else
|
||||
ppi[0] = &info_c5;
|
||||
|
|
@ -605,7 +601,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
ali_init_chipset(pdev);
|
||||
|
||||
isa_bridge = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
|
||||
if (isa_bridge && rev >= 0x20 && rev < 0xC2) {
|
||||
if (isa_bridge && pdev->revision >= 0x20 && pdev->revision < 0xC2) {
|
||||
/* Are we paired with a UDMA capable chip */
|
||||
pci_read_config_byte(isa_bridge, 0x5E, &tmp);
|
||||
if ((tmp & 0x1E) == 0x12)
|
||||
|
|
|
|||
|
|
@ -623,17 +623,15 @@ static int amd_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
const struct ata_port_info *ppi[] = { NULL, NULL };
|
||||
static int printed_version;
|
||||
int type = id->driver_data;
|
||||
u8 rev;
|
||||
u8 fifo;
|
||||
|
||||
if (!printed_version++)
|
||||
dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
|
||||
pci_read_config_byte(pdev, 0x41, &fifo);
|
||||
|
||||
/* Check for AMD7409 without swdma errata and if found adjust type */
|
||||
if (type == 1 && rev > 0x7)
|
||||
if (type == 1 && pdev->revision > 0x7)
|
||||
type = 2;
|
||||
|
||||
/* Check for AMD7411 */
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ static int cs5530_init_chip(void)
|
|||
}
|
||||
|
||||
pci_set_master(cs5530_0);
|
||||
pci_set_mwi(cs5530_0);
|
||||
pci_try_set_mwi(cs5530_0);
|
||||
|
||||
/*
|
||||
* Set PCI CacheLineSize to 16-bytes:
|
||||
|
|
|
|||
|
|
@ -587,8 +587,7 @@ static int it821x_port_start(struct ata_port *ap)
|
|||
itdev->want[1][1] = ATA_ANY;
|
||||
itdev->last_device = -1;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &conf);
|
||||
if (conf == 0x10) {
|
||||
if (pdev->revision == 0x11) {
|
||||
itdev->timing10 = 1;
|
||||
/* Need to disable ATAPI DMA for this case */
|
||||
if (!itdev->smart)
|
||||
|
|
|
|||
|
|
@ -410,11 +410,8 @@ static int serverworks_fixup_osb4(struct pci_dev *pdev)
|
|||
|
||||
static int serverworks_fixup_csb(struct pci_dev *pdev)
|
||||
{
|
||||
u8 rev;
|
||||
u8 btr;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev);
|
||||
|
||||
/* Third Channel Test */
|
||||
if (!(PCI_FUNC(pdev->devfn) & 1)) {
|
||||
struct pci_dev * findev = NULL;
|
||||
|
|
@ -456,7 +453,7 @@ static int serverworks_fixup_csb(struct pci_dev *pdev)
|
|||
if (!(PCI_FUNC(pdev->devfn) & 1))
|
||||
btr |= 0x2;
|
||||
else
|
||||
btr |= (rev >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2;
|
||||
btr |= (pdev->revision >= SVWKS_CSB5_REVISION_NEW) ? 0x3 : 0x2;
|
||||
pci_write_config_byte(pdev, 0x5A, btr);
|
||||
|
||||
return btr;
|
||||
|
|
|
|||
|
|
@ -931,9 +931,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
if (host != NULL) {
|
||||
chipset = sets; /* Match found */
|
||||
if (sets->device == 0x630) { /* SIS630 */
|
||||
u8 host_rev;
|
||||
pci_read_config_byte(host, PCI_REVISION_ID, &host_rev);
|
||||
if (host_rev >= 0x30) /* 630 ET */
|
||||
if (host->revision >= 0x30) /* 630 ET */
|
||||
chipset = &sis100_early;
|
||||
}
|
||||
break;
|
||||
|
|
@ -977,7 +975,6 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
u16 trueid;
|
||||
u8 prefctl;
|
||||
u8 idecfg;
|
||||
u8 sbrev;
|
||||
|
||||
/* Try the second unmasking technique */
|
||||
pci_read_config_byte(pdev, 0x4a, &idecfg);
|
||||
|
|
@ -990,11 +987,10 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
lpc_bridge = pci_get_slot(pdev->bus, 0x10); /* Bus 0 Dev 2 Fn 0 */
|
||||
if (lpc_bridge == NULL)
|
||||
break;
|
||||
pci_read_config_byte(lpc_bridge, PCI_REVISION_ID, &sbrev);
|
||||
pci_read_config_byte(pdev, 0x49, &prefctl);
|
||||
pci_dev_put(lpc_bridge);
|
||||
|
||||
if (sbrev == 0x10 && (prefctl & 0x80)) {
|
||||
if (lpc_bridge->revision == 0x10 && (prefctl & 0x80)) {
|
||||
chipset = &sis133_early;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -270,7 +270,6 @@ static struct ata_port_operations sl82c105_port_ops = {
|
|||
static int sl82c105_bridge_revision(struct pci_dev *pdev)
|
||||
{
|
||||
struct pci_dev *bridge;
|
||||
u8 rev;
|
||||
|
||||
/*
|
||||
* The bridge should be part of the same device, but function 0.
|
||||
|
|
@ -292,10 +291,8 @@ static int sl82c105_bridge_revision(struct pci_dev *pdev)
|
|||
/*
|
||||
* We need to find function 0's revision, not function 1
|
||||
*/
|
||||
pci_read_config_byte(bridge, PCI_REVISION_ID, &rev);
|
||||
|
||||
pci_dev_put(bridge);
|
||||
return rev;
|
||||
return bridge->revision;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -506,7 +506,6 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
struct pci_dev *isa = NULL;
|
||||
const struct via_isa_bridge *config;
|
||||
static int printed_version;
|
||||
u8 t;
|
||||
u8 enable;
|
||||
u32 timing;
|
||||
|
||||
|
|
@ -520,9 +519,8 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
!!(config->flags & VIA_BAD_ID),
|
||||
config->id, NULL))) {
|
||||
|
||||
pci_read_config_byte(isa, PCI_REVISION_ID, &t);
|
||||
if (t >= config->rev_min &&
|
||||
t <= config->rev_max)
|
||||
if (isa->revision >= config->rev_min &&
|
||||
isa->revision <= config->rev_max)
|
||||
break;
|
||||
pci_dev_put(isa);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1765,12 +1765,9 @@ static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val)
|
|||
|
||||
static void mv5_reset_bus(struct pci_dev *pdev, void __iomem *mmio)
|
||||
{
|
||||
u8 rev_id;
|
||||
int early_5080;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id);
|
||||
|
||||
early_5080 = (pdev->device == 0x5080) && (rev_id == 0);
|
||||
early_5080 = (pdev->device == 0x5080) && (pdev->revision == 0);
|
||||
|
||||
if (!early_5080) {
|
||||
u32 tmp = readl(mmio + MV_PCI_EXP_ROM_BAR_CTL);
|
||||
|
|
@ -2387,17 +2384,14 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
|
|||
{
|
||||
struct pci_dev *pdev = to_pci_dev(host->dev);
|
||||
struct mv_host_priv *hpriv = host->private_data;
|
||||
u8 rev_id;
|
||||
u32 hp_flags = hpriv->hp_flags;
|
||||
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id);
|
||||
|
||||
switch(board_idx) {
|
||||
case chip_5080:
|
||||
hpriv->ops = &mv5xxx_ops;
|
||||
hp_flags |= MV_HP_GEN_I;
|
||||
|
||||
switch (rev_id) {
|
||||
switch (pdev->revision) {
|
||||
case 0x1:
|
||||
hp_flags |= MV_HP_ERRATA_50XXB0;
|
||||
break;
|
||||
|
|
@ -2417,7 +2411,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
|
|||
hpriv->ops = &mv5xxx_ops;
|
||||
hp_flags |= MV_HP_GEN_I;
|
||||
|
||||
switch (rev_id) {
|
||||
switch (pdev->revision) {
|
||||
case 0x0:
|
||||
hp_flags |= MV_HP_ERRATA_50XXB0;
|
||||
break;
|
||||
|
|
@ -2437,7 +2431,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
|
|||
hpriv->ops = &mv6xxx_ops;
|
||||
hp_flags |= MV_HP_GEN_II;
|
||||
|
||||
switch (rev_id) {
|
||||
switch (pdev->revision) {
|
||||
case 0x7:
|
||||
hp_flags |= MV_HP_ERRATA_60X1B2;
|
||||
break;
|
||||
|
|
@ -2457,7 +2451,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
|
|||
hpriv->ops = &mv6xxx_ops;
|
||||
hp_flags |= MV_HP_GEN_IIE;
|
||||
|
||||
switch (rev_id) {
|
||||
switch (pdev->revision) {
|
||||
case 0x0:
|
||||
hp_flags |= MV_HP_ERRATA_XX42A0;
|
||||
break;
|
||||
|
|
@ -2585,14 +2579,12 @@ static void mv_print_info(struct ata_host *host)
|
|||
{
|
||||
struct pci_dev *pdev = to_pci_dev(host->dev);
|
||||
struct mv_host_priv *hpriv = host->private_data;
|
||||
u8 rev_id, scc;
|
||||
u8 scc;
|
||||
const char *scc_s, *gen;
|
||||
|
||||
/* Use this to determine the HW stepping of the chip so we know
|
||||
* what errata to workaround
|
||||
*/
|
||||
pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id);
|
||||
|
||||
pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &scc);
|
||||
if (scc == 0)
|
||||
scc_s = "SCSI";
|
||||
|
|
|
|||
Loading…
Reference in a new issue