[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20090428214531.23950257@mjolnir.ossman.eu>
Date: Tue, 28 Apr 2009 21:45:31 +0200
From: Pierre Ossman <drzeus-mmc@...eus.cx>
To: "Kumar, Purushotam" <purushotam@...com>
Cc: "davinci-linux-open-source@...ux.davincidsp.com"
<davinci-linux-open-source@...ux.davincidsp.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/1] DaVinci: MMC: V4: MMC/SD controller driver for
DaVinci family.
On Fri, 17 Apr 2009 16:34:22 +0530
"Kumar, Purushotam" <purushotam@...com> wrote:
> > > +
> > > + if (mmc_freq > mmc_req_freq)
> > > + mmc_push_pull = mmc_push_pull + 1;
> >
> > The naming of the divider is a bit confusing here. :)
>
> I am thinking to change " mmc_push_pull" to " mmc_push_pull_divider". Please suggest other appropriate name.
>
Or just "divider". The rest should be clear from the context.
> > > + if (ios->bus_mode == MMC_BUSMODE_OPENDRAIN) {
> > > + u32 temp;
> > > +
> > > + /* Ignoring the init clock value passed for fixing the inter
> > > + * operability with different cards.
> > > + */
> > > + open_drain_freq = ((unsigned int)cpu_arm_clk
> > > + / (2 * MMCSD_INIT_CLOCK)) - 1;
> > > +
> > > + if (open_drain_freq > 0xFF)
> > > + open_drain_freq = 0xFF;
> > > +
> > > + temp = readl(host->base + DAVINCI_MMCCLK) & ~MMCCLK_CLKRT_MASK;
> > > + temp |= open_drain_freq;
> > > + writel(temp, host->base + DAVINCI_MMCCLK);
> > > +
> > > + /* Convert ns to clock cycles */
> > > + ns_in_one_cycle = (1000000) / (MMCSD_INIT_CLOCK/1000);
> >
> > I'm still not sure why you need this. Open drain mode is always used at
> > a low frequency anyway.
>
>
> If my understanding is correct you are suggesting that at lower freq. there is no need to update the timeout parameter and can use the default value of ns_in_one_cycle.
>
> The mmc_davinci_prepare_data() may be called even during open drain frequency mode and here we are calculating the timeout value and updating the timeout reg. So ns_in_one_cycle should hold a proper value once we call mmc_davinci_prepare_data(). I think there is no harm in having this calculation here.
>
I see. I thought this was some fiddling to override the core's decision
on clock frequency.
Why do you need to calculate the timeout differently based on
push-pull/open drain mode though?
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
rdesktop, core developer http://www.rdesktop.org
TigerVNC, core developer http://www.tigervnc.org
WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists