From: <subhashj@codeaurora.org>
To: "'Nath, Arindam'" <Arindam.Nath@amd.com>, cjb@laptop.org
Cc: zhangfei.gao@gmail.com, prakity@marvell.com,
linux-mmc@vger.kernel.org, "'Su, Henry'" <Henry.Su@amd.com>,
"'Lu, Aaron'" <Aaron.Lu@amd.com>,
anath.amd@gmail.com
Subject: RE: [PATCH v2 10/12] mmc: sdhci: enable preset value after uhs initialization
Date: Thu, 10 Mar 2011 19:33:46 +0530 [thread overview]
Message-ID: <002701cbdf2b$fba51940$f2ef4bc0$@org> (raw)
In-Reply-To: <6C03668EAF45B747AF947A1603D1B300E3AA2914@SAUSEXMBP01.amd.com>
> -----Original Message-----
> From: linux-mmc-owner@vger.kernel.org [mailto:linux-mmc-
> owner@vger.kernel.org] On Behalf Of Nath, Arindam
> Sent: Thursday, March 10, 2011 7:20 PM
> To: subhashj@codeaurora.org; cjb@laptop.org
> Cc: zhangfei.gao@gmail.com; prakity@marvell.com; linux-
> mmc@vger.kernel.org; Su, Henry; Lu, Aaron; anath.amd@gmail.com
> Subject: RE: [PATCH v2 10/12] mmc: sdhci: enable preset value after uhs
> initialization
>
> > -----Original Message-----
> > From: subhashj@codeaurora.org [mailto:subhashj@codeaurora.org]
> > Sent: Thursday, March 10, 2011 7:15 PM
> > To: Nath, Arindam; cjb@laptop.org
> > Cc: zhangfei.gao@gmail.com; prakity@marvell.com; linux-
> > mmc@vger.kernel.org; Su, Henry; Lu, Aaron; anath.amd@gmail.com
> > Subject: RE: [PATCH v2 10/12] mmc: sdhci: enable preset value after
> uhs
> > initialization
> >
> >
> >
> > > -----Original Message-----
> > > From: linux-mmc-owner@vger.kernel.org [mailto:linux-mmc-
> > > owner@vger.kernel.org] On Behalf Of Nath, Arindam
> > > Sent: Thursday, March 10, 2011 7:01 PM
> > > To: subhashj@codeaurora.org; cjb@laptop.org
> > > Cc: zhangfei.gao@gmail.com; prakity@marvell.com; linux-
> > > mmc@vger.kernel.org; Su, Henry; Lu, Aaron; anath.amd@gmail.com
> > > Subject: RE: [PATCH v2 10/12] mmc: sdhci: enable preset value after
> > uhs
> > > initialization
> > >
> > > Hi Subhash,
> > >
> > >
> > > > -----Original Message-----
> > > > From: subhashj@codeaurora.org [mailto:subhashj@codeaurora.org]
> > > > Sent: Thursday, March 10, 2011 6:54 PM
> > > > To: Nath, Arindam; cjb@laptop.org
> > > > Cc: zhangfei.gao@gmail.com; prakity@marvell.com; linux-
> > > > mmc@vger.kernel.org; Su, Henry; Lu, Aaron; anath.amd@gmail.com
> > > > Subject: RE: [PATCH v2 10/12] mmc: sdhci: enable preset value
> after
> > > uhs
> > > > initialization
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: linux-mmc-owner@vger.kernel.org [mailto:linux-mmc-
> > > > > owner@vger.kernel.org] On Behalf Of Arindam Nath
> > > > > Sent: Friday, March 04, 2011 5:03 PM
> > > > > To: cjb@laptop.org
> > > > > Cc: zhangfei.gao@gmail.com; prakity@marvell.com;
> > > > > subhashj@codeaurora.org; linux-mmc@vger.kernel.org;
> > > henry.su@amd.com;
> > > > > aaron.lu@amd.com; anath.amd@gmail.com; Arindam Nath
> > > > > Subject: [PATCH v2 10/12] mmc: sdhci: enable preset value after
> > uhs
> > > > > initialization
> > > > >
> > > > > According to the Host Controller spec v3.00, setting Preset
> Value
> > > > > Enable
> > > > > in the Host Control2 register lets SDCLK Frequency Select,
> Clock
> > > > > Generator
> > > > > Select and Driver Strength Select to be set automatically by
> the
> > > Host
> > > > > Controller based on the UHS-I mode set. This patch enables this
> > > > > feature.
> > > > > We also reset Preset Value Enable when the card is removed from
> > the
> > > > > slot.
> > > >
> > > > What does this preset_value means? Is this defined in SD3.01
> spec?
> > I
> > > > think
> > > > it looks like specific to your controller (sdhci). If it's
> specific
> > > to
> > > > your
> > > > controller then this new mmc_ops should not be added.
> > >
> > > Preset Value Enable is very much part of the standard SD Host
> > > Controller spec v3.00. Please refer to Host Control 2 register.
> >
> > I don't think all controllers should be compliant to SD host
> controller
> > spec. I don't think controller on our chips has something like this.
>
> But from the spec it looks as if controllers conforming to v3.00 should
> provide this feature. There is no other bit anywhere else in the spec
> which can indicate support for Preset Value Enable except for the
> controller version number.
Actually, I am not aware about this controller spec v3.00. can you please
point me to the link for this spec (if it's available)?
>
> Thanks,
> Arindam
>
> >
> > >
> > > Thanks,
> > > Arindam
> > >
> > > >
> > > >
> > > > >
> > > > > Signed-off-by: Arindam Nath <arindam.nath@amd.com>
> > > > > ---
> > > > > drivers/mmc/core/sd.c | 7 +++++++
> > > > > drivers/mmc/host/sdhci.c | 36
> > > ++++++++++++++++++++++++++++++++++++
> > > > > include/linux/mmc/host.h | 1 +
> > > > > 3 files changed, 44 insertions(+), 0 deletions(-)
> > > > >
> > > > > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> > > > > index 1e2d157..ae7a771 100644
> > > > > --- a/drivers/mmc/core/sd.c
> > > > > +++ b/drivers/mmc/core/sd.c
> > > > > @@ -962,6 +962,13 @@ static int mmc_sd_init_card(struct
> mmc_host
> > > > *host,
> > > > > u32 ocr,
> > > > > }
> > > > > }
> > > > >
> > > > > + /*
> > > > > + * Since initialization is now complete, enable preset
> > > > > + * value registers.
> > > > > + */
> > > > > + if (host->ops->enable_preset_value)
> > > > > + host->ops->enable_preset_value(host);
> > > > > +
> > > > > host->card = card;
> > > > > return 0;
> > > > >
> > > > > diff --git a/drivers/mmc/host/sdhci.c
> b/drivers/mmc/host/sdhci.c
> > > > > index 8f4f102..1f6e4ad 100644
> > > > > --- a/drivers/mmc/host/sdhci.c
> > > > > +++ b/drivers/mmc/host/sdhci.c
> > > > > @@ -1602,6 +1602,40 @@ out:
> > > > > spin_unlock_irqrestore(&host->lock, flags);
> > > > > }
> > > > >
> > > > > +static void sdhci_enable_preset_value(struct mmc_host *mmc)
> > > > > +{
> > > > > + struct sdhci_host *host;
> > > > > + u16 ctrl;
> > > > > + unsigned long flags;
> > > > > +
> > > > > + host = mmc_priv(mmc);
> > > > > +
> > > > > + /* Host Controller v3.00 defines preset value registers */
> > > > > + if (host->version < SDHCI_SPEC_300)
> > > > > + return;
> > > > > +
> > > > > + spin_lock_irqsave(&host->lock, flags);
> > > > > +
> > > > > + ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
> > > > > + ctrl |= SDHCI_CTRL_PRESET_VAL_ENABLE;
> > > > > + sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
> > > > > +
> > > > > + spin_unlock_irqrestore(&host->lock, flags);
> > > > > +}
> > > > > +
> > > > > +static void sdhci_disable_preset_value(struct sdhci_host
> *host)
> > > > > +{
> > > > > + u16 ctrl;
> > > > > +
> > > > > + /* Only for Host Controller version >= v3.00 */
> > > > > + if (host->version < SDHCI_SPEC_300)
> > > > > + return;
> > > > > +
> > > > > + ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
> > > > > + ctrl &= ~SDHCI_CTRL_PRESET_VAL_ENABLE;
> > > > > + sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
> > > > > +}
> > > > > +
> > > > > static const struct mmc_host_ops sdhci_ops = {
> > > > > .request = sdhci_request,
> > > > > .set_ios = sdhci_set_ios,
> > > > > @@ -1610,6 +1644,7 @@ static const struct mmc_host_ops
> sdhci_ops
> > =
> > > {
> > > > > .start_signal_voltage_switch =
> > > > > sdhci_start_signal_voltage_switch,
> > > > > .get_max_current_180 = sdhci_get_max_current_180,
> > > > > .execute_tuning = sdhci_execute_tuning,
> > > > > + .enable_preset_value = sdhci_enable_preset_value,
> > > > > };
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> /**********************************************************************
> > > > > *******\
> > > > > @@ -1920,6 +1955,7 @@ static irqreturn_t sdhci_irq(int irq,
> void
> > > > > *dev_id)
> > > > > sdhci_writel(host, intmask & (SDHCI_INT_CARD_INSERT
|
> > > > > SDHCI_INT_CARD_REMOVE), SDHCI_INT_STATUS);
> > > > > tasklet_schedule(&host->card_tasklet);
> > > > > + sdhci_disable_preset_value(host);
> > > > > }
> > > > >
> > > > > intmask &= ~(SDHCI_INT_CARD_INSERT |
> > SDHCI_INT_CARD_REMOVE);
> > > > > diff --git a/include/linux/mmc/host.h
> b/include/linux/mmc/host.h
> > > > > index 651e40b..e63e063 100644
> > > > > --- a/include/linux/mmc/host.h
> > > > > +++ b/include/linux/mmc/host.h
> > > > > @@ -130,6 +130,7 @@ struct mmc_host_ops {
> > > > > int (*start_signal_voltage_switch)(struct mmc_host
> > *host);
> > > > > int (*get_max_current_180)(struct mmc_host *mmc);
> > > > > void (*execute_tuning)(struct mmc_host *host);
> > > > > + void (*enable_preset_value)(struct mmc_host *host);
> > > > > };
> > > > >
> > > > > struct mmc_card;
> > > > > --
> > > > > 1.7.1
> > > > >
> > > > > --
> > > > > To unsubscribe from this list: send the line "unsubscribe
> linux-
> > > mmc"
> > > > in
> > > > > the body of a message to majordomo@vger.kernel.org
> > > > > More majordomo info at http://vger.kernel.org/majordomo-
> > info.html
> > > >
> > >
> > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-
> mmc"
> > in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-03-10 14:03 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-04 11:32 [PATCH v2 00/12] add support for host controller v3.00 Arindam Nath
2011-03-04 11:32 ` [PATCH v2 01/12] mmc: sdhci: add support for auto CMD23 Arindam Nath
2011-03-09 12:22 ` subhashj
2011-03-09 12:55 ` Nath, Arindam
2011-03-15 11:23 ` Subhash Jadavani
2011-03-15 11:35 ` Nath, Arindam
2011-03-15 11:52 ` Subhash Jadavani
2011-03-16 6:07 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 02/12] mmc: sd: add support for signal voltage switch procedure Arindam Nath
2011-03-04 11:47 ` Wolfram Sang
2011-03-04 11:52 ` Nath, Arindam
2011-03-09 10:44 ` subhashj
2011-03-10 6:30 ` subhashj
2011-03-10 8:05 ` Nath, Arindam
2011-03-09 12:45 ` zhangfei gao
2011-03-10 8:11 ` Nath, Arindam
2011-03-15 10:18 ` Subhash Jadavani
2011-03-15 10:32 ` Nath, Arindam
2011-03-15 11:18 ` Subhash Jadavani
2011-03-15 11:28 ` Nath, Arindam
2011-03-15 11:58 ` Subhash Jadavani
2011-03-16 3:03 ` zhangfei gao
2011-03-16 6:30 ` Nath, Arindam
2011-03-16 10:44 ` zhangfei gao
2011-03-16 10:48 ` Nath, Arindam
2011-03-16 21:39 ` Philip Rakity
2011-03-17 4:18 ` Nath, Arindam
2011-03-24 10:52 ` zhangfei gao
2011-03-24 10:59 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 03/12] mmc: sd: query function modes for uhs cards Arindam Nath
2011-03-09 14:08 ` subhashj
2011-03-09 14:31 ` Nath, Arindam
2011-03-09 18:04 ` subhashj
2011-03-09 18:16 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 04/12] mmc: sd: add support for driver type selection Arindam Nath
2011-03-09 5:33 ` Philip Rakity
2011-03-09 8:11 ` Nath, Arindam
2011-03-10 6:57 ` subhashj
2011-03-10 8:31 ` Nath, Arindam
2011-03-10 10:28 ` subhashj
2011-03-10 10:44 ` Nath, Arindam
2011-03-10 11:25 ` subhashj
2011-03-10 11:34 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 05/12] mmc: sdhci: reset sdclk before setting high speed enable Arindam Nath
2011-03-05 4:57 ` Philip Rakity
2011-03-05 5:07 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 06/12] mmc: sd: add support for uhs bus speed mode selection Arindam Nath
2011-03-10 8:00 ` subhashj
2011-03-10 8:36 ` Nath, Arindam
2011-03-10 10:07 ` subhashj
2011-03-10 10:15 ` Nath, Arindam
2011-03-21 6:42 ` Subhash Jadavani
2011-03-23 6:04 ` Nath, Arindam
2011-03-23 6:14 ` Subhash Jadavani
2011-03-23 6:17 ` Nath, Arindam
2011-03-23 6:26 ` Subhash Jadavani
2011-03-23 6:35 ` Nath, Arindam
2011-03-23 7:23 ` Subhash Jadavani
2011-03-23 14:02 ` Nath, Arindam
2011-03-24 7:25 ` Subhash Jadavani
2011-03-24 8:42 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 07/12] mmc: sd: set current limit for uhs cards Arindam Nath
2011-03-09 21:41 ` Philip Rakity
2011-03-10 3:12 ` Nath, Arindam
2011-03-10 8:16 ` subhashj
2011-03-10 8:43 ` Nath, Arindam
2011-03-10 9:45 ` subhashj
2011-03-16 14:26 ` Philip Rakity
2011-03-16 14:32 ` Nath, Arindam
2011-03-16 14:51 ` Philip Rakity
2011-03-16 15:00 ` Nath, Arindam
2011-03-16 15:18 ` Philip Rakity
2011-03-16 15:24 ` Nath, Arindam
2011-03-16 15:31 ` Philip Rakity
2011-03-16 15:33 ` Nath, Arindam
2011-03-16 15:34 ` Philip Rakity
2011-03-21 7:43 ` Subhash Jadavani
2011-03-21 7:54 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 08/12] mmc: sd: report correct speed and capacity of " Arindam Nath
2011-03-10 11:48 ` subhashj
2011-03-10 13:28 ` Nath, Arindam
2011-03-10 13:41 ` subhashj
2011-03-04 11:32 ` [PATCH v2 09/12] mmc: sd: add support for tuning during uhs initialization Arindam Nath
2011-03-04 18:27 ` Philip Rakity
2011-03-04 18:48 ` Nath, Arindam
2011-03-04 18:34 ` Philip Rakity
2011-03-04 18:54 ` Nath, Arindam
2011-03-15 10:32 ` zhangfei gao
2011-03-15 10:43 ` Nath, Arindam
2011-03-16 2:51 ` zhangfei gao
2011-03-16 6:20 ` Nath, Arindam
2011-03-16 10:18 ` zhangfei gao
2011-03-21 9:43 ` Subhash Jadavani
2011-03-21 9:50 ` Nath, Arindam
2011-03-23 6:58 ` Subhash Jadavani
2011-03-21 10:58 ` Subhash Jadavani
2011-03-21 11:07 ` Nath, Arindam
2011-03-23 6:08 ` Subhash Jadavani
2011-03-23 6:14 ` Nath, Arindam
2011-03-23 6:19 ` Subhash Jadavani
2011-03-23 6:22 ` Nath, Arindam
2011-03-23 6:34 ` Subhash Jadavani
2011-03-23 6:41 ` Nath, Arindam
2011-03-23 6:45 ` Subhash Jadavani
2011-03-23 6:48 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 10/12] mmc: sdhci: enable preset value after " Arindam Nath
2011-03-10 13:23 ` subhashj
2011-03-10 13:30 ` Nath, Arindam
2011-03-10 13:45 ` subhashj
2011-03-10 13:49 ` Nath, Arindam
2011-03-10 14:03 ` subhashj [this message]
2011-03-10 14:07 ` Nath, Arindam
2011-03-10 14:12 ` subhashj
2011-03-10 14:15 ` Nath, Arindam
2011-03-10 14:19 ` subhashj
2011-03-10 14:24 ` Nath, Arindam
2011-03-04 11:32 ` [PATCH v2 11/12] mmc: sdhci: add support for programmable clock mode Arindam Nath
2011-03-04 11:32 ` [PATCH v2 12/12] mmc: sdhci: add support for retuning mode 1 Arindam Nath
2011-03-10 13:57 ` subhashj
2011-03-10 14:00 ` Nath, Arindam
2011-03-04 15:16 ` [PATCH v2 00/12] add support for host controller v3.00 Chris Ball
2011-03-04 15:55 ` Nath, Arindam
2011-03-11 13:13 ` subhashj
2011-03-11 15:29 ` Nath, Arindam
2011-03-11 16:06 ` Chris Ball
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='002701cbdf2b$fba51940$f2ef4bc0$@org' \
--to=subhashj@codeaurora.org \
--cc=Aaron.Lu@amd.com \
--cc=Arindam.Nath@amd.com \
--cc=Henry.Su@amd.com \
--cc=anath.amd@gmail.com \
--cc=cjb@laptop.org \
--cc=linux-mmc@vger.kernel.org \
--cc=prakity@marvell.com \
--cc=zhangfei.gao@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.