Hi, On Fri, Oct 21, 2011 at 4:42 PM, Tomi Valkeinen <tomi.valkeinen@xxxxxx> wrote: > On Fri, 2011-10-21 at 14:56 +0530, mythripk@xxxxxx wrote: >> From: Mythri P K <mythripk@xxxxxx> >> >> Move duplicate HDMI mux_init code from omap4 and panda board file >> to display file. > > The subject is again broken. > >> Signed-off-by: Mythri P K <mythripk@xxxxxx> >> --- >> arch/arm/mach-omap2/board-4430sdp.c | 15 --------------- >> arch/arm/mach-omap2/board-omap4panda.c | 16 ---------------- >> arch/arm/mach-omap2/display.c | 25 +++++++++++++++++++++++++ >> 3 files changed, 25 insertions(+), 31 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c >> index 6d16306..4fcdf38 100644 >> --- a/arch/arm/mach-omap2/board-4430sdp.c >> +++ b/arch/arm/mach-omap2/board-4430sdp.c >> @@ -601,20 +601,6 @@ static void __init omap_sfh7741prox_init(void) >> __func__, OMAP4_SFH7741_ENABLE_GPIO, error); >> } >> >> -static void sdp4430_hdmi_mux_init(void) >> -{ >> - /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ >> - omap_mux_init_signal("hdmi_hpd", >> - OMAP_PIN_INPUT_PULLUP); >> - omap_mux_init_signal("hdmi_cec", >> - OMAP_PIN_INPUT_PULLUP); >> - /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ >> - omap_mux_init_signal("hdmi_ddc_scl", >> - OMAP_PIN_INPUT_PULLUP); >> - omap_mux_init_signal("hdmi_ddc_sda", >> - OMAP_PIN_INPUT_PULLUP); >> -} >> - >> static struct gpio sdp4430_hdmi_gpios[] = { >> { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, >> { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, >> @@ -844,7 +830,6 @@ static void omap_4430sdp_display_init(void) >> pr_err("%s: Could not get display_sel GPIO\n", __func__); >> >> sdp4430_lcd_init(); >> - sdp4430_hdmi_mux_init(); >> sdp4430_picodlp_init(); >> omap_display_init(&sdp4430_dss_data); >> } >> diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c >> index a38ed273..bb5fca2 100644 >> --- a/arch/arm/mach-omap2/board-omap4panda.c >> +++ b/arch/arm/mach-omap2/board-omap4panda.c >> @@ -484,21 +484,6 @@ int __init omap4_panda_dvi_init(void) >> return r; >> } >> >> - >> -static void omap4_panda_hdmi_mux_init(void) >> -{ >> - /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ >> - omap_mux_init_signal("hdmi_hpd", >> - OMAP_PIN_INPUT_PULLUP); >> - omap_mux_init_signal("hdmi_cec", >> - OMAP_PIN_INPUT_PULLUP); >> - /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ >> - omap_mux_init_signal("hdmi_ddc_scl", >> - OMAP_PIN_INPUT_PULLUP); >> - omap_mux_init_signal("hdmi_ddc_sda", >> - OMAP_PIN_INPUT_PULLUP); >> -} >> - >> static struct gpio panda_hdmi_gpios[] = { >> { HDMI_GPIO_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd" }, >> { HDMI_GPIO_LS_OE, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" }, >> @@ -550,7 +535,6 @@ void omap4_panda_display_init(void) >> if (r) >> pr_err("error initializing panda DVI\n"); >> >> - omap4_panda_hdmi_mux_init(); >> omap_display_init(&omap4_panda_dss_data); >> } >> >> diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c >> index 94a96ce..f6590b9 100644 >> --- a/arch/arm/mach-omap2/display.c >> +++ b/arch/arm/mach-omap2/display.c >> @@ -28,6 +28,7 @@ >> #include <plat/omap-pm.h> >> #include <plat/common.h> >> >> +#include "mux.h" >> #include "control.h" >> #include "display.h" >> >> @@ -103,6 +104,20 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initdata = { >> { "dss_hdmi", "omapdss_hdmi", -1 }, >> }; >> >> +static void omap4_hdmi_mux_pads(void) >> +{ >> + /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ >> + omap_mux_init_signal("hdmi_hpd", >> + OMAP_PIN_INPUT_PULLUP); >> + omap_mux_init_signal("hdmi_cec", >> + OMAP_PIN_INPUT_PULLUP); >> + /* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */ >> + omap_mux_init_signal("hdmi_ddc_scl", >> + OMAP_PIN_INPUT_PULLUP); >> + omap_mux_init_signal("hdmi_ddc_sda", >> + OMAP_PIN_INPUT_PULLUP); >> +} >> + >> static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) >> { >> u32 enable_mask, enable_shift; >> @@ -136,6 +151,14 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) >> return 0; >> } >> >> +static int omap_hdmi_enable_pads(void) >> +{ >> + if (cpu_is_omap44xx()) >> + omap4_hdmi_mux_pads(); >> + >> + return 0; >> +} >> + >> static int omap_dsi_enable_pads(int dsi_id, unsigned lane_mask) >> { >> if (cpu_is_omap44xx()) >> @@ -172,6 +195,8 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) >> oh_count = ARRAY_SIZE(omap4_dss_hwmod_data); >> } >> >> + omap_hdmi_enable_pads(); > > Now this would be done for all boards, even those without HDMI. I don't > think that's right, as the HDMI pins can probably be used for something > else. I guess there is a check for omap4 in the enable_pads. > > Should there be similar system than for DSI, so an enable and disable > function for the pads, called from the hdmi driver? > > However, for DSI we need to change the pins during runtime, so that's > why the functions for DSI are required. If the HDMI configuration is > more static, and needs to be done only once at boot time, perhaps the > display_init function could go through the displays from the board_data, > and if there's an HDMI display defined, do the muxing. Mux configuration for HDMI is static unlike for DSI, Also i have added a check for OMAP4, I am not aware of any OMAP4 board without the HDMI today. It appears to me that even other modules do their mux configuration in board-file. Let me know if there is anything you think can improve it. Thanks and regards, Mythri. > > So is there ever need to change the hdmi pins after they have been > configured? I guess the pins could be changed to safe mode when not in > use, preserving some power, but I don't know if that difference is > noticeable. > > Tomi > > > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html