static int pcmcia_probe(struct sa1111_dev *dev) { void __iomem *base; if (!request_mem_region(dev->res.start, 512, SA1111_DRIVER_NAME(dev))) return -EBUSY; base = dev->mapbase; /* * Initialise the suspend state. */ sa1111_writel(PCSSR_S0_SLEEP | PCSSR_S1_SLEEP, base + SA1111_PCSSR); sa1111_writel(PCCR_S0_FLT | PCCR_S1_FLT, base + SA1111_PCCR); #ifdef CONFIG_SA1100_BADGE4 pcmcia_badge4_init(&dev->dev); #endif #ifdef CONFIG_SA1100_JORNADA720 pcmcia_jornada720_init(&dev->dev); #endif #ifdef CONFIG_ARCH_LUBBOCK pcmcia_lubbock_init(dev); #endif #ifdef CONFIG_ASSABET_NEPONSET pcmcia_neponset_init(dev); #endif return 0; }
static int pcmcia_probe(struct sa1111_dev *dev) { void __iomem *base; int ret; ret = sa1111_enable_device(dev); if (ret) return ret; dev_set_drvdata(&dev->dev, NULL); if (!request_mem_region(dev->res.start, 512, SA1111_DRIVER_NAME(dev))) { sa1111_disable_device(dev); return -EBUSY; } base = dev->mapbase; /* * Initialise the suspend state. */ writel_relaxed(PCSSR_S0_SLEEP | PCSSR_S1_SLEEP, base + PCSSR); writel_relaxed(PCCR_S0_FLT | PCCR_S1_FLT, base + PCCR); ret = -ENODEV; #ifdef CONFIG_SA1100_BADGE4 if (machine_is_badge4()) ret = pcmcia_badge4_init(dev); #endif #ifdef CONFIG_SA1100_JORNADA720 if (machine_is_jornada720()) ret = pcmcia_jornada720_init(dev); #endif #ifdef CONFIG_ARCH_LUBBOCK if (machine_is_lubbock()) ret = pcmcia_lubbock_init(dev); #endif #ifdef CONFIG_ASSABET_NEPONSET if (machine_is_assabet()) ret = pcmcia_neponset_init(dev); #endif if (ret) { release_mem_region(dev->res.start, 512); sa1111_disable_device(dev); } return ret; }