Commit 7c31d2f5 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Linus Torvalds

smsc-ircc2: skip preconfiguration for PNP devices

If we rely on the device resources from PNPBIOS, we also have to rely on
the BIOS to configure any bridges on the way to the device.

Using the PNPBIOS resources but changing the configuration of a bridge
behind the back of the firmware is likely to make things inconsistent.

This patch addresses part of the 2.6.22 regression:
    "no irda0 interface (2.6.21 was OK), smsc does not find chip"
It fixes smsc-ircc2 PNP device detection on HP nx5000 laptops.
Other laptops, including HP nc6000, HP nc8000, HP nw8000, and Toshiba
Portege 4000, still need PNP quirks to make this work.

With "smsc-ircc2.nopnp", we do the legacy device probe, including manual
bridge preconfiguration, as before.
Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Samuel Ortiz <samuel@sortiz.org>
Acked-by: default avatar"Linus Walleij (LD/EAB)" <linus.walleij@ericsson.com>
Cc: Andrey Borzenkov <arvidjaar@mail.ru>
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 80581c43
...@@ -416,6 +416,13 @@ static int __init smsc_ircc_legacy_probe(void) ...@@ -416,6 +416,13 @@ static int __init smsc_ircc_legacy_probe(void)
{ {
int ret = 0; int ret = 0;
#ifdef CONFIG_PCI
if (smsc_ircc_preconfigure_subsystems(ircc_cfg, ircc_fir, ircc_sir, ircc_dma, ircc_irq) < 0) {
/* Ignore errors from preconfiguration */
IRDA_ERROR("%s, Preconfiguration failed !\n", driver_name);
}
#endif
if (ircc_fir > 0 && ircc_sir > 0) { if (ircc_fir > 0 && ircc_sir > 0) {
IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir); IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir);
IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir); IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir);
...@@ -459,13 +466,6 @@ static int __init smsc_ircc_init(void) ...@@ -459,13 +466,6 @@ static int __init smsc_ircc_init(void)
return ret; return ret;
} }
#ifdef CONFIG_PCI
if (smsc_ircc_preconfigure_subsystems(ircc_cfg, ircc_fir, ircc_sir, ircc_dma, ircc_irq) < 0) {
/* Ignore errors from preconfiguration */
IRDA_ERROR("%s, Preconfiguration failed !\n", driver_name);
}
#endif
dev_count = 0; dev_count = 0;
if (smsc_nopnp || !pnp_platform_devices || if (smsc_nopnp || !pnp_platform_devices ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment