Message ID | 1309552901-8944-18-git-send-email-b-cousson@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Benoit, On Fri, 2011-07-01 at 22:41 +0200, Benoit Cousson wrote: > From: Tomi Valkeinen <tomi.valkeinen@ti.com> > > Add missing DSS optional clocks to HWMOD data for OMAP4xxx. > > Add HWMOD_CONTROL_OPT_CLKS_IN_RESET flag for dispc to fix dispc reset. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > [b-cousson@ti.com: Remove a comment and update the subject] > Signed-off-by: Benoit Cousson <b-cousson@ti.com> This patch adds "fck" opt-clocks for DSS. After your patch set for_3.1/5_auto_fck_clkdev, in which you create "fck" automatically, I see: [ 0.218231] omap_device: omapdss_dss: fck already exist [ 0.218261] omap_device: omapdss_dss: fck already exist [ 0.218261] omap_device: omapdss_dss: sys_clk already exist [ 0.218261] omap_device: omapdss_dss: tv_clk already exist [ 0.218322] omap_device: omapdss_dss: video_clk already exist [ 0.218627] omap_device: omapdss_dispc: fck already exist [ 0.219329] omap_device: omapdss_venc: fck already exist [ 0.219635] omap_device: omapdss_dsi1: fck already exist [ 0.219970] omap_device: omapdss_dsi2: fck already exist [ 0.220336] omap_device: omapdss_hdmi: fck already exist So I think the "fck" clocks in this patch should be removed. I only added them for compatibility, as I didn't have the automatic "fck" creation patch in my tree. Also, either you didn't email the patch set in for_3.1/5_auto_fck_clkdev, or I'm just blind... Tomi -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, 2011-07-02 at 12:13 +0300, Tomi Valkeinen wrote: > Hi Benoit, > > On Fri, 2011-07-01 at 22:41 +0200, Benoit Cousson wrote: > > From: Tomi Valkeinen <tomi.valkeinen@ti.com> > > > > Add missing DSS optional clocks to HWMOD data for OMAP4xxx. > > > > Add HWMOD_CONTROL_OPT_CLKS_IN_RESET flag for dispc to fix dispc reset. > > > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> > > [b-cousson@ti.com: Remove a comment and update the subject] > > Signed-off-by: Benoit Cousson <b-cousson@ti.com> > > This patch adds "fck" opt-clocks for DSS. After your patch set > for_3.1/5_auto_fck_clkdev, in which you create "fck" automatically, I > see: > > [ 0.218231] omap_device: omapdss_dss: fck already exist > [ 0.218261] omap_device: omapdss_dss: fck already exist > [ 0.218261] omap_device: omapdss_dss: sys_clk already exist > [ 0.218261] omap_device: omapdss_dss: tv_clk already exist > [ 0.218322] omap_device: omapdss_dss: video_clk already exist > [ 0.218627] omap_device: omapdss_dispc: fck already exist > [ 0.219329] omap_device: omapdss_venc: fck already exist > [ 0.219635] omap_device: omapdss_dsi1: fck already exist > [ 0.219970] omap_device: omapdss_dsi2: fck already exist > [ 0.220336] omap_device: omapdss_hdmi: fck already exist > > So I think the "fck" clocks in this patch should be removed. I only > added them for compatibility, as I didn't have the automatic "fck" > creation patch in my tree. Even after removing the "fck"s from the hwmod data, I see: [ 0.218200] omap_device: omapdss_dss: fck already exist [ 0.218231] omap_device: omapdss_dss: sys_clk already exist [ 0.218231] omap_device: omapdss_dss: tv_clk already exist [ 0.218292] omap_device: omapdss_dss: video_clk already exist I think those come from the clock44xxx_data.c. I believe those are more or less exact duplicates from the driver's point of view? If so, I guess the ones in clockdata could be removed after adding those to hwmod data? I also see that the main_clk for all dss hwmods is dss_dss_clk. Is that correct? In some earlier version the clocks were a bit different, and, at least according to TRM pictures, correct. For example, rfbi didn't have a main_clk at all, hdmi's main_clk was dss_48mhz_clk etc. Was that changed on purpose? I've tested all the branches from 1 to 7 on OMAP4 SDP, and I'm able to boot all of them (branch 7 needed merging the mmc branch), and I was able to start the dss driver. I also merged my latest dss pmruntime branch, which worked fine. I still need to test OMAP2/3, and the different outputs on OMAP4 (only DSI is tested so far). Tomi -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, On Sat, 2 Jul 2011, Tomi Valkeinen wrote: > This patch adds "fck" opt-clocks for DSS. After your patch set > for_3.1/5_auto_fck_clkdev, in which you create "fck" automatically, I > see: > > [ 0.218231] omap_device: omapdss_dss: fck already exist > [ 0.218261] omap_device: omapdss_dss: fck already exist > [ 0.218261] omap_device: omapdss_dss: sys_clk already exist > [ 0.218261] omap_device: omapdss_dss: tv_clk already exist > [ 0.218322] omap_device: omapdss_dss: video_clk already exist > [ 0.218627] omap_device: omapdss_dispc: fck already exist > [ 0.219329] omap_device: omapdss_venc: fck already exist > [ 0.219635] omap_device: omapdss_dsi1: fck already exist > [ 0.219970] omap_device: omapdss_dsi2: fck already exist > [ 0.220336] omap_device: omapdss_hdmi: fck already exist > > So I think the "fck" clocks in this patch should be removed. I only > added them for compatibility, as I didn't have the automatic "fck" > creation patch in my tree. Thanks Tomi, I've gone ahead and removed these. - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, 2 Jul 2011, Tomi Valkeinen wrote: > Even after removing the "fck"s from the hwmod data, I see: > > [ 0.218200] omap_device: omapdss_dss: fck already exist > [ 0.218231] omap_device: omapdss_dss: sys_clk already exist > [ 0.218231] omap_device: omapdss_dss: tv_clk already exist > [ 0.218292] omap_device: omapdss_dss: video_clk already exist > > I think those come from the clock44xxx_data.c. I believe those are more > or less exact duplicates from the driver's point of view? If so, I guess > the ones in clockdata could be removed after adding those to hwmod data? I've removed these too. thanks, - Paul -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index f7f4840..ce4259d 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -1165,6 +1165,7 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_slaves[] = { }; static struct omap_hwmod_opt_clk dss_opt_clks[] = { + { .role = "fck", .clk = "dss_dss_clk" }, { .role = "sys_clk", .clk = "dss_sys_clk" }, { .role = "tv_clk", .clk = "dss_tv_clk" }, { .role = "dss_clk", .clk = "dss_dss_clk" }, @@ -1264,9 +1265,17 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dispc_slaves[] = { &omap44xx_l4_per__dss_dispc, }; +static struct omap_hwmod_opt_clk dss_dispc_opt_clks[] = { + { .role = "fck", .clk = "dss_dss_clk" }, + { .role = "sys_clk", .clk = "dss_sys_clk" }, + { .role = "tv_clk", .clk = "dss_tv_clk" }, + { .role = "hdmi_clk", .clk = "dss_48mhz_clk" }, +}; + static struct omap_hwmod omap44xx_dss_dispc_hwmod = { .name = "dss_dispc", .class = &omap44xx_dispc_hwmod_class, + .flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET, .mpu_irqs = omap44xx_dss_dispc_irqs, .mpu_irqs_cnt = ARRAY_SIZE(omap44xx_dss_dispc_irqs), .sdma_reqs = omap44xx_dss_dispc_sdma_reqs, @@ -1277,6 +1286,8 @@ static struct omap_hwmod omap44xx_dss_dispc_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_dispc_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_dispc_opt_clks), .slaves = omap44xx_dss_dispc_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dispc_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), @@ -1355,6 +1366,11 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dsi1_slaves[] = { &omap44xx_l4_per__dss_dsi1, }; +static struct omap_hwmod_opt_clk dss_dsi1_opt_clks[] = { + { .role = "fck", .clk = "dss_dss_clk" }, + { .role = "sys_clk", .clk = "dss_sys_clk" }, +}; + static struct omap_hwmod omap44xx_dss_dsi1_hwmod = { .name = "dss_dsi1", .class = &omap44xx_dsi_hwmod_class, @@ -1368,6 +1384,8 @@ static struct omap_hwmod omap44xx_dss_dsi1_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_dsi1_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_dsi1_opt_clks), .slaves = omap44xx_dss_dsi1_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi1_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), @@ -1425,6 +1443,11 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dsi2_slaves[] = { &omap44xx_l4_per__dss_dsi2, }; +static struct omap_hwmod_opt_clk dss_dsi2_opt_clks[] = { + { .role = "fck", .clk = "dss_dss_clk" }, + { .role = "sys_clk", .clk = "dss_sys_clk" }, +}; + static struct omap_hwmod omap44xx_dss_dsi2_hwmod = { .name = "dss_dsi2", .class = &omap44xx_dsi_hwmod_class, @@ -1438,6 +1461,8 @@ static struct omap_hwmod omap44xx_dss_dsi2_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_dsi2_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_dsi2_opt_clks), .slaves = omap44xx_dss_dsi2_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi2_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), @@ -1515,6 +1540,11 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_hdmi_slaves[] = { &omap44xx_l4_per__dss_hdmi, }; +static struct omap_hwmod_opt_clk dss_hdmi_opt_clks[] = { + { .role = "sys_clk", .clk = "dss_sys_clk" }, + { .role = "fck", .clk = "dss_48mhz_clk" }, +}; + static struct omap_hwmod omap44xx_dss_hdmi_hwmod = { .name = "dss_hdmi", .class = &omap44xx_hdmi_hwmod_class, @@ -1528,6 +1558,8 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_hdmi_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_hdmi_opt_clks), .slaves = omap44xx_dss_hdmi_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_hdmi_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), @@ -1601,6 +1633,10 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_rfbi_slaves[] = { &omap44xx_l4_per__dss_rfbi, }; +static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = { + { .role = "ick", .clk = "dss_fck" }, +}; + static struct omap_hwmod omap44xx_dss_rfbi_hwmod = { .name = "dss_rfbi", .class = &omap44xx_rfbi_hwmod_class, @@ -1612,6 +1648,8 @@ static struct omap_hwmod omap44xx_dss_rfbi_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_rfbi_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks), .slaves = omap44xx_dss_rfbi_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_rfbi_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX), @@ -1670,6 +1708,10 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_venc_slaves[] = { &omap44xx_l4_per__dss_venc, }; +static struct omap_hwmod_opt_clk dss_venc_opt_clks[] = { + { .role = "fck", .clk = "dss_tv_clk" }, +}; + static struct omap_hwmod omap44xx_dss_venc_hwmod = { .name = "dss_venc", .class = &omap44xx_venc_hwmod_class, @@ -1679,6 +1721,8 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { .clkctrl_reg = OMAP4430_CM_DSS_DSS_CLKCTRL, }, }, + .opt_clks = dss_venc_opt_clks, + .opt_clks_cnt = ARRAY_SIZE(dss_venc_opt_clks), .slaves = omap44xx_dss_venc_slaves, .slaves_cnt = ARRAY_SIZE(omap44xx_dss_venc_slaves), .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP44XX),