aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
Commit message (Expand)AuthorAge
* Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6Linus Torvalds2006-04-02
|\
| * [PATCH] pcmcia: fix pcmcia_device_remove oopsHugh Dickins2006-03-31
| * [PATCH] pcmcia: pseudo device handling updateDominik Brodowski2006-03-31
| * [PATCH] pcmcia: convert DEV_OK to pcmcia_dev_presentDominik Brodowski2006-03-31
| * [PATCH] pcmcia: use bitfield instead of p_state and stateDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove unused p_dev->state flagsDominik Brodowski2006-03-31
| * [PATCH] pcmcia: make pcmcia_release_{io,irq} staticAdrian Bunk2006-03-31
| * [PATCH] pcmcia: remove dev_link_t and client_handle_t indirectionDominik Brodowski2006-03-31
| * [PATCH] pcmcia: embed dev_link_t into struct pcmcia_deviceDominik Brodowski2006-03-31
| * [PATCH] pcmcia: rename pcmcia_device.stateDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove unneeded Vcc pseudo settingDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove export of pcmcia_release_configurationDominik Brodowski2006-03-31
| * [PATCH] pcmcia: default suspend and resume handlingDominik Brodowski2006-03-31
| * [PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irqDominik Brodowski2006-03-31
| * [PATCH] pcmcia: add pcmcia_disable_deviceDominik Brodowski2006-03-31
| * [PATCH] pcmcia: AT91RM9200 Compact Flash driverAndrew Victor2006-03-31
| * [PATCH] pcmcia: socket.functions starts with 1Dominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove duplicate fields in io_window_tDominik Brodowski2006-03-31
| * [PATCH] pcmcia: size reduction if ioctl isn't compiledDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove pcmcia_compat.cDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove include of config.hDominik Brodowski2006-03-31
| * [PATCH] pcmcia: use mutexes instead of semaphoresDominik Brodowski2006-03-31
| * [PATCH] pcmcia: make config_t independent, add reference countingDominik Brodowski2006-03-31
| * [PATCH] pcmcia: always use device pointer to config_tDominik Brodowski2006-03-31
| * [PATCH] pcmcia: access config_t using pointer instead of arrayDominik Brodowski2006-03-31
| * [PATCH] pcmcia: remove unused field Present from config_tDominik Brodowski2006-03-31
| * [PATCH] pcmcia: permit single-character identifiersJanos Farkas2006-03-31
* | [PATCH] Don't pass boot parameters to argv_init[]OGAWA Hirofumi2006-03-31
|/
* [PATCH] handle errors returned by platform_get_irq*()David Vrabel2006-03-20
* [PATCH] fix pcmcia_device_probe oopsHugh Dickins2006-03-10
* [PATCH] pcmcia: properly handle pseudo multi-function devicesDominik Brodowski2006-03-01
* [PATCH] Add pcmcia_bus_type probe and remove methodsRussell King2006-01-13
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-fixes-2.6Linus Torvalds2006-01-12
|\
| * [PATCH] pcmcia: runtime powermanagement interfaceDominik Brodowski2006-01-12
* | Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2006-01-12
|\ \ | |/ |/|
| * [ARM] 3250/1: Change pxa2xx PCMCIA drivers to use platform_device_allocRichard Purdie2006-01-10
* | Update Yoichi Yuasa's email address.Ralf Baechle2006-01-10
|/
* [PATCH] drivers/*rest*: Replace pci_module_init() with pci_register_driver()Richard Knutsson2006-01-09
* Merge with Linus' kernel.Russell King2006-01-07
|\
| * [PATCH] pcmcia: cleanup cs.c, reduce sizeDaniel Ritz2006-01-05
| * [PATCH] drivers/pcmcia/cistpl.c: fix endian warningsAlexey Dobriyan2006-01-05
| * [PATCH] pcmcia: kzalloc conversionDominik Brodowski2006-01-05
| * [PATCH] pcmcia: no probing of ioports on PARISCDominik Brodowski2006-01-05
| * [PATCH] pcmcia: export stored values in sysfsDominik Brodowski2006-01-05
| * [PATCH] 8xx PCMCIA: support for MPC885ADS and MPC866ADSVitaly Bordug2006-01-05
| * [PATCH] m8xx_pcmcia: support MAP_AUTOSZ required for CF cardsVitaly Bordug2006-01-05
| * [PATCH] pcmcia: properly handle static mem, but dynamic io socketsDominik Brodowski2006-01-05
| * [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe ca...Dominik Brodowski2006-01-05
| * [PATCH] pcmcia: remove old detach mechanismDominik Brodowski2006-01-05
| * [PATCH] pcmcia: unify detach, REMOVAL_EVENT handlers into one remove callbackDominik Brodowski2006-01-05
s="hl opt">; if (ret == -ENXIO && pdev->dev.of_node) uioinfo->irq = UIO_IRQ_NONE; else if (ret < 0) { dev_err(&pdev->dev, "failed to get IRQ\n"); return ret; } } uiomem = &uioinfo->mem[0]; for (i = 0; i < pdev->num_resources; ++i) { struct resource *r = &pdev->resource[i]; if (r->flags != IORESOURCE_MEM) continue; if (uiomem >= &uioinfo->mem[MAX_UIO_MAPS]) { dev_warn(&pdev->dev, "device has more than " __stringify(MAX_UIO_MAPS) " I/O memory resources.\n"); break; } uiomem->memtype = UIO_MEM_PHYS; uiomem->addr = r->start; uiomem->size = resource_size(r); uiomem->name = r->name; ++uiomem; } while (uiomem < &uioinfo->mem[MAX_UIO_MAPS]) { uiomem->size = 0; ++uiomem; } /* This driver requires no hardware specific kernel code to handle * interrupts. Instead, the interrupt handler simply disables the * interrupt in the interrupt controller. User space is responsible * for performing hardware specific acknowledge and re-enabling of * the interrupt in the interrupt controller. * * Interrupt sharing is not supported. */ uioinfo->handler = uio_pdrv_genirq_handler; uioinfo->irqcontrol = uio_pdrv_genirq_irqcontrol; uioinfo->open = uio_pdrv_genirq_open; uioinfo->release = uio_pdrv_genirq_release; uioinfo->priv = priv; /* Enable Runtime PM for this device: * The device starts in suspended state to allow the hardware to be * turned off by default. The Runtime PM bus code should power on the * hardware and enable clocks at open(). */ pm_runtime_enable(&pdev->dev); ret = uio_register_device(&pdev->dev, priv->uioinfo); if (ret) { dev_err(&pdev->dev, "unable to register uio device\n"); pm_runtime_disable(&pdev->dev); return ret; } platform_set_drvdata(pdev, priv); return 0; } static int uio_pdrv_genirq_remove(struct platform_device *pdev) { struct uio_pdrv_genirq_platdata *priv = platform_get_drvdata(pdev); uio_unregister_device(priv->uioinfo); pm_runtime_disable(&pdev->dev); priv->uioinfo->handler = NULL; priv->uioinfo->irqcontrol = NULL; return 0; } static int uio_pdrv_genirq_runtime_nop(struct device *dev) { /* Runtime PM callback shared between ->runtime_suspend() * and ->runtime_resume(). Simply returns success. * * In this driver pm_runtime_get_sync() and pm_runtime_put_sync() * are used at open() and release() time. This allows the * Runtime PM code to turn off power to the device while the * device is unused, ie before open() and after release(). * * This Runtime PM callback does not need to save or restore * any registers since user space is responsbile for hardware * register reinitialization after open(). */ return 0; } static const struct dev_pm_ops uio_pdrv_genirq_dev_pm_ops = { .runtime_suspend = uio_pdrv_genirq_runtime_nop, .runtime_resume = uio_pdrv_genirq_runtime_nop, }; #ifdef CONFIG_OF static struct of_device_id uio_of_genirq_match[] = { { /* This is filled with module_parm */ }, { /* Sentinel */ }, }; MODULE_DEVICE_TABLE(of, uio_of_genirq_match); module_param_string(of_id, uio_of_genirq_match[0].compatible, 128, 0); MODULE_PARM_DESC(of_id, "Openfirmware id of the device to be handled by uio"); #endif static struct platform_driver uio_pdrv_genirq = { .probe = uio_pdrv_genirq_probe, .remove = uio_pdrv_genirq_remove, .driver = { .name = DRIVER_NAME, .pm = &uio_pdrv_genirq_dev_pm_ops, .of_match_table = of_match_ptr(uio_of_genirq_match), }, }; module_platform_driver(uio_pdrv_genirq); MODULE_AUTHOR("Magnus Damm"); MODULE_DESCRIPTION("Userspace I/O platform driver with generic IRQ handling"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("platform:" DRIVER_NAME);