mmc: tmio_mmc: do not enable card hotplug interrupts, if unused
If TMIO MMC is used in polling mode, or the card is non-removable, or card-detection is performed, using an external interrupt, there is no need to enable controller native card hotplug interrupts. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Chris Ball <cjb@laptop.org>
This commit is contained in:
Родитель
e3f1adb63c
Коммит
e23cd53c79
|
@ -304,6 +304,7 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command
|
|||
{
|
||||
struct mmc_data *data = host->data;
|
||||
int c = cmd->opcode;
|
||||
u32 irq_mask = TMIO_MASK_CMD;
|
||||
|
||||
/* Command 12 is handled by hardware */
|
||||
if (cmd->opcode == 12 && !cmd->arg) {
|
||||
|
@ -339,7 +340,9 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host, struct mmc_command
|
|||
c |= TRANSFER_READ;
|
||||
}
|
||||
|
||||
tmio_mmc_enable_mmc_irqs(host, TMIO_MASK_CMD);
|
||||
if (!host->native_hotplug)
|
||||
irq_mask &= ~(TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
||||
tmio_mmc_enable_mmc_irqs(host, irq_mask);
|
||||
|
||||
/* Fire off the command */
|
||||
sd_ctrl_write32(host, CTL_ARG_REG, cmd->arg);
|
||||
|
@ -963,6 +966,8 @@ int __devinit tmio_mmc_host_probe(struct tmio_mmc_host **host,
|
|||
irq_mask |= TMIO_MASK_READOP;
|
||||
if (!_host->chan_tx)
|
||||
irq_mask |= TMIO_MASK_WRITEOP;
|
||||
if (!_host->native_hotplug)
|
||||
irq_mask &= ~(TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
||||
|
||||
tmio_mmc_enable_mmc_irqs(_host, irq_mask);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче