lkml.org 
[lkml]   [2004]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] smsc-ircc2: Add PnP support.
Meelis Roos wrote:
>
> I tried it with pnpbios (acpi=off) and it started to work after auto and
> activate (but not with auto alone):
>
> nartsiss:/# modprobe smsc-ircc2
> found SMC SuperIO Chip (devid=0x5a rev=00 base=0x002e): LPC47N227
> smsc_superio_flat(): IrDA not enabled
> smsc_superio_flat(): fir: 0x00, sir: 0x00, dma: 15, irq: 0, mode: 0x02
> FATAL: Error inserting smsc_ircc2
> (/lib/modules/2.6.10-rc2/kernel/drivers/net/irda/smsc-ircc2.ko): No such
> device
> nartsiss:/# echo activate > resources
> pnp: Device 00:0f activated.
> nartsiss:/# modprobe smsc-ircc2
> found SMC SuperIO Chip (devid=0x5a rev=00 base=0x002e): LPC47N227
> smsc_superio_flat(): fir: 0x2e8, sir: 0x100, dma: 03, irq: 5, mode: 0x0e
> SMsC IrDA Controller found
> IrCC version 2.0, firport 0x2e8, sirport 0x100 dma=3, irq=5
> No transceiver found. Defaulting to Fast pin select
> IrDA: Registered device irda0
>
>>>> Could you send me the result of : "for i in /sys/bus/pnp/devices/*;
>>>> do cat $i/id $i/options; done" in order to see if other devices have
>>>> missing resources ?
>
>
> The output with pnpbios is below for comparision.
>
[..]

Ok, I have catch the problem : the pnpacpi parser supposed that are no
resource after EndDependentFn.

Could you try this patch with pnpacpi?


Signed-Off-By: Matthieu Castet <castet.matthieu@free.fr>

--- linux-2.6.9/drivers/pnp/pnpacpi/rsparser.c.old 2004-11-12 22:55:10.000000000 +0100
+++ linux-2.6.9/drivers/pnp/pnpacpi/rsparser.c 2004-11-20 10:44:36.000000000 +0100
@@ -443,6 +443,7 @@

struct acpipnp_parse_option_s {
struct pnp_option *option;
+ struct pnp_option *independent_option;
struct pnp_dev *dev;
};

@@ -506,7 +507,15 @@
parse_data->option = option;
break;
case ACPI_RSTYPE_END_DPF:
- return AE_CTRL_TERMINATE;
+ //return AE_CTRL_TERMINATE;
+ //only one EndDependentFn is allowed
+ if (!parse_data->independent_option) {
+ pnp_warn("PnPACPI: more than one EndDependentFn");
+ return AE_ERROR;
+ }
+ parse_data->option = parse_data->independent_option;
+ parse_data->independent_option = NULL;
+ break;
default:
pnp_warn("PnPACPI:Option type: %d not handle", res->id);
return AE_ERROR;
@@ -524,6 +533,7 @@
parse_data.option = pnp_register_independent_option(dev);
if (!parse_data.option)
return AE_ERROR;
+ parse_data.independent_option = parse_data.option;
parse_data.dev = dev;
status = acpi_walk_resources(handle, METHOD_NAME__PRS,
pnpacpi_option_resource, &parse_data);
\
 
 \ /
  Last update: 2005-03-22 14:08    [from the cache]
©2003-2011 Jasper Spaans