Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Fabio, On Mon, 11 Sep 2017 08:04:48 -0300 Fabio Estevam feste...@gmail.com wrote: ... > I think it can wait until 2017.11. OK, thanks! -- Anatolij ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Fabio, On Wed, 6 Sep 2017 13:49:31 -0300 Fabio Estevam feste...@gmail.com wrote: > From: Fabio Estevam > > MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. > > When running a SPL target, which supports multiple MX6 variants we cannot > properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as > such decision is done in build-time currently. > > Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be > configured in run-time on mx6. > > Reported-by: Eric Nelson > Signed-off-by: Fabio Estevam > --- > Changes since v1: > - Improve the mx6 detection logic (Troy) > > drivers/video/ipu_common.c| 14 +- > include/configs/advantech_dms-ba16.h | 1 - > include/configs/apalis_imx6.h | 1 - > include/configs/aristainetos-common.h | 1 - > include/configs/cgtqmx6eval.h | 4 > include/configs/cm_fx6.h | 1 - > include/configs/colibri_imx6.h| 1 - > include/configs/embestmx6boards.h | 1 - > include/configs/ge_bx50v3.h | 1 - > include/configs/gw_ventana.h | 1 - > include/configs/imx6-engicam.h| 1 - > include/configs/m53evk.h | 1 - > include/configs/mx51evk.h | 1 - > include/configs/mx53cx9020.h | 1 - > include/configs/mx53loco.h| 1 - > include/configs/mx6cuboxi.h | 1 - > include/configs/mx6sabre_common.h | 5 - > include/configs/nitrogen6x.h | 1 - > include/configs/novena.h | 1 - > include/configs/tbs2910.h | 1 - > include/configs/wandboard.h | 1 - > scripts/config_whitelist.txt | 1 - > 22 files changed, 13 insertions(+), 29 deletions(-) Applied to u-boot-video/master after fixing cgtqmx6eval build. Thanks! ... > diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h > index 4996a89..6a6c063 100644 > --- a/include/configs/cgtqmx6eval.h > +++ b/include/configs/cgtqmx6eval.h > @@ -87,10 +87,6 @@ > #define CONFIG_BMP_16BPP > #define CONFIG_VIDEO_LOGO > #define CONFIG_VIDEO_BMP_LOGO > -#ifdef CONFIG_MX6DL > -#define CONFIG_IPUV3_CLK 19800 > -#else > -#define CONFIG_IPUV3_CLK 26400 > #endif dropped this #endif. Thanks, Anatolij ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Anatolij, On Mon, Sep 11, 2017 at 5:56 AM, Anatolij Gustschin wrote: > Thanks for the patch! Is this a bug fix and should it go into v2017.09 > release? I think it can wait until 2017.11. Thanks! ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Fabio, On Wed, 6 Sep 2017 13:49:31 -0300 Fabio Estevam feste...@gmail.com wrote: > From: Fabio Estevam > > MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. > > When running a SPL target, which supports multiple MX6 variants we cannot > properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as > such decision is done in build-time currently. > > Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be > configured in run-time on mx6. > > Reported-by: Eric Nelson > Signed-off-by: Fabio Estevam > --- > Changes since v1: > - Improve the mx6 detection logic (Troy) Thanks for the patch! Is this a bug fix and should it go into v2017.09 release? -- Anatolij ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Hi Fabio, thanks for this. On 06/09/2017 18:49, Fabio Estevam wrote: > From: Fabio Estevam > > MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. > > When running a SPL target, which supports multiple MX6 variants we cannot > properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as > such decision is done in build-time currently. > > Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be > configured in run-time on mx6. > > Reported-by: Eric Nelson > Signed-off-by: Fabio Estevam > --- > Changes since v1: > - Improve the mx6 detection logic (Troy) > > drivers/video/ipu_common.c| 14 +- > include/configs/advantech_dms-ba16.h | 1 - > include/configs/apalis_imx6.h | 1 - > include/configs/aristainetos-common.h | 1 - > include/configs/cgtqmx6eval.h | 4 > include/configs/cm_fx6.h | 1 - > include/configs/colibri_imx6.h| 1 - > include/configs/embestmx6boards.h | 1 - > include/configs/ge_bx50v3.h | 1 - > include/configs/gw_ventana.h | 1 - > include/configs/imx6-engicam.h| 1 - > include/configs/m53evk.h | 1 - > include/configs/mx51evk.h | 1 - > include/configs/mx53cx9020.h | 1 - > include/configs/mx53loco.h| 1 - > include/configs/mx6cuboxi.h | 1 - > include/configs/mx6sabre_common.h | 5 - > include/configs/nitrogen6x.h | 1 - > include/configs/novena.h | 1 - > include/configs/tbs2910.h | 1 - > include/configs/wandboard.h | 1 - > scripts/config_whitelist.txt | 1 - > 22 files changed, 13 insertions(+), 29 deletions(-) > > diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c > index f8d4488..a9584b8 100644 > --- a/drivers/video/ipu_common.c > +++ b/drivers/video/ipu_common.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include "ipu.h" > #include "ipu_regs.h" > @@ -81,6 +82,11 @@ struct ipu_ch_param { > > #define IPU_SW_RST_TOUT_USEC (1) > > +#define IPUV3_CLK_MX51 13300 > +#define IPUV3_CLK_MX53 2 > +#define IPUV3_CLK_MX6Q 26400 > +#define IPUV3_CLK_MX6DL 19800 > + > void clk_enable(struct clk *clk) > { > if (clk) { > @@ -196,7 +202,6 @@ static void clk_ipu_disable(struct clk *clk) > > static struct clk ipu_clk = { > .name = "ipu_clk", > - .rate = CONFIG_IPUV3_CLK, > #if defined(CONFIG_MX51) || defined(CONFIG_MX53) > .enable_reg = (u32 *)(CCM_BASE_ADDR + > offsetof(struct mxc_ccm_reg, CCGR5)), > @@ -476,6 +481,13 @@ int ipu_probe(void) > g_pixel_clk[1] = &pixel_clk[1]; > > g_ipu_clk = &ipu_clk; > +#if defined(CONFIG_MX51) > + g_ipu_clk->rate = IPUV3_CLK_MX51; > +#elif defined(CONFIG_MX53) > + g_ipu_clk->rate = IPUV3_CLK_MX53; > +#else > + g_ipu_clk->rate = is_mx6sdl() ? IPUV3_CLK_MX6DL : IPUV3_CLK_MX6Q; > +#endif > debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk)); > g_ldb_clk = &ldb_clk; > debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk)); > diff --git a/include/configs/advantech_dms-ba16.h > b/include/configs/advantech_dms-ba16.h > index 6329bf6..6e380d0 100644 > --- a/include/configs/advantech_dms-ba16.h > +++ b/include/configs/advantech_dms-ba16.h > @@ -260,7 +260,6 @@ > #define CONFIG_BMP_16BPP > #define CONFIG_VIDEO_LOGO > #define CONFIG_VIDEO_BMP_LOGO > -#define CONFIG_IPUV3_CLK26000 > #define CONFIG_IMX_HDMI > #define CONFIG_IMX_VIDEO_SKIP > #endif > diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h > index 16af141..f10ce6d 100644 > --- a/include/configs/apalis_imx6.h > +++ b/include/configs/apalis_imx6.h > @@ -124,7 +124,6 @@ > #define CONFIG_BMP_16BPP > #define CONFIG_VIDEO_LOGO > #define CONFIG_VIDEO_BMP_LOGO > -#define CONFIG_IPUV3_CLK 26000 > #define CONFIG_CONSOLE_MUX > #define CONFIG_IMX_HDMI > #define CONFIG_IMX_VIDEO_SKIP > diff --git a/include/configs/aristainetos-common.h > b/include/configs/aristainetos-common.h > index 1c28fcf..3afc7a6 100644 > --- a/include/configs/aristainetos-common.h > +++ b/include/configs/aristainetos-common.h > @@ -217,7 +217,6 @@ > #define CONFIG_BMP_16BPP > #define CONFIG_VIDEO_LOGO > #define CONFIG_VIDEO_BMP_LOGO > -#define CONFIG_IPUV3_CLK 19800 > #define CONFIG_IMX_VIDEO_SKIP > > #define CONFIG_PWM_IMX > diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h > index 4996a89..6a6c063 100644 > --- a/include/configs/cgtqmx6eval.h > +++ b/include/configs/cgtqmx6eval.h > @@ -87,10 +87,6 @@ > #define CONFIG_BMP_16BPP > #define CONFIG_VIDEO_LOGO > #define CONFIG_VIDEO_BMP_LOGO > -#ifdef CONFIG_MX6DL > -#define CONFIG_IPUV3_CLK 19800 > -#else > -#define CONFIG_IPUV3_CLK 26400 > #endif > #define CONFIG_IMX_HDMI > > diff --git a/include/confi
Re: [U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
Thanks Fabio, On 09/06/2017 09:49 AM, Fabio Estevam wrote: From: Fabio Estevam MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. When running a SPL target, which supports multiple MX6 variants we cannot properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as such decision is done in build-time currently. Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be configured in run-time on mx6. Reported-by: Eric Nelson Signed-off-by: Fabio Estevam --- Changes since v1: - Improve the mx6 detection logic (Troy) drivers/video/ipu_common.c| 14 +- include/configs/advantech_dms-ba16.h | 1 - include/configs/apalis_imx6.h | 1 - include/configs/aristainetos-common.h | 1 - include/configs/cgtqmx6eval.h | 4 include/configs/cm_fx6.h | 1 - include/configs/colibri_imx6.h| 1 - include/configs/embestmx6boards.h | 1 - include/configs/ge_bx50v3.h | 1 - include/configs/gw_ventana.h | 1 - include/configs/imx6-engicam.h| 1 - include/configs/m53evk.h | 1 - include/configs/mx51evk.h | 1 - include/configs/mx53cx9020.h | 1 - include/configs/mx53loco.h| 1 - include/configs/mx6cuboxi.h | 1 - include/configs/mx6sabre_common.h | 5 - include/configs/nitrogen6x.h | 1 - include/configs/novena.h | 1 - include/configs/tbs2910.h | 1 - include/configs/wandboard.h | 1 - scripts/config_whitelist.txt | 1 - 22 files changed, 13 insertions(+), 29 deletions(-) diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index f8d4488..a9584b8 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "ipu.h" #include "ipu_regs.h" @@ -81,6 +82,11 @@ struct ipu_ch_param { #define IPU_SW_RST_TOUT_USEC (1) +#define IPUV3_CLK_MX51 13300 +#define IPUV3_CLK_MX53 2 +#define IPUV3_CLK_MX6Q 26400 +#define IPUV3_CLK_MX6DL19800 + void clk_enable(struct clk *clk) { if (clk) { @@ -196,7 +202,6 @@ static void clk_ipu_disable(struct clk *clk) static struct clk ipu_clk = { .name = "ipu_clk", - .rate = CONFIG_IPUV3_CLK, #if defined(CONFIG_MX51) || defined(CONFIG_MX53) .enable_reg = (u32 *)(CCM_BASE_ADDR + offsetof(struct mxc_ccm_reg, CCGR5)), @@ -476,6 +481,13 @@ int ipu_probe(void) g_pixel_clk[1] = &pixel_clk[1]; g_ipu_clk = &ipu_clk; +#if defined(CONFIG_MX51) + g_ipu_clk->rate = IPUV3_CLK_MX51; +#elif defined(CONFIG_MX53) + g_ipu_clk->rate = IPUV3_CLK_MX53; +#else + g_ipu_clk->rate = is_mx6sdl() ? IPUV3_CLK_MX6DL : IPUV3_CLK_MX6Q; +#endif debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk)); g_ldb_clk = &ldb_clk; debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk)); diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h index 6329bf6..6e380d0 100644 --- a/include/configs/advantech_dms-ba16.h +++ b/include/configs/advantech_dms-ba16.h @@ -260,7 +260,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK26000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h index 16af141..f10ce6d 100644 --- a/include/configs/apalis_imx6.h +++ b/include/configs/apalis_imx6.h @@ -124,7 +124,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 26000 #define CONFIG_CONSOLE_MUX #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/aristainetos-common.h b/include/configs/aristainetos-common.h index 1c28fcf..3afc7a6 100644 --- a/include/configs/aristainetos-common.h +++ b/include/configs/aristainetos-common.h @@ -217,7 +217,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 19800 #define CONFIG_IMX_VIDEO_SKIP #define CONFIG_PWM_IMX diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h index 4996a89..6a6c063 100644 --- a/include/configs/cgtqmx6eval.h +++ b/include/configs/cgtqmx6eval.h @@ -87,10 +87,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#ifdef CONFIG_MX6DL -#define CONFIG_IPUV3_CLK 19800 -#else -#define CONFIG_IPUV3_CLK 26400 #endif #define CONFIG_IMX_HDMI diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h index 4f45be1..5d4b670 100644 --- a/include/configs/cm_fx6.h +++ b/include/configs/cm_fx6.h @@ -240,7 +240,6 @@ /* Display */ #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CL
[U-Boot] [PATCH] ipu_common: Let the MX6 IPU clock be calculated in run-time
From: Fabio Estevam MX6Q/QP IPU operates at 264MHz and MX6DL IPU at 198MHz. When running a SPL target, which supports multiple MX6 variants we cannot properly setup the IPU clock frequency via CONFIG_IPUV3_CLK option as such decision is done in build-time currently. Remove the CONFIG_IPUV3_CLK option and let the IPU clock frequency be configured in run-time on mx6. Reported-by: Eric Nelson Signed-off-by: Fabio Estevam --- Changes since v1: - Improve the mx6 detection logic (Troy) drivers/video/ipu_common.c| 14 +- include/configs/advantech_dms-ba16.h | 1 - include/configs/apalis_imx6.h | 1 - include/configs/aristainetos-common.h | 1 - include/configs/cgtqmx6eval.h | 4 include/configs/cm_fx6.h | 1 - include/configs/colibri_imx6.h| 1 - include/configs/embestmx6boards.h | 1 - include/configs/ge_bx50v3.h | 1 - include/configs/gw_ventana.h | 1 - include/configs/imx6-engicam.h| 1 - include/configs/m53evk.h | 1 - include/configs/mx51evk.h | 1 - include/configs/mx53cx9020.h | 1 - include/configs/mx53loco.h| 1 - include/configs/mx6cuboxi.h | 1 - include/configs/mx6sabre_common.h | 5 - include/configs/nitrogen6x.h | 1 - include/configs/novena.h | 1 - include/configs/tbs2910.h | 1 - include/configs/wandboard.h | 1 - scripts/config_whitelist.txt | 1 - 22 files changed, 13 insertions(+), 29 deletions(-) diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index f8d4488..a9584b8 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "ipu.h" #include "ipu_regs.h" @@ -81,6 +82,11 @@ struct ipu_ch_param { #define IPU_SW_RST_TOUT_USEC (1) +#define IPUV3_CLK_MX51 13300 +#define IPUV3_CLK_MX53 2 +#define IPUV3_CLK_MX6Q 26400 +#define IPUV3_CLK_MX6DL19800 + void clk_enable(struct clk *clk) { if (clk) { @@ -196,7 +202,6 @@ static void clk_ipu_disable(struct clk *clk) static struct clk ipu_clk = { .name = "ipu_clk", - .rate = CONFIG_IPUV3_CLK, #if defined(CONFIG_MX51) || defined(CONFIG_MX53) .enable_reg = (u32 *)(CCM_BASE_ADDR + offsetof(struct mxc_ccm_reg, CCGR5)), @@ -476,6 +481,13 @@ int ipu_probe(void) g_pixel_clk[1] = &pixel_clk[1]; g_ipu_clk = &ipu_clk; +#if defined(CONFIG_MX51) + g_ipu_clk->rate = IPUV3_CLK_MX51; +#elif defined(CONFIG_MX53) + g_ipu_clk->rate = IPUV3_CLK_MX53; +#else + g_ipu_clk->rate = is_mx6sdl() ? IPUV3_CLK_MX6DL : IPUV3_CLK_MX6Q; +#endif debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk)); g_ldb_clk = &ldb_clk; debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk)); diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h index 6329bf6..6e380d0 100644 --- a/include/configs/advantech_dms-ba16.h +++ b/include/configs/advantech_dms-ba16.h @@ -260,7 +260,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK26000 #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP #endif diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h index 16af141..f10ce6d 100644 --- a/include/configs/apalis_imx6.h +++ b/include/configs/apalis_imx6.h @@ -124,7 +124,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 26000 #define CONFIG_CONSOLE_MUX #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP diff --git a/include/configs/aristainetos-common.h b/include/configs/aristainetos-common.h index 1c28fcf..3afc7a6 100644 --- a/include/configs/aristainetos-common.h +++ b/include/configs/aristainetos-common.h @@ -217,7 +217,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#define CONFIG_IPUV3_CLK 19800 #define CONFIG_IMX_VIDEO_SKIP #define CONFIG_PWM_IMX diff --git a/include/configs/cgtqmx6eval.h b/include/configs/cgtqmx6eval.h index 4996a89..6a6c063 100644 --- a/include/configs/cgtqmx6eval.h +++ b/include/configs/cgtqmx6eval.h @@ -87,10 +87,6 @@ #define CONFIG_BMP_16BPP #define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO -#ifdef CONFIG_MX6DL -#define CONFIG_IPUV3_CLK 19800 -#else -#define CONFIG_IPUV3_CLK 26400 #endif #define CONFIG_IMX_HDMI diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h index 4f45be1..5d4b670 100644 --- a/include/configs/cm_fx6.h +++ b/include/configs/cm_fx6.h @@ -240,7 +240,6 @@ /* Display */ #define CONFIG_VIDEO_IPUV3 -#define CONFIG_IPUV3_CLK 26000 #define CONFIG_IMX_HDMI #define CONFIG_SPLASH_SCREEN diff --git a/include/configs/colibri_imx6