mirror of https://gitee.com/openkylin/linux.git
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Fix missing devices due to PCI bridge test in of_create_pci_dev(). sparc64: Fix disappearing PCI devices on e3500.
This commit is contained in:
commit
1910e021f2
|
@ -169,7 +169,7 @@ static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long fla
|
||||||
|
|
||||||
static int of_bus_pci_match(struct device_node *np)
|
static int of_bus_pci_match(struct device_node *np)
|
||||||
{
|
{
|
||||||
if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
|
if (!strcmp(np->name, "pci")) {
|
||||||
const char *model = of_get_property(np, "model", NULL);
|
const char *model = of_get_property(np, "model", NULL);
|
||||||
|
|
||||||
if (model && !strcmp(model, "SUNW,simba"))
|
if (model && !strcmp(model, "SUNW,simba"))
|
||||||
|
@ -200,7 +200,7 @@ static int of_bus_simba_match(struct device_node *np)
|
||||||
/* Treat PCI busses lacking ranges property just like
|
/* Treat PCI busses lacking ranges property just like
|
||||||
* simba.
|
* simba.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
|
if (!strcmp(np->name, "pci")) {
|
||||||
if (!of_find_property(np, "ranges", NULL))
|
if (!of_find_property(np, "ranges", NULL))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -429,7 +429,7 @@ static int __init use_1to1_mapping(struct device_node *pp)
|
||||||
* it lacks a ranges property, and this will include
|
* it lacks a ranges property, and this will include
|
||||||
* cases like Simba.
|
* cases like Simba.
|
||||||
*/
|
*/
|
||||||
if (!strcmp(pp->type, "pci") || !strcmp(pp->type, "pciex"))
|
if (!strcmp(pp->name, "pci"))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -714,8 +714,7 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!strcmp(pp->type, "pci") ||
|
if (!strcmp(pp->name, "pci")) {
|
||||||
!strcmp(pp->type, "pciex")) {
|
|
||||||
unsigned int this_orig_irq = irq;
|
unsigned int this_orig_irq = irq;
|
||||||
|
|
||||||
irq = pci_irq_swizzle(dp, pp, irq);
|
irq = pci_irq_swizzle(dp, pp, irq);
|
||||||
|
|
|
@ -425,7 +425,7 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
|
||||||
dev->current_state = 4; /* unknown power state */
|
dev->current_state = 4; /* unknown power state */
|
||||||
dev->error_state = pci_channel_io_normal;
|
dev->error_state = pci_channel_io_normal;
|
||||||
|
|
||||||
if (!strcmp(type, "pci") || !strcmp(type, "pciex")) {
|
if (!strcmp(node->name, "pci")) {
|
||||||
/* a PCI-PCI bridge */
|
/* a PCI-PCI bridge */
|
||||||
dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
|
dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
|
||||||
dev->rom_base_reg = PCI_ROM_ADDRESS1;
|
dev->rom_base_reg = PCI_ROM_ADDRESS1;
|
||||||
|
|
Loading…
Reference in New Issue