09 Jan, 2018

4 commits

  • When the driver does not specify a name for the resource, don't use
    of_io_request_and_map() but of_iomap(). That prevents resource name allocation
    conflicts on some platforms which have the same name as the node.

    Tested-by: Benjamin Gaignard
    Signed-off-by: Daniel Lezcano
    Acked-by: Benjamin Gaignard
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1515418139-23276-10-git-send-email-daniel.lezcano@linaro.org
    Signed-off-by: Ingo Molnar

    Daniel Lezcano
     
  • Under certain circumstances, some specific operations must be done with the
    device node pointer, which forces the timer code to propagate the pointer to
    the functions which need it.

    In order to consolidate the function signatures in the different drivers
    by using the timer-of structure, let's store it in the timer-of structure
    as a handy pointer when it is needed.

    Tested-by: Benjamin Gaignard
    Signed-off-by: Daniel Lezcano
    Acked-by: Benjamin Gaignard
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1515418139-23276-9-git-send-email-daniel.lezcano@linaro.org
    Signed-off-by: Ingo Molnar

    Daniel Lezcano
     
  • The current code has no comments, neither any function descriptions. Fix this by
    adding function descriptions in kernel doc format.

    Signed-off-by: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1515418139-23276-6-git-send-email-daniel.lezcano@linaro.org
    [ Spelling and style fixes. ]
    Signed-off-by: Ingo Molnar

    Daniel Lezcano
     
  • All the functions are not prefixed with 'timer_of_', fix the naming in order
    to have the code consistent.

    Signed-off-by: Daniel Lezcano
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1515418139-23276-5-git-send-email-daniel.lezcano@linaro.org
    Signed-off-by: Ingo Molnar

    Daniel Lezcano
     

14 Nov, 2017

1 commit

  • Change the function name to something more explicit since it is only used
    in init error cases.

    Add __init annotation and description about the function usage.

    Signed-off-by: Benjamin Gaignard
    Signed-off-by: Thomas Gleixner
    Cc: mark.rutland@arm.com
    Cc: devicetree@vger.kernel.org
    Cc: alexandre.torgue@st.com
    Cc: arnd@arndb.de
    Cc: julien.thierry@arm.com
    Cc: daniel.lezcano@linaro.org
    Cc: linux@armlinux.org.uk
    Cc: robh+dt@kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: mcoquelin.stm32@gmail.com
    Cc: sudeep.holla@arm.com
    Cc: ludovic.barre@st.com
    Link: https://lkml.kernel.org/r/1510649563-22975-2-git-send-email-benjamin.gaignard@linaro.org

    Benjamin Gaignard
     

30 Oct, 2017

1 commit


05 Sep, 2017

1 commit

  • Pull timer fixes from Thomas Gleixner:
    "A rather small update for the time(r) subsystem:

    - A new clocksource driver IMX-TPM

    - Minor fixes to the alarmtimer facility

    - Device tree cleanups for Renesas drivers

    - A new kselftest and fixes for the timer related tests

    - Conversion of the clocksource drivers to use %pOF

    - Use the proper helpers to access rlimits in the posix-cpu-timer
    code"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    alarmtimer: Ensure RTC module is not unloaded
    clocksource: Convert to using %pOF instead of full_name
    clocksource/drivers/bcm2835: Remove message for a memory allocation failure
    devicetree: bindings: Remove deprecated properties
    devicetree: bindings: Remove unused 32-bit CMT bindings
    devicetree: bindings: Deprecate property, update example
    devicetree: bindings: r8a73a4 and R-Car Gen2 CMT bindings
    devicetree: bindings: R-Car Gen2 CMT0 and CMT1 bindings
    devicetree: bindings: Remove sh7372 CMT binding
    clocksource/drivers/imx-tpm: Add imx tpm timer support
    dt-bindings: timer: Add nxp tpm timer binding doc
    posix-cpu-timers: Use dedicated helper to access rlimit values
    alarmtimer: Fix unavailable wake-up source in sysfs
    timekeeping: Use proper timekeeper for debug code
    kselftests: timers: set-timer-lat: Add one-shot timer test cases
    kselftests: timers: set-timer-lat: Tweak reporting when timer fires early
    kselftests: timers: freq-step: Fix build warning
    kselftests: timers: freq-step: Define ADJ_SETOFFSET if device has older kernel headers

    Linus Torvalds
     

31 Aug, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    Cc: Daniel Lezcano
    Cc: Thomas Gleixner
    Cc: Marc Gonzalez
    Cc: Maxime Coquelin
    Cc: Alexandre Torgue
    Cc: linux-arm-kernel@lists.infradead.org
    Acked-by: Marc Gonzalez
    Acked-by: Alexandre TORGUE
    Signed-off-by: Daniel Lezcano

    Rob Herring
     

11 Aug, 2017

1 commit

  • The current code checks the return value of the of_io_request_and_map()
    function as it was returning a NULL pointer in case of error.

    However, it returns an error code encoded in the pointer return value, not a
    NULL value. Fix this by checking the returned pointer against IS_ERR() and
    return the error with PTR_ERR().

    Signed-off-by: Dan Carpenter
    Signed-off-by: Daniel Lezcano

    Dan Carpenter
     

18 Jul, 2017

1 commit

  • of_irq_get_byname() may return a negative error number as well as 0 on
    failure, while timer_irq_init() only checks for 0, blithely continuing with
    the call to request_[percpu_]irq() -- those functions expect *unsigned int*,
    so would probably fail anyway when a large IRQ number resulting from a
    conversion of a negative error number is passed to them... This, however,
    is incorrect behavior -- error number is not IRQ number.

    Filter out the negative error numbers, complain, and return them to the
    timer_irq_init()'s callers...

    Fixes: dc11bae78529 ("clocksource/drivers: Add timer-of common init routine")
    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Thomas Gleixner
    Cc: Daniel Lezcano
    Link: http://lkml.kernel.org/r/20170717180114.678825147@cogentembedded.com

    Sergei Shtylyov
     

27 Jun, 2017

1 commit


22 Jun, 2017

1 commit

  • If none of the flags are set, 'ret' is uninitialized as pointed out
    by gcc:

    drivers/clocksource/timer-of.c: In function 'timer_of_init':
    drivers/clocksource/timer-of.c:160:9: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]

    Since calling the function without any of the flags is an error,
    set the return value to -EINVAL for that case.

    [ tglx: Get rid of the silly backwards goto while at it ]

    Fixes: dc11bae78529 ("clocksource/drivers: Add timer-of common init routine")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Thomas Gleixner
    Cc: Daniel Lezcano
    Link: http://lkml.kernel.org/r/20170621215005.3870011-1-arnd@arndb.de

    Arnd Bergmann
     

14 Jun, 2017

1 commit

  • The different drivers are all using the same pattern when initializing.

    1. Get the base address
    2. Get the irq number
    3. Get the clock
    4. Prepare and enable the clock
    5. Get the rate
    6. Request an interrupt

    Instead of repeating again and again these steps in all the drivers, let's
    provide a common init routine to give the opportunity to factor all of them
    out.

    We can expect a significant kernel size improvement when the common routine
    will be used in all the drivers.

    Signed-off-by: Daniel Lezcano

    Daniel Lezcano