[PATCH 2/3] ARM: MXC: mxcmmc: Teach the driver SDIO operations

Daniel Mack daniel at caiaq.de
Wed Mar 31 09:29:46 EDT 2010


On Wed, Mar 31, 2010 at 03:03:39PM +0200, Sascha Hauer wrote:
> On Tue, Mar 30, 2010 at 08:32:00PM +0200, Daniel Mack wrote:
> > +static void mxcmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
> > +{
> > +	struct mxcmci_host *host = mmc_priv(mmc);
> > +	unsigned long flags;
> > +	u32 int_cntr;
> > +
> > +	spin_lock_irqsave(&host->lock, flags);
> > +	host->use_sdio = enable;
> > +	int_cntr = readl(host->base + MMC_REG_INT_CNTR);
> > +
> > +	if (enable)
> > +		int_cntr |= INT_SDIO_IRQ_EN;
> > +	else
> > +		int_cntr &= ~INT_SDIO_IRQ_EN;
> > +
> > +	writel(int_cntr, host->base + MMC_REG_INT_CNTR);
> > +	spin_unlock_irqrestore(&host->lock, flags);
> 
> The other places where MMC_REG_INT_CNTR is touched should be protected
> by this spinlock aswell.

Hmm, all other place don't do a read/modify/write cycle, so I'd say the
don't need protection?

Daniel



More information about the linux-arm-kernel mailing list