diff options
author | Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> | 2007-05-11 08:43:09 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-05-11 09:28:34 -0400 |
commit | 3f2d560e9029ec0b7edf8be0c32425f4bb57d582 (patch) | |
tree | c1eec72f06c535cd18e2e53efd01e3403572056b | |
parent | b0cc114c04c114b933661eba329d9776c0eab74c (diff) |
[MIPS] Rework cobalt_board_id
This patch has reworked cobalt_board_id.
The cobalt_board_id is read from PCI config register.
It should be in PCI routine.
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/cobalt/setup.c | 12 | ||||
-rw-r--r-- | arch/mips/pci/fixup-cobalt.c | 21 |
2 files changed, 21 insertions, 12 deletions
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c index e2f53abfb440..7abe45e78425 100644 --- a/arch/mips/cobalt/setup.c +++ b/arch/mips/cobalt/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
13 | #include <linux/pci.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/pm.h> | 14 | #include <linux/pm.h> |
16 | 15 | ||
@@ -26,8 +25,6 @@ extern void cobalt_machine_restart(char *command); | |||
26 | extern void cobalt_machine_halt(void); | 25 | extern void cobalt_machine_halt(void); |
27 | extern void cobalt_machine_power_off(void); | 26 | extern void cobalt_machine_power_off(void); |
28 | 27 | ||
29 | int cobalt_board_id; | ||
30 | |||
31 | const char *get_system_type(void) | 28 | const char *get_system_type(void) |
32 | { | 29 | { |
33 | switch (cobalt_board_id) { | 30 | switch (cobalt_board_id) { |
@@ -92,7 +89,6 @@ static struct resource cobalt_reserved_resources[] = { | |||
92 | 89 | ||
93 | void __init plat_mem_setup(void) | 90 | void __init plat_mem_setup(void) |
94 | { | 91 | { |
95 | unsigned int devfn = PCI_DEVFN(COBALT_PCICONF_VIA, 0); | ||
96 | int i; | 92 | int i; |
97 | 93 | ||
98 | _machine_restart = cobalt_machine_restart; | 94 | _machine_restart = cobalt_machine_restart; |
@@ -107,14 +103,6 @@ void __init plat_mem_setup(void) | |||
107 | /* These resources have been reserved by VIA SuperI/O chip. */ | 103 | /* These resources have been reserved by VIA SuperI/O chip. */ |
108 | for (i = 0; i < ARRAY_SIZE(cobalt_reserved_resources); i++) | 104 | for (i = 0; i < ARRAY_SIZE(cobalt_reserved_resources); i++) |
109 | request_resource(&ioport_resource, cobalt_reserved_resources + i); | 105 | request_resource(&ioport_resource, cobalt_reserved_resources + i); |
110 | |||
111 | /* Read the cobalt id register out of the PCI config space */ | ||
112 | PCI_CFG_SET(devfn, (VIA_COBALT_BRD_ID_REG & ~0x3)); | ||
113 | cobalt_board_id = GT_READ(GT_PCI0_CFGDATA_OFS); | ||
114 | cobalt_board_id >>= ((VIA_COBALT_BRD_ID_REG & 3) * 8); | ||
115 | cobalt_board_id = VIA_COBALT_BRD_REG_to_ID(cobalt_board_id); | ||
116 | |||
117 | printk("Cobalt board ID: %d\n", cobalt_board_id); | ||
118 | } | 106 | } |
119 | 107 | ||
120 | /* | 108 | /* |
diff --git a/arch/mips/pci/fixup-cobalt.c b/arch/mips/pci/fixup-cobalt.c index f4acae694a5a..d57ffd7242ca 100644 --- a/arch/mips/pci/fixup-cobalt.c +++ b/arch/mips/pci/fixup-cobalt.c | |||
@@ -113,6 +113,27 @@ static void qube_raq_galileo_fixup(struct pci_dev *dev) | |||
113 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, | 113 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, |
114 | qube_raq_galileo_fixup); | 114 | qube_raq_galileo_fixup); |
115 | 115 | ||
116 | int cobalt_board_id; | ||
117 | |||
118 | static void qube_raq_via_board_id_fixup(struct pci_dev *dev) | ||
119 | { | ||
120 | u8 id; | ||
121 | int retval; | ||
122 | |||
123 | retval = pci_read_config_byte(dev, VIA_COBALT_BRD_ID_REG, &id); | ||
124 | if (retval) { | ||
125 | panic("Cannot read board ID"); | ||
126 | return; | ||
127 | } | ||
128 | |||
129 | cobalt_board_id = VIA_COBALT_BRD_REG_to_ID(id); | ||
130 | |||
131 | printk(KERN_INFO "Cobalt board ID: %d\n", cobalt_board_id); | ||
132 | } | ||
133 | |||
134 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, | ||
135 | qube_raq_via_board_id_fixup); | ||
136 | |||
116 | static char irq_tab_qube1[] __initdata = { | 137 | static char irq_tab_qube1[] __initdata = { |
117 | [COBALT_PCICONF_CPU] = 0, | 138 | [COBALT_PCICONF_CPU] = 0, |
118 | [COBALT_PCICONF_ETH0] = COBALT_QUBE1_ETH0_IRQ, | 139 | [COBALT_PCICONF_ETH0] = COBALT_QUBE1_ETH0_IRQ, |