diff options
| -rw-r--r-- | drivers/pcmcia/cs_internal.h | 2 | ||||
| -rw-r--r-- | drivers/pcmcia/pcmcia_resource.c | 14 | ||||
| -rw-r--r-- | include/pcmcia/cs.h | 2 |
3 files changed, 10 insertions, 8 deletions
diff --git a/drivers/pcmcia/cs_internal.h b/drivers/pcmcia/cs_internal.h index da055dc14d98..9487340deaf0 100644 --- a/drivers/pcmcia/cs_internal.h +++ b/drivers/pcmcia/cs_internal.h | |||
| @@ -36,7 +36,7 @@ typedef struct config_t { | |||
| 36 | unsigned int Attributes; | 36 | unsigned int Attributes; |
| 37 | unsigned int IntType; | 37 | unsigned int IntType; |
| 38 | unsigned int ConfigBase; | 38 | unsigned int ConfigBase; |
| 39 | unsigned char Status, Pin, Copy, Option, ExtStatus; | 39 | unsigned char Status, Option, ExtStatus; |
| 40 | unsigned int CardValues; | 40 | unsigned int CardValues; |
| 41 | 41 | ||
| 42 | struct resource io[MAX_IO_WIN]; /* io ports */ | 42 | struct resource io[MAX_IO_WIN]; /* io ports */ |
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c index 817d00adfc89..28717eea7c57 100644 --- a/drivers/pcmcia/pcmcia_resource.c +++ b/drivers/pcmcia/pcmcia_resource.c | |||
| @@ -489,8 +489,14 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev, | |||
| 489 | base = c->ConfigBase = req->ConfigBase; | 489 | base = c->ConfigBase = req->ConfigBase; |
| 490 | c->CardValues = req->Present; | 490 | c->CardValues = req->Present; |
| 491 | if (req->Present & PRESENT_COPY) { | 491 | if (req->Present & PRESENT_COPY) { |
| 492 | c->Copy = req->Copy; | 492 | u16 tmp = 0; |
| 493 | pcmcia_write_cis_mem(s, 1, (base + CISREG_SCR)>>1, 1, &c->Copy); | 493 | dev_dbg(&p_dev->dev, "clearing CISREG_SCR\n"); |
| 494 | pcmcia_write_cis_mem(s, 1, (base + CISREG_SCR)>>1, 1, &tmp); | ||
| 495 | } | ||
| 496 | if (req->Present & PRESENT_PIN_REPLACE) { | ||
| 497 | u16 tmp = 0; | ||
| 498 | dev_dbg(&p_dev->dev, "clearing CISREG_PRR\n"); | ||
| 499 | pcmcia_write_cis_mem(s, 1, (base + CISREG_PRR)>>1, 1, &tmp); | ||
| 494 | } | 500 | } |
| 495 | if (req->Present & PRESENT_OPTION) { | 501 | if (req->Present & PRESENT_OPTION) { |
| 496 | if (s->functions == 1) { | 502 | if (s->functions == 1) { |
| @@ -511,10 +517,6 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev, | |||
| 511 | c->Status = req->Status; | 517 | c->Status = req->Status; |
| 512 | pcmcia_write_cis_mem(s, 1, (base + CISREG_CCSR)>>1, 1, &c->Status); | 518 | pcmcia_write_cis_mem(s, 1, (base + CISREG_CCSR)>>1, 1, &c->Status); |
| 513 | } | 519 | } |
| 514 | if (req->Present & PRESENT_PIN_REPLACE) { | ||
| 515 | c->Pin = req->Pin; | ||
| 516 | pcmcia_write_cis_mem(s, 1, (base + CISREG_PRR)>>1, 1, &c->Pin); | ||
| 517 | } | ||
| 518 | if (req->Present & PRESENT_EXT_STATUS) { | 520 | if (req->Present & PRESENT_EXT_STATUS) { |
| 519 | c->ExtStatus = req->ExtStatus; | 521 | c->ExtStatus = req->ExtStatus; |
| 520 | pcmcia_write_cis_mem(s, 1, (base + CISREG_ESR)>>1, 1, &c->ExtStatus); | 522 | pcmcia_write_cis_mem(s, 1, (base + CISREG_ESR)>>1, 1, &c->ExtStatus); |
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h index ccb8e6e0dd6b..e656abee1741 100644 --- a/include/pcmcia/cs.h +++ b/include/pcmcia/cs.h | |||
| @@ -24,7 +24,7 @@ typedef struct config_req_t { | |||
| 24 | u_int Attributes; | 24 | u_int Attributes; |
| 25 | u_int IntType; | 25 | u_int IntType; |
| 26 | u_int ConfigBase; | 26 | u_int ConfigBase; |
| 27 | u_char Status, Pin, Copy, ExtStatus; | 27 | u_char Status, ExtStatus; |
| 28 | u_char ConfigIndex; | 28 | u_char ConfigIndex; |
| 29 | u_int Present; | 29 | u_int Present; |
| 30 | } config_req_t; | 30 | } config_req_t; |
