* [PATCH] sdhci-s3c: add platform_8bit_width()
@ 2011-01-12 0:30 Jaehoon Chung
2011-01-12 2:20 ` Chris Ball
0 siblings, 1 reply; 6+ messages in thread
From: Jaehoon Chung @ 2011-01-12 0:30 UTC (permalink / raw)
To: linux-mmc@vger.kernel.org; +Cc: Kyungmin Park, Chris Ball, Ben Dooks
This patch is added platform_8bit_width() function in sdhci-s3c.
We has 8-bit width support but is not a v3 controller.
So we need platform_8bit_width() to support 8-bit buswidth.
Also we need MMC_CAP_8_BIT_DATA, so we added them in platdata.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
drivers/mmc/host/sdhci-s3c.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 70cc3d7..4dc7d6d 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -276,10 +276,39 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
host->clock = clock;
}
+/*
+ * sdhci_s3c_platform_8bit_width - support 8bit buswidth
+ *
+ * We has 8-bit width support but is not a v3 controller.
+ * So we add platform_8bit_width() and support 8bit width.
+ **/
+static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host,
+ int bus_width)
+{
+ u8 ctrl;
+
+ ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
+
+ if (bus_width == MMC_BUS_WIDTH_8)
+ ctrl |= SDHCI_CTRL_8BITBUS;
+ else
+ ctrl &= ~SDHCI_CTRL_8BITBUS;
+
+ if (bus_width == MMC_BUS_WIDTH_4)
+ ctrl |= SDHCI_CTRL_4BITBUS;
+ else
+ ctrl &= ~SDHCI_CTRL_4BITBUS;
+
+ sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
+
+ return 0;
+}
+
static struct sdhci_ops sdhci_s3c_ops = {
.get_max_clock = sdhci_s3c_get_max_clk,
.set_clock = sdhci_s3c_set_clock,
.get_min_clock = sdhci_s3c_get_min_clock,
+ .platform_8bit_width = sdhci_s3c_platform_8bit_width,
};
static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
@@ -472,6 +501,9 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
if (pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
host->mmc->caps = MMC_CAP_NONREMOVABLE;
+ if (pdata->host_caps)
+ host->mmc->caps |= pdata->host_caps;
+
host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_32BIT_DMA_SIZE);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] sdhci-s3c: add platform_8bit_width()
2011-01-12 0:30 [PATCH] sdhci-s3c: add platform_8bit_width() Jaehoon Chung
@ 2011-01-12 2:20 ` Chris Ball
2011-01-12 2:59 ` Jaehoon Chung
0 siblings, 1 reply; 6+ messages in thread
From: Chris Ball @ 2011-01-12 2:20 UTC (permalink / raw)
To: Jaehoon Chung; +Cc: linux-mmc@vger.kernel.org, Kyungmin Park, Ben Dooks
Hi Jaehoon,
Looks fine, just style corrections:
On Wed, Jan 12, 2011 at 09:30:41AM +0900, Jaehoon Chung wrote:
> This patch is added platform_8bit_width() function in sdhci-s3c.
^ adds
>
> We has 8-bit width support but is not a v3 controller.
^ have
> So we need platform_8bit_width() to support 8-bit buswidth.
>
> Also we need MMC_CAP_8_BIT_DATA, so we added them in platdata.
^ add it
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> drivers/mmc/host/sdhci-s3c.c | 32 ++++++++++++++++++++++++++++++++
> 1 files changed, 32 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 70cc3d7..4dc7d6d 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -276,10 +276,39 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
> host->clock = clock;
> }
>
> +/*
> + * sdhci_s3c_platform_8bit_width - support 8bit buswidth
> + *
> + * We has 8-bit width support but is not a v3 controller.
^ have
> + * So we add platform_8bit_width() and support 8bit width.
^ extra space here
> + **/
> +static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host,
> + int bus_width)
This will (just) fit on one line.
> +{
> + u8 ctrl;
> +
> + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> +
> + if (bus_width == MMC_BUS_WIDTH_8)
> + ctrl |= SDHCI_CTRL_8BITBUS;
> + else
> + ctrl &= ~SDHCI_CTRL_8BITBUS;
> +
> + if (bus_width == MMC_BUS_WIDTH_4)
> + ctrl |= SDHCI_CTRL_4BITBUS;
> + else
> + ctrl &= ~SDHCI_CTRL_4BITBUS;
You could use a switch statement here.
> +
> + sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> +
> + return 0;
> +}
> +
> static struct sdhci_ops sdhci_s3c_ops = {
> .get_max_clock = sdhci_s3c_get_max_clk,
> .set_clock = sdhci_s3c_set_clock,
> .get_min_clock = sdhci_s3c_get_min_clock,
> + .platform_8bit_width = sdhci_s3c_platform_8bit_width,
> };
>
> static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
> @@ -472,6 +501,9 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
> if (pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
> host->mmc->caps = MMC_CAP_NONREMOVABLE;
>
> + if (pdata->host_caps)
> + host->mmc->caps |= pdata->host_caps;
> +
> host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR |
> SDHCI_QUIRK_32BIT_DMA_SIZE);
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] sdhci-s3c: add platform_8bit_width()
2011-01-12 2:20 ` Chris Ball
@ 2011-01-12 2:59 ` Jaehoon Chung
2011-01-12 3:27 ` Chris Ball
0 siblings, 1 reply; 6+ messages in thread
From: Jaehoon Chung @ 2011-01-12 2:59 UTC (permalink / raw)
To: Chris Ball; +Cc: linux-mmc@vger.kernel.org, Kyungmin Park, Ben Dooks
Hi Chris.
Thanks for your comments.
So i fixed them, and resend the patch.
We have 8-bit width support bu is not a v3 controller.
So we need platform_8bit_width() to support 8-bit buswidth.
Also we need MMC_CAP_8_BIT_DATA, so we add it in platdata.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
---
drivers/mmc/host/sdhci-s3c.c | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 70cc3d7..8d27bbd 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -276,10 +276,41 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
host->clock = clock;
}
+/*
+ * sdhci_s3c_platform_8bit_width - support 8bit buswidth
+ *
+ * We have 8-bit width support but is not a v3 controller.
+ * So we add platform_8bit_width() and support 8bit width.
+ **/
+static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host, int width)
+{
+ u8 ctrl;
+
+ ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
+
+ switch (width) {
+ case MMC_BUS_WIDTH_8:
+ ctrl |= SDHCI_CTRL_8BITBUS;
+ ctrl &= ~SDHCI_CTRL_4BITBUS;
+ break;
+ case MMC_BUS_WIDTH_4:
+ ctrl |= SDHCI_CTRL_4BITBUS;
+ ctrl &= ~SDHCI_CTRL_8BITBUS;
+ break;
+ default:
+ break;
+ }
+
+ sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
+
+ return 0;
+}
+
static struct sdhci_ops sdhci_s3c_ops = {
.get_max_clock = sdhci_s3c_get_max_clk,
.set_clock = sdhci_s3c_set_clock,
.get_min_clock = sdhci_s3c_get_min_clock,
+ .platform_8bit_width = sdhci_s3c_platform_8bit_width,
};
static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
@@ -472,6 +503,9 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
if (pdata->cd_type == S3C_SDHCI_CD_PERMANENT)
host->mmc->caps = MMC_CAP_NONREMOVABLE;
+ if (pdata->host_caps)
+ host->mmc->caps |= pdata->host_caps;
+
host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR |
SDHCI_QUIRK_32BIT_DMA_SIZE);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] sdhci-s3c: add platform_8bit_width()
2011-01-12 2:59 ` Jaehoon Chung
@ 2011-01-12 3:27 ` Chris Ball
2011-01-12 3:54 ` Kyungmin Park
0 siblings, 1 reply; 6+ messages in thread
From: Chris Ball @ 2011-01-12 3:27 UTC (permalink / raw)
To: Jaehoon Chung; +Cc: linux-mmc@vger.kernel.org, Kyungmin Park, Ben Dooks
Hi Jaehoon,
On Wed, Jan 12, 2011 at 11:59:12AM +0900, Jaehoon Chung wrote:
> Hi Chris.
>
> Thanks for your comments.
> So i fixed them, and resend the patch.
Thanks! I've pushed it to mmc-next.
> We have 8-bit width support bu is not a v3 controller.
> So we need platform_8bit_width() to support 8-bit buswidth.
> Also we need MMC_CAP_8_BIT_DATA, so we add it in platdata.
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
I made one more change -- the rest of sdhci-s3c.c uses kerneldoc format
function comments, but your patch doesn't have the correct kerneldoc syntax:
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 89f019f..5309ab9 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -277,12 +277,14 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
host->clock = clock;
}
-/*
+/**
* sdhci_s3c_platform_8bit_width - support 8bit buswidth
+ * @host: The SDHCI host being queried
+ * @width: MMC_BUS_WIDTH_ macro for the bus width being requested
*
* We have 8-bit width support but is not a v3 controller.
* So we add platform_8bit_width() and support 8bit width.
- **/
+ */
static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host, int width)
{
u8 ctrl;
Ben, feel free to yell if you object to the final version of the patch,
else I'll merge it for .39.
Thanks,
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] sdhci-s3c: add platform_8bit_width()
2011-01-12 3:27 ` Chris Ball
@ 2011-01-12 3:54 ` Kyungmin Park
2011-01-12 3:58 ` Chris Ball
0 siblings, 1 reply; 6+ messages in thread
From: Kyungmin Park @ 2011-01-12 3:54 UTC (permalink / raw)
To: Chris Ball; +Cc: Jaehoon Chung, linux-mmc@vger.kernel.org, Ben Dooks
On Wed, Jan 12, 2011 at 12:27 PM, Chris Ball <cjb@laptop.org> wrote:
> Hi Jaehoon,
>
> On Wed, Jan 12, 2011 at 11:59:12AM +0900, Jaehoon Chung wrote:
>> Hi Chris.
>>
>> Thanks for your comments.
>> So i fixed them, and resend the patch.
>
> Thanks! I've pushed it to mmc-next.
>
>> We have 8-bit width support bu is not a v3 controller.
>> So we need platform_8bit_width() to support 8-bit buswidth.
>> Also we need MMC_CAP_8_BIT_DATA, so we add it in platdata.
>>
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>
> I made one more change -- the rest of sdhci-s3c.c uses kerneldoc format
> function comments, but your patch doesn't have the correct kerneldoc syntax:
>
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 89f019f..5309ab9 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -277,12 +277,14 @@ static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock)
> host->clock = clock;
> }
>
> -/*
> +/**
> * sdhci_s3c_platform_8bit_width - support 8bit buswidth
> + * @host: The SDHCI host being queried
> + * @width: MMC_BUS_WIDTH_ macro for the bus width being requested
> *
> * We have 8-bit width support but is not a v3 controller.
> * So we add platform_8bit_width() and support 8bit width.
> - **/
> + */
> static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host, int width)
> {
> u8 ctrl;
>
>
> Ben, feel free to yell if you object to the final version of the patch,
> else I'll merge it for .39.
Hi Chris,
Umm I think it's kind of bug fix since we used 8-bit buswidth previous
code but recent change don't make it working
So re-support the 8-bit buswidth. Can you merge it at 38.rc period?
How do you think?
Thank you,
Kyungmin Park
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] sdhci-s3c: add platform_8bit_width()
2011-01-12 3:54 ` Kyungmin Park
@ 2011-01-12 3:58 ` Chris Ball
0 siblings, 0 replies; 6+ messages in thread
From: Chris Ball @ 2011-01-12 3:58 UTC (permalink / raw)
To: Kyungmin Park; +Cc: Jaehoon Chung, linux-mmc@vger.kernel.org, Ben Dooks
On Wed, Jan 12, 2011 at 12:54:07PM +0900, Kyungmin Park wrote:
> Umm I think it's kind of bug fix since we used 8-bit buswidth previous
> code but recent change don't make it working
> So re-support the 8-bit buswidth. Can you merge it at 38.rc period?
Okay, that should be fine. As always, though, it would be nice to see
an ACK from Ben before pushing it through quickly.
Thanks,
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-01-12 3:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-12 0:30 [PATCH] sdhci-s3c: add platform_8bit_width() Jaehoon Chung
2011-01-12 2:20 ` Chris Ball
2011-01-12 2:59 ` Jaehoon Chung
2011-01-12 3:27 ` Chris Ball
2011-01-12 3:54 ` Kyungmin Park
2011-01-12 3:58 ` Chris Ball
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox