24 Sep, 2016

1 commit

  • Clock driver should be registered with an earlier initcall than
    module_init which is used by most of client device drivers. Otherwise,
    probing of these client drivers will likely be deferred due to that
    calls into clk API will return -EPROBE_DEFER.

    Deferred probing is not a problem for most subsystems, but could bring
    some side effect for particular subsystem, like display. On ZX296718
    platform, we get Linux logo and boot log lost from display device, just
    because the DRM/KMS driver gets -EPROBE_DEFER from devm_clk_get() call.

    Let's use core_initcall (qcom and a few other clk drivers use that) for
    driver registration to avoid those unnecessary -EPROBE_DEFER and get rid
    of the side effect with ZX296718 display system.

    Signed-off-by: Shawn Guo
    Signed-off-by: Stephen Boyd

    Shawn Guo
     

17 Sep, 2016

2 commits

  • The zx296718 clock driver has a creative way of assigning the register
    values for each clock, by initializing an __iomem pointer to an
    offset and then later adding the base (from ioremap) on top
    with a cast to u64. This fail on all 32-bit architectures during
    compile testing:

    drivers/clk/zte/clk-zx296718.c: In function 'top_clocks_init':
    drivers/clk/zte/clk-zx296718.c:554:35: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
    zx296718_pll_clk[i].reg_base += (u64)reg_base;
    drivers/clk/zte/clk-zx296718.c:579:29: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
    drivers/clk/zte/clk-zx296718.c:592:31: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

    It would be nice to avoid all the casts, but I decided to simply
    shut up the warnings by changing the type from u64 to uintptr_t,
    which does the right thing in practice.

    Signed-off-by: Arnd Bergmann
    Fixes: ca0233285a93 ("clk: zx: register ZX296718 clocks")
    Signed-off-by: Stephen Boyd

    Arnd Bergmann
     
  • Use the builtin_platform_driver() macro to make the code simpler.

    Signed-off-by: Wei Yongjun
    Signed-off-by: Stephen Boyd

    Wei Yongjun
     

15 Sep, 2016

2 commits


16 Apr, 2016

1 commit


29 Jul, 2015

3 commits


12 Jun, 2015

1 commit

  • It adds a clock driver for zx296702 SoC to register the clock tree to
    Common Clock Framework. All the clocks of bus topology and some the
    peripheral clocks are ready with this commit. Some missing leaf clocks
    for peripherals will be added later when needed.

    Signed-off-by: Jun Nie
    Reviewed-by: Stephen Boyd
    Signed-off-by: Kevin Hilman

    Jun Nie