Re: [GIT PULL] Urgent fixes (for v3.4 if possible) for Renesas ARM-based platforms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Fri, 11 May 2012, Olof Johansson wrote:

> On Fri, May 11, 2012 at 11:37 PM, Guennadi Liakhovetski
> <g.liakhovetski@xxxxxx> wrote:
> > On Fri, 11 May 2012, Olof Johansson wrote:
> >
> >> Hej Magnus,
> >>
> >> On Fri, May 11, 2012 at 9:28 PM, Magnus Damm <magnus.damm@xxxxxxxxx> wrote:
> >>
> >> >>>  git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas.git fixes
> >> >>
> >> >> No such branch (nor tag).
> >> >
> >> > I believe Rafael will get back to you about that when he gets to his computer.
> >>
> >> Yep, good.
> >>
> >> >>> Guennadi Liakhovetski (2):
> >> >>>      ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper
> >> >>>      ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper
> >> >>
> >> >> These seem to fix the long-standing build errors on the two platforms,
> >> >> but that's impossible to tell from reading the commit messages (they
> >> >> are empty). Care to add one describing why they're important to go in?
> >> >
> >> > I only know that a) some boards don't build without these fixes and b)
> >> > they used to build just fine.
> >> >
> >> > Perhaps Guennadi [CC:ed] could be so kind to fill us in with the blanks?
> >>
> >> It was pretty obvious once I tried applying them and building that
> >> they did indeed resolve the build errors. However, the reason I'm
> >> asking for a better description is that when looking at just the pull
> >> request, or even the patch full commit description, it was impossible
> >> to tell why the patch was urgent as a fix. So, while I am not
> >> questioning that the patch should be included, I'm just requesting to
> >> make sure it's properly described. That's also good for historical
> >> purposes when someone is reading the git logs a year from now, etc.
> >
> > Ok, sorry, I wasn't sure from the previous mail - would you prefer to
> > actually extend their commit messages? As described here
> >
> > http://thread.gmane.org/gmane.linux.kernel.mmc/12744/focus=12748
> >
> > These patches are a part of a patch-series, so, when they were submitted
> > in that context, it was pretty obvious how they relate to the rest.
> > However, unfortunately, they are now applied later than the main patches
> > in that series, so, their purpose has become much less obvious, and their
> > main feature now seems to be not the conversion of the affected platforms,
> > but fixing the build.
> 
> Yeah, that seems to be what happened here, so indeed by now the
> commits are a bit out of context.
> 
> > So, I think, we could use something like this in the
> > patch descriptions:
> >
> > This also fixes modular mmc build on this platform by eliminating the use
> > of an inline function, which calls into the mmc core.
> 
> Sounds good, with a cut-and-paste of the build error that happens
> without the patch for extra credit.
> 
> Rafael, can you add the above or something like it to the commit
> messages when you push out the fixes branch?

Let me try to make it a bit easier yet: here are the biuld failures from 
both platforms:

mackerel:

arch/arm/mach-shmobile/built-in.o: In function `mackerel_sdhi0_gpio_cd':
pfc-sh7372.c:(.text+0x1138): undefined reference to `mmc_detect_change'

ag5evm:

arch/arm/mach-shmobile/built-in.o: In function `ag5evm_sdhi0_gpio_cd':
pfc-sh73a0.c:(.text+0x7c0): undefined reference to `mmc_detect_change'

Also attaching to this email the patches with added patch descriptions and 
these error-logs.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
From 3288934944d3b685d5172b67866f5924451a061a Mon Sep 17 00:00:00 2001
From: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Date: Mon, 16 Apr 2012 23:09:13 +0200
Subject: [PATCH 1/2] ARM: mach-shmobile: convert mackerel to use the generic MMC GPIO hotplug helper

This also fixes the following modular mmc build failure:

arch/arm/mach-shmobile/built-in.o: In function `ag5evm_sdhi0_gpio_cd':
pfc-sh73a0.c:(.text+0x7c0): undefined reference to `mmc_detect_change'

on this platform by eliminating the use of an inline function, which 
calls into the mmc core.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Tested-by: Simon Horman <horms@xxxxxxxxxxxx>
Acked-by: Magnus Damm <damm@xxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
---
 arch/arm/mach-shmobile/board-mackerel.c |   22 ++--------------------
 1 files changed, 2 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 4ee5803..aae2e24 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -1015,21 +1015,12 @@ static int slot_cn7_get_cd(struct platform_device *pdev)
 }
 
 /* SDHI0 */
-static irqreturn_t mackerel_sdhi0_gpio_cd(int irq, void *arg)
-{
-	struct device *dev = arg;
-	struct sh_mobile_sdhi_info *info = dev->platform_data;
-	struct tmio_mmc_data *pdata = info->pdata;
-
-	tmio_mmc_cd_wakeup(pdata);
-
-	return IRQ_HANDLED;
-}
-
 static struct sh_mobile_sdhi_info sdhi0_info = {
 	.dma_slave_tx	= SHDMA_SLAVE_SDHI0_TX,
 	.dma_slave_rx	= SHDMA_SLAVE_SDHI0_RX,
+	.tmio_flags	= TMIO_MMC_USE_GPIO_CD,
 	.tmio_caps	= MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
+	.cd_gpio	= GPIO_PORT172,
 };
 
 static struct resource sdhi0_resources[] = {
@@ -1390,7 +1381,6 @@ static void __init mackerel_init(void)
 {
 	u32 srcr4;
 	struct clk *clk;
-	int ret;
 
 	/* External clock source */
 	clk_set_rate(&sh7372_dv_clki_clk, 27000000);
@@ -1487,7 +1477,6 @@ static void __init mackerel_init(void)
 	irq_set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH);
 
 	/* enable SDHI0 */
-	gpio_request(GPIO_FN_SDHICD0, NULL);
 	gpio_request(GPIO_FN_SDHIWP0, NULL);
 	gpio_request(GPIO_FN_SDHICMD0, NULL);
 	gpio_request(GPIO_FN_SDHICLK0, NULL);
@@ -1496,13 +1485,6 @@ static void __init mackerel_init(void)
 	gpio_request(GPIO_FN_SDHID0_1, NULL);
 	gpio_request(GPIO_FN_SDHID0_0, NULL);
 
-	ret = request_irq(evt2irq(0x3340), mackerel_sdhi0_gpio_cd,
-			  IRQF_TRIGGER_FALLING, "sdhi0 cd", &sdhi0_device.dev);
-	if (!ret)
-		sdhi0_info.tmio_flags |= TMIO_MMC_HAS_COLD_CD;
-	else
-		pr_err("Cannot get IRQ #%d: %d\n", evt2irq(0x3340), ret);
-
 #if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
 	/* enable SDHI1 */
 	gpio_request(GPIO_FN_SDHICMD1, NULL);
-- 
1.7.2.5

From f777bac2a06ac4c08dea6a815a340e000ee0bdf6 Mon Sep 17 00:00:00 2001
From: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Date: Mon, 16 Apr 2012 23:09:19 +0200
Subject: [PATCH 2/2] ARM: mach-shmobile: convert ag5evm to use the generic MMC GPIO hotplug helper

This also fixes the following modular mmc build failure:

arch/arm/mach-shmobile/built-in.o: In function `mackerel_sdhi0_gpio_cd':
pfc-sh7372.c:(.text+0x1138): undefined reference to `mmc_detect_change'

on this platform by eliminating the use of an inline function, which 
calls into the mmc core.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Reviewed-by: Simon Horman <horms@xxxxxxxxxxxx>
Acked-by: Magnus Damm <damm@xxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
---
 arch/arm/mach-shmobile/board-ag5evm.c |   22 ++--------------------
 1 files changed, 2 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index cb224a3..0891ec6 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -365,23 +365,13 @@ static struct platform_device mipidsi0_device = {
 };
 
 /* SDHI0 */
-static irqreturn_t ag5evm_sdhi0_gpio_cd(int irq, void *arg)
-{
-	struct device *dev = arg;
-	struct sh_mobile_sdhi_info *info = dev->platform_data;
-	struct tmio_mmc_data *pdata = info->pdata;
-
-	tmio_mmc_cd_wakeup(pdata);
-
-	return IRQ_HANDLED;
-}
-
 static struct sh_mobile_sdhi_info sdhi0_info = {
 	.dma_slave_tx	= SHDMA_SLAVE_SDHI0_TX,
 	.dma_slave_rx	= SHDMA_SLAVE_SDHI0_RX,
-	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT,
+	.tmio_flags	= TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
 	.tmio_caps	= MMC_CAP_SD_HIGHSPEED,
 	.tmio_ocr_mask	= MMC_VDD_27_28 | MMC_VDD_28_29,
+	.cd_gpio	= GPIO_PORT251,
 };
 
 static struct resource sdhi0_resources[] = {
@@ -557,7 +547,6 @@ static void __init ag5evm_init(void)
 	lcd_backlight_reset();
 
 	/* enable SDHI0 on CN15 [SD I/F] */
-	gpio_request(GPIO_FN_SDHICD0, NULL);
 	gpio_request(GPIO_FN_SDHIWP0, NULL);
 	gpio_request(GPIO_FN_SDHICMD0, NULL);
 	gpio_request(GPIO_FN_SDHICLK0, NULL);
@@ -566,13 +555,6 @@ static void __init ag5evm_init(void)
 	gpio_request(GPIO_FN_SDHID0_1, NULL);
 	gpio_request(GPIO_FN_SDHID0_0, NULL);
 
-	if (!request_irq(intcs_evt2irq(0x3c0), ag5evm_sdhi0_gpio_cd,
-			 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
-			 "sdhi0 cd", &sdhi0_device.dev))
-		sdhi0_info.tmio_flags |= TMIO_MMC_HAS_COLD_CD;
-	else
-		pr_warn("Unable to setup SDHI0 GPIO IRQ\n");
-
 	/* enable SDHI1 on CN4 [WLAN I/F] */
 	gpio_request(GPIO_FN_SDHICLK1, NULL);
 	gpio_request(GPIO_FN_SDHICMD1_PU, NULL);
-- 
1.7.2.5


[Index of Archives]     [Linux OMAP]     [Linux USB Devel]     [Linux ARM Kernel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux