08 Aug, 2011

1 commit


02 Aug, 2011

1 commit

  • * 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-3.x: (39 commits)
    SH: static should be at beginning of declaration
    sh: move CLKDEV_xxx_ID macro to sh_clk.h
    sh: clock-shx3: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7786: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7785: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7757: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7366: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7343: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7722: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7724: add CLKDEV_ICK_ID for cleanup
    sh: clock-sh7366: modify I2C clock settings
    sh: clock-sh7343: modify I2C clock settings
    sh: clock-sh7723: modify I2C clock settings
    sh: clock-sh7722: modify I2C clock settings
    sh: clock-sh7724: modify I2C clock settings
    serial: sh-sci: Fix up pretty name printing for port IRQs.
    serial: sh-sci: Kill off per-port enable/disable callbacks.
    serial: sh-sci: Add missing module description/author bits.
    serial: sh-sci: Regtype probing doesn't need to be fatal.
    sh: Tidy up pre-clkdev clk_get() error handling.
    ...

    Linus Torvalds
     

21 Jul, 2011

2 commits


24 Jun, 2011

2 commits

  • Trivial cleanup.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This V2 patch changes the clock disabling behavior during boot.
    Two different changes are made:

    1) Delay disabling of clocks until late in the boot process.
    This fixes an existing issue where in-use clocks without
    software reference are disabled by mistake during boot.
    One example of this is the handling of the Mackerel serial
    console output that shares clock with the I2C controller.

    2) Write out the "disabled" state to the hardware for clocks
    that not have been used by the kernel. In other words,
    make sure so far unused clocks actually get turned off.

    Signed-off-by: Magnus Damm
    Acked-by: Simon Horman
    Signed-off-by: Paul Mundt

    Magnus Damm
     

14 Jun, 2011

1 commit

  • Extend the SH / SH-Mobile ARM clock framework to only
    resume clocks that have been enabled.

    Without this fix divide-by-zero is triggering on sh7372
    FSIDIV during system wide resume of Suspend-to-RAM.

    Signed-off-by: Magnus Damm
    Reviewed-by: Simon Horman
    Signed-off-by: Paul Mundt

    Magnus Damm
     

23 May, 2011

1 commit


27 Apr, 2011

1 commit


18 Apr, 2011

1 commit


30 Mar, 2011

1 commit


29 Mar, 2011

2 commits


23 Mar, 2011

1 commit

  • Convert the SuperH clocks framework and shared interrupt handling
    code to using struct syscore_ops instead of a sysdev classes and
    sysdevs for power managment.

    This reduces the code size significantly and simplifies it. The
    optimizations causing things not to be restored after creating a
    hibernation image are removed, but they might lead to undesirable
    effects during resume from hibernation (e.g. the clocks would be left
    as the boot kernel set them, which might be not the same way as the
    hibernated kernel had seen them before the hibernation).

    This also is necessary for removing sysdevs from the kernel entirely
    in the future.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Paul Mundt

    Rafael J. Wysocki
     

19 Jan, 2011

1 commit


11 Jan, 2011

1 commit


24 Dec, 2010

1 commit

  • Presently the root node is initialized by way of kzalloc on the parent
    data structure, which by chance happens to do the bulk of what an
    explicit initialization does with GFP_NOWAIT semantics. This however is
    more by luck than by design, and as we ideally want to permit radix node
    allocations access to the emergency pools anyways, add in the proper
    initializer with the desired mask.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

19 Nov, 2010

2 commits


16 Nov, 2010

1 commit


15 Nov, 2010

3 commits


10 Nov, 2010

1 commit

  • CC drivers/sh/clk/core.o
    drivers/sh/clk/core.c: In function 'clk_round_parent':
    drivers/sh/clk/core.c:574: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'unsigned int'
    drivers/sh/clk/core.c:594: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'unsigned int'

    Signed-off-by: Paul Mundt

    Paul Mundt
     

08 Nov, 2010

3 commits


02 Nov, 2010

2 commits


28 Oct, 2010

1 commit


27 Oct, 2010

2 commits


26 Oct, 2010

2 commits


18 Oct, 2010

2 commits


15 Oct, 2010

4 commits

  • When updating the iterator macro an old argument assignment was used on
    the initial assignment causing a fault on the table rounding. Fix it up.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This adds a new clk_rate_div_range_round() for implementing rate rounding
    by divisor ranges. This can be used trivially by clocks that support
    arbitrary ranged divisors without the need for rate table construction.

    This should only be used by clocks that both have large divisor ranges in
    addition to clocks that will never be arbitrarily scaled, as the lack of
    a backing frequency table will prevent cpufreq from being able to do much
    of anything with them.

    Primarily intended for use as a ->recalc helper.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Presently the only assisted rate rounding is frequency table backed, but
    there are cases where it's impractical to use a frequency table for
    certain clocks (such as the FSIDIV case, which supports 65535 divisors),
    and we wish to reuse the same rate rounding algorithm.

    This breaks out the core of the rate rounding logic in to its own helper
    routine and shuffles the frequency table logic around, switching to using
    an iterator for the generic helper routine.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This implements support for ioremapping of register windows that
    encapsulate clock control registers used by a struct clk, with
    transparent sibling inheritance.

    Root clocks at the top of a given topology often encapsulate the entire
    register space of all of their sibling clocks, so this mapping can be
    done once and handed down. A given clock enable/disable case maps out to
    a single bit in a shared register, so this prevents creating multiple
    overlapping mappings.

    The mapping case breaks down in to a couple of different situations:

    - Sibling clocks without a specific mapping.
    - Root clocks without a specific mapping.
    - Any of sibling/root clocks with a specific mapping.

    Sibling clocks with no specified mapping will grovel up the clock chain
    and install the root clock mapping unconditionally at registration time.

    Root clocks without their own mappings have a dummy BSS-initialized
    mapping inserted that is handed down the chain just like any other
    mapping. This permits all of the sibling clock ops to read/write using
    the mapping offsets without any special configuration, enabling them to
    not care whether access ultimately goes through translatable or
    untranslatable memory.

    Any clock with its own mapping will have the window initialized at
    registration time and be ready for use by its clock ops. Failure to
    establish the mapping will prevent registration, so no additional sanity
    checks are needed. Sibling clocks that double as parents for the moment
    will not propagate their mapping down, but this is easily tunable if the
    need arises.

    All clock mappings are kref refcounted, with each instance of mapping
    inheritance incrementing the refcount.

    Tested-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Paul Mundt