Commit d250a4810402ec68f64802b66340a0e70c61cbd3

Authored by Daniel Ritz
Committed by Dominik Brodowski
1 parent 598736c556

[PATCH] yenta: do power-up only after socket is configured

Power-up the card only after the socket is configured. power-down in
the old place. The point is not to power-up the card before the interrupt
routing is set up correctly.

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

Showing 1 changed file with 8 additions and 1 deletions Side-by-side Diff

drivers/pcmcia/yenta_socket.c
... ... @@ -287,7 +287,10 @@
287 287 struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
288 288 u16 bridge;
289 289  
290   - yenta_set_power(socket, state);
  290 + /* if powering down: do it immediately */
  291 + if (state->Vcc == 0)
  292 + yenta_set_power(socket, state);
  293 +
291 294 socket->io_irq = state->io_irq;
292 295 bridge = config_readw(socket, CB_BRIDGE_CONTROL) & ~(CB_BRIDGE_CRST | CB_BRIDGE_INTR);
293 296 if (cb_readl(socket, CB_SOCKET_STATE) & CB_CBCARD) {
... ... @@ -339,6 +342,10 @@
339 342 /* Socket event mask: get card insert/remove events.. */
340 343 cb_writel(socket, CB_SOCKET_EVENT, -1);
341 344 cb_writel(socket, CB_SOCKET_MASK, CB_CDMASK);
  345 +
  346 + /* if powering up: do it as the last step when the socket is configured */
  347 + if (state->Vcc != 0)
  348 + yenta_set_power(socket, state);
342 349 return 0;
343 350 }
344 351