소스 검색

[POWERPC] Add support for PCI-Express nodes in the device tree

This adds support to recognize the PCIe device_type "pciex" and made
the portdrv buildable.

Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Jake Moilanen 19 년 전
부모
커밋
bb53bb3dcb
3개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 0
      arch/powerpc/Kconfig
  2. 1 1
      arch/powerpc/kernel/pci_64.c
  3. 3 1
      arch/powerpc/kernel/rtas_pci.c

+ 2 - 0
arch/powerpc/Kconfig

@@ -853,6 +853,8 @@ config 8260_PCI9_IDMA4
 
 
 endchoice
 endchoice
 
 
+source "drivers/pci/pcie/Kconfig"
+
 source "drivers/pci/Kconfig"
 source "drivers/pci/Kconfig"
 
 
 source "drivers/pcmcia/Kconfig"
 source "drivers/pcmcia/Kconfig"

+ 1 - 1
arch/powerpc/kernel/pci_64.c

@@ -388,7 +388,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
 
 
 	dev->current_state = 4;		/* unknown power state */
 	dev->current_state = 4;		/* unknown power state */
 
 
-	if (!strcmp(type, "pci")) {
+	if (!strcmp(type, "pci") || !strcmp(type, "pciex")) {
 		/* 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;

+ 3 - 1
arch/powerpc/kernel/rtas_pci.c

@@ -313,7 +313,9 @@ unsigned long __init find_and_init_phbs(void)
 	for (node = of_get_next_child(root, NULL);
 	for (node = of_get_next_child(root, NULL);
 	     node != NULL;
 	     node != NULL;
 	     node = of_get_next_child(root, node)) {
 	     node = of_get_next_child(root, node)) {
-		if (node->type == NULL || strcmp(node->type, "pci") != 0)
+
+		if (node->type == NULL || (strcmp(node->type, "pci") != 0 &&
+					   strcmp(node->type, "pciex") != 0))
 			continue;
 			continue;
 
 
 		phb = pcibios_alloc_controller(node);
 		phb = pcibios_alloc_controller(node);