aboutsummaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/sys_sio.c
diff options
context:
space:
mode:
authorMorten H. Larsen <m-larsen@post6.tele.dk>2010-06-15 13:22:11 -0400
committerMatt Turner <mattst88@gmail.com>2010-06-15 14:19:08 -0400
commit932e0c201d28a728e25d3b641aa95bd28ceb08b4 (patch)
tree7212f254ae94954f18d7f37d4970011e123e6cb8 /arch/alpha/kernel/sys_sio.c
parent5efa16ff77cb785647a480dcdc70a6b4fc787996 (diff)
alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19
This patch probes for the Super IO chip and reserves the IO range when found. It avoids enabling the IDE interface on the Avanti family, since none has IDE. It enables the Enhanced Parallel Port v1.9 feature. Signed-off-by: Morten H. Larsen <m-larsen@post6.tele.dk> Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'arch/alpha/kernel/sys_sio.c')
-rw-r--r--arch/alpha/kernel/sys_sio.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/arch/alpha/kernel/sys_sio.c b/arch/alpha/kernel/sys_sio.c
index d4327e461c22..85b4aea01ef8 100644
--- a/arch/alpha/kernel/sys_sio.c
+++ b/arch/alpha/kernel/sys_sio.c
@@ -34,6 +34,7 @@
34#include "irq_impl.h" 34#include "irq_impl.h"
35#include "pci_impl.h" 35#include "pci_impl.h"
36#include "machvec_impl.h" 36#include "machvec_impl.h"
37#include "pc873xx.h"
37 38
38#if defined(ALPHA_RESTORE_SRM_SETUP) 39#if defined(ALPHA_RESTORE_SRM_SETUP)
39/* Save LCA configuration data as the console had it set up. */ 40/* Save LCA configuration data as the console had it set up. */
@@ -208,7 +209,27 @@ noname_init_pci(void)
208 common_init_pci(); 209 common_init_pci();
209 sio_pci_route(); 210 sio_pci_route();
210 sio_fixup_irq_levels(sio_collect_irq_levels()); 211 sio_fixup_irq_levels(sio_collect_irq_levels());
211 ns87312_enable_ide(0x26e); 212
213 if (pc873xx_probe() == -1) {
214 printk(KERN_ERR "Probing for PC873xx Super IO chip failed.\n");
215 } else {
216 printk(KERN_INFO "Found %s Super IO chip at 0x%x\n",
217 pc873xx_get_model(), pc873xx_get_base());
218
219 /* Enabling things in the Super IO chip doesn't actually
220 * configure and enable things, the legacy drivers still
221 * need to do the actual configuration and enabling.
222 * This only unblocks them.
223 */
224
225#if !defined(CONFIG_ALPHA_AVANTI)
226 /* Don't bother on the Avanti family.
227 * None of them had on-board IDE.
228 */
229 pc873xx_enable_ide();
230#endif
231 pc873xx_enable_epp19();
232 }
212} 233}
213 234
214static inline void __init 235static inline void __init