diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2008-06-27 18:57:15 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2008-07-16 17:27:07 -0400 |
commit | e2a1a6f1cfaf6ee770a8700e5df8a3708dae503b (patch) | |
tree | bab0c1b3dbc593fc3d89f3897c3cf949244c3105 /drivers/pnp | |
parent | d5ebde6ef5c2d51828f975a81d7d0e58bccfd833 (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>
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/isapnp/core.c | 8 | ||||
-rw-r--r-- | drivers/pnp/pnpacpi/rsparser.c | 2 | ||||
-rw-r--r-- | drivers/pnp/pnpbios/rsparser.c | 6 |
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) | |||
582 | static int __init isapnp_create_device(struct pnp_card *card, | 582 | static 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 { | |||
579 | static __init acpi_status pnpacpi_option_resource(struct acpi_resource *res, | 579 | static __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; |