On 06/04/2012 02:41 PM, Jon Hunter wrote: > OMAP1 dmtimer support is currently broken. When a dmtimer is requested by the > omap_dm_timer_request() function fails to allocate a dmtimer because the call > to clk_get() inside omap_dm_timer_prepare fails. The clk_get() fails simply > because the clock data for the OMAP1 dmtimers is not present. > > Ideally this should be fixed by moving OMAP1 dmtimers to use the clock > framework. For now simply fix this by using the "TIMER_NEEDS_RESET" flag to > identify an OMAP1 device and avoid calling clk_get(). Although this is not > the ideal fix and should be corrected, this flag has already been use for the > same purpose in omap_dm_timer_stop(). > > Signed-off-by: Jon Hunter <jon-hunter@xxxxxx> > --- > arch/arm/plat-omap/dmtimer.c | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c > index 30742d8e6..d284b5d 100644 > --- a/arch/arm/plat-omap/dmtimer.c > +++ b/arch/arm/plat-omap/dmtimer.c > @@ -137,11 +137,17 @@ int omap_dm_timer_prepare(struct omap_dm_timer *timer) > struct dmtimer_platform_data *pdata = timer->pdev->dev.platform_data; > int ret; > > - timer->fclk = clk_get(&timer->pdev->dev, "fck"); > - if (WARN_ON_ONCE(IS_ERR_OR_NULL(timer->fclk))) { > - timer->fclk = NULL; > - dev_err(&timer->pdev->dev, ": No fclk handle.\n"); > - return -EINVAL; > + /* > + * FIXME: OMAP1 devices do not use the clock framework for dmtimers so > + * do not call clk_get() for these devices. > + */ > + if (!(timer->capability & OMAP_TIMER_NEEDS_RESET)) { > + timer->fclk = clk_get(&timer->pdev->dev, "fck"); > + if (WARN_ON_ONCE(IS_ERR_OR_NULL(timer->fclk))) { > + timer->fclk = NULL; > + dev_err(&timer->pdev->dev, ": No fclk handle.\n"); > + return -EINVAL; > + } Apparently, today is not turning out to be my day :-( Ok, so this patch needs to be applied on top of patch #10. The flag OMAP_TIMER_NEEDS_RESET is added in that patch. So simply re-ordering these will work. Let me know if I should re-post. Cheers Jon -- 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