Message ID | 54CA95D1.6080700@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Quoting Tero Kristo (2015-01-29 12:19:29) > On 01/08/2015 01:00 AM, Tony Lindgren wrote: > > * Tero Kristo <t-kristo@ti.com> [141216 08:22]: > >> Hi, > >> > >> These patches move the legacy clock data for omap3 under drivers/clk/ti. > >> After these patches are applied, it should be possible to get rid of > >> clk-private.h (long pending project for Mike.) > >> > >> Testing done (on top of 3.18-rc1): > >> > >> omap3-beagle: boot / suspend-resume (ret/off) / cpuidle (ret/off) > >> omap3-beagle-xm: boot upto fs mount (see note below) > >> sdp3430: boot > >> n900: boot > >> > >> Note: beagle-xm failed with FS mount on the board I have access to, but > >> this happens with clean 3.18-rc1 and linux-next also at the moment. > >> The board has probably corrupted filesystem image but I am unable > >> to fix this atm (remote board.) > >> > >> Test branch: > >> tree: https://github.com/t-kristo/linux-pm.git > >> branch: 3.18-rc1-omap3-clk-rework > > > > Great, hopefully this will finally allow Mike to make the > > generic struct clk private to drivers/clk :) > > > > Seems to boot just fine based on a quick legacy booting test > > on n900. > > > > Mike, assuming no other issues, can you please apply these into a > > immutable branch against v3.19-rc1 that Paul and I can also merge > > in as needed? > > > > Please also feel free to add: > > > > Acked-by: Tony Lindgren <tony@atomide.com> > > > > I just rebased these patches on top of 3.19-rc1, and noticed a problem > with dpll5 on beagle-xm (basically a divide-by-zero error + locking > issue during boot.) The extra diff at the end of this email fixes the > problems, I will also send the updated two patches as v2. Updated branch > available in my tree under name 3.19-rc1-omap3-clk-rework. I've applied these 11 patches on top of v3.19-rc1, including the two V2 patches for #6 and #8 to the clk-omap-legacy branch here: git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-omap-legacy Let me know if I screwed anything up. I've merged this immutable branch into clk-next. In addition I've made some changes to remove clk-private.h permanently. I'll post those later today. Again, please let me know if I screwed anything up. Regards, Mike > > - Tero > > --------------------- > > diff --git a/drivers/clk/ti/clk-3xxx-legacy.c > b/drivers/clk/ti/clk-3xxx-legacy.c > index 81ad510..e0732a4 100644 > --- a/drivers/clk/ti/clk-3xxx-legacy.c > +++ b/drivers/clk/ti/clk-3xxx-legacy.c > @@ -136,6 +136,7 @@ static struct ti_clk_dpll dpll3_ck_data = { > .idlest_mask = 0x1, > .auto_recal_bit = 0x3, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x5, > .max_multiplier = 0x7ff, > .enable_mask = 0x7, > @@ -307,6 +308,7 @@ static struct ti_clk_dpll dpll4_ck_data = { > .idlest_mask = 0x2, > .auto_recal_bit = 0x13, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x6, > .max_multiplier = 0x7ff, > .enable_mask = 0x70000, > @@ -507,6 +509,7 @@ static struct ti_clk_dpll dpll5_ck_data = { > .idlest_mask = 0x1, > .auto_recal_bit = 0x3, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x19, > .max_multiplier = 0x7ff, > .enable_mask = 0x7, > @@ -1271,6 +1274,7 @@ static struct ti_clk_dpll dpll1_ck_data = { > .idlest_mask = 0x1, > .auto_recal_bit = 0x3, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x7, > .max_multiplier = 0x7ff, > .enable_mask = 0x7, > @@ -2154,6 +2158,7 @@ static struct ti_clk_dpll dpll2_ck_data = { > .idlest_mask = 0x1, > .auto_recal_bit = 0x3, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x8, > .max_multiplier = 0x7ff, > .enable_mask = 0x7, > @@ -2513,6 +2518,7 @@ static struct ti_clk_dpll dpll4_ck_omap36xx_data = { > .idlest_mask = 0x2, > .auto_recal_bit = 0x13, > .max_divider = 0x80, > + .min_divider = 0x1, > .recal_en_bit = 0x6, > .max_multiplier = 0xfff, > .enable_mask = 0x70000, > diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h > index 8d9c603..404158d 100644 > --- a/drivers/clk/ti/clock.h > +++ b/drivers/clk/ti/clock.h > @@ -148,6 +148,7 @@ struct ti_clk_dpll { > u32 sddiv_mask; > u16 max_multiplier; > u16 max_divider; > + u8 min_divider; > u8 auto_recal_bit; > u8 recal_en_bit; > u8 recal_st_bit; > diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c > index 7d67639..47ebff7 100644 > --- a/drivers/clk/ti/dpll.c > +++ b/drivers/clk/ti/dpll.c > @@ -243,6 +243,7 @@ struct clk *ti_clk_register_dpll(struct ti_clk *setup) > dd->sddiv_mask = dpll->sddiv_mask; > dd->dco_mask = dpll->dco_mask; > dd->max_divider = dpll->max_divider; > + dd->min_divider = dpll->min_divider; > dd->max_multiplier = dpll->max_multiplier; > dd->auto_recal_bit = dpll->auto_recal_bit; > dd->recal_en_bit = dpll->recal_en_bit; > -- 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 01/30/2015 02:42 AM, Mike Turquette wrote: > Quoting Tero Kristo (2015-01-29 12:19:29) >> On 01/08/2015 01:00 AM, Tony Lindgren wrote: >>> * Tero Kristo <t-kristo@ti.com> [141216 08:22]: >>>> Hi, >>>> >>>> These patches move the legacy clock data for omap3 under drivers/clk/ti. >>>> After these patches are applied, it should be possible to get rid of >>>> clk-private.h (long pending project for Mike.) >>>> >>>> Testing done (on top of 3.18-rc1): >>>> >>>> omap3-beagle: boot / suspend-resume (ret/off) / cpuidle (ret/off) >>>> omap3-beagle-xm: boot upto fs mount (see note below) >>>> sdp3430: boot >>>> n900: boot >>>> >>>> Note: beagle-xm failed with FS mount on the board I have access to, but >>>> this happens with clean 3.18-rc1 and linux-next also at the moment. >>>> The board has probably corrupted filesystem image but I am unable >>>> to fix this atm (remote board.) >>>> >>>> Test branch: >>>> tree: https://github.com/t-kristo/linux-pm.git >>>> branch: 3.18-rc1-omap3-clk-rework >>> >>> Great, hopefully this will finally allow Mike to make the >>> generic struct clk private to drivers/clk :) >>> >>> Seems to boot just fine based on a quick legacy booting test >>> on n900. >>> >>> Mike, assuming no other issues, can you please apply these into a >>> immutable branch against v3.19-rc1 that Paul and I can also merge >>> in as needed? >>> >>> Please also feel free to add: >>> >>> Acked-by: Tony Lindgren <tony@atomide.com> >>> >> >> I just rebased these patches on top of 3.19-rc1, and noticed a problem >> with dpll5 on beagle-xm (basically a divide-by-zero error + locking >> issue during boot.) The extra diff at the end of this email fixes the >> problems, I will also send the updated two patches as v2. Updated branch >> available in my tree under name 3.19-rc1-omap3-clk-rework. > > I've applied these 11 patches on top of v3.19-rc1, including the two V2 > patches for #6 and #8 to the clk-omap-legacy branch here: > > git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-omap-legacy > > Let me know if I screwed anything up. I've merged this immutable branch > into clk-next. > > In addition I've made some changes to remove clk-private.h permanently. > I'll post those later today. Again, please let me know if I screwed > anything up. I can't see the clk-omap-legacy merged to clk-next so far, maybe you did not push it yet? The branch itself is identical copy of mine, so can't see any issues there so far. -Tero > > Regards, > Mike > >> >> - Tero >> >> --------------------- >> >> diff --git a/drivers/clk/ti/clk-3xxx-legacy.c >> b/drivers/clk/ti/clk-3xxx-legacy.c >> index 81ad510..e0732a4 100644 >> --- a/drivers/clk/ti/clk-3xxx-legacy.c >> +++ b/drivers/clk/ti/clk-3xxx-legacy.c >> @@ -136,6 +136,7 @@ static struct ti_clk_dpll dpll3_ck_data = { >> .idlest_mask = 0x1, >> .auto_recal_bit = 0x3, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x5, >> .max_multiplier = 0x7ff, >> .enable_mask = 0x7, >> @@ -307,6 +308,7 @@ static struct ti_clk_dpll dpll4_ck_data = { >> .idlest_mask = 0x2, >> .auto_recal_bit = 0x13, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x6, >> .max_multiplier = 0x7ff, >> .enable_mask = 0x70000, >> @@ -507,6 +509,7 @@ static struct ti_clk_dpll dpll5_ck_data = { >> .idlest_mask = 0x1, >> .auto_recal_bit = 0x3, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x19, >> .max_multiplier = 0x7ff, >> .enable_mask = 0x7, >> @@ -1271,6 +1274,7 @@ static struct ti_clk_dpll dpll1_ck_data = { >> .idlest_mask = 0x1, >> .auto_recal_bit = 0x3, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x7, >> .max_multiplier = 0x7ff, >> .enable_mask = 0x7, >> @@ -2154,6 +2158,7 @@ static struct ti_clk_dpll dpll2_ck_data = { >> .idlest_mask = 0x1, >> .auto_recal_bit = 0x3, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x8, >> .max_multiplier = 0x7ff, >> .enable_mask = 0x7, >> @@ -2513,6 +2518,7 @@ static struct ti_clk_dpll dpll4_ck_omap36xx_data = { >> .idlest_mask = 0x2, >> .auto_recal_bit = 0x13, >> .max_divider = 0x80, >> + .min_divider = 0x1, >> .recal_en_bit = 0x6, >> .max_multiplier = 0xfff, >> .enable_mask = 0x70000, >> diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h >> index 8d9c603..404158d 100644 >> --- a/drivers/clk/ti/clock.h >> +++ b/drivers/clk/ti/clock.h >> @@ -148,6 +148,7 @@ struct ti_clk_dpll { >> u32 sddiv_mask; >> u16 max_multiplier; >> u16 max_divider; >> + u8 min_divider; >> u8 auto_recal_bit; >> u8 recal_en_bit; >> u8 recal_st_bit; >> diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c >> index 7d67639..47ebff7 100644 >> --- a/drivers/clk/ti/dpll.c >> +++ b/drivers/clk/ti/dpll.c >> @@ -243,6 +243,7 @@ struct clk *ti_clk_register_dpll(struct ti_clk *setup) >> dd->sddiv_mask = dpll->sddiv_mask; >> dd->dco_mask = dpll->dco_mask; >> dd->max_divider = dpll->max_divider; >> + dd->min_divider = dpll->min_divider; >> dd->max_multiplier = dpll->max_multiplier; >> dd->auto_recal_bit = dpll->auto_recal_bit; >> dd->recal_en_bit = dpll->recal_en_bit; >> -- 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
Quoting Tero Kristo (2015-01-30 07:20:36) > On 01/30/2015 02:42 AM, Mike Turquette wrote: > > Quoting Tero Kristo (2015-01-29 12:19:29) > >> On 01/08/2015 01:00 AM, Tony Lindgren wrote: > >>> * Tero Kristo <t-kristo@ti.com> [141216 08:22]: > >>>> Hi, > >>>> > >>>> These patches move the legacy clock data for omap3 under drivers/clk/ti. > >>>> After these patches are applied, it should be possible to get rid of > >>>> clk-private.h (long pending project for Mike.) > >>>> > >>>> Testing done (on top of 3.18-rc1): > >>>> > >>>> omap3-beagle: boot / suspend-resume (ret/off) / cpuidle (ret/off) > >>>> omap3-beagle-xm: boot upto fs mount (see note below) > >>>> sdp3430: boot > >>>> n900: boot > >>>> > >>>> Note: beagle-xm failed with FS mount on the board I have access to, but > >>>> this happens with clean 3.18-rc1 and linux-next also at the moment. > >>>> The board has probably corrupted filesystem image but I am unable > >>>> to fix this atm (remote board.) > >>>> > >>>> Test branch: > >>>> tree: https://github.com/t-kristo/linux-pm.git > >>>> branch: 3.18-rc1-omap3-clk-rework > >>> > >>> Great, hopefully this will finally allow Mike to make the > >>> generic struct clk private to drivers/clk :) > >>> > >>> Seems to boot just fine based on a quick legacy booting test > >>> on n900. > >>> > >>> Mike, assuming no other issues, can you please apply these into a > >>> immutable branch against v3.19-rc1 that Paul and I can also merge > >>> in as needed? > >>> > >>> Please also feel free to add: > >>> > >>> Acked-by: Tony Lindgren <tony@atomide.com> > >>> > >> > >> I just rebased these patches on top of 3.19-rc1, and noticed a problem > >> with dpll5 on beagle-xm (basically a divide-by-zero error + locking > >> issue during boot.) The extra diff at the end of this email fixes the > >> problems, I will also send the updated two patches as v2. Updated branch > >> available in my tree under name 3.19-rc1-omap3-clk-rework. > > > > I've applied these 11 patches on top of v3.19-rc1, including the two V2 > > patches for #6 and #8 to the clk-omap-legacy branch here: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-omap-legacy > > > > Let me know if I screwed anything up. I've merged this immutable branch > > into clk-next. > > > > In addition I've made some changes to remove clk-private.h permanently. > > I'll post those later today. Again, please let me know if I screwed > > anything up. > > I can't see the clk-omap-legacy merged to clk-next so far, maybe you did > not push it yet? The branch itself is identical copy of mine, so can't > see any issues there so far. That is correct. There are a lot of unrelated changes in clk-next right now so I didn't push this OMAP stuff last night. Turns out to be a good thing since linux-next had some breakage today. Once that is resolved I'll push this out, but clk-omap-legacy IS merged locally in my tree, just not on the public git that linux-next pulls. Regards, Mike > > -Tero > > > > > Regards, > > Mike > > > >> > >> - Tero > >> > >> --------------------- > >> > >> diff --git a/drivers/clk/ti/clk-3xxx-legacy.c > >> b/drivers/clk/ti/clk-3xxx-legacy.c > >> index 81ad510..e0732a4 100644 > >> --- a/drivers/clk/ti/clk-3xxx-legacy.c > >> +++ b/drivers/clk/ti/clk-3xxx-legacy.c > >> @@ -136,6 +136,7 @@ static struct ti_clk_dpll dpll3_ck_data = { > >> .idlest_mask = 0x1, > >> .auto_recal_bit = 0x3, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x5, > >> .max_multiplier = 0x7ff, > >> .enable_mask = 0x7, > >> @@ -307,6 +308,7 @@ static struct ti_clk_dpll dpll4_ck_data = { > >> .idlest_mask = 0x2, > >> .auto_recal_bit = 0x13, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x6, > >> .max_multiplier = 0x7ff, > >> .enable_mask = 0x70000, > >> @@ -507,6 +509,7 @@ static struct ti_clk_dpll dpll5_ck_data = { > >> .idlest_mask = 0x1, > >> .auto_recal_bit = 0x3, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x19, > >> .max_multiplier = 0x7ff, > >> .enable_mask = 0x7, > >> @@ -1271,6 +1274,7 @@ static struct ti_clk_dpll dpll1_ck_data = { > >> .idlest_mask = 0x1, > >> .auto_recal_bit = 0x3, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x7, > >> .max_multiplier = 0x7ff, > >> .enable_mask = 0x7, > >> @@ -2154,6 +2158,7 @@ static struct ti_clk_dpll dpll2_ck_data = { > >> .idlest_mask = 0x1, > >> .auto_recal_bit = 0x3, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x8, > >> .max_multiplier = 0x7ff, > >> .enable_mask = 0x7, > >> @@ -2513,6 +2518,7 @@ static struct ti_clk_dpll dpll4_ck_omap36xx_data = { > >> .idlest_mask = 0x2, > >> .auto_recal_bit = 0x13, > >> .max_divider = 0x80, > >> + .min_divider = 0x1, > >> .recal_en_bit = 0x6, > >> .max_multiplier = 0xfff, > >> .enable_mask = 0x70000, > >> diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h > >> index 8d9c603..404158d 100644 > >> --- a/drivers/clk/ti/clock.h > >> +++ b/drivers/clk/ti/clock.h > >> @@ -148,6 +148,7 @@ struct ti_clk_dpll { > >> u32 sddiv_mask; > >> u16 max_multiplier; > >> u16 max_divider; > >> + u8 min_divider; > >> u8 auto_recal_bit; > >> u8 recal_en_bit; > >> u8 recal_st_bit; > >> diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c > >> index 7d67639..47ebff7 100644 > >> --- a/drivers/clk/ti/dpll.c > >> +++ b/drivers/clk/ti/dpll.c > >> @@ -243,6 +243,7 @@ struct clk *ti_clk_register_dpll(struct ti_clk *setup) > >> dd->sddiv_mask = dpll->sddiv_mask; > >> dd->dco_mask = dpll->dco_mask; > >> dd->max_divider = dpll->max_divider; > >> + dd->min_divider = dpll->min_divider; > >> dd->max_multiplier = dpll->max_multiplier; > >> dd->auto_recal_bit = dpll->auto_recal_bit; > >> dd->recal_en_bit = dpll->recal_en_bit; > >> > -- 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/drivers/clk/ti/clk-3xxx-legacy.c b/drivers/clk/ti/clk-3xxx-legacy.c index 81ad510..e0732a4 100644 --- a/drivers/clk/ti/clk-3xxx-legacy.c +++ b/drivers/clk/ti/clk-3xxx-legacy.c @@ -136,6 +136,7 @@ static struct ti_clk_dpll dpll3_ck_data = { .idlest_mask = 0x1, .auto_recal_bit = 0x3, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x5, .max_multiplier = 0x7ff, .enable_mask = 0x7, @@ -307,6 +308,7 @@ static struct ti_clk_dpll dpll4_ck_data = { .idlest_mask = 0x2, .auto_recal_bit = 0x13, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x6, .max_multiplier = 0x7ff, .enable_mask = 0x70000, @@ -507,6 +509,7 @@ static struct ti_clk_dpll dpll5_ck_data = { .idlest_mask = 0x1, .auto_recal_bit = 0x3, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x19, .max_multiplier = 0x7ff, .enable_mask = 0x7, @@ -1271,6 +1274,7 @@ static struct ti_clk_dpll dpll1_ck_data = { .idlest_mask = 0x1, .auto_recal_bit = 0x3, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x7, .max_multiplier = 0x7ff, .enable_mask = 0x7, @@ -2154,6 +2158,7 @@ static struct ti_clk_dpll dpll2_ck_data = { .idlest_mask = 0x1, .auto_recal_bit = 0x3, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x8, .max_multiplier = 0x7ff, .enable_mask = 0x7, @@ -2513,6 +2518,7 @@ static struct ti_clk_dpll dpll4_ck_omap36xx_data = { .idlest_mask = 0x2, .auto_recal_bit = 0x13, .max_divider = 0x80, + .min_divider = 0x1, .recal_en_bit = 0x6, .max_multiplier = 0xfff, .enable_mask = 0x70000, diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h index 8d9c603..404158d 100644 --- a/drivers/clk/ti/clock.h +++ b/drivers/clk/ti/clock.h @@ -148,6 +148,7 @@ struct ti_clk_dpll { u32 sddiv_mask; u16 max_multiplier; u16 max_divider; + u8 min_divider; u8 auto_recal_bit; u8 recal_en_bit; u8 recal_st_bit; diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c index 7d67639..47ebff7 100644 --- a/drivers/clk/ti/dpll.c +++ b/drivers/clk/ti/dpll.c @@ -243,6 +243,7 @@ struct clk *ti_clk_register_dpll(struct ti_clk *setup) dd->sddiv_mask = dpll->sddiv_mask; dd->dco_mask = dpll->dco_mask; dd->max_divider = dpll->max_divider; + dd->min_divider = dpll->min_divider; dd->max_multiplier = dpll->max_multiplier; dd->auto_recal_bit = dpll->auto_recal_bit; dd->recal_en_bit = dpll->recal_en_bit;