X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpnp%2Fpnpbios%2Frsparser.c;h=618ac15a9e90b2f1b98e76eb15225f989cf138bc;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=7aafbf80daf3e15faf1a1d779a6fab05e23f9ad3;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/pnp/pnpbios/rsparser.c b/drivers/pnp/pnpbios/rsparser.c index 7aafbf80d..618ac15a9 100644 --- a/drivers/pnp/pnpbios/rsparser.c +++ b/drivers/pnp/pnpbios/rsparser.c @@ -8,6 +8,12 @@ #include #include +#ifdef CONFIG_PCI +#include +#else +inline void pcibios_penalize_isa_irq(int irq) {} +#endif /* CONFIG_PCI */ + #include "pnpbios.h" /* standard resource tags */ @@ -58,6 +64,7 @@ pnpbios_parse_allocated_irqresource(struct pnp_resource_table * res, int irq) } res->irq_resource[i].start = res->irq_resource[i].end = (unsigned long) irq; + pcibios_penalize_isa_irq(irq); } } @@ -285,10 +292,13 @@ static void pnpbios_parse_irq_option(unsigned char *p, int size, struct pnp_option *option) { struct pnp_irq * irq; + unsigned long bits; + irq = pnpbios_kmalloc(sizeof(struct pnp_irq), GFP_KERNEL); if (!irq) return; - irq->map = (p[2] << 8) | p[1]; + bits = (p[2] << 8) | p[1]; + bitmap_copy(irq->map, &bits, 16); if (size > 2) irq->flags = p[3]; else