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    [W:0.024 / U:58.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site