[ARM] pxa: fix the bad assumption that PCMCIA sockets always start with 0
Marek Vasut [Sat, 28 Mar 2009 09:56:28 +0000 (17:56 +0800)]
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>

drivers/pcmcia/pxa2xx_base.c
drivers/pcmcia/pxa2xx_palmld.c

index 16f84aa..c49a726 100644 (file)
@@ -214,7 +214,7 @@ static void pxa2xx_configure_sockets(struct device *dev)
        MECR |= MECR_CIT;
 
        /* Set MECR:NOS (Number Of Sockets) */
-       if (ops->nr > 1 || machine_is_viper())
+       if ((ops->first + ops->nr) > 1 || machine_is_viper())
                MECR |= MECR_NOS;
        else
                MECR &= ~MECR_NOS;
@@ -250,7 +250,7 @@ int __pxa2xx_drv_pcmcia_probe(struct device *dev)
        for (i = 0; i < ops->nr; i++) {
                skt = &sinfo->skt[i];
 
-               skt->nr         = i;
+               skt->nr         = ops->first + i;
                skt->irq        = NO_IRQ;
 
                skt->res_skt.start      = _PCMCIA(skt->nr);
index 1736c67..5ba9b36 100644 (file)
@@ -98,8 +98,8 @@ static void palmld_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
 static struct pcmcia_low_level palmld_pcmcia_ops = {
        .owner                  = THIS_MODULE,
 
-       .first                  = 0,
-       .nr                     = 2,
+       .first                  = 1,
+       .nr                     = 1,
 
        .hw_init                = palmld_pcmcia_hw_init,
        .hw_shutdown            = palmld_pcmcia_hw_shutdown,