Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b8caec0 authored by Rabin Vincent's avatar Rabin Vincent Committed by Russell King
Browse files

ARM: 6309/1: mmci: allow neither ->status nor gpio_cd to be specified



The card may be always present on the board, and for these cases neither
a status callback nor a card detect GPIO is required, and card detection
polling can be disabled.

Acked-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: default avatarRabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 148b8b39
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -589,9 +589,12 @@ static int mmci_get_cd(struct mmc_host *mmc)
	struct mmci_platform_data *plat = host->plat;
	unsigned int status;

	if (host->gpio_cd == -ENOSYS)
	if (host->gpio_cd == -ENOSYS) {
		if (!plat->status)
			return 1; /* Assume always present */

		status = plat->status(mmc_dev(host->mmc));
	else
	} else
		status = !!gpio_get_value(host->gpio_cd) ^ plat->cd_invert;

	/*
@@ -787,7 +790,8 @@ static int __devinit mmci_probe(struct amba_device *dev, struct amba_id *id)
			goto err_gpio_wp;
	}

	if (host->gpio_cd_irq < 0)
	if ((host->plat->status || host->gpio_cd != -ENOSYS)
	    && host->gpio_cd_irq < 0)
		mmc->caps |= MMC_CAP_NEEDS_POLL;

	ret = request_irq(dev->irq[0], mmci_irq, IRQF_SHARED, DRIVER_NAME " (cmd)", host);