Re: [PATCH V3 06/12] ARM: OMAP1: Fix dmtimer support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux