lkml.org 
[lkml]   [2001]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH] PnP BIOS support for i82365.c
    From
    Hello all,

    attached patch adds PnP BIOS support in i82365 PCMCIA driver.
    I hope it will be usefull for people with strange hardware configurations.

    Best regards.

    --
    Andrey Panin | Embedded systems software engineer
    pazke@orbita1.ru | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.ascdiff -urN -X /usr/dontdiff /linux.vanilla/drivers/pcmcia/i82365.c /linux/drivers/pcmcia/i82365.c
    --- /linux.vanilla/drivers/pcmcia/i82365.c Sun Sep 2 23:42:50 2001
    +++ /linux/drivers/pcmcia/i82365.c Mon Sep 3 00:28:16 2001
    @@ -58,6 +58,7 @@
    #include <pcmcia/cs.h>

    #include <linux/isapnp.h>
    +#include <linux/pnp_bios.h>

    /* ISA-bus controllers */
    #include "i82365.h"
    @@ -821,33 +822,53 @@
    #if defined(CONFIG_ISAPNP) || (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE))
    #define I82365_ISAPNP
    #endif
    +#ifdef CONFIG_PNPBIOS
    +#define I82365_PNPBIOS
    +#endif
    +#if defined(I82365_ISAPNP) || defined(I82365_PNPBIOS)
    +#define I82365_PNP
    +#endif

    -#ifdef I82365_ISAPNP
    +#ifdef I82365_PNP
    static struct isapnp_device_id id_table[] __initdata = {
    { ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
    - ISAPNP_FUNCTION(0x0e00), (unsigned long) "Intel 82365-Compatible" },
    + ISAPNP_FUNCTION(0x0e00), (unsigned long) "PNP0e00" },
    { ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
    - ISAPNP_FUNCTION(0x0e01), (unsigned long) "Cirrus Logic CL-PD6720" },
    + ISAPNP_FUNCTION(0x0e01), (unsigned long) "PNP0e01" },
    { ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
    - ISAPNP_FUNCTION(0x0e02), (unsigned long) "VLSI VL82C146" },
    + ISAPNP_FUNCTION(0x0e02), (unsigned long) "PNP0e02" },
    { 0 }
    };
    MODULE_DEVICE_TABLE(isapnp, id_table);

    static struct pci_dev *i82365_pnpdev;
    +
    +static struct pci_dev *pnp_find_dev(struct isapnp_device_id *id)
    +{
    + struct pci_dev *dev = NULL;
    +#ifdef I82365_ISAPNP
    + if ((dev = isapnp_find_dev(NULL, id->vendor, id->function, NULL)))
    + return dev;
    +#endif
    +#ifdef I82365_PNPBIOS
    + if ((dev = pnpbios_find_device((char *)id->driver_data, NULL)))
    + return dev;
    +#endif
    + return dev;
    +}
    #endif

    static void __init isa_probe(void)
    {
    int i, j, sock, k, ns, id;
    ioaddr_t port;
    -#ifdef I82365_ISAPNP
    +#ifdef I82365_PNP
    struct isapnp_device_id *devid;
    struct pci_dev *dev;

    for (devid = id_table; devid->vendor; devid++) {
    - if ((dev = isapnp_find_dev(NULL, devid->vendor, devid->function, NULL))) {
    - printk("ISAPNP ");
    + if ((dev = pnp_find_dev(devid))) {
    + printk("PNP ");

    if (dev->prepare && dev->prepare(dev) < 0) {
    printk("prepare failed\n");
    @@ -1652,7 +1673,7 @@
    i365_set(i, I365_CSCINT, 0);
    release_region(socket[i].ioaddr, 2);
    }
    -#if defined(CONFIG_ISA) && defined(I82365_ISAPNP)
    +#if defined(CONFIG_ISA) && defined(I82365_PNP)
    if (i82365_pnpdev && i82365_pnpdev->deactivate)
    i82365_pnpdev->deactivate(i82365_pnpdev);
    #endif[unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2005-03-22 13:17    [W:0.026 / U:63.636 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site