aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2006-10-03 04:13:56 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-03 11:03:41 -0400
commit873ef76bdc56561df75ef5c3f3842c3a64da795d (patch)
treef717816f0768c7799d976f3dd5e4ace48452fba4
parent17a4506d0eb1f78c9018c06a79e7dd09ae78c3a8 (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.c6
-rw-r--r--drivers/parport/parport_pc.c4
-rw-r--r--include/asm-powerpc/io.h1
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
3375static int __init parport_pc_init(void) 3375static 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 */
13extern int check_legacy_ioport(unsigned long base_port); 13extern 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