mvsdio.c (a976c2951d8f376112361830aa7762beff83a205) mvsdio.c (2ee4f6200597bda9713e28a9c1e65a392615b4b5)
1/*
2 * Marvell MMC/SD/SDIO driver
3 *
4 * Authors: Maen Suleiman, Nicolas Pitre
5 * Copyright (C) 2008-2009 Marvell Ltd.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 494 unchanged lines hidden (view full) ---

503 if (irq_handled)
504 return IRQ_HANDLED;
505
506 dev_err(host->dev, "unhandled interrupt status=0x%04x en=0x%04x pio=%d\n",
507 intr_status, host->intr_en, host->pio_size);
508 return IRQ_NONE;
509}
510
1/*
2 * Marvell MMC/SD/SDIO driver
3 *
4 * Authors: Maen Suleiman, Nicolas Pitre
5 * Copyright (C) 2008-2009 Marvell Ltd.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 494 unchanged lines hidden (view full) ---

503 if (irq_handled)
504 return IRQ_HANDLED;
505
506 dev_err(host->dev, "unhandled interrupt status=0x%04x en=0x%04x pio=%d\n",
507 intr_status, host->intr_en, host->pio_size);
508 return IRQ_NONE;
509}
510
511static void mvsd_timeout_timer(unsigned long data)
511static void mvsd_timeout_timer(struct timer_list *t)
512{
512{
513 struct mvsd_host *host = (struct mvsd_host *)data;
513 struct mvsd_host *host = from_timer(host, t, timer);
514 void __iomem *iobase = host->base;
515 struct mmc_request *mrq;
516 unsigned long flags;
517
518 spin_lock_irqsave(&host->lock, flags);
519 mrq = host->mrq;
520 if (mrq) {
521 dev_err(host->dev, "Timeout waiting for hardware interrupt.\n");

--- 249 unchanged lines hidden (view full) ---

771 mvsd_power_down(host);
772
773 ret = devm_request_irq(&pdev->dev, irq, mvsd_irq, 0, DRIVER_NAME, host);
774 if (ret) {
775 dev_err(&pdev->dev, "cannot assign irq %d\n", irq);
776 goto out;
777 }
778
514 void __iomem *iobase = host->base;
515 struct mmc_request *mrq;
516 unsigned long flags;
517
518 spin_lock_irqsave(&host->lock, flags);
519 mrq = host->mrq;
520 if (mrq) {
521 dev_err(host->dev, "Timeout waiting for hardware interrupt.\n");

--- 249 unchanged lines hidden (view full) ---

771 mvsd_power_down(host);
772
773 ret = devm_request_irq(&pdev->dev, irq, mvsd_irq, 0, DRIVER_NAME, host);
774 if (ret) {
775 dev_err(&pdev->dev, "cannot assign irq %d\n", irq);
776 goto out;
777 }
778
779 setup_timer(&host->timer, mvsd_timeout_timer, (unsigned long)host);
779 timer_setup(&host->timer, mvsd_timeout_timer, 0);
780 platform_set_drvdata(pdev, mmc);
781 ret = mmc_add_host(mmc);
782 if (ret)
783 goto out;
784
785 if (!(mmc->caps & MMC_CAP_NEEDS_POLL))
786 dev_dbg(&pdev->dev, "using GPIO for card detection\n");
787 else

--- 58 unchanged lines hidden ---
780 platform_set_drvdata(pdev, mmc);
781 ret = mmc_add_host(mmc);
782 if (ret)
783 goto out;
784
785 if (!(mmc->caps & MMC_CAP_NEEDS_POLL))
786 dev_dbg(&pdev->dev, "using GPIO for card detection\n");
787 else

--- 58 unchanged lines hidden ---