Age | Commit message (Collapse) | Author | Files | Lines |
|
As tegra_usb_phy_clk_disable/enable() are not being
used, removing them.
Signed-off-by: Venu Byravarasu <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Tegra USB host driver is using port instance number,
to handle some of the hardware issues on SOC e.g. reset PORT0
twice etc. As instance number based handling looks ugly,
making use of information passed through DT for achieving this.
Signed-off-by: Venu Byravarasu <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
As Tegra USB host driver is using instance number for resetting
PORT0 twice, adding a new DT property for handling this.
Signed-off-by: Venu Byravarasu <[email protected]>
Acked-by: Alan Stern <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Use kzalloc instead of kmalloc to allocate struct tegra_usb_phy.
This ensures that all function pointers in member u_phy are
initialized to NULL.
Signed-off-by: Venu Byravarasu <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
USB register base address and sizes defined in iomap.h
are not used in any files other than board-dt-tegra20.c.
Hence removed those defines from header file and using
the absolute values in board files.
Signed-off-by: Venu Byravarasu <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
With device tree support added for Tegra clocks look up is done from
device tree, remove unused TEGRA_CLK_DUPLICATE()s.
Signed-off-by: Prashant Gaikwad <[email protected]>
Acked-by: Mike Turquette <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
With device tree support added for Tegra clocks look up is done from
device tree, remove unused TEGRA_CLK_DUPLICATE()s.
Signed-off-by: Prashant Gaikwad <[email protected]>
Acked-by: Mike Turquette <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Remove AUXDATA as clocks are initialized from device node.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Remove AUXDATA as clock are initialized from device node.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Configlink clock information is added to device tree. Get the clocks
using device node. Remove AUXDATA.
Signed-off-by: Prashant Gaikwad <[email protected]>
Acked-by: Mark Brown <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
As clock information is added to device tree clock can be looked up
using clk_get. Remove use of clk_get_sys.
Signed-off-by: Prashant Gaikwad <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Marc Dietrich <[email protected]>
Acked-by: Julian Andres Klode <[email protected]>
[swarren: updated TODO file to remove entry that requested this change]
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add clock i2c clock information to device node.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add clock information to device nodes.
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: added second clock to 3d node]
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add clock information to device nodes.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Since Tegra spi devices do not have multiple clocks, no need to use
clock name to get the clock.
Signed-off-by: Prashant Gaikwad <[email protected]>
Acked-by: Grant Likely <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Remove all legacy clock code from mach-tegra.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Migrate Tegra clock support to drivers/clk/tegra, this involves
moving:
1. definition of tegra_cpu_car_ops to clk.c
2. definition of reset functions to clk-peripheral.c
3. change parent of cpu clock.
4. Remove legacy clock initialization.
5. Initialize clocks using DT.
6. Remove all instance of mach/clk.h
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: use to_clk_periph_gate().]
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add Tegra30 clock support based on common clock framework.
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: ensure all OF lookups return valid cookies i.e. an explicit
error pointer or valid pointer not NULL, adapt to renames in earlier
patches, fixed some checkpatch issues.]
Acked-by: Mike Turquette <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add Tegra20 clock support based on common clock framework.
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: s/1GHz/100MHz/ in call to tegra_clk_plle() to fix PCIe,
implemented KBC clock, ensure all OF lookups return valid cookies i.e.
an explicit error pointer or valid pointer not NULL, adapt to renames
in earlier patches, fixed some checkpatch issues.]
Acked-by: Mike Turquette <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add Tegra specific clocks, pll, pll_out, peripheral, frac_divider, super.
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: alloc sizeof(*foo) not sizeof(struct foo), add comments re:
storing pointers to stack variables, make a timeout loop more idiomatic,
use _clk_pll_disable() not clk_disable_pll() from _program_pll() to
avoid redundant lock operations, unified tegra_clk_periph() and
tegra_clk_periph_nodiv(), unified tegra_clk_pll{,e}, rename all clock
registration functions so they don't have the same name as the clock
structs, return -EINVAL from clk_plle_enable when matching table rate
not found, pass ops to _tegra_clk_register_pll rather than a bool.]
Acked-by: Mike Turquette <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
The device tree binding models Tegra30 CAR (Clock And Reset)
as a single monolithic clock provider.
Signed-off-by: Prashant Gaikwad <[email protected]>
[swarren: fixed typo in binding doc]
Signed-off-by: Stephen Warren <[email protected]>
|
|
The Tegra20 CAR (Clock And Reset) Controller controls most aspects of
most clocks within Tegra20. The device tree binding models this as a
single monolithic clock provider, which exports many clocks. This reduces
the number of nodes needed in device tree to represent these clocks.
This binding is only useful for Tegra20; the set of clocks that exists on
Tegra30 is sufficiently different to merit its own binding.
Signed-off-by: Stephen Warren <[email protected]>
Acked-by: Simon Glass <[email protected]>
[pgaikwad: Added mux clk ids and sorted CAR node]
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
tegra_cpu_car_ops struct is going to be accessed from drivers/clk/tegra.
Move the tegra_cpu_car_ops to include/linux/clk/tegra.h.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add function to read chip id from APB MISC registers. This function
will also get called from clock driver to flush write operations on
apb bus.
Signed-off-by: Prashant Gaikwad <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
The "sleep.S" file has many functions that be shared by different module
currently. Not just for CPU idle driver. Make it build as default now.
Reported-by: Rhyland Klein <[email protected]>
Signed-off-by: Joseph Lo <[email protected]>
[swarren: add sleep.o to separate line so each line only contains 1 file]
Signed-off-by: Stephen Warren <[email protected]>
|
|
It would rather to use the API of time_to_jiffies than a constant number
of jiffies for the wait time of CPU power up.
Based on the work by:
Sang-Hun Lee <[email protected]>
Signed-off-by: Joseph Lo <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
The reset handler code is used for either UP or SMP. To make Tegra device
can compile for UP. It needs to be moved to another file that is not SMP
only. This is because the reset handler also be needed by CPU idle
"powered-down" mode. So we also need to put the reset handler init function
in non-SMP only and init them always.
And currently the implementation of the reset handler to know which CPU is
OK to bring up was identital with "cpu_present_mask". But the
"cpu_present_mask" did not initialize yet when the reset handler init
function was moved to init early function. We use the "cpu_possible_mask"
to replace "cpu_present_mask". Then it can work on both UP and SMP case.
Signed-off-by: Joseph Lo <[email protected]>
[swarren: dropped the move of v7_invalidate_l1() from one file to another,
to avoid conflicts with Pavel's cleanup of this function, adjust Makefile
so each line only contains 1 file.]
Signed-off-by: Stephen Warren <[email protected]>
|
|
Drop the define and make use of scu_a9_get_base() which reads
the physical address of SCU from CP15 register.
Signed-off-by: Santosh Shilimkar <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Skip scu_enable(scu_base) if CPU is not Cortex A9 with SCU.
Signed-off-by: Hiroshi Doyu <[email protected]>
Acked-by: Russell King <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add API to detect SCU base address from CP15.
Signed-off-by: Hiroshi Doyu <[email protected]>
Acked-by: Russell King <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
SCU based detection only works with Cortex-A9 MP and it doesn't
support ones with multiple clusters. The only way to detect number of
CPU core correctly is with DT /cpu node.
Tegra SoCs decided to use DT detection as the only way and to not use
SCU based detection at all. Even if DT /cpu node based detection
fails, it continues with a single core
Signed-off-by: Hiroshi Doyu <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add CPU node for Tegra30.
Signed-off-by: Hiroshi Doyu <[email protected]>
Reviewed-by: Lorenzo Pieralisi <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add CPU node for Tegra20.
Signed-off-by: Hiroshi Doyu <[email protected]>
Reviewed-by: Lorenzo Pieralisi <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
for-3.9/scu-base-rework
|
|
There are some redundant codes in the CPUINIT section that was caused by
some codes not be organized well in "headsmp.S". Currently all the codes
in "headsmp.S" were put into CPUINIT section. But actually it doesn't
need to be loacted in CPUINIT section. There is no fuction access them
in CPUINIT section and we will relocate them to IRAM.
These codes also caused some unnecessary functions that access these
codes been put into CPUINIT section too. This patch clean it up and put
them into normal text section.
Signed-off-by: Joseph Lo <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
The tegra_cpu_die was be executed by the CPU itslf. So the clock gating
procedure won't be executed after the CPU hardware shutdown code. Moving
the clock gating procedure to tegra_cpu_kill that will be run by another
CPU after the CPU died.
Signed-off-by: Joseph Lo <[email protected]>
Acked-by: Peter De Schrijver <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Updating the cache maintenance order before CPU shutdown when doing CPU
hotplug.
The old order:
* clean L1 by flush_cache_all
* exit SMP
* CPU shutdown
Adapt to:
* disable L1 data cache by clear C bit
* clean L1 by v7_flush_dcache_louis
* exit SMP
* CPU shutdown
For CPU hotplug case, it's no need to do "flush_cache_all". And we should
disable L1 data cache before clean L1 data cache. Then leaving the SMP
coherency.
Signed-off-by: Joseph Lo <[email protected]>
Acked-by: Peter De Schrijver <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
The power up sequence is different on the cold boot CPU and the CPU
that resumed from the hotplug. For the cold boot CPU, it was been power
gated as default. To power up the cold boot CPU, the power should be
un-gated by un toggling the power gate register manually.
For the CPU that resumed from the hotplug, after un-halted the CPU. The
flow controller will un-gate the power of the CPU. No need to manually
control, just wait the power be resumed and continue the power up
sequence after the CPU power is ready.
Based on the work by:
Varun Wadekar <[email protected]>
Signed-off-by: Joseph Lo <[email protected]>
Acked-by: Peter De Schrijver <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
tegra_cpu_init/exit will be called every time one cpu core is online or
offline. And all cpu cores share same clocks, redundant clk_get/put
wast time, so I move them out.
Signed-off-by: Richard Zhao <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Fix:
warning: (ARCH_TEGRA_2x_SOC) selects ARM_ERRATA_754327 which has unmet direct dependencies (CPU_V7 && SMP)
warning: (ARCH_TEGRA_2x_SOC) selects ARM_ERRATA_742230 which has unmet direct dependencies (CPU_V7 && SMP)
by selecting options only if SMP.
Signed-off-by: Stephen Warren <[email protected]>
|
|
No need to be public. Checked with:
$ touch arch/arm/mach-tegra/*[ch] && make C=1
Signed-off-by: Hiroshi Doyu <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Add missing \n.
Signed-off-by: Hiroshi Doyu <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
|
|
Move arch/arm/mach-tegra/timer.c to drivers/clocksource/tegra20_timer.c
so that the code is co-located with other clocksource drivers, and to
reduce the size of the mach-tegra directory.
Signed-off-by: Stephen Warren <[email protected]>
|
|
|
|
The IOMMU may stop processing page translations due to a perceived lack
of credits for writing upstream peripheral page service request (PPR)
or event logs. If the L2B miscellaneous clock gating feature is enabled
the IOMMU does not properly register credits after the log request has
completed, leading to a potential system hang.
BIOSes are supposed to disable L2B micellaneous clock gating by setting
L2_L2B_CK_GATE_CONTROL[CKGateL2BMiscDisable](D0F2xF4_x90[2]) = 1b. This
patch corrects that for those which do not enable this workaround.
Signed-off-by: Suravee Suthikulpanit <[email protected]>
Acked-by: Borislav Petkov <[email protected]>
Cc: [email protected]
Signed-off-by: Joerg Roedel <[email protected]>
|
|
I get the following warning every day with v3.7, once or
twice a day:
[ 2235.186027] WARNING: at /mnt/sda7/kernel/linux/arch/x86/kernel/apic/ipi.c:109 default_send_IPI_mask_logical+0x2f/0xb8()
As explained by Linus as well:
|
| Once we've done the "list_add_rcu()" to add it to the
| queue, we can have (another) IPI to the target CPU that can
| now see it and clear the mask.
|
| So by the time we get to actually send the IPI, the mask might
| have been cleared by another IPI.
|
This patch also fixes a system hang problem, if the data->cpumask
gets cleared after passing this point:
if (WARN_ONCE(!mask, "empty IPI mask"))
return;
then the problem in commit 83d349f35e1a ("x86: don't send an IPI to
the empty set of CPU's") will happen again.
Signed-off-by: Wang YanQing <[email protected]>
Acked-by: Linus Torvalds <[email protected]>
Acked-by: Jan Beulich <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: <[email protected]>
Link: http://lkml.kernel.org/r/20130126075357.GA3205@udknight
[ Tidied up the changelog and the comment in the code. ]
Signed-off-by: Ingo Molnar <[email protected]>
|
|
The recent commit fb6791d100d1bba20b5cdbc4912e1f7086ec60f8
included the wrong logic. The lvbptr check was incorrectly
added after the patch was tested.
Signed-off-by: David Teigland <[email protected]>
Signed-off-by: Steven Whitehouse <[email protected]>
|
|
This patch enables internal mic input on the machine.
Cc: [email protected]
BugLink: https://bugs.launchpad.net/bugs/1107477
Signed-off-by: David Henningsson <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
|
|
From Sascha Hauer:
ARM i.MX SoC updates for next
Mostly clock related updates, most notably the conversion of
i.MX31 to a DT based lookup.
* tag 'imx-soc' of git://git.pengutronix.de/git/imx/linux-2.6:
ARM: clk-imx35: Fix build warnings with W=1
ARM: imx27: add a clock gate to activate SPLL clock
ARM: mx31: Replace clk_register_clkdev with clock DT lookup
ARM: clk-imx31: Add dummy clock
ARM: Let CONFIG_MACH_IMX31_DT be built by default
Signed-off-by: Olof Johansson <[email protected]>
|
|
git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel into next/soc
From Barry Song, this adds support for a new SoC from CSR; marco. It's
SMP, uses GIC instead of VIC and in general needs a bit of rework of
the platform code for setup, which this branch contains.
* 'marco-timer-cleanup-rebase' of git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel:
ARM: PRIMA2: provide two DEBUG_LL ports for prima2 and marco
ARM: PRIMA2: add new SiRFmarco SMP SoC infrastructures
ARM: PRIMA2: irq: make prima2 irq can work even we enable GIC for Marco
ARM: PRIMA2: rtciobg: it is also compatible with marco
ARM: PRIMA2: rstc: enable the support for Marco
ARM: PRIMA2: mv timer to timer-prima2 as we will add timer-marco
ARM: PRIMA2: initialize l2x0 according to mach from DT
ARM: PRIMA2: enable AUTO_ZRELADDR for SIRF in Kconfig
ARM: PRIMA2: add CSR SiRFmarco device tree .dts
Signed-off-by: Olof Johansson <[email protected]>
|