From 85d9bf152bdaa7e98a05cc460aa6880efdf0b433 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Wed, 4 May 2016 10:27:46 +0200 Subject: ARM: shmobile: pm-rmobile: Postpone call to pm_genpd_init() All local setup of the generic_pm_domain structure should have been completed before calling pm_genpd_init(). Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman --- arch/arm/mach-shmobile/pm-rmobile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-shmobile/pm-rmobile.c b/arch/arm/mach-shmobile/pm-rmobile.c index c0b05e9e6442..45a195501b78 100644 --- a/arch/arm/mach-shmobile/pm-rmobile.c +++ b/arch/arm/mach-shmobile/pm-rmobile.c @@ -131,13 +131,13 @@ static void rmobile_init_pm_domain(struct rmobile_pm_domain *rmobile_pd) struct dev_power_governor *gov = rmobile_pd->gov; genpd->flags = GENPD_FLAG_PM_CLK; - pm_genpd_init(genpd, gov ? : &simple_qos_governor, false); genpd->dev_ops.active_wakeup = rmobile_pd_active_wakeup; genpd->power_off = rmobile_pd_power_down; genpd->power_on = rmobile_pd_power_up; genpd->attach_dev = cpg_mstp_attach_dev; genpd->detach_dev = cpg_mstp_detach_dev; __rmobile_pd_power_up(rmobile_pd, false); + pm_genpd_init(genpd, gov ? : &simple_qos_governor, false); } static int rmobile_pd_suspend_busy(void) -- cgit From c94bc815f3c757df402d6f6a3e8d855b9168e6af Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 17 May 2016 17:15:33 +0200 Subject: ARM: shmobile: rcar-gen2: Use ICRAM1 for jump stub on all SoCs Currently the different SoCs in the R-Car Gen2 family use different types of on-chip RAM for the jump stub: - R-Car H2 uses Media RAM, - R-Car M2-W uses another type of optional On-chip RAM, as it doesn't have Media RAM, - R-Car M2-N uses Inter Connect RAM in Magnus Damm's "ARM: shmobile: r8a7793 boot address update". As all R-Car Gen2 SoCs have 4 KiB of Inter Connect RAM, consolidate the code by always using that. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman --- arch/arm/mach-shmobile/pm-rcar-gen2.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-shmobile/pm-rcar-gen2.c b/arch/arm/mach-shmobile/pm-rcar-gen2.c index 691ac166a277..61361dac6068 100644 --- a/arch/arm/mach-shmobile/pm-rcar-gen2.c +++ b/arch/arm/mach-shmobile/pm-rcar-gen2.c @@ -26,8 +26,7 @@ #define CA7RESCNT 0x0044 /* On-chip RAM */ -#define MERAM 0xe8080000 -#define RAM 0xe6300000 +#define ICRAM1 0xe63c0000 /* Inter Connect RAM1 (4 KiB) */ /* SYSC */ #define SYSCIER 0x0c @@ -58,7 +57,7 @@ void __init rcar_gen2_pm_init(void) struct device_node *np, *cpus; bool has_a7 = false; bool has_a15 = false; - phys_addr_t boot_vector_addr = 0; + phys_addr_t boot_vector_addr = ICRAM1; u32 syscier = 0; if (once++) @@ -75,14 +74,10 @@ void __init rcar_gen2_pm_init(void) has_a7 = true; } - if (of_machine_is_compatible("renesas,r8a7790")) { - boot_vector_addr = MERAM; + if (of_machine_is_compatible("renesas,r8a7790")) syscier = 0x013111ef; - - } else if (of_machine_is_compatible("renesas,r8a7791")) { - boot_vector_addr = RAM; + else if (of_machine_is_compatible("renesas,r8a7791")) syscier = 0x00111003; - } /* RAM for jump stub, because BAR requires 256KB aligned address */ p = ioremap_nocache(boot_vector_addr, shmobile_boot_size); -- cgit From 6697ad24b1d7997a340852056e477c71c429d5ee Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 3 Jun 2016 13:25:46 +0300 Subject: ARM: OMAP: rx51-video: Do not set TV connector_type OMAP_DSS_VENC_TYPE_COMPOSITE is 0. There is no need to explicitly set the connector_type. This change is needed for the omapdss header cleanup. Signed-off-by: Peter Ujfalusi Acked-by: Tony Lindgren --- arch/arm/mach-omap2/board-rx51-video.c | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/mach-omap2/board-rx51-video.c b/arch/arm/mach-omap2/board-rx51-video.c index 9cfebc5c7455..b76f84245ad9 100644 --- a/arch/arm/mach-omap2/board-rx51-video.c +++ b/arch/arm/mach-omap2/board-rx51-video.c @@ -32,7 +32,6 @@ static struct connector_atv_platform_data rx51_tv_pdata = { .name = "tv", .source = "venc.0", - .connector_type = OMAP_DSS_VENC_TYPE_COMPOSITE, .invert_polarity = false, }; -- cgit From c270e89bf2e0745da85a41178d312ef288ac5211 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Mon, 30 May 2016 13:39:56 +0300 Subject: ARM/video: omap2: Move omap_display_init declaration to mach-omap2/display.h The omap_display_init() is implemented in the mach-omap2/display.c so the declaration should have been there as well. Change the board files to include display.h to avoid build breakage at the same time. Signed-off-by: Peter Ujfalusi Acked-by: Tony Lindgren --- arch/arm/mach-omap2/board-ldp.c | 1 + arch/arm/mach-omap2/board-rx51-video.c | 1 + arch/arm/mach-omap2/display.h | 5 +++++ include/video/omapdss.h | 3 --- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index d9c3ffc39329..f364a1b779f0 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@ -47,6 +47,7 @@ #include "hsmmc.h" #include "control.h" #include "common-board-devices.h" +#include "display.h" #define LDP_SMSC911X_CS 1 #define LDP_SMSC911X_GPIO 152 diff --git a/arch/arm/mach-omap2/board-rx51-video.c b/arch/arm/mach-omap2/board-rx51-video.c index b76f84245ad9..9866ec06a395 100644 --- a/arch/arm/mach-omap2/board-rx51-video.c +++ b/arch/arm/mach-omap2/board-rx51-video.c @@ -22,6 +22,7 @@ #include "soc.h" #include "board-rx51.h" +#include "display.h" #include "mux.h" diff --git a/arch/arm/mach-omap2/display.h b/arch/arm/mach-omap2/display.h index 7375854b16c7..78f253005279 100644 --- a/arch/arm/mach-omap2/display.h +++ b/arch/arm/mach-omap2/display.h @@ -33,4 +33,9 @@ int omap_init_vout(void); struct device_node * __init omapdss_find_dss_of_node(void); +struct omap_dss_board_info; + +/* Init with the board info */ +int omap_display_init(struct omap_dss_board_info *board_data); + #endif diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 8e14ad7327c9..0c7ae93ebd76 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -330,9 +330,6 @@ struct omap_dss_board_info { enum omapdss_version version; }; -/* Init with the board info */ -extern int omap_display_init(struct omap_dss_board_info *board_data); - struct omap_video_timings { /* Unit: pixels */ u16 x_res; -- cgit From 60fc4bab9181be55d24f68aa196d864850d8297e Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 3 Jun 2016 12:40:27 +0300 Subject: video/platform_data: omapdss: Create new header file for platform data Create a new header file for platform data used by omapdss. Signed-off-by: Peter Ujfalusi --- include/linux/platform_data/omapdss.h | 42 +++++++++++++++++++++++++++++++++++ include/video/omapdss.h | 28 +---------------------- 2 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 include/linux/platform_data/omapdss.h diff --git a/include/linux/platform_data/omapdss.h b/include/linux/platform_data/omapdss.h new file mode 100644 index 000000000000..dbb875abc44a --- /dev/null +++ b/include/linux/platform_data/omapdss.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2016 Texas Instruments, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef __OMAPDSS_PDATA_H +#define __OMAPDSS_PDATA_H + +enum omapdss_version { + OMAPDSS_VER_UNKNOWN = 0, + OMAPDSS_VER_OMAP24xx, + OMAPDSS_VER_OMAP34xx_ES1, /* OMAP3430 ES1.0, 2.0 */ + OMAPDSS_VER_OMAP34xx_ES3, /* OMAP3430 ES3.0+ */ + OMAPDSS_VER_OMAP3630, + OMAPDSS_VER_AM35xx, + OMAPDSS_VER_OMAP4430_ES1, /* OMAP4430 ES1.0 */ + OMAPDSS_VER_OMAP4430_ES2, /* OMAP4430 ES2.0, 2.1, 2.2 */ + OMAPDSS_VER_OMAP4, /* All other OMAP4s */ + OMAPDSS_VER_OMAP5, + OMAPDSS_VER_AM43xx, + OMAPDSS_VER_DRA7xx, +}; + +struct omap_dss_device; + +/* Board specific data */ +struct omap_dss_board_info { + int num_devices; + struct omap_dss_device **devices; + struct omap_dss_device *default_device; + const char *default_display_name; + int (*dsi_enable_pads)(int dsi_id, unsigned int lane_mask); + void (*dsi_disable_pads)(int dsi_id, unsigned int lane_mask); + int (*set_min_bus_tput)(struct device *dev, unsigned long r); + enum omapdss_version version; +}; + +#endif /* __OMAPDSS_PDATA_H */ diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 0c7ae93ebd76..53ada70cf23c 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -22,6 +22,7 @@ #include #include #include +#include #include