svcrpc: treat uid's as unsigned
[safe/jmp/linux-2.6] / drivers / pcmcia / pxa2xx_base.c
index 3cb4fd2..76e640b 100644 (file)
@@ -214,7 +214,8 @@ static void pxa2xx_configure_sockets(struct device *dev)
        MECR |= MECR_CIT;
 
        /* Set MECR:NOS (Number Of Sockets) */
-       if ((ops->first + ops->nr) > 1 || machine_is_viper())
+       if ((ops->first + ops->nr) > 1 ||
+           machine_is_viper() || machine_is_arcom_zeus())
                MECR |= MECR_NOS;
        else
                MECR &= ~MECR_NOS;
@@ -228,7 +229,7 @@ static const char *skt_names[] = {
 #define SKT_DEV_INFO_SIZE(n) \
        (sizeof(struct skt_dev_info) + (n)*sizeof(struct soc_pcmcia_socket))
 
-static int pxa2xx_drv_pcmcia_add_one(struct soc_pcmcia_socket *skt)
+int pxa2xx_drv_pcmcia_add_one(struct soc_pcmcia_socket *skt)
 {
        skt->res_skt.start = _PCMCIA(skt->nr);
        skt->res_skt.end = _PCMCIA(skt->nr) + PCMCIASp - 1;
@@ -252,24 +253,30 @@ static int pxa2xx_drv_pcmcia_add_one(struct soc_pcmcia_socket *skt)
 
        return soc_pcmcia_add_one(skt);
 }
+EXPORT_SYMBOL(pxa2xx_drv_pcmcia_add_one);
 
-int __pxa2xx_drv_pcmcia_probe(struct device *dev)
+void pxa2xx_drv_pcmcia_ops(struct pcmcia_low_level *ops)
 {
-       int i, ret;
+       /* Provide our PXA2xx specific timing routines. */
+       ops->set_timing  = pxa2xx_pcmcia_set_timing;
+#ifdef CONFIG_CPU_FREQ
+       ops->frequency_change = pxa2xx_pcmcia_frequency_change;
+#endif
+}
+EXPORT_SYMBOL(pxa2xx_drv_pcmcia_ops);
+
+static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
+{
+       int i, ret = 0;
        struct pcmcia_low_level *ops;
        struct skt_dev_info *sinfo;
        struct soc_pcmcia_socket *skt;
 
-       if (!dev || !dev->platform_data)
+       ops = (struct pcmcia_low_level *)dev->dev.platform_data;
+       if (!ops)
                return -ENODEV;
 
-       ops = (struct pcmcia_low_level *)dev->platform_data;
-
-       /* Provide our PXA2xx specific timing routines. */
-       ops->set_timing  = pxa2xx_pcmcia_set_timing;
-#ifdef CONFIG_CPU_FREQ
-       ops->frequency_change = pxa2xx_pcmcia_frequency_change;
-#endif
+       pxa2xx_drv_pcmcia_ops(ops);
 
        sinfo = kzalloc(SKT_DEV_INFO_SIZE(ops->nr), GFP_KERNEL);
        if (!sinfo)
@@ -282,11 +289,10 @@ int __pxa2xx_drv_pcmcia_probe(struct device *dev)
                skt = &sinfo->skt[i];
 
                skt->nr = ops->first + i;
-               skt->irq = NO_IRQ;
-               skt->dev = dev;
                skt->ops = ops;
                skt->socket.owner = ops->owner;
-               skt->socket.dev.parent = dev;
+               skt->socket.dev.parent = &dev->dev;
+               skt->socket.pci_irq = NO_IRQ;
 
                ret = pxa2xx_drv_pcmcia_add_one(skt);
                if (ret)
@@ -298,19 +304,12 @@ int __pxa2xx_drv_pcmcia_probe(struct device *dev)
                        soc_pcmcia_remove_one(&sinfo->skt[i]);
                kfree(sinfo);
        } else {
-               pxa2xx_configure_sockets(dev);
-               dev_set_drvdata(dev, sinfo);
+               pxa2xx_configure_sockets(&dev->dev);
+               dev_set_drvdata(&dev->dev, sinfo);
        }
 
        return ret;
 }
-EXPORT_SYMBOL(__pxa2xx_drv_pcmcia_probe);
-
-
-static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
-{
-       return __pxa2xx_drv_pcmcia_probe(&dev->dev);
-}
 
 static int pxa2xx_drv_pcmcia_remove(struct platform_device *dev)
 {
@@ -337,7 +336,7 @@ static int pxa2xx_drv_pcmcia_resume(struct device *dev)
        return pcmcia_socket_dev_resume(dev);
 }
 
-static struct dev_pm_ops  pxa2xx_drv_pcmcia_pm_ops = {
+static const struct dev_pm_ops pxa2xx_drv_pcmcia_pm_ops = {
        .suspend        = pxa2xx_drv_pcmcia_suspend,
        .resume         = pxa2xx_drv_pcmcia_resume,
 };