All of lore.kernel.org
 help / color / mirror / Atom feed
From: Balaji T K <balajitk@ti.com>
To: Nishanth Menon <nm@ti.com>
Cc: Tony Lindgren <tony@atomide.com>, Chris Ball <chris@printf.net>,
	<linux-mmc@vger.kernel.org>, <linux-omap@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<devicetree@vger.kernel.org>, Felipe Balbi <balbi@ti.com>
Subject: Re: [PATCH V2 1/2] mmc: omap_hsmmc: Add support for quirky omap3 hsmmc controller
Date: Tue, 18 Feb 2014 20:06:45 +0530	[thread overview]
Message-ID: <53036FFD.1040008@ti.com> (raw)
In-Reply-To: <1392356749-32091-2-git-send-email-nm@ti.com>

On Friday 14 February 2014 11:15 AM, Nishanth Menon wrote:
> When device is booted using devicetree, platforms impacted by Erratum
> 2.1.1.128 is not detected easily in the mmc driver. This erratum
> indicates that the module cannot do multi-block transfers. Platforms
> such as LDP which use OMAP3 ES revision prior to ES3.0 are impacted by
> this.
>
> Provide a new compatible property "ti,omap3-pre-es3-hsmmc" to allow
> driver to determine if driver needs to implement quirks associated
> with the specific module version (primarily because the IP revision
> information is not sufficient for the same).
>
> Signed-off-by: Nishanth Menon <nm@ti.com>

looks good to me
Acked-by: Balaji T K <balajitk@ti.com>

> ---
> Changes since v1:
> 	- new compatible flag as suggested by Tony which contains
> 	  the relevant controller flag to work around the erratum
>
> V1: https://patchwork.kernel.org/patch/3514851/
>
>   .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |    1 +
>   drivers/mmc/host/omap_hsmmc.c                      |   26 +++++++++++++++++---
>   2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> index 8c8908a..ce80561 100644
> --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> @@ -10,6 +10,7 @@ Required properties:
>   - compatible:
>    Should be "ti,omap2-hsmmc", for OMAP2 controllers
>    Should be "ti,omap3-hsmmc", for OMAP3 controllers
> + Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
>    Should be "ti,omap4-hsmmc", for OMAP4 controllers
>   - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 575f9cc..390f421 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -192,6 +192,11 @@ struct omap_hsmmc_host {
>   	struct	omap_mmc_platform_data	*pdata;
>   };
>
> +struct omap_mmc_of_data {
> +	u32 reg_offset;
> +	u8 controller_flags;
> +};
> +
>   static int omap_hsmmc_card_detect(struct device *dev, int slot)
>   {
>   	struct omap_hsmmc_host *host = dev_get_drvdata(dev);
> @@ -1678,18 +1683,29 @@ static void omap_hsmmc_debugfs(struct mmc_host *mmc)
>   #endif
>
>   #ifdef CONFIG_OF
> -static u16 omap4_reg_offset = 0x100;
> +static const struct omap_mmc_of_data omap3_pre_es3_mmc_of_data = {
> +	/* See 35xx errata 2.1.1.128 in SPRZ278F */
> +	.controller_flags = OMAP_HSMMC_BROKEN_MULTIBLOCK_READ,
> +};
> +
> +static const struct omap_mmc_of_data omap4_mmc_of_data = {
> +	.reg_offset = 0x100,
> +};
>
>   static const struct of_device_id omap_mmc_of_match[] = {
>   	{
>   		.compatible = "ti,omap2-hsmmc",
>   	},
>   	{
> +		.compatible = "ti,omap3-pre-es3-hsmmc",
> +		.data = &omap3_pre_es3_mmc_of_data,
> +	},
> +	{
>   		.compatible = "ti,omap3-hsmmc",
>   	},
>   	{
>   		.compatible = "ti,omap4-hsmmc",
> -		.data = &omap4_reg_offset,
> +		.data = &omap4_mmc_of_data,
>   	},
>   	{},
>   };
> @@ -1759,6 +1775,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   	dma_cap_mask_t mask;
>   	unsigned tx_req, rx_req;
>   	struct pinctrl *pinctrl;
> +	const struct omap_mmc_of_data *data;
>
>   	match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev);
>   	if (match) {
> @@ -1768,8 +1785,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   			return PTR_ERR(pdata);
>
>   		if (match->data) {
> -			const u16 *offsetp = match->data;
> -			pdata->reg_offset = *offsetp;
> +			data = match->data;
> +			pdata->reg_offset = data->reg_offset;
> +			pdata->controller_flags |= data->controller_flags;
>   		}
>   	}
>
>


WARNING: multiple messages have this Message-ID (diff)
From: Balaji T K <balajitk@ti.com>
To: Nishanth Menon <nm@ti.com>
Cc: devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
	Tony Lindgren <tony@atomide.com>,
	linux-mmc@vger.kernel.org, Chris Ball <chris@printf.net>,
	Felipe Balbi <balbi@ti.com>,
	linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V2 1/2] mmc: omap_hsmmc: Add support for quirky omap3 hsmmc controller
Date: Tue, 18 Feb 2014 20:06:45 +0530	[thread overview]
Message-ID: <53036FFD.1040008@ti.com> (raw)
In-Reply-To: <1392356749-32091-2-git-send-email-nm@ti.com>

On Friday 14 February 2014 11:15 AM, Nishanth Menon wrote:
> When device is booted using devicetree, platforms impacted by Erratum
> 2.1.1.128 is not detected easily in the mmc driver. This erratum
> indicates that the module cannot do multi-block transfers. Platforms
> such as LDP which use OMAP3 ES revision prior to ES3.0 are impacted by
> this.
>
> Provide a new compatible property "ti,omap3-pre-es3-hsmmc" to allow
> driver to determine if driver needs to implement quirks associated
> with the specific module version (primarily because the IP revision
> information is not sufficient for the same).
>
> Signed-off-by: Nishanth Menon <nm@ti.com>

looks good to me
Acked-by: Balaji T K <balajitk@ti.com>

> ---
> Changes since v1:
> 	- new compatible flag as suggested by Tony which contains
> 	  the relevant controller flag to work around the erratum
>
> V1: https://patchwork.kernel.org/patch/3514851/
>
>   .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |    1 +
>   drivers/mmc/host/omap_hsmmc.c                      |   26 +++++++++++++++++---
>   2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> index 8c8908a..ce80561 100644
> --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> @@ -10,6 +10,7 @@ Required properties:
>   - compatible:
>    Should be "ti,omap2-hsmmc", for OMAP2 controllers
>    Should be "ti,omap3-hsmmc", for OMAP3 controllers
> + Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
>    Should be "ti,omap4-hsmmc", for OMAP4 controllers
>   - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 575f9cc..390f421 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -192,6 +192,11 @@ struct omap_hsmmc_host {
>   	struct	omap_mmc_platform_data	*pdata;
>   };
>
> +struct omap_mmc_of_data {
> +	u32 reg_offset;
> +	u8 controller_flags;
> +};
> +
>   static int omap_hsmmc_card_detect(struct device *dev, int slot)
>   {
>   	struct omap_hsmmc_host *host = dev_get_drvdata(dev);
> @@ -1678,18 +1683,29 @@ static void omap_hsmmc_debugfs(struct mmc_host *mmc)
>   #endif
>
>   #ifdef CONFIG_OF
> -static u16 omap4_reg_offset = 0x100;
> +static const struct omap_mmc_of_data omap3_pre_es3_mmc_of_data = {
> +	/* See 35xx errata 2.1.1.128 in SPRZ278F */
> +	.controller_flags = OMAP_HSMMC_BROKEN_MULTIBLOCK_READ,
> +};
> +
> +static const struct omap_mmc_of_data omap4_mmc_of_data = {
> +	.reg_offset = 0x100,
> +};
>
>   static const struct of_device_id omap_mmc_of_match[] = {
>   	{
>   		.compatible = "ti,omap2-hsmmc",
>   	},
>   	{
> +		.compatible = "ti,omap3-pre-es3-hsmmc",
> +		.data = &omap3_pre_es3_mmc_of_data,
> +	},
> +	{
>   		.compatible = "ti,omap3-hsmmc",
>   	},
>   	{
>   		.compatible = "ti,omap4-hsmmc",
> -		.data = &omap4_reg_offset,
> +		.data = &omap4_mmc_of_data,
>   	},
>   	{},
>   };
> @@ -1759,6 +1775,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   	dma_cap_mask_t mask;
>   	unsigned tx_req, rx_req;
>   	struct pinctrl *pinctrl;
> +	const struct omap_mmc_of_data *data;
>
>   	match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev);
>   	if (match) {
> @@ -1768,8 +1785,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   			return PTR_ERR(pdata);
>
>   		if (match->data) {
> -			const u16 *offsetp = match->data;
> -			pdata->reg_offset = *offsetp;
> +			data = match->data;
> +			pdata->reg_offset = data->reg_offset;
> +			pdata->controller_flags |= data->controller_flags;
>   		}
>   	}
>
>

WARNING: multiple messages have this Message-ID (diff)
From: balajitk@ti.com (Balaji T K)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 1/2] mmc: omap_hsmmc: Add support for quirky omap3 hsmmc controller
Date: Tue, 18 Feb 2014 20:06:45 +0530	[thread overview]
Message-ID: <53036FFD.1040008@ti.com> (raw)
In-Reply-To: <1392356749-32091-2-git-send-email-nm@ti.com>

On Friday 14 February 2014 11:15 AM, Nishanth Menon wrote:
> When device is booted using devicetree, platforms impacted by Erratum
> 2.1.1.128 is not detected easily in the mmc driver. This erratum
> indicates that the module cannot do multi-block transfers. Platforms
> such as LDP which use OMAP3 ES revision prior to ES3.0 are impacted by
> this.
>
> Provide a new compatible property "ti,omap3-pre-es3-hsmmc" to allow
> driver to determine if driver needs to implement quirks associated
> with the specific module version (primarily because the IP revision
> information is not sufficient for the same).
>
> Signed-off-by: Nishanth Menon <nm@ti.com>

looks good to me
Acked-by: Balaji T K <balajitk@ti.com>

> ---
> Changes since v1:
> 	- new compatible flag as suggested by Tony which contains
> 	  the relevant controller flag to work around the erratum
>
> V1: https://patchwork.kernel.org/patch/3514851/
>
>   .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |    1 +
>   drivers/mmc/host/omap_hsmmc.c                      |   26 +++++++++++++++++---
>   2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> index 8c8908a..ce80561 100644
> --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
> @@ -10,6 +10,7 @@ Required properties:
>   - compatible:
>    Should be "ti,omap2-hsmmc", for OMAP2 controllers
>    Should be "ti,omap3-hsmmc", for OMAP3 controllers
> + Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
>    Should be "ti,omap4-hsmmc", for OMAP4 controllers
>   - ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 575f9cc..390f421 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -192,6 +192,11 @@ struct omap_hsmmc_host {
>   	struct	omap_mmc_platform_data	*pdata;
>   };
>
> +struct omap_mmc_of_data {
> +	u32 reg_offset;
> +	u8 controller_flags;
> +};
> +
>   static int omap_hsmmc_card_detect(struct device *dev, int slot)
>   {
>   	struct omap_hsmmc_host *host = dev_get_drvdata(dev);
> @@ -1678,18 +1683,29 @@ static void omap_hsmmc_debugfs(struct mmc_host *mmc)
>   #endif
>
>   #ifdef CONFIG_OF
> -static u16 omap4_reg_offset = 0x100;
> +static const struct omap_mmc_of_data omap3_pre_es3_mmc_of_data = {
> +	/* See 35xx errata 2.1.1.128 in SPRZ278F */
> +	.controller_flags = OMAP_HSMMC_BROKEN_MULTIBLOCK_READ,
> +};
> +
> +static const struct omap_mmc_of_data omap4_mmc_of_data = {
> +	.reg_offset = 0x100,
> +};
>
>   static const struct of_device_id omap_mmc_of_match[] = {
>   	{
>   		.compatible = "ti,omap2-hsmmc",
>   	},
>   	{
> +		.compatible = "ti,omap3-pre-es3-hsmmc",
> +		.data = &omap3_pre_es3_mmc_of_data,
> +	},
> +	{
>   		.compatible = "ti,omap3-hsmmc",
>   	},
>   	{
>   		.compatible = "ti,omap4-hsmmc",
> -		.data = &omap4_reg_offset,
> +		.data = &omap4_mmc_of_data,
>   	},
>   	{},
>   };
> @@ -1759,6 +1775,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   	dma_cap_mask_t mask;
>   	unsigned tx_req, rx_req;
>   	struct pinctrl *pinctrl;
> +	const struct omap_mmc_of_data *data;
>
>   	match = of_match_device(of_match_ptr(omap_mmc_of_match), &pdev->dev);
>   	if (match) {
> @@ -1768,8 +1785,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
>   			return PTR_ERR(pdata);
>
>   		if (match->data) {
> -			const u16 *offsetp = match->data;
> -			pdata->reg_offset = *offsetp;
> +			data = match->data;
> +			pdata->reg_offset = data->reg_offset;
> +			pdata->controller_flags |= data->controller_flags;
>   		}
>   	}
>
>

  parent reply	other threads:[~2014-02-18 14:37 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-14  5:45 [PATCH V2 0/2] mmc: omap_hsmmc: fix for pre es3.0 OMAP3 Nishanth Menon
2014-02-14  5:45 ` Nishanth Menon
2014-02-14  5:45 ` Nishanth Menon
2014-02-14  5:45 ` [PATCH V2 1/2] mmc: omap_hsmmc: Add support for quirky omap3 hsmmc controller Nishanth Menon
2014-02-14  5:45   ` Nishanth Menon
2014-02-14  5:45   ` Nishanth Menon
2014-02-14 16:31   ` Tony Lindgren
2014-02-14 16:31     ` Tony Lindgren
2014-02-28 15:09     ` Nishanth Menon
2014-02-28 15:09       ` Nishanth Menon
2014-02-28 15:09       ` Nishanth Menon
2014-02-18 14:36   ` Balaji T K [this message]
2014-02-18 14:36     ` Balaji T K
2014-02-18 14:36     ` Balaji T K
2014-02-14  5:45 ` [PATCH V2 2/2] ARM: dts: omap3-ldp: fix mmc configuration Nishanth Menon
2014-02-14  5:45   ` Nishanth Menon
2014-02-14  5:45   ` Nishanth Menon
2014-02-20 13:21   ` Balaji T K
2014-02-20 13:21     ` Balaji T K
2014-02-20 13:21     ` Balaji T K

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=53036FFD.1040008@ti.com \
    --to=balajitk@ti.com \
    --cc=balbi@ti.com \
    --cc=chris@printf.net \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=tony@atomide.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.