mirror of
https://github.com/Freescale/meta-freescale-3rdparty.git
synced 2025-07-19 12:09:01 +02:00
linux-congatec: Avoid depending on meta-fsl-arm's linux-imx
To easy the maintenance of the kernel for Congatec boards and allow removal of the 3.0.35 of meta-fsl-arm when desired we include the needed patches here instead of using a bbappend on top of linux-imx original recipe. Change-Id: I5766ba81b514beb1f50f04d8d0e4efcc4d2b5898 Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
This commit is contained in:
parent
5f6e811c34
commit
7d7bf13e8a
|
@ -14,6 +14,8 @@ UBOOT_PADDING = "2"
|
|||
PREFERRED_PROVIDER_u-boot = "u-boot-imx"
|
||||
PREFERRED_VERSION_u-boot-imx = "2009.08"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-congatec"
|
||||
|
||||
UBOOT_MACHINE = "cgtqmx6_config"
|
||||
|
||||
SERIAL_CONSOLE = "115200 ttymxc1"
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
From 503daf4789dd23e4dc1e16c256de0c163fc2bf87 Mon Sep 17 00:00:00 2001
|
||||
From: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||
Date: Wed, 4 Apr 2012 10:45:27 +0200
|
||||
Subject: [PATCH] perf tools: Fix getrusage() related build failure on glibc
|
||||
trunk
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
On a system running glibc trunk perf doesn't build:
|
||||
|
||||
CC builtin-sched.o
|
||||
builtin-sched.c: In function ‘get_cpu_usage_nsec_parent’: builtin-sched.c:399:16: error: storage size of ‘ru’ isn’t known builtin-sched.c:403:2: error: implicit declaration of function ‘getrusage’ [-Werror=implicit-function-declaration]
|
||||
[...]
|
||||
|
||||
Fix it by including sys/resource.h.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Link: http://lkml.kernel.org/r/20120404084527.GA294@x4
|
||||
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
||||
---
|
||||
tools/perf/builtin-sched.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
|
||||
index dcfe887..3632c2f 100644
|
||||
--- a/tools/perf/builtin-sched.c
|
||||
+++ b/tools/perf/builtin-sched.c
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "util/debug.h"
|
||||
|
||||
#include <sys/prctl.h>
|
||||
+#include <sys/resource.h>
|
||||
|
||||
#include <semaphore.h>
|
||||
#include <pthread.h>
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
From 2235b85f1c76d98b5f1e160cbd0a61a84c15e125 Mon Sep 17 00:00:00 2001
|
||||
From: Ivan Djelic <ivan.djelic@parrot.com>
|
||||
Date: Wed, 6 Mar 2013 20:09:27 +0100
|
||||
Subject: [PATCH] ARM: 7668/1: fix memset-related crashes caused by recent GCC
|
||||
(4.7.2) optimizations
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
|
||||
assumptions about the implementation of memset and similar functions.
|
||||
The current ARM optimized memset code does not return the value of
|
||||
its first argument, as is usually expected from standard implementations.
|
||||
|
||||
For instance in the following function:
|
||||
|
||||
void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
|
||||
{
|
||||
memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
|
||||
waiter->magic = waiter;
|
||||
INIT_LIST_HEAD(&waiter->list);
|
||||
}
|
||||
|
||||
compiled as:
|
||||
|
||||
800554d0 <debug_mutex_lock_common>:
|
||||
800554d0: e92d4008 push {r3, lr}
|
||||
800554d4: e1a00001 mov r0, r1
|
||||
800554d8: e3a02010 mov r2, #16 ; 0x10
|
||||
800554dc: e3a01011 mov r1, #17 ; 0x11
|
||||
800554e0: eb04426e bl 80165ea0 <memset>
|
||||
800554e4: e1a03000 mov r3, r0
|
||||
800554e8: e583000c str r0, [r3, #12]
|
||||
800554ec: e5830000 str r0, [r3]
|
||||
800554f0: e5830004 str r0, [r3, #4]
|
||||
800554f4: e8bd8008 pop {r3, pc}
|
||||
|
||||
GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
|
||||
register/memory corruptions.
|
||||
|
||||
This patch fixes the return value of the assembly version of memset.
|
||||
It adds a 'mov' instruction and merges an additional load+store into
|
||||
existing load/store instructions.
|
||||
For ease of review, here is a breakdown of the patch into 4 simple steps:
|
||||
|
||||
Step 1
|
||||
======
|
||||
Perform the following substitutions:
|
||||
ip -> r8, then
|
||||
r0 -> ip,
|
||||
and insert 'mov ip, r0' as the first statement of the function.
|
||||
At this point, we have a memset() implementation returning the proper result,
|
||||
but corrupting r8 on some paths (the ones that were using ip).
|
||||
|
||||
Step 2
|
||||
======
|
||||
Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
|
||||
|
||||
save r8:
|
||||
- str lr, [sp, #-4]!
|
||||
+ stmfd sp!, {r8, lr}
|
||||
|
||||
and restore r8 on both exit paths:
|
||||
- ldmeqfd sp!, {pc} @ Now <64 bytes to go.
|
||||
+ ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go.
|
||||
(...)
|
||||
tst r2, #16
|
||||
stmneia ip!, {r1, r3, r8, lr}
|
||||
- ldr lr, [sp], #4
|
||||
+ ldmfd sp!, {r8, lr}
|
||||
|
||||
Step 3
|
||||
======
|
||||
Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
|
||||
|
||||
save r8:
|
||||
- stmfd sp!, {r4-r7, lr}
|
||||
+ stmfd sp!, {r4-r8, lr}
|
||||
|
||||
and restore r8 on both exit paths:
|
||||
bgt 3b
|
||||
- ldmeqfd sp!, {r4-r7, pc}
|
||||
+ ldmeqfd sp!, {r4-r8, pc}
|
||||
(...)
|
||||
tst r2, #16
|
||||
stmneia ip!, {r4-r7}
|
||||
- ldmfd sp!, {r4-r7, lr}
|
||||
+ ldmfd sp!, {r4-r8, lr}
|
||||
|
||||
Step 4
|
||||
======
|
||||
Rewrite register list "r4-r7, r8" as "r4-r8".
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com>
|
||||
Reviewed-by: Nicolas Pitre <nico@linaro.org>
|
||||
Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
(cherry picked from commit 455bd4c430b0c0a361f38e8658a0d6cb469942b5)
|
||||
---
|
||||
arch/arm/lib/memset.S | 85 ++++++++++++++++++++++++++-------------------------
|
||||
1 file changed, 44 insertions(+), 41 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
|
||||
index 650d592..d912e73 100644
|
||||
--- a/arch/arm/lib/memset.S
|
||||
+++ b/arch/arm/lib/memset.S
|
||||
@@ -19,9 +19,9 @@
|
||||
1: subs r2, r2, #4 @ 1 do we have enough
|
||||
blt 5f @ 1 bytes to align with?
|
||||
cmp r3, #2 @ 1
|
||||
- strltb r1, [r0], #1 @ 1
|
||||
- strleb r1, [r0], #1 @ 1
|
||||
- strb r1, [r0], #1 @ 1
|
||||
+ strltb r1, [ip], #1 @ 1
|
||||
+ strleb r1, [ip], #1 @ 1
|
||||
+ strb r1, [ip], #1 @ 1
|
||||
add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
/*
|
||||
* The pointer is now aligned and the length is adjusted. Try doing the
|
||||
@@ -29,10 +29,14 @@
|
||||
*/
|
||||
|
||||
ENTRY(memset)
|
||||
- ands r3, r0, #3 @ 1 unaligned?
|
||||
+/*
|
||||
+ * Preserve the contents of r0 for the return value.
|
||||
+ */
|
||||
+ mov ip, r0
|
||||
+ ands r3, ip, #3 @ 1 unaligned?
|
||||
bne 1b @ 1
|
||||
/*
|
||||
- * we know that the pointer in r0 is aligned to a word boundary.
|
||||
+ * we know that the pointer in ip is aligned to a word boundary.
|
||||
*/
|
||||
orr r1, r1, r1, lsl #8
|
||||
orr r1, r1, r1, lsl #16
|
||||
@@ -43,29 +47,28 @@ ENTRY(memset)
|
||||
#if ! CALGN(1)+0
|
||||
|
||||
/*
|
||||
- * We need an extra register for this loop - save the return address and
|
||||
- * use the LR
|
||||
+ * We need 2 extra registers for this loop - use r8 and the LR
|
||||
*/
|
||||
- str lr, [sp, #-4]!
|
||||
- mov ip, r1
|
||||
+ stmfd sp!, {r8, lr}
|
||||
+ mov r8, r1
|
||||
mov lr, r1
|
||||
|
||||
2: subs r2, r2, #64
|
||||
- stmgeia r0!, {r1, r3, ip, lr} @ 64 bytes at a time.
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
- stmgeia r0!, {r1, r3, ip, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time.
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
+ stmgeia ip!, {r1, r3, r8, lr}
|
||||
bgt 2b
|
||||
- ldmeqfd sp!, {pc} @ Now <64 bytes to go.
|
||||
+ ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go.
|
||||
/*
|
||||
* No need to correct the count; we're only testing bits from now on
|
||||
*/
|
||||
tst r2, #32
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
tst r2, #16
|
||||
- stmneia r0!, {r1, r3, ip, lr}
|
||||
- ldr lr, [sp], #4
|
||||
+ stmneia ip!, {r1, r3, r8, lr}
|
||||
+ ldmfd sp!, {r8, lr}
|
||||
|
||||
#else
|
||||
|
||||
@@ -74,54 +77,54 @@ ENTRY(memset)
|
||||
* whole cache lines at once.
|
||||
*/
|
||||
|
||||
- stmfd sp!, {r4-r7, lr}
|
||||
+ stmfd sp!, {r4-r8, lr}
|
||||
mov r4, r1
|
||||
mov r5, r1
|
||||
mov r6, r1
|
||||
mov r7, r1
|
||||
- mov ip, r1
|
||||
+ mov r8, r1
|
||||
mov lr, r1
|
||||
|
||||
cmp r2, #96
|
||||
- tstgt r0, #31
|
||||
+ tstgt ip, #31
|
||||
ble 3f
|
||||
|
||||
- and ip, r0, #31
|
||||
- rsb ip, ip, #32
|
||||
- sub r2, r2, ip
|
||||
- movs ip, ip, lsl #(32 - 4)
|
||||
- stmcsia r0!, {r4, r5, r6, r7}
|
||||
- stmmiia r0!, {r4, r5}
|
||||
- tst ip, #(1 << 30)
|
||||
- mov ip, r1
|
||||
- strne r1, [r0], #4
|
||||
+ and r8, ip, #31
|
||||
+ rsb r8, r8, #32
|
||||
+ sub r2, r2, r8
|
||||
+ movs r8, r8, lsl #(32 - 4)
|
||||
+ stmcsia ip!, {r4, r5, r6, r7}
|
||||
+ stmmiia ip!, {r4, r5}
|
||||
+ tst r8, #(1 << 30)
|
||||
+ mov r8, r1
|
||||
+ strne r1, [ip], #4
|
||||
|
||||
3: subs r2, r2, #64
|
||||
- stmgeia r0!, {r1, r3-r7, ip, lr}
|
||||
- stmgeia r0!, {r1, r3-r7, ip, lr}
|
||||
+ stmgeia ip!, {r1, r3-r8, lr}
|
||||
+ stmgeia ip!, {r1, r3-r8, lr}
|
||||
bgt 3b
|
||||
- ldmeqfd sp!, {r4-r7, pc}
|
||||
+ ldmeqfd sp!, {r4-r8, pc}
|
||||
|
||||
tst r2, #32
|
||||
- stmneia r0!, {r1, r3-r7, ip, lr}
|
||||
+ stmneia ip!, {r1, r3-r8, lr}
|
||||
tst r2, #16
|
||||
- stmneia r0!, {r4-r7}
|
||||
- ldmfd sp!, {r4-r7, lr}
|
||||
+ stmneia ip!, {r4-r7}
|
||||
+ ldmfd sp!, {r4-r8, lr}
|
||||
|
||||
#endif
|
||||
|
||||
4: tst r2, #8
|
||||
- stmneia r0!, {r1, r3}
|
||||
+ stmneia ip!, {r1, r3}
|
||||
tst r2, #4
|
||||
- strne r1, [r0], #4
|
||||
+ strne r1, [ip], #4
|
||||
/*
|
||||
* When we get here, we've got less than 4 bytes to zero. We
|
||||
* may have an unaligned pointer as well.
|
||||
*/
|
||||
5: tst r2, #2
|
||||
- strneb r1, [r0], #1
|
||||
- strneb r1, [r0], #1
|
||||
+ strneb r1, [ip], #1
|
||||
+ strneb r1, [ip], #1
|
||||
tst r2, #1
|
||||
- strneb r1, [r0], #1
|
||||
+ strneb r1, [ip], #1
|
||||
mov pc, lr
|
||||
ENDPROC(memset)
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
From 2ba23fa6c4128febaaf57fe184420a7111caa237 Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Pitre <nicolas.pitre@linaro.org>
|
||||
Date: Tue, 12 Mar 2013 13:00:42 +0100
|
||||
Subject: [PATCH] ARM: 7670/1: fix the memset fix
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by
|
||||
recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
|
||||
with the memset return value. However the memset itself became broken
|
||||
by that patch for misaligned pointers.
|
||||
|
||||
This fixes the above by branching over the entry code from the
|
||||
misaligned fixup code to avoid reloading the original pointer.
|
||||
|
||||
Also, because the function entry alignment is wrong in the Thumb mode
|
||||
compilation, that fixup code is moved to the end.
|
||||
|
||||
While at it, the entry instructions are slightly reworked to help dual
|
||||
issue pipelines.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Nicolas Pitre <nico@linaro.org>
|
||||
Tested-by: Alexander Holler <holler@ahsoftware.de>
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
(cherry picked from commit 418df63adac56841ef6b0f1fcf435bc64d4ed177)
|
||||
---
|
||||
arch/arm/lib/memset.S | 33 +++++++++++++--------------------
|
||||
1 file changed, 13 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
|
||||
index d912e73..94b0650 100644
|
||||
--- a/arch/arm/lib/memset.S
|
||||
+++ b/arch/arm/lib/memset.S
|
||||
@@ -14,31 +14,15 @@
|
||||
|
||||
.text
|
||||
.align 5
|
||||
- .word 0
|
||||
-
|
||||
-1: subs r2, r2, #4 @ 1 do we have enough
|
||||
- blt 5f @ 1 bytes to align with?
|
||||
- cmp r3, #2 @ 1
|
||||
- strltb r1, [ip], #1 @ 1
|
||||
- strleb r1, [ip], #1 @ 1
|
||||
- strb r1, [ip], #1 @ 1
|
||||
- add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
-/*
|
||||
- * The pointer is now aligned and the length is adjusted. Try doing the
|
||||
- * memset again.
|
||||
- */
|
||||
|
||||
ENTRY(memset)
|
||||
-/*
|
||||
- * Preserve the contents of r0 for the return value.
|
||||
- */
|
||||
- mov ip, r0
|
||||
- ands r3, ip, #3 @ 1 unaligned?
|
||||
- bne 1b @ 1
|
||||
+ ands r3, r0, #3 @ 1 unaligned?
|
||||
+ mov ip, r0 @ preserve r0 as return value
|
||||
+ bne 6f @ 1
|
||||
/*
|
||||
* we know that the pointer in ip is aligned to a word boundary.
|
||||
*/
|
||||
- orr r1, r1, r1, lsl #8
|
||||
+1: orr r1, r1, r1, lsl #8
|
||||
orr r1, r1, r1, lsl #16
|
||||
mov r3, r1
|
||||
cmp r2, #16
|
||||
@@ -127,4 +111,13 @@ ENTRY(memset)
|
||||
tst r2, #1
|
||||
strneb r1, [ip], #1
|
||||
mov pc, lr
|
||||
+
|
||||
+6: subs r2, r2, #4 @ 1 do we have enough
|
||||
+ blt 5b @ 1 bytes to align with?
|
||||
+ cmp r3, #2 @ 1
|
||||
+ strltb r1, [ip], #1 @ 1
|
||||
+ strleb r1, [ip], #1 @ 1
|
||||
+ strb r1, [ip], #1 @ 1
|
||||
+ add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||
+ b 1b
|
||||
ENDPROC(memset)
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From d8601292ae25e0af47aa4486055221ab44113f0e Mon Sep 17 00:00:00 2001
|
||||
From: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
|
||||
Date: Mon, 15 Jul 2013 15:34:54 -0500
|
||||
Subject: [PATCH] ENGR00271136 Fix build break when CONFIG_CLK_DEBUG is
|
||||
disabled
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
clk structure member name is defined only when CONFIG_CLK_DEBUG is enabled.
|
||||
Hence need to encapsulate the code with this config.
|
||||
|
||||
Patch received from imx community:
|
||||
https://community.freescale.com/thread/308482
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: xiongweihuang
|
||||
Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
|
||||
---
|
||||
arch/arm/plat-mxc/clock.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c
|
||||
index 93347eb..1aa2664 100755
|
||||
--- a/arch/arm/plat-mxc/clock.c
|
||||
+++ b/arch/arm/plat-mxc/clock.c
|
||||
@@ -58,12 +58,12 @@ static void __clk_disable(struct clk *clk)
|
||||
{
|
||||
if (clk == NULL || IS_ERR(clk))
|
||||
return;
|
||||
-
|
||||
+#ifdef CONFIG_CLK_DEBUG
|
||||
if (!clk->usecount) {
|
||||
WARN(1, "clock enable/disable mismatch! clk %s\n", clk->name);
|
||||
return;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
if (!(--clk->usecount)) {
|
||||
if (clk->disable)
|
||||
clk->disable(clk);
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
From 538f4bb2f7a51f267395550a5be9f0ab2e426712 Mon Sep 17 00:00:00 2001
|
||||
From: Erik Boto <erik.boto@pelagicore.com>
|
||||
Date: Tue, 16 Jul 2013 12:06:05 -0500
|
||||
Subject: [PATCH] ENGR00271359 Add Multi-touch support
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
The previous behavior of the driver did not work properly with Qt5
|
||||
QtQuick multi touch-point gestures, due to how touch-points are
|
||||
reported when removing a touch-point. My interpretation of the
|
||||
available documentation [1] was that the driver should report all
|
||||
touch-points between SYN_REPORTs, but it is not explicitly stated so.
|
||||
I've found another mail-thread [2] where the creator of the protocol
|
||||
states:
|
||||
|
||||
"The protocol defines a generic way of sending a variable amount of
|
||||
contacts. The contact count is obtained by counting the number of
|
||||
non-empty finger packets between SYN_REPORT events."-Henrik Rydberg
|
||||
|
||||
I think this verifies my assumption that all touch-points should be
|
||||
reported between SYN_REPORTs, otherwise it can not be used to obtain
|
||||
the count.
|
||||
|
||||
[1] https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt
|
||||
[2] http://lists.x.org/archives/xorg-devel/2010-March/006466.html
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Erik Boto <erik.boto@pelagicore.com>
|
||||
Signed-off-by: Mahesh Mahadevan <Mahesh.Mahadevan@freescale.com>
|
||||
(cherry picked from commit 7cba001c5a502680f6dbf902821726779a9c9287)
|
||||
---
|
||||
drivers/input/touchscreen/egalax_ts.c | 36 +++++++++++++++++------------------
|
||||
1 file changed, 18 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
|
||||
index 0b6cde7..271f820 100644
|
||||
--- a/drivers/input/touchscreen/egalax_ts.c
|
||||
+++ b/drivers/input/touchscreen/egalax_ts.c
|
||||
@@ -133,7 +133,6 @@ retry:
|
||||
}
|
||||
|
||||
if (down) {
|
||||
- /* should also report old pointers */
|
||||
events[id].valid = valid;
|
||||
events[id].status = down;
|
||||
events[id].x = x;
|
||||
@@ -144,23 +143,6 @@ retry:
|
||||
input_report_abs(input_dev, ABS_Y, y);
|
||||
input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1);
|
||||
input_report_abs(input_dev, ABS_PRESSURE, 1);
|
||||
-#else
|
||||
- for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
|
||||
- if (!events[i].valid)
|
||||
- continue;
|
||||
- dev_dbg(&client->dev, "report id:%d valid:%d x:%d y:%d",
|
||||
- i, valid, x, y);
|
||||
-
|
||||
- input_report_abs(input_dev,
|
||||
- ABS_MT_TRACKING_ID, i);
|
||||
- input_report_abs(input_dev,
|
||||
- ABS_MT_TOUCH_MAJOR, 1);
|
||||
- input_report_abs(input_dev,
|
||||
- ABS_MT_POSITION_X, events[i].x);
|
||||
- input_report_abs(input_dev,
|
||||
- ABS_MT_POSITION_Y, events[i].y);
|
||||
- input_mt_sync(input_dev);
|
||||
- }
|
||||
#endif
|
||||
} else {
|
||||
dev_dbg(&client->dev, "release id:%d\n", id);
|
||||
@@ -176,6 +158,24 @@ retry:
|
||||
#endif
|
||||
}
|
||||
|
||||
+#ifndef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH
|
||||
+ /* report all pointers */
|
||||
+ for (i = 0; i < MAX_SUPPORT_POINTS; i++) {
|
||||
+ if (!events[i].valid)
|
||||
+ continue;
|
||||
+ dev_dbg(&client->dev, "report id:%d valid:%d x:%d y:%d",
|
||||
+ i, valid, x, y);
|
||||
+ input_report_abs(input_dev,
|
||||
+ ABS_MT_TRACKING_ID, i);
|
||||
+ input_report_abs(input_dev,
|
||||
+ ABS_MT_TOUCH_MAJOR, 1);
|
||||
+ input_report_abs(input_dev,
|
||||
+ ABS_MT_POSITION_X, events[i].x);
|
||||
+ input_report_abs(input_dev,
|
||||
+ ABS_MT_POSITION_Y, events[i].y);
|
||||
+ input_mt_sync(input_dev);
|
||||
+ }
|
||||
+#endif
|
||||
input_sync(input_dev);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
|
@ -0,0 +1,227 @@
|
|||
From 3e6441d113f72b412081a2c87f39011e4c253a35 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Winkler <robert.winkler@boundarydevices.com>
|
||||
Date: Fri, 19 Jul 2013 19:00:41 -0700
|
||||
Subject: [PATCH] Add support for DVI monitors
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Robert Winkler <robert.winkler@boundarydevices.com>
|
||||
---
|
||||
arch/arm/plat-mxc/include/mach/mxc_hdmi.h | 7 +++
|
||||
drivers/video/mxc_hdmi.c | 98 +++++++++++++------------------
|
||||
2 files changed, 49 insertions(+), 56 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/plat-mxc/include/mach/mxc_hdmi.h b/arch/arm/plat-mxc/include/mach/mxc_hdmi.h
|
||||
index 94f7638..af59c62 100644
|
||||
--- a/arch/arm/plat-mxc/include/mach/mxc_hdmi.h
|
||||
+++ b/arch/arm/plat-mxc/include/mach/mxc_hdmi.h
|
||||
@@ -605,6 +605,10 @@ enum {
|
||||
HDMI_IH_MUTE_PHY_STAT0_TX_PHY_LOCK = 0x2,
|
||||
HDMI_IH_MUTE_PHY_STAT0_HPD = 0x1,
|
||||
|
||||
+/* IH and IH_MUTE convenience macro RX_SENSE | HPD*/
|
||||
+ HDMI_DVI_IH_STAT = 0x3D,
|
||||
+
|
||||
+
|
||||
/* IH_AHBDMAAUD_STAT0 field values */
|
||||
HDMI_IH_AHBDMAAUD_STAT0_ERROR = 0x20,
|
||||
HDMI_IH_AHBDMAAUD_STAT0_LOST = 0x10,
|
||||
@@ -903,6 +907,9 @@ enum {
|
||||
HDMI_PHY_HPD = 0x02,
|
||||
HDMI_PHY_TX_PHY_LOCK = 0x01,
|
||||
|
||||
+/* HDMI STAT convenience RX_SENSE | HPD */
|
||||
+ HDMI_DVI_STAT = 0xF2,
|
||||
+
|
||||
/* PHY_I2CM_SLAVE_ADDR field values */
|
||||
HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 = 0x69,
|
||||
HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49,
|
||||
diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c
|
||||
index c5069aa..544f352 100644
|
||||
--- a/drivers/video/mxc_hdmi.c
|
||||
+++ b/drivers/video/mxc_hdmi.c
|
||||
@@ -180,7 +180,6 @@ struct mxc_hdmi {
|
||||
bool dft_mode_set;
|
||||
char *dft_mode_str;
|
||||
int default_bpp;
|
||||
- u8 latest_intr_stat;
|
||||
bool irq_enabled;
|
||||
spinlock_t irq_lock;
|
||||
bool phy_enabled;
|
||||
@@ -1996,58 +1995,48 @@ static void hotplug_worker(struct work_struct *work)
|
||||
struct delayed_work *delay_work = to_delayed_work(work);
|
||||
struct mxc_hdmi *hdmi =
|
||||
container_of(delay_work, struct mxc_hdmi, hotplug_work);
|
||||
- u32 phy_int_stat, phy_int_pol, phy_int_mask;
|
||||
- u8 val;
|
||||
+ u32 hdmi_phy_stat0, hdmi_phy_pol0, hdmi_phy_mask0;
|
||||
unsigned long flags;
|
||||
char event_string[32];
|
||||
char *envp[] = { event_string, NULL };
|
||||
|
||||
- phy_int_stat = hdmi->latest_intr_stat;
|
||||
- phy_int_pol = hdmi_readb(HDMI_PHY_POL0);
|
||||
|
||||
- dev_dbg(&hdmi->pdev->dev, "phy_int_stat=0x%x, phy_int_pol=0x%x\n",
|
||||
- phy_int_stat, phy_int_pol);
|
||||
+ hdmi_phy_stat0 = hdmi_readb(HDMI_PHY_STAT0);
|
||||
+ hdmi_phy_pol0 = hdmi_readb(HDMI_PHY_POL0);
|
||||
+
|
||||
+ dev_dbg(&hdmi->pdev->dev, "hdmi_phy_stat0=0x%x, hdmi_phy_pol0=0x%x\n",
|
||||
+ hdmi_phy_stat0, hdmi_phy_pol0);
|
||||
+
|
||||
+ /* Make HPD intr active low to capture unplug event or
|
||||
+ * active high to capture plugin event */
|
||||
+ hdmi_writeb((HDMI_DVI_STAT & ~hdmi_phy_stat0), HDMI_PHY_POL0);
|
||||
|
||||
/* check cable status */
|
||||
- if (phy_int_stat & HDMI_IH_PHY_STAT0_HPD) {
|
||||
- /* cable connection changes */
|
||||
- if (phy_int_pol & HDMI_PHY_HPD) {
|
||||
- /* Plugin event */
|
||||
- dev_dbg(&hdmi->pdev->dev, "EVENT=plugin\n");
|
||||
- mxc_hdmi_cable_connected(hdmi);
|
||||
-
|
||||
- /* Make HPD intr active low to capture unplug event */
|
||||
- val = hdmi_readb(HDMI_PHY_POL0);
|
||||
- val &= ~HDMI_PHY_HPD;
|
||||
- hdmi_writeb(val, HDMI_PHY_POL0);
|
||||
-
|
||||
- sprintf(event_string, "EVENT=plugin");
|
||||
- kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
|
||||
+ if (hdmi_phy_stat0 & HDMI_DVI_STAT) {
|
||||
+ /* Plugin event */
|
||||
+ dev_dbg(&hdmi->pdev->dev, "EVENT=plugin\n");
|
||||
+ mxc_hdmi_cable_connected(hdmi);
|
||||
+
|
||||
+ sprintf(event_string, "EVENT=plugin");
|
||||
+ kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
|
||||
#ifdef CONFIG_MXC_HDMI_CEC
|
||||
- mxc_hdmi_cec_handle(0x80);
|
||||
+ mxc_hdmi_cec_handle(0x80);
|
||||
#endif
|
||||
- hdmi_set_cable_state(1);
|
||||
-
|
||||
- } else if (!(phy_int_pol & HDMI_PHY_HPD)) {
|
||||
- /* Plugout event */
|
||||
- dev_dbg(&hdmi->pdev->dev, "EVENT=plugout\n");
|
||||
- hdmi_set_cable_state(0);
|
||||
- mxc_hdmi_abort_stream();
|
||||
- mxc_hdmi_cable_disconnected(hdmi);
|
||||
+ hdmi_set_cable_state(1);
|
||||
|
||||
- /* Make HPD intr active high to capture plugin event */
|
||||
- val = hdmi_readb(HDMI_PHY_POL0);
|
||||
- val |= HDMI_PHY_HPD;
|
||||
- hdmi_writeb(val, HDMI_PHY_POL0);
|
||||
+ } else {
|
||||
+ /* Plugout event */
|
||||
+ dev_dbg(&hdmi->pdev->dev, "EVENT=plugout\n");
|
||||
+ hdmi_set_cable_state(0);
|
||||
+ mxc_hdmi_abort_stream();
|
||||
+ mxc_hdmi_cable_disconnected(hdmi);
|
||||
|
||||
- sprintf(event_string, "EVENT=plugout");
|
||||
- kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
|
||||
+ sprintf(event_string, "EVENT=plugout");
|
||||
+ kobject_uevent_env(&hdmi->pdev->dev.kobj, KOBJ_CHANGE, envp);
|
||||
#ifdef CONFIG_MXC_HDMI_CEC
|
||||
- mxc_hdmi_cec_handle(0x100);
|
||||
+ mxc_hdmi_cec_handle(0x100);
|
||||
#endif
|
||||
|
||||
- } else
|
||||
- dev_dbg(&hdmi->pdev->dev, "EVENT=none?\n");
|
||||
}
|
||||
|
||||
/* Lock here to ensure full powerdown sequence
|
||||
@@ -2055,12 +2044,12 @@ static void hotplug_worker(struct work_struct *work)
|
||||
spin_lock_irqsave(&hdmi->irq_lock, flags);
|
||||
|
||||
/* Re-enable HPD interrupts */
|
||||
- phy_int_mask = hdmi_readb(HDMI_PHY_MASK0);
|
||||
- phy_int_mask &= ~HDMI_PHY_HPD;
|
||||
- hdmi_writeb(phy_int_mask, HDMI_PHY_MASK0);
|
||||
+ hdmi_phy_mask0 = hdmi_readb(HDMI_PHY_MASK0);
|
||||
+ hdmi_phy_mask0 &= ~HDMI_DVI_STAT;
|
||||
+ hdmi_writeb(hdmi_phy_mask0, HDMI_PHY_MASK0);
|
||||
|
||||
/* Unmute interrupts */
|
||||
- hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
|
||||
+ hdmi_writeb(~HDMI_DVI_IH_STAT, HDMI_IH_MUTE_PHY_STAT0);
|
||||
|
||||
if (hdmi_readb(HDMI_IH_FC_STAT2) & HDMI_IH_FC_STAT2_OVERFLOW_MASK)
|
||||
mxc_hdmi_clear_overflow();
|
||||
@@ -2086,7 +2075,7 @@ static void hdcp_hdp_worker(struct work_struct *work)
|
||||
static irqreturn_t mxc_hdmi_hotplug(int irq, void *data)
|
||||
{
|
||||
struct mxc_hdmi *hdmi = data;
|
||||
- u8 val, intr_stat;
|
||||
+ u8 val;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&hdmi->irq_lock, flags);
|
||||
@@ -2108,25 +2097,22 @@ static irqreturn_t mxc_hdmi_hotplug(int irq, void *data)
|
||||
* HDMI registers.
|
||||
*/
|
||||
/* Capture status - used in hotplug_worker ISR */
|
||||
- intr_stat = hdmi_readb(HDMI_IH_PHY_STAT0);
|
||||
-
|
||||
- if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
|
||||
+ if (hdmi_readb(HDMI_IH_PHY_STAT0) & HDMI_DVI_IH_STAT) {
|
||||
|
||||
dev_dbg(&hdmi->pdev->dev, "Hotplug interrupt received\n");
|
||||
- hdmi->latest_intr_stat = intr_stat;
|
||||
|
||||
/* Mute interrupts until handled */
|
||||
|
||||
val = hdmi_readb(HDMI_IH_MUTE_PHY_STAT0);
|
||||
- val |= HDMI_IH_MUTE_PHY_STAT0_HPD;
|
||||
+ val |= HDMI_DVI_IH_STAT;
|
||||
hdmi_writeb(val, HDMI_IH_MUTE_PHY_STAT0);
|
||||
|
||||
val = hdmi_readb(HDMI_PHY_MASK0);
|
||||
- val |= HDMI_PHY_HPD;
|
||||
+ val |= HDMI_DVI_STAT;
|
||||
hdmi_writeb(val, HDMI_PHY_MASK0);
|
||||
|
||||
/* Clear Hotplug interrupts */
|
||||
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
|
||||
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
|
||||
|
||||
schedule_delayed_work(&(hdmi->hotplug_work), msecs_to_jiffies(20));
|
||||
}
|
||||
@@ -2282,13 +2268,13 @@ static void mxc_hdmi_fb_registered(struct mxc_hdmi *hdmi)
|
||||
HDMI_PHY_I2CM_CTLINT_ADDR);
|
||||
|
||||
/* enable cable hot plug irq */
|
||||
- hdmi_writeb((u8)~HDMI_PHY_HPD, HDMI_PHY_MASK0);
|
||||
+ hdmi_writeb((u8)~HDMI_DVI_STAT, HDMI_PHY_MASK0);
|
||||
|
||||
/* Clear Hotplug interrupts */
|
||||
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
|
||||
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
|
||||
|
||||
/* Unmute interrupts */
|
||||
- hdmi_writeb(~HDMI_IH_MUTE_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0);
|
||||
+ hdmi_writeb(~HDMI_DVI_IH_STAT, HDMI_IH_MUTE_PHY_STAT0);
|
||||
|
||||
hdmi->fb_reg = true;
|
||||
|
||||
@@ -2522,10 +2508,10 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_handle *disp,
|
||||
|
||||
/* Configure registers related to HDMI interrupt
|
||||
* generation before registering IRQ. */
|
||||
- hdmi_writeb(HDMI_PHY_HPD, HDMI_PHY_POL0);
|
||||
+ hdmi_writeb(HDMI_DVI_STAT, HDMI_PHY_POL0);
|
||||
|
||||
/* Clear Hotplug interrupts */
|
||||
- hdmi_writeb(HDMI_IH_PHY_STAT0_HPD, HDMI_IH_PHY_STAT0);
|
||||
+ hdmi_writeb(HDMI_DVI_IH_STAT, HDMI_IH_PHY_STAT0);
|
||||
|
||||
hdmi->nb.notifier_call = mxc_hdmi_fb_event;
|
||||
ret = fb_register_client(&hdmi->nb);
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
From b37a944f55a5010bd08297a63db0275540922f32 Mon Sep 17 00:00:00 2001
|
||||
From: Otavio Salvador <otavio@ossystems.com.br>
|
||||
Date: Thu, 22 Aug 2013 16:31:29 -0300
|
||||
Subject: [PATCH] drm/vivante: Add ":00" sufix in returned bus Id
|
||||
|
||||
This makes the 3.0.35 compatible with a Xorg driver build for 3.5.7 or
|
||||
newer kernels.
|
||||
|
||||
Upstream-Status: Inapropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
||||
---
|
||||
drivers/gpu/drm/vivante/vivante_drv.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/vivante/vivante_drv.c b/drivers/gpu/drm/vivante/vivante_drv.c
|
||||
index 4224608..cea360d 100644
|
||||
--- a/drivers/gpu/drm/vivante/vivante_drv.c
|
||||
+++ b/drivers/gpu/drm/vivante/vivante_drv.c
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
#include "drm_pciids.h"
|
||||
|
||||
-static char platformdevicename[] = "Vivante GCCore";
|
||||
+static char platformdevicename[] = "Vivante GCCore:00";
|
||||
static struct platform_device *pplatformdev;
|
||||
|
||||
static struct drm_driver driver = {
|
||||
--
|
||||
1.8.4.rc1
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
From 149545df26169d257b144ff78934ce9cb5b6818b Mon Sep 17 00:00:00 2001
|
||||
From: Otavio Salvador <otavio@ossystems.com.br>
|
||||
Date: Sat, 19 Oct 2013 10:55:11 -0300
|
||||
Subject: [PATCH] epdc: Rename mxcfb_epdc_kernel.h to mxc_epdc.h
|
||||
Organization: O.S. Systems Software LTDA.
|
||||
|
||||
This allow for forward compatibility with imx-test >= 3.10.9-1.0.0.
|
||||
|
||||
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
||||
---
|
||||
drivers/video/mxc/mxc_epdc_fb.c | 2 +-
|
||||
include/linux/mxcfb_epdc.h | 49 +++++++++++++++++++++++++++++++++++++++
|
||||
include/linux/mxcfb_epdc_kernel.h | 49 ---------------------------------------
|
||||
3 files changed, 50 insertions(+), 50 deletions(-)
|
||||
create mode 100644 include/linux/mxcfb_epdc.h
|
||||
delete mode 100644 include/linux/mxcfb_epdc_kernel.h
|
||||
|
||||
diff --git a/drivers/video/mxc/mxc_epdc_fb.c b/drivers/video/mxc/mxc_epdc_fb.c
|
||||
index 4103498..b3ef8ea 100644
|
||||
--- a/drivers/video/mxc/mxc_epdc_fb.c
|
||||
+++ b/drivers/video/mxc/mxc_epdc_fb.c
|
||||
@@ -43,7 +43,7 @@
|
||||
#include <linux/dmaengine.h>
|
||||
#include <linux/pxp_dma.h>
|
||||
#include <linux/mxcfb.h>
|
||||
-#include <linux/mxcfb_epdc_kernel.h>
|
||||
+#include <linux/mxcfb_epdc.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/regulator/driver.h>
|
||||
#include <linux/fsl_devices.h>
|
||||
diff --git a/include/linux/mxcfb_epdc.h b/include/linux/mxcfb_epdc.h
|
||||
new file mode 100644
|
||||
index 0000000..06fea6f
|
||||
--- /dev/null
|
||||
+++ b/include/linux/mxcfb_epdc.h
|
||||
@@ -0,0 +1,49 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2010-2012 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+ *
|
||||
+ */
|
||||
+#ifndef _MXCFB_EPDC_KERNEL
|
||||
+#define _MXCFB_EPDC_KERNEL
|
||||
+
|
||||
+void mxc_epdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_epdc_fb_set_temperature(int temperature, struct fb_info *info);
|
||||
+int mxc_epdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info);
|
||||
+int mxc_epdc_fb_send_update(struct mxcfb_update_data *upd_data,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_epdc_fb_wait_update_complete(
|
||||
+ struct mxcfb_update_marker_data *marker_data,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_epdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_epdc_get_pwrdown_delay(struct fb_info *info);
|
||||
+int mxc_epdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
|
||||
+
|
||||
+void mxc_spdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_spdc_fb_set_temperature(int temperature, struct fb_info *info);
|
||||
+int mxc_spdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info);
|
||||
+int mxc_spdc_fb_send_update(struct mxcfb_update_data *upd_data,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_spdc_fb_wait_update_complete(
|
||||
+ struct mxcfb_update_marker_data *marker_data,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_spdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
|
||||
+ struct fb_info *info);
|
||||
+int mxc_spdc_get_pwrdown_delay(struct fb_info *info);
|
||||
+int mxc_spdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
|
||||
+#endif
|
||||
diff --git a/include/linux/mxcfb_epdc_kernel.h b/include/linux/mxcfb_epdc_kernel.h
|
||||
deleted file mode 100644
|
||||
index 06fea6f..0000000
|
||||
--- a/include/linux/mxcfb_epdc_kernel.h
|
||||
+++ /dev/null
|
||||
@@ -1,49 +0,0 @@
|
||||
-/*
|
||||
- * Copyright (C) 2010-2012 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 2 of the License, or
|
||||
- * (at your option) any later version.
|
||||
- *
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
- *
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with this program; if not, write to the Free Software
|
||||
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
- *
|
||||
- */
|
||||
-#ifndef _MXCFB_EPDC_KERNEL
|
||||
-#define _MXCFB_EPDC_KERNEL
|
||||
-
|
||||
-void mxc_epdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
|
||||
- struct fb_info *info);
|
||||
-int mxc_epdc_fb_set_temperature(int temperature, struct fb_info *info);
|
||||
-int mxc_epdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info);
|
||||
-int mxc_epdc_fb_send_update(struct mxcfb_update_data *upd_data,
|
||||
- struct fb_info *info);
|
||||
-int mxc_epdc_fb_wait_update_complete(
|
||||
- struct mxcfb_update_marker_data *marker_data,
|
||||
- struct fb_info *info);
|
||||
-int mxc_epdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
|
||||
- struct fb_info *info);
|
||||
-int mxc_epdc_get_pwrdown_delay(struct fb_info *info);
|
||||
-int mxc_epdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
|
||||
-
|
||||
-void mxc_spdc_fb_set_waveform_modes(struct mxcfb_waveform_modes *modes,
|
||||
- struct fb_info *info);
|
||||
-int mxc_spdc_fb_set_temperature(int temperature, struct fb_info *info);
|
||||
-int mxc_spdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info);
|
||||
-int mxc_spdc_fb_send_update(struct mxcfb_update_data *upd_data,
|
||||
- struct fb_info *info);
|
||||
-int mxc_spdc_fb_wait_update_complete(
|
||||
- struct mxcfb_update_marker_data *marker_data,
|
||||
- struct fb_info *info);
|
||||
-int mxc_spdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
|
||||
- struct fb_info *info);
|
||||
-int mxc_spdc_get_pwrdown_delay(struct fb_info *info);
|
||||
-int mxc_spdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
|
||||
-#endif
|
||||
--
|
||||
1.8.4.rc3
|
||||
|
25
recipes-kernel/linux/linux-congatec_3.0.35.bb
Normal file
25
recipes-kernel/linux/linux-congatec_3.0.35.bb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Copyright (C) 2011-2013 Freescale Semiconductor
|
||||
# Copyright (C) 2012-2014 O.S. Systems Software LTDA.
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
include recipes-kernel/linux/linux-imx.inc
|
||||
|
||||
# Revision of 4.1.0 branch
|
||||
SRCREV = "bdde708ebfde4a8c1d3829578d3f6481a343533a"
|
||||
LOCALVERSION = "-4.1.0+yocto"
|
||||
SRCBRANCH = "imx_3.0.35_4.1.0"
|
||||
|
||||
# Patches need for Yocto and not applied by Freescale when doing 4.1.0 branch
|
||||
SRC_URI += "file://drm-vivante-Add-00-sufix-in-returned-bus-Id.patch \
|
||||
file://epdc-Rename-mxcfb_epdc_kernel.h-to-mxc_epdc.h.patch \
|
||||
file://0001-perf-tools-Fix-getrusage-related-build-failure-on-gl.patch \
|
||||
file://0002-ARM-7668-1-fix-memset-related-crashes-caused-by-rece.patch \
|
||||
file://0003-ARM-7670-1-fix-the-memset-fix.patch \
|
||||
file://0004-ENGR00271136-Fix-build-break-when-CONFIG_CLK_DEBUG-i.patch \
|
||||
file://0005-ENGR00271359-Add-Multi-touch-support.patch \
|
||||
file://0006-Add-support-for-DVI-monitors.patch \
|
||||
file://0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch \
|
||||
file://ENGR00278350-gpu-viante-4.6.9p13-kernel-part-integra.patch \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "(cgtqmx6)"
|
|
@ -1,3 +0,0 @@
|
|||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
|
||||
|
||||
SRC_URI_append_cgtqmx6 = " file://cgtqmx6/0001-Add-linux-support-for-congatec-evaluation-board-qmx6q.patch"
|
Loading…
Reference in New Issue
Block a user