All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] tegra: init MMC from common board init
@ 2012-08-07  1:18 Lucas Stach
  2012-08-07  1:18 ` [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol Lucas Stach
  2012-08-07 17:04 ` [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Stephen Warren
  0 siblings, 2 replies; 6+ messages in thread
From: Lucas Stach @ 2012-08-07  1:18 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Lucas Stach <dev@lynxeye.de>
CC: Stephen Warren <swarren@wwwdotorg.org>
CC: Tom Warren <TWarren@nvidia.com>
---
 board/nvidia/common/board.c | 4 ++++
 1 Datei ge?ndert, 4 Zeilen hinzugef?gt(+)

diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c
index 7ab2040..3bd4ff1 100644
--- a/board/nvidia/common/board.c
+++ b/board/nvidia/common/board.c
@@ -132,6 +132,10 @@ int board_init(void)
 	board_usb_init(gd->fdt_blob);
 #endif
 
+#ifdef CONFIG_TEGRA_MMC
+	board_mmc_init(gd->fdt_blob);
+#endif
+
 #ifdef CONFIG_TEGRA20_LP0
 	/* save Sdram params to PMC 2, 4, and 24 for WB0 */
 	warmboot_save_sdram_params();
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol
  2012-08-07  1:18 [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Lucas Stach
@ 2012-08-07  1:18 ` Lucas Stach
  2012-08-07 17:09   ` Stephen Warren
  2012-08-07 17:04 ` [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Stephen Warren
  1 sibling, 1 reply; 6+ messages in thread
From: Lucas Stach @ 2012-08-07  1:18 UTC (permalink / raw)
  To: u-boot

Most boards don't need this fixup hook. To avoid a lot of empty
implementations in board files convert it to a weak symbol.

Signed-off-by: Lucas Stach <dev@lynxeye.de>
CC: Stephen Warren <swarren@wwwdotorg.org>
CC: Tom Warren <TWarren@nvidia.com>
---
 board/avionic-design/common/tamonten.c | 7 -------
 board/compal/paz00/paz00.c             | 7 -------
 board/compulab/trimslice/trimslice.c   | 7 -------
 board/nvidia/common/board.c            | 5 +++++
 board/nvidia/harmony/harmony.c         | 7 -------
 board/nvidia/whistler/whistler.c       | 7 -------
 6 Dateien ge?ndert, 5 Zeilen hinzugef?gt(+), 35 Zeilen entfernt(-)

diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c
index a0a4d1d..f5e6f6d 100644
--- a/board/avionic-design/common/tamonten.c
+++ b/board/avionic-design/common/tamonten.c
@@ -41,13 +41,6 @@
 #include <mmc.h>
 #endif
 
-/*
- * Routine: gpio_config_uart
- * Description: Does nothing on Tamonten - no conflict w/SPI.
- */
-void gpio_config_uart(void)
-{
-}
 
 #ifdef CONFIG_BOARD_EARLY_INIT_F
 void gpio_early_init(void)
diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
index cd684f2..59cf41b 100644
--- a/board/compal/paz00/paz00.c
+++ b/board/compal/paz00/paz00.c
@@ -24,13 +24,6 @@
 #include <mmc.h>
 #endif
 
-/*
- * Routine: gpio_config_uart
- * Description: Does nothing on Paz00 - no conflict w/SPI.
- */
-void gpio_config_uart(void)
-{
-}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/compulab/trimslice/trimslice.c b/board/compulab/trimslice/trimslice.c
index 5dae15b..f6de19e 100644
--- a/board/compulab/trimslice/trimslice.c
+++ b/board/compulab/trimslice/trimslice.c
@@ -34,13 +34,6 @@
 #include <mmc.h>
 #endif
 
-/*
- * Routine: gpio_config_uart
- * Description: Does nothing on TrimSlice - no UART-related GPIOs.
- */
-void gpio_config_uart(void)
-{
-}
 
 void pin_mux_spi(void)
 {
diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c
index 3bd4ff1..c4304ac 100644
--- a/board/nvidia/common/board.c
+++ b/board/nvidia/common/board.c
@@ -72,6 +72,11 @@ void __pin_mux_spi(void)
 
 void pin_mux_spi(void) __attribute__((weak, alias("__pin_mux_spi")));
 
+void __gpio_config_uart(void)
+{
+}
+
+void gpio_config_uart(void) __attribute__((weak, alias("__gpio_config_uart")));
 /*
  * Routine: power_det_init
  * Description: turn off power detects
diff --git a/board/nvidia/harmony/harmony.c b/board/nvidia/harmony/harmony.c
index 44977c7..5b75230 100644
--- a/board/nvidia/harmony/harmony.c
+++ b/board/nvidia/harmony/harmony.c
@@ -33,13 +33,6 @@
 #include <mmc.h>
 #endif
 
-/*
- * Routine: gpio_config_uart
- * Description: Does nothing on Harmony - no conflict w/SPI.
- */
-void gpio_config_uart(void)
-{
-}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/nvidia/whistler/whistler.c b/board/nvidia/whistler/whistler.c
index c0a114d..cad7c48 100644
--- a/board/nvidia/whistler/whistler.c
+++ b/board/nvidia/whistler/whistler.c
@@ -34,13 +34,6 @@
 #include <mmc.h>
 #endif
 
-/*
- * Routine: gpio_config_uart
- * Description: Does nothing on Whistler - no UART-related GPIOs.
- */
-void gpio_config_uart(void)
-{
-}
 
 /*
  * Routine: pin_mux_mmc
-- 
1.7.11.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 1/2] tegra: init MMC from common board init
  2012-08-07  1:18 [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Lucas Stach
  2012-08-07  1:18 ` [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol Lucas Stach
@ 2012-08-07 17:04 ` Stephen Warren
  2012-08-07 17:35   ` Lucas Stach
  1 sibling, 1 reply; 6+ messages in thread
From: Stephen Warren @ 2012-08-07 17:04 UTC (permalink / raw)
  To: u-boot

On 08/06/2012 07:18 PM, Lucas Stach wrote:

There's no description here justifying why you want this change.

I don't think the change is correct; in arch/arm/lib/board.c,
board_init_r() calls drivers/mmc/mmc.c:mmc_initialize() which calls
board_mmc_init(). With this patch, won't this function get called twice?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol
  2012-08-07  1:18 ` [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol Lucas Stach
@ 2012-08-07 17:09   ` Stephen Warren
  2012-08-19 16:56     ` Lucas Stach
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Warren @ 2012-08-07 17:09 UTC (permalink / raw)
  To: u-boot

On 08/06/2012 07:18 PM, Lucas Stach wrote:
> Most boards don't need this fixup hook. To avoid a lot of empty
> implementations in board files convert it to a weak symbol.

This seems OK on the surface, but I think there may be more opportunity
for cleanup here.

In board/nvidia/common/board.c, I see both of the following:

board_init:

#ifdef CONFIG_SPI_UART_SWITCH
        gpio_config_uart();
#endif


board_early_init_f:

        /* Initialize periph GPIOs */
        gpio_early_init();
#ifdef CONFIG_SPI_UART_SWITCH
        gpio_early_init_uart();
#else
        gpio_config_uart();
#endif

and in arch/arm/cpu/arm720t/tegra20/spl.c:

board_init_f:

#ifdef CONFIG_SPI_UART_SWITCH
        gpio_early_init_uart();
#else
        gpio_config_uart();
#endif

It sure seems like we don't need to call those two init function all
those times. Perhaps we can clarify which of the functions are actually
needed at all, and when they should be called.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 1/2] tegra: init MMC from common board init
  2012-08-07 17:04 ` [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Stephen Warren
@ 2012-08-07 17:35   ` Lucas Stach
  0 siblings, 0 replies; 6+ messages in thread
From: Lucas Stach @ 2012-08-07 17:35 UTC (permalink / raw)
  To: u-boot

Am Dienstag, den 07.08.2012, 11:04 -0600 schrieb Stephen Warren:
> On 08/06/2012 07:18 PM, Lucas Stach wrote:
> 
> There's no description here justifying why you want this change.
> 
> I don't think the change is correct; in arch/arm/lib/board.c,
> board_init_r() calls drivers/mmc/mmc.c:mmc_initialize() which calls
> board_mmc_init(). With this patch, won't this function get called twice?
> 
Please disregard this patch. It was only needed because of an error on
my side.

Sorry for the inconvenience.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol
  2012-08-07 17:09   ` Stephen Warren
@ 2012-08-19 16:56     ` Lucas Stach
  0 siblings, 0 replies; 6+ messages in thread
From: Lucas Stach @ 2012-08-19 16:56 UTC (permalink / raw)
  To: u-boot

Hi Stephen,

Am Dienstag, den 07.08.2012, 11:09 -0600 schrieb Stephen Warren:
> On 08/06/2012 07:18 PM, Lucas Stach wrote:
> > Most boards don't need this fixup hook. To avoid a lot of empty
> > implementations in board files convert it to a weak symbol.
> 
> This seems OK on the surface, but I think there may be more opportunity
> for cleanup here.
> 
I looked a bit deeper into this and it seems that in fact the logic of
all those calls are correct and none them could be removed.

To clarify what's going on:
if we are building without CONFIG_SPI_UART_SWITCH the board file has to
provide a function gpio_config_uart() to ensure correct GPIO setting and
it's correct to call this in early_init.

Now, if we build with CONFIG_SPI_UART_SWITCH set, the board file stops
providing the gpio_config_uart() and the UART switch provides a
gpio_early_init_uart() function which does essentially the same, so we
call this instead in early init.

The confusing part is that the UART switch now provides a function also
named gpio_config_uart(), which redoes the GPIO setting after relocation
and does some internal state setting.

Now while explaining all this in this email I see how we should make
this more clear with some reasonable renaming, but we won't get around
the weak symbol if we want to keep the possibility for boards to build
without CONFIG_SPI_UART_SWITCH. I'll spin a new patch to untangle this
mess a bit.

Thanks,
Lucas

> In board/nvidia/common/board.c, I see both of the following:
> 
> board_init:
> 
> #ifdef CONFIG_SPI_UART_SWITCH
>         gpio_config_uart();
> #endif
> 
> 
> board_early_init_f:
> 
>         /* Initialize periph GPIOs */
>         gpio_early_init();
> #ifdef CONFIG_SPI_UART_SWITCH
>         gpio_early_init_uart();
> #else
>         gpio_config_uart();
> #endif
> 
> and in arch/arm/cpu/arm720t/tegra20/spl.c:
> 
> board_init_f:
> 
> #ifdef CONFIG_SPI_UART_SWITCH
>         gpio_early_init_uart();
> #else
>         gpio_config_uart();
> #endif
> 
> It sure seems like we don't need to call those two init function all
> those times. Perhaps we can clarify which of the functions are actually
> needed at all, and when they should be called.
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-08-19 16:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-07  1:18 [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Lucas Stach
2012-08-07  1:18 ` [U-Boot] [PATCH 2/2] tegra: convert gpio_config_uart to weak symbol Lucas Stach
2012-08-07 17:09   ` Stephen Warren
2012-08-19 16:56     ` Lucas Stach
2012-08-07 17:04 ` [U-Boot] [PATCH 1/2] tegra: init MMC from common board init Stephen Warren
2012-08-07 17:35   ` Lucas Stach

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.