Commit Graph

396474 Commits

Author SHA1 Message Date
luowei
2ec82dc352 mask gpio irq register 2013-12-03 21:26:43 +08:00
luowei
b26cf162c9 add pinctrl for uart 2013-12-03 20:30:14 +08:00
luowei
f00367d822 add pinctrl driver support 2013-12-03 11:48:30 +08:00
黄涛
366b55099b ARM: rockchip: remove unused files 2013-12-03 10:02:10 +08:00
黄涛
4eaa276df1 ARM: rockchip: add rk3188.c, common.c, remove rockchip.c 2013-12-02 21:12:58 +08:00
黄涛
2055deaf29 ARM: rockchip: remove headsmp.S and add bootram support 2013-12-02 10:50:42 +08:00
黄涛
7ec39878a6 ARM: PIE: pie.lds.S fix PIE_OVERLAY_END 2013-12-02 10:43:47 +08:00
黄涛
4f9e05b983 clocksource: rockchip_timer: clock source 32-bit mode 2013-12-02 10:38:19 +08:00
Heiko Stübner
79504bbbd9 pinctrl: remove bindings for pinconf options needing more thought
Some options currently take arguments in unspecified driver-specific units.
As pointed out by Stephen Warren, driver specific values should not be part
of generic devicetree bindings describing the hardware.

Therefore remove the critical bindings again, before they become part of
an official release.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:59 +08:00
Heiko Stübner
bedb5b5d93 pinctrl: set unit for debounce time pinconfig to usec
Currently the debounce time pinconfig option uses an unspecified
"time units" unit. As pinconfig options should use SI units and a
real unit is also necessary for generic dt bindings, change it
to usec. Currently no driver is using the generic pinconfig option
for this, so the unit change is safe to do.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:51 +08:00
Heiko Stübner
3d3f37a2c2 pinctrl: more clarifications for generic pull configs
PULL_PIN_DEFAULT is meant for hardware completely hiding any pull
settings from the driver, so that it's really only possible to turn
the pull on or off, but it not being possible to determine any
pull settings from software.

Also the binding-documentation for the pull arguments did not match
the changes to the expected values.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:43 +08:00
Linus Walleij
19e31d82dd pinctrl: establish pull-up/pull-down terminology
It is counter-intuitive to have "0" mean disable in a boolean
manner for electronic properties of pins such as pull-up and
pull-down. Therefore, define that a pull-up/pull-down argument
of 0 to such a generic option means that the pin is
short-circuited to VDD or GROUND. Pull disablement shall be
done using PIN_CONFIG_BIAS_DISABLE.

Cc: James Hogan <james.hogan@imgtec.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by Heiko Stuebner <heiko@sntech.de>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:34 +08:00
Heiko Stübner
dc03e310a6 pinctrl: add pinconf-generic define for a pin-default pull
There exist controllers that don't support to set the pull to up or down
separately but instead automatically set the pull direction based on
embedded knowledge inside the controller, for example depending on the
selected mux function of the pin.

Therefore this patch adds another config option to use this default
pull-state for a pin where it is not possible to know or decide if the
pin will be pulled up or down.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:29 +08:00
James Hogan
77a41c0a0d pinconf-generic: add BIAS_BUS_HOLD pinconf
Add a new PIN_CONFIG_BIAS_BUS_HOLD pin configuration for a bus holder
pin mode (also known as bus keeper, or repeater). This is a weak latch
which drives the last value on a tristate bus. Another device on the bus
can drive the bus high or low before going tristate to change the value
driven by the pin.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:23 +08:00
James Hogan
2d8bcadc11 pinconf-generic: add drive strength to debugfs output
Add the drive strength pinconf to debugfs output (with the unit "mA").

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:37:17 +08:00
Heiko Stübner
7058de4ba0 pinctrl: dynamically alloc temp array when parsing dt pinconf options
Allocating the temorary array in pinconf_generic_parse_dt_config on stack
might cause problems later on, when the number of options grows over time.
Therefore also allocate this array dynamically to be on the safe side.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:04:37 +08:00
Heiko Stübner
e978099cb6 pinctrl: handle zero found dt pinconfig properties better
This adds a shortcut when no valid pinconf properties are found
in the parsed dt node, to set the values immediately and return.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:04:27 +08:00
Heiko Stübner
9757d8280e pinctrl: clarify some dt pinconfig options
The bias-pull-* options use values > 0 to indicate that the pull should
be activated and optionally also indicate the strength of the pull.
Therefore use an default value of 1 for these options.

Split the low-power-mode option into low-power-enable and -disable.

Update the documentation to describe the param arguments better.

Reported-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:04:20 +08:00
Heiko Stübner
87c4fbd5ef pinctrl: add function to parse generic pinconfig properties from a dt node
pinconf_generic_parse_dt_config() takes a node as input and generates an
array of generic pinconfig values from the properties of this node.

As I couldn't find a mechanism to count the number of properties of a node
the function uses internally an array to accept one of parameter and copies
the real present options to a smaller variable at its end.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2013-11-30 12:04:12 +08:00
hhb
94c3b14a94 rk serial: add Documentation/devicetree/bindings/serial/rockchip_uart.txt 2013-11-30 10:02:20 +08:00
hhb
d1094fbd15 rk serial: migrate to kernel3.10,and fit device tree 2013-11-29 20:42:26 +08:00
黄涛
b4fae167a9 rk3188: add initial support 2013-11-22 19:24:41 +08:00
黄涛
a8b63f0388 rk: Makefile set default ARCH and CROSS_COMPILE 2013-11-22 18:51:07 +08:00
黄涛
40651cbbd6 rk: fix -fstack-protector support when build zImage 2013-11-22 18:49:13 +08:00
黄涛
f170061c06 rk: add and fix PIE support
1) PIE depends on GENERIC_ALLOCATOR
2) fix old version objcopy -j do not support wildcard
3) add rockchip PIE section group
2013-11-22 18:38:07 +08:00
Russ Dill
5b4bb81c25 ARM: PIE: Add macro for generating PIE resume trampoline
Add a helper that generates a short snippet of code that updates PIE
relocations, loads the stack pointer and calls a C (or asm) function.
The code gets placed into a PIE section.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:22 +08:00
Russ Dill
f4c49be431 ARM: PIE: Add support for updating PIE relocations
This adds support for updating PIE relocations under ARM. This
is necessary in the case that the same PIE must run both with
virtual mapping (MMU enabled) and physical mapping (MMU
disabled).

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:21 +08:00
Russ Dill
b152ef3cbe ARM: PIE: Add position independent executable embedding to ARM
Add support to ARM for embedding PIEs into the kernel, loading them into
genalloc pools (such as SRAM) and executing them. Support for ARM means
performing R_ARM_RELATIVE fixups within the .rel.dyn section.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:21 +08:00
Russ Dill
2ecab0b339 PIE: Support embedding position independent executables
This commit adds support for embedding PIEs into the kernel, loading them
into genalloc sections, performing necessary relocations, and running code
from them. This allows platforms that need to run code from SRAM, such
an during suspend/resume, to develop that code in C instead of assembly.

Functions and data for each PIE should be grouped into sections with the
__pie(<group>) and __pie_data(<group>) macros respectively. Any symbols or
functions that are to be accessed from outside the PIE should be marked with
EXPORT_PIE_SYMBOL(<sym>). For example:

static struct ddr_timings xyz_timings __pie_data(platformxyz) = {
	[...]
};

void __pie(platformxyz) xyz_ddr_on(void *addr)
{
	[...]
}
EXPORT_PIE_SYMBOL(xyz_ddr_on);

While the kernel can access exported symbols from the PIE, the PIE cannot
access symbols from the kernel, but can access data from the kernel and
call functions in the kernel so long as addresses are passed into the PIE.

PIEs are loaded from the kernel into a genalloc pool with pie_load_sections.
pie_load_sections allocates space within the pool, copies the neccesary
code/data, and performs any necessary relocations. A chunk identifier is
returned for removing the PIE from the pool, and for translating symbols.

Because the PIEs are dynamically relocated, special accessors must be used
to access PIE symbols from kernel code:

- kern_to_pie(chunk, ptr):   Translate a PIE symbol to the virtual address
                             it is loaded into within the pool.

- fn_to_pie(chunk, ptr):     Same as above, but for function pointers.

- sram_to_phys(chunk, addr): Translate a virtual address within a loaded PIE
                             to a physical address.

Loading a PIE involves three main steps. First a set of common functions to
cover built-ins emitted by gcc (memcpy, memmove, etc) is copied into the pool.
Then the actual PIE code and data is copied into the pool. Because the PIE
code is contained within an overlay with other PIEs, offsets to the common
functions are maintained. Finally, relocations are performed as necessary.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:21 +08:00
Russ Dill
49d083bd72 asm-generic: fncpy: Add function copying macros
Under certain arches (ARM) function pointers cannot be
used naively. Specifically, for thumb functions, their 0 bit
is set, but they are contained on a word aligned address.

Add a fncpy macro to perform function copies correctly
along with two helpers, fnptr_to_address, and fnptr_translate.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:20 +08:00
Russ Dill
6e701bfc17 misc: SRAM: Add option to map SRAM to allow code execution
This is necessary for platforms that use SRAM to execute suspend/resume stubs.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:20 +08:00
Alexander Shiyan
426cd3dea9 Misc: sram: Remove unneeded check
Patch removes unneeded check for resource since
devm_ioremap_resource do all for us.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-21 13:39:20 +08:00
Laurent Navet
e22253a9ee drivers: misc: use devm_ioremap_resource()
Replace a call to deprecated devm_request_and_ioremap by devm_ioremap_resource.

Found with coccicheck and this semantic patch:
 scripts/coccinelle/api/devm_request_and_ioremap.cocci.

Signed-off-by: Laurent Navet <laurent.navet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-21 13:39:19 +08:00
黄涛
336430a16b lib: devres: Add exec versions of devm_ioremap_resource and friends
Now that there is an _exec version of ioremap, add devm support for it.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:19 +08:00
Russ Dill
1447d8f1e6 asm-generic: io: Add exec versions of ioremap
If code is to be copied into and area (such as SRAM) and run,
it needs to be marked as exec. Currently only an ARM version
of this exists.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
2013-11-21 13:39:18 +08:00
黄涛
ddcfb41f93 Merge remote-tracking branch 'origin/upstream/linux-linaro-lsk-v3.10-android+android-common-3.10' into develop-3.10 2013-11-21 13:33:20 +08:00
黄涛
68a6548244 Merge remote-tracking branch 'origin/upstream/android-common-3.10' into linux-linaro-lsk-v3.10-android+android-common-3.10
Conflicts:
	kernel/printk.c
2013-11-21 13:28:24 +08:00
黄涛
1b62149c6e Merge remote-tracking branch 'origin/upstream/linux-linaro-lsk-v3.10-android' into linux-linaro-lsk-v3.10-android+android-common-3.10 2013-11-21 13:26:29 +08:00
Greg Hackmann
47128ea67f video: adf: make device node names less hierarchical
adf/foobar/device -> adf0
adf/foobar/interface1 -> adf-interface0.1
adf/foobar/overlay-engine1 -> adf-overlay-engine0.1

Change-Id: I7af7f84ce3f101ecb02f448070c200ff3e03f2ec
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2013-11-20 21:40:30 +00:00
Colin Cross
c1d3cea1d0 ion: convert sg_dma_len(sg) to sg->length
ion is always dealing with the allocation and not the mapping,
so it should always be using sg->length and not sg->dma_length.

Change-Id: Id9b07f1196b2bafe04636fa1aa46dfc84d003cf0
Signed-off-by: Colin Cross <ccross@android.com>
2013-11-15 16:11:11 -08:00
Colin Cross
51e3580bf9 ion: fix dma APIs
__dma_page_cpu_to_dev is a private ARM api that is not available
on 3.10 and was never available on other architectures.  We can
get the same behavior by calling dma_sync_sg_for_device with a
scatterlist containing a single page.  It's still not quite a
kosher use of the dma apis, we still conflate physical addresses
with bus addresses, but it should at least compile on all
platforms, and work on any platform that doesn't have a physical
to bus address translation.

Change-Id: I8451c2dae4bf85841015c016640684ac28430a5a
Signed-off-by: Colin Cross <ccross@android.com>
2013-11-15 16:10:14 -08:00
Colin Cross
49bdc418a3 ion: fix crash when alloc len is -1
If userspace passes a length between -4095 and -1 to allocate it
will pass the len != 0 check, but when len is page aligned it will
be 0.  Check len after page aligning.

Drop the warning as well, userspace shouldn't be able to trigger
a warning in the kernel.

Change-Id: I96c7142637638991f3a9af9be7cfbb50f79f3803
Signed-off-by: Colin Cross <ccross@android.com>
2013-11-15 16:10:14 -08:00
Colin Cross
33a57aa073 ion: hold reference to handle after ion_uhandle_get
commit 1262ab1846cf76f7549c66ef709120dbfbe6d49f (ion: replace
userspace handle cookies with idr) broke the locking in ion.
The ION_IOC_FREE and ION_IOC_MAP ioctls were relying on
ion_handle_validate to detect the case where a call raced
with another ION_IOC_FREE which may have freed the struct
ion_handle.

Rename ion_uhandle_get to ion_handle_get_by_id, and have it
take the client lock and return with an extra reference to
the handle.  Make each caller put its reference once it
is done with the handle.

Also modify users of ion_handle_validate to continue to hold
the client lock after calling ion_handle_validate until
they are done with the handle, and warn if ion_handle_validate
is called without the client lock held.

Change-Id: I56da5624fca3bed4ee24806b6ec39de903543341
Signed-off-by: Colin Cross <ccross@android.com>
2013-11-15 16:03:41 -08:00
John Stultz
eec88854d8 ion: Fix compat support to use proper compat ioctl numbers
The compat support added to ion didn't provide compat ioctl numbers
(who's value depends on the compat structure size). So 32bit
applications would get an error when trying to make ioctl calls.

This patch adds the needed COMPAT_ macros and uses them in the
compat_ion_ioctl, translating them to their non-compat cmd when
calling the normal ioctl call.

Change-Id: I53636d4ec46d8dc5e694697aaf2d62b98bd78cb1
Signed-off-by: John Stultz <john.stultz@linaro.org>
2013-11-14 16:36:50 -08:00
Mark Brown
f3401c581c Merge remote-tracking branch 'lsk/v3.10/topic/android-fixes' into linux-linaro-lsk-android
The cpufreq_interactive changes have been merged upstream and the local
version dropped.

Conflicts:
	drivers/cpufreq/cpufreq_interactive.c
2013-11-14 15:43:52 +00:00
Arve Hjønnevåg
47e0f4d1dc ARM: Fix "Make low-level printk work" to use a separate config option
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2013-11-13 17:34:12 -08:00
Mark Brown
4cb518ab3d Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android 2013-11-13 12:06:53 +00:00
Mark Brown
54a3a4d441 Merge tag 'v3.10.19' into linux-linaro-lsk
This is the 3.10.19 stable release
2013-11-13 12:06:30 +00:00
Greg Kroah-Hartman
3729ed7c6a Linux 3.10.19 v3.10.19 2013-11-13 12:05:59 +09:00
Jon Mason
cfa234b144 NTB: Correct debugfs to work with more than 1 NTB Device
commit 1517a3f21a upstream.

Debugfs was setup in NTB to only have a single debugfs directory.  This
resulted in the leaking of debugfs directories and files when multiple
NTB devices were present, due to each device stomping on the variables
containing the previous device's values (thus preventing them from being
freed on cleanup).  Correct this by creating a secondary directory of
the PCI BDF for each device present, and nesting the previously existing
information in those directories.

Signed-off-by: Jon Mason <jon.mason@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-13 12:05:35 +09:00