You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (109 commits) PCI: fix coding style issue in pci_save_state() PCI: add pci_request_acs PCI: fix BUG_ON triggered by logical PCIe root port removal PCI: remove ifdefed pci_cleanup_aer_correct_error_status PCI: unconditionally clear AER uncorr status register during cleanup x86/PCI: claim SR-IOV BARs in pcibios_allocate_resource PCI: portdrv: remove redundant definitions PCI: portdrv: remove unnecessary struct pcie_port_data PCI: portdrv: minor cleanup for pcie_port_device_register PCI: portdrv: add missing irq cleanup PCI: portdrv: enable device before irq initialization PCI: portdrv: cleanup service irqs initialization PCI: portdrv: check capabilities first PCI: portdrv: move PME capability check PCI: portdrv: remove redundant pcie type calculation PCI: portdrv: cleanup pcie_device registration PCI: portdrv: remove redundant pcie_port_device_probe PCI: Always set prefetchable base/limit upper32 registers PCI: read-modify-write the pcie device control register when initiating pcie flr PCI: show dma_mask bits in /sys ... Fixed up conflicts in: arch/x86/kernel/amd_iommu_init.c drivers/pci/dmar.c drivers/pci/hotplug/acpiphp_glue.c
This commit is contained in:
@@ -184,26 +184,33 @@ fail:
|
||||
|
||||
=====================================================================*/
|
||||
|
||||
/*
|
||||
* Since there is only one interrupt available to CardBus
|
||||
* devices, all devices downstream of this device must
|
||||
* be using this IRQ.
|
||||
*/
|
||||
static void cardbus_assign_irqs(struct pci_bus *bus, int irq)
|
||||
static void cardbus_config_irq_and_cls(struct pci_bus *bus, int irq)
|
||||
{
|
||||
struct pci_dev *dev;
|
||||
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
u8 irq_pin;
|
||||
|
||||
/*
|
||||
* Since there is only one interrupt available to
|
||||
* CardBus devices, all devices downstream of this
|
||||
* device must be using this IRQ.
|
||||
*/
|
||||
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq_pin);
|
||||
if (irq_pin) {
|
||||
dev->irq = irq;
|
||||
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
|
||||
}
|
||||
|
||||
/*
|
||||
* Some controllers transfer very slowly with 0 CLS.
|
||||
* Configure it. This may fail as CLS configuration
|
||||
* is mandatory only for MWI.
|
||||
*/
|
||||
pci_set_cacheline_size(dev);
|
||||
|
||||
if (dev->subordinate)
|
||||
cardbus_assign_irqs(dev->subordinate, irq);
|
||||
cardbus_config_irq_and_cls(dev->subordinate, irq);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +235,7 @@ int __ref cb_alloc(struct pcmcia_socket * s)
|
||||
*/
|
||||
pci_bus_size_bridges(bus);
|
||||
pci_bus_assign_resources(bus);
|
||||
cardbus_assign_irqs(bus, s->pci_irq);
|
||||
cardbus_config_irq_and_cls(bus, s->pci_irq);
|
||||
|
||||
/* socket specific tune function */
|
||||
if (s->tune_bridge)
|
||||
|
||||
Reference in New Issue
Block a user