07 Nov, 2011
1 commit
-
* 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
Revert "tracing: Include module.h in define_trace.h"
irq: don't put module.h into irq.h for tracking irqgen modules.
bluetooth: macroize two small inlines to avoid module.h
ip_vs.h: fix implicit use of module_get/module_put from module.h
nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
include: replace linux/module.h with "struct module" wherever possible
include: convert various register fcns to macros to avoid include chaining
crypto.h: remove unused crypto_tfm_alg_modname() inline
uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
pm_runtime.h: explicitly requires notifier.h
linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
miscdevice.h: fix up implicit use of lists and types
stop_machine.h: fix implicit use of smp.h for smp_processor_id
of: fix implicit use of errno.h in include/linux/of.h
of_platform.h: delete needless include
acpi: remove module.h include from platform/aclinux.h
miscdevice.h: delete unnecessary inclusion of module.h
device_cgroup.h: delete needless include
net: sch_generic remove redundant use of
net: inet_timewait_sock doesnt need
...Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
- drivers/media/dvb/frontends/dibx000_common.c
- drivers/media/video/{mt9m111.c,ov6650.c}
- drivers/mfd/ab3550-core.c
- include/linux/dmaengine.h
01 Nov, 2011
1 commit
-
To fix things like this:
arch/arm/mach-omap2/usb-tusb6010.c:58: error: implicit declaration of function 'memset'
arch/arm/kernel/leds.c:40: error: implicit declaration of function 'strcspn'
arch/arm/kernel/leds.c:40: warning: incompatible implicit declaration of built-in function 'strcspn'
arch/arm/kernel/leds.c:45: error: implicit declaration of function 'strncmp'
arch/arm/kernel/leds.c:55: error: implicit declaration of function 'strlen'
arch/arm/kernel/leds.c:55: warning: incompatible implicit declaration of built-in function 'strlen'
arch/arm/mach-omap2/clockdomain.c:52: error: implicit declaration of function 'strcmp'Signed-off-by: Paul Gortmaker
15 Sep, 2011
2 commits
-
At Tony's request, remove the omap_chip bitmasks from the clockdomain
and clockdomain dependency definitions. Instead, initialize
clockdomains based on one or more lists that are applicable to a
particular SoC family, variant, and silicon revision.Tony Lindgren found a bug in a previous version of this
patch - thanks Tony.Signed-off-by: Paul Walmsley
Cc: Tony Lindgren -
In preparation for OMAP_CHIP() removal, split clkdm_init() into four
functions. This allows some of them to be called multiple times: for
example, clkdm_register_clkdms() can be called once to register
clockdomains that are common to a group of SoCs, and once to register
clockdomains that are specific to a single SoC.The appropriate order to call these functions - which is enforced
by the code - is:1. clkdm_register_platform_funcs()
2. clkdm_register_clkdms() (can be called multiple times)
3. clkdm_register_autodeps() (optional; deprecated)
4. clkdm_complete_init()Convert the OMAP2, 3, and 4 clockdomain init code to use these new
functions.While here, improve documentation, and increase CodingStyle
conformance by shortening some local variable names.Signed-off-by: Paul Walmsley
20 Aug, 2011
1 commit
-
While using clockdomain force wakeup method, not waiting for powerdomain
to be effectively ON may end up locking the clockdomain FSM until a
next wakeup event occurs.One such issue was seen on OMAP4430, where L4_PER was periodically
getting stuck in in-transition state when transitioning from from OSWR to ON.This issue was reported and investigated by Patrick Titiano
Signed-off-by: Santosh Shilimkar
Signed-off-by: Rajendra Nayak
Reported-by: Patrick Titiano
Cc: Kevin Hilman
Cc: Benoit Cousson
Cc: Paul Walmsley
[paul@pwsan.com: updated to apply; added transition wait on clkdm_deny_idle();
remove two superfluous pwrdm_wait_transition() calls]
Signed-off-by: Paul Walmsley
10 Jul, 2011
4 commits
-
Since the clkdm state programming is now done from within the hwmod
framework (which uses a per-hwmod lock) instead of the being done
from the clock framework (which used a global lock), there is now a
need to have per-clkdm locking to prevent races between different
hwmods/modules belonging to the same clock domain concurrently
programming the clkdm state.Signed-off-by: Rajendra Nayak
Signed-off-by: Benoit Cousson
Cc: Paul Walmsley
Signed-off-by: Paul Walmsley -
Add a new function, clkdm_in_hwsup(), that returns true if a clockdomain
is configured for hardware-supervised idle. It does not actually read the
hardware; rather, it checks an internal flag in the struct clockdomain, which
is changed when the clockdomain is switched in and out of hardware-supervised
idle. This should be safe, since all changes to the idle mode should
pass through the clockdomain code.Based on a set of patches by Rajendra Nayak which do
the same thing by checking the hardware bits. This approach should be
faster and more compact.Signed-off-by: Paul Walmsley
Cc: Rajendra Nayak
Cc: Todd Poynor
Cc: Benoît Cousson -
Duplicate the existing API for clockdomain enable from clock to enable
a clock domain from hwmod framework.
This will be needed when the hwmod framework will move from the current
clock centric approach to the module based approach.These APIs are returning 0 for the moment for OMAP2 and OMAP3 until
their hwmods are updated with the clksm attribute.Signed-off-by: Benoit Cousson
Cc: Kevin Hilman
Cc: Paul Walmsley
Cc: Rajendra Nayak
Signed-off-by: Paul Walmsley -
The call to pwrdm_wait_transition() in clkdm_clk_enable()
is redundant since the function pwrdm_clkdm_state_switch()
which is called next also does the same thing.Signed-off-by: Vaibhav Bedia
Signed-off-by: Paul Walmsley
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
11 Mar, 2011
1 commit
-
…dm_add_can_lose_context_fns_2.6.39', 'remotes/origin/omap_device_a_2.6.39', 'remotes/origin/mmc_a_2.6.39', 'remotes/origin/hwmod_b_2.6.39', 'remotes/origin/dmtimer_a_2.6.39', 'remotes/origin/pwrdm_clkdm_a_2.6.39', 'remotes/origin/clkdm_statdep_omap4_2.6.39', 'remotes/origin/clk_a_2.6.39', 'remotes/origin/clk_autoidle_a_2.6.39', 'remotes/origin/clk_autoidle_b_2.6.39', 'remotes/origin/clk_b_2.6.39', 'remotes/origin/clk_clkdm_a_2.6.39', 'remotes/origin/misc_a_2.6.39', 'remotes/origin/for_2.6.39/omap3_hwmod_data' and 'remotes/origin/wdtimer_a_2.6.39' into tmp-integration-2.6.39-20110310-024
10 Mar, 2011
1 commit
-
Add a new clockdomain flag, CLKDM_NO_AUTODEPS, which, when marked on a
clockdomain, will prevent "autodeps" from being associated with the
clockdomain. ("Autodeps" are sleep dependencies and wakeup
dependencies from/to processor modules that are automatically added to
a clockdomain when it is in hardware-supervised idle mode. They are
deprecated -- a relic from the old CDP trees -- but are still in use
for OMAP3.)Also, prevent the hwmod code from adding or removing initiator
dependencies for clockdomains with this flag set.This patch should allow others to test which clockdomains actually
still need autodeps.Thanks to Kevin Hilman for noting that the original
version should also modify the hwmod code.Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
26 Feb, 2011
6 commits
-
Now that wkup and sleep dependencies are supported (in the
form of static deps) for OMAP4, remove all instances of
pr_errs' stating dependencies are still unsupported
on OMAP4.Signed-off-by: Rajendra Nayak
Signed-off-by: Paul Walmsley -
Define the following architecture specific funtions for omap2/3/4
.clkdm_clk_enable
.clkdm_clk_disableConvert the platform-independent framework to call these functions.
Also rename the api's by removing the omap2_ preamble.
Hence call omap2_clkdm_k_enable as clkdm_clk_enable and
omap2_clkdm_clk_disable as clkdm_clk_disable.aRemove unused functions (_enable/_disable_hwsup) and unsed
headers from clockdomain.c file.Signed-off-by: Rajendra Nayak
Signed-off-by: Paul Walmsley -
Define the following architecture specific funtions for omap2/3/4
.clkdm_allow_idle
.clkdm_deny_idleConvert the platform-independent framework to call these functions.
Also rename the api's by removing the omap2_ preamble.
Hence call omap2_clkdm_allow_idle as clkdm_allow_idle and
omap2_clkdm_deny_idle as clkdm_deny_idle.Make the _clkdm_add_autodeps and _clkdm_del_autodeps as non-static
so they can be accessed from OMAP2/3 platform specific code.Signed-off-by: Rajendra Nayak
Signed-off-by: Paul Walmsley -
Define the following architecture specific funtions for omap2/3/4
.clkdm_sleep
.clkdm_wakeupConvert the platform-independent framework to call these functions.
Also rename the api's by removing the omap2_ preamble.
Hence call omap2_clkdm_wakeup as clkdm_wakeup and
omap2_clkdm_sleep as clkdm_sleep.Signed-off-by: Rajendra Nayak
[paul@pwsan.com: fixed omap3_clkdm_clear_all_sleepdeps() and
omap2_clkdm_clear_all_wkdeps() to test against the correct
loop termination condition; thanks to Kevin Hilman for finding and
helping fix]
Cc: Kevin Hilman
Signed-off-by: Paul Walmsley -
Define the following architecture specific funtions for omap2/3
.clkdm_add_wkdep
.clkdm_del_wkdep
.clkdm_read_wkdep
.clkdm_clear_all_wkdeps
.clkdm_add_sleepdep
.clkdm_del_sleepdep
.clkdm_read_sleepdep
.clkdm_clear_all_sleepdepsConvert the platform-independent framework to call these functions.
With this also move the clkdm lookups for all wkdep_srcs and
sleepdep_srcs at clkdm_init.Signed-off-by: Rajendra Nayak
[paul@pwsan.com: fixed loop termination conditions in omap*_clkdm_clear_all_*();
thanks to Kevin Hilman for finding and helping fix those bugs; also
avoid re-resolving clockdomains during init; abstracted out clkdm_dep walk]
Cc: Kevin Hilman
Signed-off-by: Paul Walmsley -
Put infrastructure in place, so arch specific func pointers
can be hooked up to the platform-independent part of the
framework.
This is in preparation of splitting the clockdomain framework into
platform-independent part (for all omaps) and platform-specific
parts.Signed-off-by: Rajendra Nayak
Signed-off-by: Paul Walmsley
19 Jan, 2011
1 commit
-
Commit 56a6a19dffda6b75cef8d4183c7c6ff650025cbd ("omap2plus: prm:
Trvial build break fix for undefined reference to
'omap2_prm_read_mod_reg'") generates a lot of warnings on boot since
clockdomain functions that manipulate wake-up dependencies are not
implemented yet on OMAP4 for 2.6.38. This patch bypasses the OMAP2/3
functions on OMAP4, which in turn avoids the warnings when the
functions would attempt to call the underlying OMAP2/3 PRCM functions.
A one-line warning is still logged from the clockdomain code that the
OMAP4 wake-up dependency code is not yet implemented.A clockdomain wake-up and sleep dependency implementation for OMAP4
from Rajendra should be possible to merge during the 2.6.39 merge
window:http://www.mail-archive.com/linux-omap@vger.kernel.org/msg41748.html
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42222.html
Reported-by: Russell King
Cc: Rajendra Nayak
Cc: Benoît Cousson
Cc: Santosh Shilimkar
Acked-by: Santosh Shilimkar
Signed-off-by: Paul Walmsley
22 Dec, 2010
7 commits
-
The OMAP powerdomain code and data is all OMAP2+-specific. This seems
unlikely to change any time soon. Move plat-omap/include/plat/powerdomain.h
to mach-omap2/powerdomain.h. The primary point of doing this is to remove
the temptation for unrelated upper-layer code to access powerdomain code
and data directly.As part of this process, remove the references to powerdomain data
from the GPIO "driver" and the OMAP PM no-op layer, both in plat-omap.
Change the DSPBridge code to point to the new location for the
powerdomain headers. The DSPBridge code should not be including the
powerdomain headers; these should be removed.Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
Cc: Omar Ramirez Luna
Cc: Felipe Contreras
Cc: Greg Kroah-Hartman -
The OMAP clockdomain code and data is all OMAP2+-specific. This seems
unlikely to change any time soon. Move plat-omap/include/plat/clockdomain.h
to mach-omap2/clockdomain.h. The primary point of doing this is to remove
the temptation for unrelated upper-layer code to access clockdomain code
and data directly.DSPBridge also uses the clockdomain headers for some reason, so,
modify it also. The DSPBridge code should not be including the
clockdomain headers; these should be removed.Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
Cc: Omar Ramirez Luna
Cc: Felipe Contreras
Cc: Greg Kroah-Hartman
Tested-by: Rajendra Nayak
Tested-by: Santosh Shilimkar -
Reverse some of the effects of commit
84c0c39aec31a09571fc08a752a2f4da0fe9fcf2 ("ARM: OMAP4: PM: Make OMAP3
Clock-domain framework compatible for OMAP4"). On OMAP2/3, the
CM_CLKSTCTRL register is at a constant offset from the powerdomain's
CM instance.Also, remove some of the direct CM register access from the
clockdomain code, moving it to the OMAP2/3 CM code instead. The
intention here is to simplify the clockdomain code. (The long-term
goal is to move all direct CM register access across the OMAP core
code to the appropriate cm*.c file.)Signed-off-by: Paul Walmsley
Tested-by: Rajendra Nayak
Tested-by: Santosh Shilimkar -
Add PRCM partition, CM instance register address offset, and clockdomain
register address offset to each OMAP4 struct clockdomain record. Add OMAP4
clockdomain code to use this new data to access registers properly.While here, clean up some nearby clockdomain code to allocate auto variables
in my recollection of Linus's preferred style.The autogeneration scripts have been updated.
Signed-off-by: Paul Walmsley
Cc: Rajendra Nayak
Cc: Santosh Shilimkar
Cc: Benoît Cousson
Tested-by: Rajendra Nayak
Tested-by: Santosh Shilimkar -
Split _omap2_clkdm_set_hwsup() into _disable_hwsup() and _enable_hwsup().
While here, also document that the autodeps are deprecated and that they
should be removed at the earliest opportunity.The documentation has been fixed for _{enable,disable}_hwsup(), thanks
to Kevin Hilman for pointing out that those
functions still had placeholder documentation in an earlier patch revision.Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
Tested-by: Santosh Shilimkar
Tested-by: Rajendra Nayak -
Now that OMAP4-specific PRCM functions have been added, distinguish the
existing OMAP2/3-specific PRCM functions by prefixing them with "omap2_".This patch should not result in any functional change.
Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
Cc: Jarkko Nikula
Cc: Peter Ujfalusi
Cc: Liam Girdwood
Cc: Mark Brown
Tested-by: Santosh Shilimkar
Tested-by: Rajendra Nayak -
In preparation for adding OMAP4-specific PRCM accessor/mutator
functions, split the existing OMAP2/3 PRCM code into OMAP2/3-specific
files. Most of what was in mach-omap2/{cm,prm}.{c,h} has now been
moved into mach-omap2/{cm,prm}2xxx_3xxx.{c,h}, since it was
OMAP2xxx/3xxx-specific.This process also requires the #includes in each of these files to be
changed to reference the new file name. As part of doing so, add some
comments into plat-omap/sram.c and plat-omap/mcbsp.c, which use
"sideways includes", to indicate that these users of the PRM/CM includes
should not be doing so.Thanks to Felipe Contreras for comments on this
patch.Signed-off-by: Paul Walmsley
Cc: Jarkko Nikula
Cc: Peter Ujfalusi
Cc: Liam Girdwood
Cc: Omar Ramirez Luna
Acked-by: Omar Ramirez Luna
Cc: Felipe Contreras
Acked-by: Felipe Contreras
Cc: Greg Kroah-Hartman
Acked-by: Mark Brown
Reviewed-by: Kevin Hilman
Tested-by: Kevin Hilman
Tested-by: Rajendra Nayak
Tested-by: Santosh Shilimkar
24 Sep, 2010
1 commit
-
When the clockdomain layer initializes, place all clockdomains into
software-supervised mode, and clear all wakeup and sleep dependencies
immediately, rather than waiting for the PM code to do this later.
This fixes a major bug where critical sleep dependencies added by the
hwmod code are cleared during late PM init.As a side benefit, the _init_{wk,sleep}dep_usecount() functions are no
longer needed, so remove them.Kevin Hilman did all the really hard work on
this, identifying the problem and finding the bug.Signed-off-by: Paul Walmsley
Signed-off-by: Kevin Hilman
21 May, 2010
1 commit
-
Fix all of the remaining OMAP2 PRCM register shift/bitmask macros that
did not use the _SHIFT/_MASK suffixes to use them. This makes the use
of these macros consistent. It is intended to reduce error, as code
can be inspected visually by reviewers to ensure that bitshifts and
bitmasks are used in the appropriate places.Signed-off-by: Paul Walmsley
Cc: Kevin Hilman
31 Mar, 2010
1 commit
-
This patch fixes usage of bitwise OR in if conditions, and instead
uses logical OR.Signed-off-by: Rajendra Nayak
Cc: Abhijit Pagare
Cc: Tony Lindgren
Signed-off-by: Paul Walmsley
25 Feb, 2010
3 commits
-
Simplify the code in the omap2_clk_disable() and omap2_clk_enable()
functions, reducing levels of indentation. This makes the code easier
to read. Add some additional debugging pr_debug()s here also to help
others understand what is going on.Revise the omap2_clk_disable() logic so that it now attempts to
disable the clock's clockdomain before recursing up the clock tree.
Simultaneously, ensure that omap2_clk_enable() is called on parent
clocks first, before enabling the clockdomain. This ensures that a
parent clock's clockdomain is enabled before the child clock's
clockdomain. These sequences should be the inverse of each other.Revise the omap2_clk_enable() logic so that it now cleans up after
itself upon encountering an error. Previously, an error enabling a
parent clock could have resulted in inconsistent usecounts on the
enclosing clockdomain.Remove the trivial _omap2_clk_disable() and _omap2_clk_enable() static
functions, and replace it with the clkops calls that they were
executing.For all this to work, the clockdomain omap2_clkdm_clk_enable() and
omap2_clkdm_clk_disable() code must not return an error on clockdomains
without CLKSTCTRL registers; so modify those functions to simply return 0
in that case.While here, add some basic kerneldoc documentation on both functions,
and get rid of some old non-CodingStyle-compliant comments that have
existed since the dawn of time (at least, the OMAP clock framework's
time).Signed-off-by: Paul Walmsley
Cc: Richard Woodruff
Cc: Rajendra Nayak -
_clkdm_add_autodeps() and _clkdm_del_autodeps() will attempt to dereference
a NULL pointer if no autodeps were supplied to clkdm_init().Based on a patch from Roel Kluin - thanks Roel.
Signed-off-by: Paul Walmsley
Cc: Roel Kluin -
A check is added for avoiding the sleep/wakeup dependency updates
for OMAP4 as the structures for the dependencies are currently absent.Signed-off-by: Abhijit Pagare
[paul@pwsan.com: added warnings, explanatory comment, copyright update]
Signed-off-by: Paul Walmsley
27 Jan, 2010
8 commits
-
This patch only affects documentation; no functional changes are
included.Clean up comments in the current clockdomain, powerdomain code and
header files. This mostly involves conversion to kerneldoc format,
although some clarifications are also included.Signed-off-by: Paul Walmsley
-
Add usecounting for wakeup and sleep dependencies. In the current
situation, if several functions add dependencies on the same
clockdomains, when the first dependency removal function is called,
the dependency will be incorrectly removed from the hardware.Add clkdm_clear_all_wkdeps() and clkdm_clear_all_sleepdeps(), which
provide a fast and usecounting-consistent way to clear all hardware
clockdomain dependencies, since accesses to these registers can be
quite slow. pm{2,3}4xx.c has been updated to use these new functions.
The original version of this patch did not touch these files, which
previously wrote directly to the wkdep registers, and thus confused
the usecounting code. This problem was found by Kevin Hilman
.N.B.: This patch introduces one significant functional difference over
the previous pm34xx.c code: sleepdeps are now cleared during
clockdomain initialization, whereas previously they were left
untouched. This has been tested by Kevin and confirmed to work.The original version of this patch also did not take into
consideration that some clockdomains do not have sleep or wakeup
dependency sources, which caused NULL pointer dereferences. This
problem was debugged and fixed by Kevin Hilman
.Signed-off-by: Paul Walmsley
Signed-off-by: Kevin Hilman
Cc: Jouni Högander -
OMAP clockdomains and powerdomains are currently defined statically,
only registered at boot, and never unregistered, so we can remove the
unregister function and the locking. A variant of this was originally
suggested a while ago by Dmitry Baryshkov .
This version of this patch contains an additional fix from Kevin Hilman
to address one of the pwrdm_for_each_nolock()
users in mach-omap2/pm-debug.c. Thanks Kevin.Signed-off-by: Paul Walmsley
Cc: Dmitry Baryshkov
Cc: Kevin Hilman -
Move clockdomain wakeup dependency and sleep dependency data
structures from the powerdomain layer to the clockdomain layer, where
they belong. These dependencies were originally placed in the
powerdomain layer due to unclear documentation; however, it is clear
now that these dependencies are between clockdomains. For OMAP2/3,
this is not such a big problem, but for OMAP4 this needs to be fixed.Thanks to Benoît Cousson for his advice on this
patch.Signed-off-by: Paul Walmsley
Cc: Benoît Cousson -
Port the APIs to support the OMAP4 clockdomain framework.
Also take care of the compiling requirements for the same.Signed-off-by: Abhijit Pagare
Signed-off-by: Paul Walmsley
Cc: Benoit Cousson
Cc: Rajendra Nayak -
Here the APIs are modified to use absolute addresses instead of module offsets.
Signed-off-by: Abhijit Pagare
Signed-off-by: Paul Walmsley
Cc: Benoit Cousson
Cc: Rajendra Nayak -
Here the ".clkstctrl_reg" field is added to the clockdomain stucture
as the module offsets for OMAP4 do not map one to one for powerdomains
and clockdomains as it used to for OMAP3. Hence we need to use absolute
addresses to access the control registers. Some of the clock domains have
modules falling in the address space of PRM partition. Hence necessitating
the use of absolute adresses.Signed-off-by: Abhijit Pagare
Signed-off-by: Paul Walmsley
Cc: Benoit Cousson
Cc: Rajendra Nayak -
Module offsets were same for OMAP2 and OMAP3 while they differ for OMAP4.
Hence we need different macros for identifying platform specific offsets.Signed-off-by: Abhijit Pagare
Signed-off-by: Paul Walmsley
Cc: Benoit Cousson
Cc: Rajendra Nayak