linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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:42:34 +0530	[thread overview]
Message-ID: <002a01cbdf2d$36cb3300$a4619900$@org> (raw)
In-Reply-To: <6C03668EAF45B747AF947A1603D1B300E3AA2935@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:38 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:34 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: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)?
> 
> The spec is named "SD Host Controller Standard Specification Ver3.00".
> I think it can be downloaded from sdcard.org, but you will need to pay
> for the license.


Thanks. I just read from here:
http://www.sdcard.org/developers/tech/host_controller/. I think this spec is
just recommendation for implementing Host controller Hw.
It doesn't mean all Host controllers on all different chipset should have
same register interface as mentioned by the spec. I don't think controller
on our chipset complies to this. Controller just complies to provide all SD
Physical layer spec v3.00/v3.01.


> 
> Thanks,
> Arindam
> 
> >
> >
> > >
> > > 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
> >
> 
> 
> --
> 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


  reply	other threads:[~2011-03-10 14:12 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
2011-03-10 14:07             ` Nath, Arindam
2011-03-10 14:12               ` subhashj [this message]
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='002a01cbdf2d$36cb3300$a4619900$@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).