Age | Commit message (Collapse) | Author |
|
|
|
Enable the TouchRevolution Fusion 7 and 10 multi-touch controller driver
to be built as a module.
While at it remove NEW_LEDS which is enabled through dependencies.
|
|
suspend/resume
This patch ensures that the SCU and certain A9 CP15 registers state are maintained across
a suspend/resume cycle:
1. Need to ensure that SCU standby bit is set again after suspend/resume cycle, else
the system will never WAIT mode after a suspend/resume cycle. This bit should be enabled
on all SMP systems immaterial of whether CPUIDLE is enabled or not.
2. Several A9 errata workarounds involve setting bits in the ARM diagnostic register.
Save/restore this register across a suspend/resume cycle.
3. Save and restore the A9 power control register also.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
(cherry picked from commit 7b5b4ef5b3cdc65c0576f87cfa52bcca1bda8b33)
(cherry picked from commit 2a69800d94f182e975e4ed3ae2e64d30d35a3603)
|
|
According to the datasheet, the address of FABID is 0x4. Fix it.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Robin Gong <b38343@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
(cherry picked from commit c07a24939f36fb6de522a9726369ea64eee5d98d)
(cherry picked from commit cfec286ff9f375c2c289072d63cedbb0c7917a48)
(cherry picked from commit df8c0fa1f66b7267402391f4a21964b0aeee9e38)
|
|
The dispmix feature works without problem since TO1.2.
This patch adds the back-compatibility for older chip.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit a187b916d55052fed10de1797009250095b598fb)
(cherry picked from commit dd27604b9d2a1bd294b3d8800e547bc526f87df7)
|
|
Add device tree integration and add the device to the dtb.
i2c device, interrupt and reset GPIO can be specified in the dts as follows:
Note that additionally you may have to set the pinmuxing for the pins to
be GPIO.
&i2c1 {
status = "okay";
pcap@10 {
/* TouchRevolution Fusion 7 and 10 multi-touch controller */
compatible = "touchrevolution,fusion-f0710a";
reg = <0x10>;
gpios = <&gpio6 10 0 /* MXM-11, Pen down interrupt */
&gpio6 9 0 /* MXM-13, Reset interrupt */
>;
};
|
|
Use platform independent description for requested GPIOs.
(cherry picked from commit c300f3a605f8984449c1a5324fd3edda6f2fd8ff)
|
|
Fix chip reset by sleeping long enought after reset. Do proper error
handling (free GPIO on failure). Use dev_* for message logging to get
similar messages for all fusion driver related errors and warnings.
(cherry picked from commit 63b293000723e61a880470f093fbe82e86ebd81b)
|
|
To avoid warnings use the new I2C power management function for
suspend and resume.
(cherry picked from commit 9d996316a470d37fb71c521f27106b014f3f0b23)
|
|
Added platform data struct to define interrupt and reset GPIO. This
allows to initialize the touchscreen controller inside the driver
rather then in each platform and use the driver as a module.
(cherry picked from commit cb82730b70f31af3b43041ac4e47de69c18016c9)
|
|
When the next interrupt request apeares between the confirmation of
the previous (a write via I2C, fusion_F0710A_write_complete) and
the reenable of the GPIO interrupt, the driver hangs and no more
touch inputs are reported.
This patch moves the confirmation after the reenabling of the GPIO
interrupt.
(cherry picked from commit e95019a4f20b8cdfbe03658e4f73b69cdcf97540)
|
|
Recent evdev X-Server input driver implementation complain when
only multitouch axes have been reported ("found only multitouch-axes.
That shouldn't happen."). Therefor also report the primary touch
detection with default axis.
(cherry picked from commit dda7a631ac901e4d140e8a6612c5c6b5506b6a91)
|
|
For Android use ICS variant of Fusion 7 and 10 multi-touch driver (See
Fusion 7 and 10 drivers for Linux.pdf and Linux Drivers Fusion 10.zip).
Tested to be working both with Android 4.0.4 for Colibri T20 as well as
Android 4.2.1 for Colibri T30.
(cherry picked from commit 0fc73eb175a82dc11f6c1cc8e03f1d311d3180de)
|
|
This patch adds the multi-touch input driver for the TouchRevolution
Fusion 7 and 10 panels (See Fusion 7 and 10 drivers for Linux.pdf and
Linux Drivers Fusion 10.zip) as downloaded in 07.2014
|
|
|
|
|
|
|
|
|
|
accept .ena_gpio = 0 as a GPIO, drivers/instances which don't have a GPIO
must set this field to a negative value, e.g. -ENODEV.
|
|
GPIO number 0 *is* legal and must be accepted.
Set .ena_gpio to -ENODEV on regulators having no GPIO in preparation
of a code change to accept GPIO 0 in the config.
|
|
|
|
|
|
|
|
From: Stefan Agner <stefan@agner.ch>
By using the SD/MMC host device ID as a starting point for block
device numbering, one can reliably predict the first block device
name (at least for the first controller). This is especially useful
for SoCs with multiple SD/MMC host controller, where the controller
with index 0 is connected to a eMMC device.
Usually the first controller gets the first block device name ID,
however this is not guaranteed. Also if the first controller is
aliased as second controller and visa-versa (using device tree
aliases), the block device name ID assignation is not ordered by
the SD/MMC host device ID (since mmc_rescan is called in order of
the memory mapped pheripherial addresses).
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
|
From: Stefan Agner <stefan@agner.ch>
To get the SD/MMC host device ID, read the alias from the device
tree.
This is useful in case a SoC has multipe SD/MMC host controllers while
the second controller should logically be the first device (e.g. if
the second controller is connected to an internal eMMC). Combined
with block device numbering using MMC/SD host device ID, this
results in predictable name assignment of the internal eMMC block
device.
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
|
|
|
Copy of mxc_lcdif.c
Adds a second parallel output which drives a Video DAC
available on the second IPU, first DI on a Apalis iMX6 module
Only RGB565 is supported.
video=mxcfb0:dev=vdac,800x480M@60,if=RGB565
|
|
Ampire LDB-AM-800600LTNQW-A0H 800x600
Touch Revolution LDB-Fusion10 1024x600
LG LDB-LG-LP156WF1 1920x1080
|
|
|
|
|
|
Depending on the preemptive settings 'usleep_range' are called in code
where this is not allowed. Use udelay instead of usleep_range
BUG: scheduling while atomic: swapper/0/1/0x00000002
|
|
Each spdif sample is qualified by the validity bit.
The bit shall be logic '0' if the audio sample is valid.
This commit configures the transmitter to always send '0' rather
than always send '1'.
|
|
Previous HZ / 50 calculation allowed for a touch sampling time of 20 ms
which is not sufficient if either the touch detect delay or the
settling time is longer than 500 us.
|
|
Prevents a lot of pointless hanging at boot on some devices.
Taken from Nell Hardcastle
https://dev-nell.com/rpmb-emmc-errors-under-linux.html
|
|
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
|
|
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
|
|
This allow gplay to work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commit 2afc745f3e3079ab16c826be4860da2529054dd2 upstream.
This patch fixes the problem that get_unmapped_area() can return illegal
address and result in failing mmap(2) etc.
In case that the address higher than PAGE_SIZE is set to
/proc/sys/vm/mmap_min_addr, the address lower than mmap_min_addr can be
returned by get_unmapped_area(), even if you do not pass any virtual
address hint (i.e. the second argument).
This is because the current get_unmapped_area() code does not take into
account mmap_min_addr.
This leads to two actual problems as follows:
1. mmap(2) can fail with EPERM on the process without CAP_SYS_RAWIO,
although any illegal parameter is not passed.
2. The bottom-up search path after the top-down search might not work in
arch_get_unmapped_area_topdown().
Note: The first and third chunk of my patch, which changes "len" check,
are for more precise check using mmap_min_addr, and not for solving the
above problem.
[How to reproduce]
--- test.c -------------------------------------------------
#include <stdio.h>
#include <unistd.h>
#include <sys/mman.h>
#include <sys/errno.h>
int main(int argc, char *argv[])
{
void *ret = NULL, *last_map;
size_t pagesize = sysconf(_SC_PAGESIZE);
do {
last_map = ret;
ret = mmap(0, pagesize, PROT_NONE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
// printf("ret=%p\n", ret);
} while (ret != MAP_FAILED);
if (errno != ENOMEM) {
printf("ERR: unexpected errno: %d (last map=%p)\n",
errno, last_map);
}
return 0;
}
---------------------------------------------------------------
$ gcc -m32 -o test test.c
$ sudo sysctl -w vm.mmap_min_addr=65536
vm.mmap_min_addr = 65536
$ ./test (run as non-priviledge user)
ERR: unexpected errno: 1 (last map=0x10000)
Signed-off-by: Akira Takeuchi <takeuchi.akr@jp.panasonic.com>
Signed-off-by: Kiyoshi Owada <owada.kiyoshi@jp.panasonic.com>
Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|