aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Helgaas <bjorn.helgaas@hp.com>2008-06-27 18:57:15 -0400
committerAndi Kleen <andi@basil.nowhere.org>2008-07-16 17:27:07 -0400
commite2a1a6f1cfaf6ee770a8700e5df8a3708dae503b (patch)
treebab0c1b3dbc593fc3d89f3897c3cf949244c3105
parentd5ebde6ef5c2d51828f975a81d7d0e58bccfd833 (diff)
PNP: remove extra 0x100 bit from option priority
When building resource options, ISAPNP and PNPBIOS set the priority to something like "0x100 | PNP_RES_PRIORITY_ACCEPTABLE", but we immediately mask off the 0x100 again in pnp_build_option(), so that bit looks superfluous. Thanks to Rene Herman <rene.herman@gmail.com> for pointing this out. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Rene Herman <rene.herman@gmail.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/pnp/isapnp/core.c8
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c2
-rw-r--r--drivers/pnp/pnpbios/rsparser.c6
3 files changed, 7 insertions, 9 deletions
diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
index 3f75fdbe6098..90718be66463 100644
--- a/drivers/pnp/isapnp/core.c
+++ b/drivers/pnp/isapnp/core.c
@@ -582,7 +582,7 @@ isapnp_parse_name(char *name, unsigned int name_max, unsigned short *size)
582static int __init isapnp_create_device(struct pnp_card *card, 582static int __init isapnp_create_device(struct pnp_card *card,
583 unsigned short size) 583 unsigned short size)
584{ 584{
585 int number = 0, skip = 0, priority = 0, compat = 0; 585 int number = 0, skip = 0, priority, compat = 0;
586 unsigned char type, tmp[17]; 586 unsigned char type, tmp[17];
587 struct pnp_option *option; 587 struct pnp_option *option;
588 struct pnp_dev *dev; 588 struct pnp_dev *dev;
@@ -621,7 +621,6 @@ static int __init isapnp_create_device(struct pnp_card *card,
621 } else { 621 } else {
622 skip = 1; 622 skip = 1;
623 } 623 }
624 priority = 0;
625 compat = 0; 624 compat = 0;
626 break; 625 break;
627 case _STAG_COMPATDEVID: 626 case _STAG_COMPATDEVID:
@@ -650,10 +649,10 @@ static int __init isapnp_create_device(struct pnp_card *card,
650 case _STAG_STARTDEP: 649 case _STAG_STARTDEP:
651 if (size > 1) 650 if (size > 1)
652 goto __skip; 651 goto __skip;
653 priority = 0x100 | PNP_RES_PRIORITY_ACCEPTABLE; 652 priority = PNP_RES_PRIORITY_ACCEPTABLE;
654 if (size > 0) { 653 if (size > 0) {
655 isapnp_peek(tmp, size); 654 isapnp_peek(tmp, size);
656 priority = 0x100 | tmp[0]; 655 priority = tmp[0];
657 size = 0; 656 size = 0;
658 } 657 }
659 option = pnp_register_dependent_option(dev, priority); 658 option = pnp_register_dependent_option(dev, priority);
@@ -663,7 +662,6 @@ static int __init isapnp_create_device(struct pnp_card *card,
663 case _STAG_ENDDEP: 662 case _STAG_ENDDEP:
664 if (size != 0) 663 if (size != 0)
665 goto __skip; 664 goto __skip;
666 priority = 0;
667 dev_dbg(&dev->dev, "end dependent options\n"); 665 dev_dbg(&dev->dev, "end dependent options\n");
668 break; 666 break;
669 case _STAG_IOPORT: 667 case _STAG_IOPORT:
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index 851c773feae1..e114b3d2b933 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -579,7 +579,7 @@ struct acpipnp_parse_option_s {
579static __init acpi_status pnpacpi_option_resource(struct acpi_resource *res, 579static __init acpi_status pnpacpi_option_resource(struct acpi_resource *res,
580 void *data) 580 void *data)
581{ 581{
582 int priority = 0; 582 int priority;
583 struct acpipnp_parse_option_s *parse_data = data; 583 struct acpipnp_parse_option_s *parse_data = data;
584 struct pnp_dev *dev = parse_data->dev; 584 struct pnp_dev *dev = parse_data->dev;
585 struct pnp_option *option = parse_data->option; 585 struct pnp_option *option = parse_data->option;
diff --git a/drivers/pnp/pnpbios/rsparser.c b/drivers/pnp/pnpbios/rsparser.c
index 26fb04cc12bb..db23ba78d39c 100644
--- a/drivers/pnp/pnpbios/rsparser.c
+++ b/drivers/pnp/pnpbios/rsparser.c
@@ -315,7 +315,7 @@ pnpbios_parse_resource_option_data(unsigned char *p, unsigned char *end,
315 struct pnp_dev *dev) 315 struct pnp_dev *dev)
316{ 316{
317 unsigned int len, tag; 317 unsigned int len, tag;
318 int priority = 0; 318 int priority;
319 struct pnp_option *option, *option_independent; 319 struct pnp_option *option, *option_independent;
320 320
321 if (!p) 321 if (!p)
@@ -389,9 +389,9 @@ pnpbios_parse_resource_option_data(unsigned char *p, unsigned char *end,
389 case SMALL_TAG_STARTDEP: 389 case SMALL_TAG_STARTDEP:
390 if (len > 1) 390 if (len > 1)
391 goto len_err; 391 goto len_err;
392 priority = 0x100 | PNP_RES_PRIORITY_ACCEPTABLE; 392 priority = PNP_RES_PRIORITY_ACCEPTABLE;
393 if (len > 0) 393 if (len > 0)
394 priority = 0x100 | p[1]; 394 priority = p[1];
395 option = pnp_register_dependent_option(dev, priority); 395 option = pnp_register_dependent_option(dev, priority);
396 if (!option) 396 if (!option)
397 return NULL; 397 return NULL;