diff options
Diffstat (limited to 'drivers/pcmcia/cs.c')
-rw-r--r-- | drivers/pcmcia/cs.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c index 4d1cc5304e17..e39178fc59d0 100644 --- a/drivers/pcmcia/cs.c +++ b/drivers/pcmcia/cs.c | |||
@@ -215,6 +215,13 @@ int pcmcia_register_socket(struct pcmcia_socket *socket) | |||
215 | list_add_tail(&socket->socket_list, &pcmcia_socket_list); | 215 | list_add_tail(&socket->socket_list, &pcmcia_socket_list); |
216 | up_write(&pcmcia_socket_list_rwsem); | 216 | up_write(&pcmcia_socket_list_rwsem); |
217 | 217 | ||
218 | #ifndef CONFIG_CARDBUS | ||
219 | /* | ||
220 | * If we do not support Cardbus, ensure that | ||
221 | * the Cardbus socket capability is disabled. | ||
222 | */ | ||
223 | socket->features &= ~SS_CAP_CARDBUS; | ||
224 | #endif | ||
218 | 225 | ||
219 | /* set proper values in socket->dev */ | 226 | /* set proper values in socket->dev */ |
220 | socket->dev.class_data = socket; | 227 | socket->dev.class_data = socket; |
@@ -448,11 +455,11 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay) | |||
448 | } | 455 | } |
449 | 456 | ||
450 | if (status & SS_CARDBUS) { | 457 | if (status & SS_CARDBUS) { |
458 | if (!(skt->features & SS_CAP_CARDBUS)) { | ||
459 | cs_err(skt, "cardbus cards are not supported.\n"); | ||
460 | return CS_BAD_TYPE; | ||
461 | } | ||
451 | skt->state |= SOCKET_CARDBUS; | 462 | skt->state |= SOCKET_CARDBUS; |
452 | #ifndef CONFIG_CARDBUS | ||
453 | cs_err(skt, "cardbus cards are not supported.\n"); | ||
454 | return CS_BAD_TYPE; | ||
455 | #endif | ||
456 | } | 463 | } |
457 | 464 | ||
458 | /* | 465 | /* |