diff options
author | Olaf Hering <olaf@aepfle.de> | 2006-10-03 04:13:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 11:03:41 -0400 |
commit | 873ef76bdc56561df75ef5c3f3842c3a64da795d (patch) | |
tree | f717816f0768c7799d976f3dd5e4ace48452fba4 | |
parent | 17a4506d0eb1f78c9018c06a79e7dd09ae78c3a8 (diff) |
[PATCH] restore parport_pc probing on powermac
The last change for partport_pc did fix the common case for all PowerMacs,
but it broke the case for PCI multiport IO cards. In fact, the config
option CONFIG_PARPORT_PC_SUPERIO=y lead to a hard crash when cups probed
the parport driver. It enables the winbond and smsc probing.
Remove the PARPORT_BASE check again, parport_pc_find_nonpci_ports() will
take care of it. All powerpc configs should have
CONFIG_PARPORT_PC_SUPERIO=n, the code did not find anything on the chrp
boards we tested it on.
Tested on a G4/466 with a PCI card:
0001:10:13.0 Serial controller: Timedia Technology Co Ltd PCI2S550 (Dual 16550 UART) (rev 01) (prog-if 02 [16550])
Subsystem: Timedia Technology Co Ltd Unknown device 5079
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 53
Region 0: I/O ports at f2000800 [size=32]
Region 2: I/O ports at f2000870 [size=8]
Region 3: I/O ports at f2000860 [size=8]
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 6 | ||||
-rw-r--r-- | drivers/parport/parport_pc.c | 4 | ||||
-rw-r--r-- | include/asm-powerpc/io.h | 1 |
3 files changed, 0 insertions, 11 deletions
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 98189d8efaca..4f0097f31bdb 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -415,12 +415,6 @@ static int pSeries_check_legacy_ioport(unsigned int baseport) | |||
415 | return -ENODEV; | 415 | return -ENODEV; |
416 | of_node_put(np); | 416 | of_node_put(np); |
417 | break; | 417 | break; |
418 | case PARALLEL_BASE: | ||
419 | np = of_find_node_by_type(NULL, "parallel"); | ||
420 | if (np == NULL) | ||
421 | return -ENODEV; | ||
422 | of_node_put(np); | ||
423 | break; | ||
424 | } | 418 | } |
425 | return 0; | 419 | return 0; |
426 | } | 420 | } |
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index 43894ddec7dc..fe800dc0be9f 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c | |||
@@ -3374,10 +3374,6 @@ __setup("parport_init_mode=",parport_init_mode_setup); | |||
3374 | 3374 | ||
3375 | static int __init parport_pc_init(void) | 3375 | static int __init parport_pc_init(void) |
3376 | { | 3376 | { |
3377 | #if defined(CONFIG_PPC_MERGE) | ||
3378 | if (check_legacy_ioport(PARALLEL_BASE)) | ||
3379 | return -ENODEV; | ||
3380 | #endif | ||
3381 | if (parse_parport_params()) | 3377 | if (parse_parport_params()) |
3382 | return -EINVAL; | 3378 | return -EINVAL; |
3383 | 3379 | ||
diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h index 19b2ec1ec665..cbbd8c648df1 100644 --- a/include/asm-powerpc/io.h +++ b/include/asm-powerpc/io.h | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | /* Check of existence of legacy devices */ | 12 | /* Check of existence of legacy devices */ |
13 | extern int check_legacy_ioport(unsigned long base_port); | 13 | extern int check_legacy_ioport(unsigned long base_port); |
14 | #define PARALLEL_BASE 0x378 | ||
15 | #define PNPBIOS_BASE 0xf000 /* only relevant for PReP */ | 14 | #define PNPBIOS_BASE 0xf000 /* only relevant for PReP */ |
16 | 15 | ||
17 | #ifndef CONFIG_PPC64 | 16 | #ifndef CONFIG_PPC64 |