• Paul Walmsley's avatar
    ARM: OMAP1: DMTIMER: fix broken timer clock source selection · 6aaec67d
    Paul Walmsley authored
    DMTIMER source selection on OMAP1 is broken.  omap1_dm_timer_set_src()
    tries to use __raw_{read,write}l() to read from and write to physical
    addresses, but those functions take virtual addresses.
    
    sparse caught this:
    
    arch/arm/mach-omap1/timer.c:50:13: warning: incorrect type in argument 1 (different base types)
    arch/arm/mach-omap1/timer.c:50:13:    expected void const volatile [noderef] <asn:2>*<noident>
    arch/arm/mach-omap1/timer.c:50:13:    got unsigned int
    arch/arm/mach-omap1/timer.c:52:9: warning: incorrect type in argument 1 (different base types)
    arch/arm/mach-omap1/timer.c:52:9:    expected void const volatile [noderef] <asn:2>*<noident>
    arch/arm/mach-omap1/timer.c:52:9:    got unsigned int
    
    Fix by using omap_{read,writel}(), just like the other users of the
    MOD_CONF_CTRL_1 register in the OMAP1 codebase.  Of course, in the long term,
    removing omap_{read,write}l() is the appropriate thing to do; but
    this will take some work to do this cleanly.
    
    Looks like this was caused by 97933d6c (ARM: OMAP1: dmtimer: conversion
    to platform devices) that dangerously moved code and changed it in
    the same patch.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
    Cc: stable@vger.kernel.org
    [tony@atomide.com: updated comments to include the breaking commit]
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    6aaec67d
timer.c 3.98 KB