pcmcia: add locking to set_mem_map()
[safe/jmp/linux-2.6] / drivers / pcmcia / omap_cf.c
index bb6db3a..3ef9915 100644 (file)
 
 #include <pcmcia/ss.h>
 
-#include <asm/hardware.h>
+#include <mach/hardware.h>
 #include <asm/io.h>
 #include <asm/sizes.h>
 
-#include <asm/arch/mux.h>
-#include <asm/arch/tc.h>
+#include <plat/mux.h>
+#include <plat/tc.h>
 
 
 /* NOTE:  don't expect this to support many I/O cards.  The 16xx chips have
 #define        CF_BASE 0xfffe2800
 
 /* status; read after IRQ */
-#define CF_STATUS_REG          __REG16(CF_BASE + 0x00)
+#define CF_STATUS                      (CF_BASE + 0x00)
 #      define  CF_STATUS_BAD_READ      (1 << 2)
 #      define  CF_STATUS_BAD_WRITE     (1 << 1)
 #      define  CF_STATUS_CARD_DETECT   (1 << 0)
 
 /* which chipselect (CS0..CS3) is used for CF (active low) */
-#define CF_CFG_REG             __REG16(CF_BASE + 0x02)
+#define CF_CFG                         (CF_BASE + 0x02)
 
 /* card reset */
-#define CF_CONTROL_REG         __REG16(CF_BASE + 0x04)
+#define CF_CONTROL                     (CF_BASE + 0x04)
 #      define  CF_CONTROL_RESET        (1 << 0)
 
-#define omap_cf_present() (!(CF_STATUS_REG & CF_STATUS_CARD_DETECT))
+#define omap_cf_present() (!(omap_readw(CF_STATUS) & CF_STATUS_CARD_DETECT))
 
 /*--------------------------------------------------------------------------*/
 
@@ -71,8 +71,6 @@ struct omap_cf_socket {
 
 #define        POLL_INTERVAL           (2 * HZ)
 
-#define        SZ_2K                   (2 * SZ_1K)
-
 /*--------------------------------------------------------------------------*/
 
 static int omap_cf_ss_init(struct pcmcia_socket *s)
@@ -139,11 +137,11 @@ omap_cf_set_socket(struct pcmcia_socket *sock, struct socket_state_t *s)
                return -EINVAL;
        }
 
-       control = CF_CONTROL_REG;
+       control = omap_readw(CF_CONTROL);
        if (s->flags & SS_RESET)
-               CF_CONTROL_REG = CF_CONTROL_RESET;
+               omap_writew(CF_CONTROL_RESET, CF_CONTROL);
        else
-               CF_CONTROL_REG = 0;
+               omap_writew(0, CF_CONTROL);
 
        pr_debug("%s: Vcc %d, io_irq %d, flags %04x csc %04x\n",
                driver_name, s->Vcc, s->io_irq, s->flags, s->csc_mask);
@@ -153,7 +151,7 @@ omap_cf_set_socket(struct pcmcia_socket *sock, struct socket_state_t *s)
 
 static int omap_cf_ss_suspend(struct pcmcia_socket *s)
 {
-       pr_debug("%s: %s\n", driver_name, __FUNCTION__);
+       pr_debug("%s: %s\n", driver_name, __func__);
        return omap_cf_set_socket(s, &dead_socket);
 }
 
@@ -270,7 +268,7 @@ static int __init omap_cf_probe(struct platform_device *pdev)
        omap_cfg_reg(V10_1610_CF_IREQ);
        omap_cfg_reg(W10_1610_CF_RESET);
 
-       CF_CFG_REG = ~(1 << seg);
+       omap_writew(~(1 << seg), CF_CFG);
 
        pr_info("%s: cs%d on irq %d\n", driver_name, seg, irq);
 
@@ -279,14 +277,15 @@ static int __init omap_cf_probe(struct platform_device *pdev)
         * CF/PCMCIA variants...
         */
        pr_debug("%s: cs%d, previous ccs %08x acs %08x\n", driver_name,
-                       seg, EMIFS_CCS(seg), EMIFS_ACS(seg));
-       EMIFS_CCS(seg) = 0x0004a1b3;    /* synch mode 4 etc */
-       EMIFS_ACS(seg) = 0x00000000;    /* OE hold/setup */
+               seg, omap_readl(EMIFS_CCS(seg)), omap_readl(EMIFS_ACS(seg)));
+       omap_writel(0x0004a1b3, EMIFS_CCS(seg));        /* synch mode 4 etc */
+       omap_writel(0x00000000, EMIFS_ACS(seg));        /* OE hold/setup */
 
        /* CF uses armxor_ck, which is "always" available */
 
        pr_debug("%s: sts %04x cfg %04x control %04x %s\n", driver_name,
-               CF_STATUS_REG, CF_CFG_REG, CF_CONTROL_REG,
+               omap_readw(CF_STATUS), omap_readw(CF_CFG),
+               omap_readw(CF_CONTROL),
                omap_cf_present() ? "present" : "(not present)");
 
        cf->socket.owner = THIS_MODULE;
@@ -333,7 +332,7 @@ static int __exit omap_cf_remove(struct platform_device *pdev)
 
 static int omap_cf_suspend(struct platform_device *pdev, pm_message_t mesg)
 {
-       return pcmcia_socket_dev_suspend(&pdev->dev, mesg);
+       return pcmcia_socket_dev_suspend(&pdev->dev);
 }
 
 static int omap_cf_resume(struct platform_device *pdev)