[armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS entries.
svn path=/dists/sid/linux/; revision=22429
This commit is contained in:
parent
be95361530
commit
30d5866ed6
|
@ -162,6 +162,8 @@ linux (3.16.7-ckt7-1) UNRELEASED; urgency=medium
|
|||
[ Ian Campbell ]
|
||||
* [armhf] Add DTB for Olimex A20-OLinuXino-LIME2. (Closes: #777455)
|
||||
* [armhf] Enable CONFIG_BACKLIGHT_GPIO as a module. (Closes: #778783)
|
||||
* [armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS
|
||||
entries.
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* shm: add memfd.h to UAPI export list, so kdbus will build
|
||||
|
|
60
debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
vendored
Normal file
60
debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
From f819ccbe992cfec6081acef7c5a06d770178b03e Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 13:26:53 +0100
|
||||
Subject: [PATCH 04/15] simplefb: Add support for enumerating simplefb dt nodes
|
||||
in /chosen
|
||||
Origin: https://git.kernel.org/linus/89c95001c00089836415aa7a78848ec2dec9f922
|
||||
|
||||
Update simplefb to support the new preferred location for simplefb dt nodes
|
||||
under /chosen.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 23 ++++++++++++++++++++++-
|
||||
1 file changed, 22 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index d192946..74c5edd 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <linux/platform_data/simplefb.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/clk-provider.h>
|
||||
+#include <linux/of_platform.h>
|
||||
|
||||
static struct fb_fix_screeninfo simplefb_fix = {
|
||||
.id = "simple",
|
||||
@@ -392,7 +393,27 @@ static struct platform_driver simplefb_driver = {
|
||||
.probe = simplefb_probe,
|
||||
.remove = simplefb_remove,
|
||||
};
|
||||
-module_platform_driver(simplefb_driver);
|
||||
+
|
||||
+static int __init simplefb_init(void)
|
||||
+{
|
||||
+ int ret;
|
||||
+ struct device_node *np;
|
||||
+
|
||||
+ ret = platform_driver_register(&simplefb_driver);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ if (IS_ENABLED(CONFIG_OF) && of_chosen) {
|
||||
+ for_each_child_of_node(of_chosen, np) {
|
||||
+ if (of_device_is_compatible(np, "simple-framebuffer"))
|
||||
+ of_platform_device_create(np, NULL, NULL);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+module_init(simplefb_init);
|
||||
|
||||
MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>");
|
||||
MODULE_DESCRIPTION("Simple framebuffer driver");
|
||||
--
|
||||
2.1.4
|
||||
|
36
debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
vendored
Normal file
36
debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
From 4fe57f1608272587892d50c524d98f96d311b115 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 13:26:55 +0100
|
||||
Subject: [PATCH 05/15] simplefb: Change simplefb_init from module_init to
|
||||
fs_initcall
|
||||
Origin: https://git.kernel.org/linus/0c5b240c7e0a7af56afd24db6570fa84d67728c2
|
||||
|
||||
One of the reasons for having the simplefb nodes in /chosen, and doing
|
||||
explicit enumeration of the nodes there, is too allow enumerating them sooner,
|
||||
so that we get a console earlier on.
|
||||
|
||||
Doing this earlier then fs_initcall is not useful, since the fb only turns
|
||||
into a console when fbcon intializes, which is a fs_initcall too.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index 74c5edd..8be9754 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -413,7 +413,7 @@ static int __init simplefb_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-module_init(simplefb_init);
|
||||
+fs_initcall(simplefb_init);
|
||||
|
||||
MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>");
|
||||
MODULE_DESCRIPTION("Simple framebuffer driver");
|
||||
--
|
||||
2.1.4
|
||||
|
39
debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
vendored
Normal file
39
debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
From b516039bf5ce5464bc9a6eefac50c87415c9f318 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 25 Nov 2014 12:13:30 +0100
|
||||
Subject: [PATCH 06/15] simplefb: Fix build errors when CONFIG_COMMON_CLK is
|
||||
not defined
|
||||
Origin: https://git.kernel.org/linus/8284731eb59e843a0608baf18828e0ad0d7f9d79
|
||||
|
||||
Both CONFIG_OF and CONFIG_COMMON_CLK must be defined to be able to use of
|
||||
clocks.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index 8be9754..b2ae925 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -169,13 +169,13 @@ static int simplefb_parse_pd(struct platform_device *pdev,
|
||||
|
||||
struct simplefb_par {
|
||||
u32 palette[PSEUDO_PALETTE_SIZE];
|
||||
-#ifdef CONFIG_OF
|
||||
+#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
|
||||
int clk_count;
|
||||
struct clk **clks;
|
||||
#endif
|
||||
};
|
||||
|
||||
-#ifdef CONFIG_OF
|
||||
+#if defined CONFIG_OF && defined CONFIG_COMMON_CLK
|
||||
/*
|
||||
* Clock handling code.
|
||||
*
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 28f3658954b8a749d9c7109b20f69019dd671252 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 5 Jan 2015 09:15:16 +0100
|
||||
Subject: [PATCH 07/15] simplefb: Fix build failure on Sparc
|
||||
Origin: https://git.kernel.org/linus/d9e020197d371c90ad56cc4be388fc95e0c08e6f
|
||||
|
||||
of_platform_device_create is only defined when CONFIG_OF_ADDRESS is set,
|
||||
which is normally always the case when CONFIG_OF is defined, except on Sparc,
|
||||
so explicitly check for CONFIG_OF_ADDRESS rather then for CONFIG_OF.
|
||||
|
||||
Reported-by: kbuild test robot <fengguang.wu@intel.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index b2ae925..c90503c 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -403,7 +403,7 @@ static int __init simplefb_init(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- if (IS_ENABLED(CONFIG_OF) && of_chosen) {
|
||||
+ if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) {
|
||||
for_each_child_of_node(of_chosen, np) {
|
||||
if (of_device_is_compatible(np, "simple-framebuffer"))
|
||||
of_platform_device_create(np, NULL, NULL);
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
From 26007c1238d7923f0ef8ff7aed10ed89ee5ef5c5 Mon Sep 17 00:00:00 2001
|
||||
From: Luc Verhaegen <libv@skynet.be>
|
||||
Date: Fri, 14 Nov 2014 13:26:50 +0100
|
||||
Subject: [PATCH 03/15] simplefb: add clock handling code
|
||||
Origin: https://git.kernel.org/linus/fc219bfd5b2e488e3c246990869cfde5ca235c89
|
||||
|
||||
This claims and enables clocks listed in the simple framebuffer dt node.
|
||||
This is needed so that the display engine, in case the required clocks
|
||||
are known by the kernel code and are described in the dt, will remain
|
||||
properly enabled.
|
||||
|
||||
Signed-off-by: Luc Verhaegen <libv@skynet.be>
|
||||
[hdegoede@redhat.com: Change clks from list to dynamic array]
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
|
||||
Acked-by: Grant Likely <grant.likely@linaro.org>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 108 ++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 107 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index cdcf1fe..d192946 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_data/simplefb.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/clk-provider.h>
|
||||
|
||||
static struct fb_fix_screeninfo simplefb_fix = {
|
||||
.id = "simple",
|
||||
@@ -167,8 +168,105 @@ static int simplefb_parse_pd(struct platform_device *pdev,
|
||||
|
||||
struct simplefb_par {
|
||||
u32 palette[PSEUDO_PALETTE_SIZE];
|
||||
+#ifdef CONFIG_OF
|
||||
+ int clk_count;
|
||||
+ struct clk **clks;
|
||||
+#endif
|
||||
};
|
||||
|
||||
+#ifdef CONFIG_OF
|
||||
+/*
|
||||
+ * Clock handling code.
|
||||
+ *
|
||||
+ * Here we handle the clocks property of our "simple-framebuffer" dt node.
|
||||
+ * This is necessary so that we can make sure that any clocks needed by
|
||||
+ * the display engine that the bootloader set up for us (and for which it
|
||||
+ * provided a simplefb dt node), stay up, for the life of the simplefb
|
||||
+ * driver.
|
||||
+ *
|
||||
+ * When the driver unloads, we cleanly disable, and then release the clocks.
|
||||
+ *
|
||||
+ * We only complain about errors here, no action is taken as the most likely
|
||||
+ * error can only happen due to a mismatch between the bootloader which set
|
||||
+ * up simplefb, and the clock definitions in the device tree. Chances are
|
||||
+ * that there are no adverse effects, and if there are, a clean teardown of
|
||||
+ * the fb probe will not help us much either. So just complain and carry on,
|
||||
+ * and hope that the user actually gets a working fb at the end of things.
|
||||
+ */
|
||||
+static int simplefb_clocks_init(struct simplefb_par *par,
|
||||
+ struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device_node *np = pdev->dev.of_node;
|
||||
+ struct clk *clock;
|
||||
+ int i, ret;
|
||||
+
|
||||
+ if (dev_get_platdata(&pdev->dev) || !np)
|
||||
+ return 0;
|
||||
+
|
||||
+ par->clk_count = of_clk_get_parent_count(np);
|
||||
+ if (par->clk_count <= 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ par->clks = kcalloc(par->clk_count, sizeof(struct clk *), GFP_KERNEL);
|
||||
+ if (!par->clks)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ for (i = 0; i < par->clk_count; i++) {
|
||||
+ clock = of_clk_get(np, i);
|
||||
+ if (IS_ERR(clock)) {
|
||||
+ if (PTR_ERR(clock) == -EPROBE_DEFER) {
|
||||
+ while (--i >= 0) {
|
||||
+ if (par->clks[i])
|
||||
+ clk_put(par->clks[i]);
|
||||
+ }
|
||||
+ kfree(par->clks);
|
||||
+ return -EPROBE_DEFER;
|
||||
+ }
|
||||
+ dev_err(&pdev->dev, "%s: clock %d not found: %ld\n",
|
||||
+ __func__, i, PTR_ERR(clock));
|
||||
+ continue;
|
||||
+ }
|
||||
+ par->clks[i] = clock;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < par->clk_count; i++) {
|
||||
+ if (par->clks[i]) {
|
||||
+ ret = clk_prepare_enable(par->clks[i]);
|
||||
+ if (ret) {
|
||||
+ dev_err(&pdev->dev,
|
||||
+ "%s: failed to enable clock %d: %d\n",
|
||||
+ __func__, i, ret);
|
||||
+ clk_put(par->clks[i]);
|
||||
+ par->clks[i] = NULL;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void simplefb_clocks_destroy(struct simplefb_par *par)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (!par->clks)
|
||||
+ return;
|
||||
+
|
||||
+ for (i = 0; i < par->clk_count; i++) {
|
||||
+ if (par->clks[i]) {
|
||||
+ clk_disable_unprepare(par->clks[i]);
|
||||
+ clk_put(par->clks[i]);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ kfree(par->clks);
|
||||
+}
|
||||
+#else
|
||||
+static int simplefb_clocks_init(struct simplefb_par *par,
|
||||
+ struct platform_device *pdev) { return 0; }
|
||||
+static void simplefb_clocks_destroy(struct simplefb_par *par) { }
|
||||
+#endif
|
||||
+
|
||||
static int simplefb_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
@@ -236,6 +334,10 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
}
|
||||
info->pseudo_palette = par->palette;
|
||||
|
||||
+ ret = simplefb_clocks_init(par, pdev);
|
||||
+ if (ret < 0)
|
||||
+ goto error_unmap;
|
||||
+
|
||||
dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
|
||||
info->fix.smem_start, info->fix.smem_len,
|
||||
info->screen_base);
|
||||
@@ -247,13 +349,15 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
ret = register_framebuffer(info);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
|
||||
- goto error_unmap;
|
||||
+ goto error_clocks;
|
||||
}
|
||||
|
||||
dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
|
||||
|
||||
return 0;
|
||||
|
||||
+error_clocks:
|
||||
+ simplefb_clocks_destroy(par);
|
||||
error_unmap:
|
||||
iounmap(info->screen_base);
|
||||
error_fb_release:
|
||||
@@ -264,8 +368,10 @@ error_fb_release:
|
||||
static int simplefb_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct fb_info *info = platform_get_drvdata(pdev);
|
||||
+ struct simplefb_par *par = info->par;
|
||||
|
||||
unregister_framebuffer(info);
|
||||
+ simplefb_clocks_destroy(par);
|
||||
framebuffer_release(info);
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
From e57f8f9adc3d2924c8bf312a66786885c84cd06c Mon Sep 17 00:00:00 2001
|
||||
From: Luc Verhaegen <libv@skynet.be>
|
||||
Date: Fri, 14 Nov 2014 13:26:49 +0100
|
||||
Subject: [PATCH 02/15] simplefb: add goto error path to probe
|
||||
Origin: https://git.kernel.org/linus/bf2fda157a9ab50f65da60a365ede3a5b529d025
|
||||
|
||||
Use the usual kernel style of goto error_foo to free resources on probe
|
||||
error. This is a preparation patch for adding clocks support.
|
||||
|
||||
While at it also update ioremap_wc error return from ENODEV to ENOMEM.
|
||||
|
||||
Signed-off-by: Luc Verhaegen <libv@skynet.be>
|
||||
Acked-by: Stephen Warren <swarren@nvidia.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
|
||||
Acked-by: Grant Likely <grant.likely@linaro.org>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index ec112c1..cdcf1fe 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -220,8 +220,8 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
|
||||
info->apertures = alloc_apertures(1);
|
||||
if (!info->apertures) {
|
||||
- framebuffer_release(info);
|
||||
- return -ENOMEM;
|
||||
+ ret = -ENOMEM;
|
||||
+ goto error_fb_release;
|
||||
}
|
||||
info->apertures->ranges[0].base = info->fix.smem_start;
|
||||
info->apertures->ranges[0].size = info->fix.smem_len;
|
||||
@@ -231,8 +231,8 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
info->screen_base = ioremap_wc(info->fix.smem_start,
|
||||
info->fix.smem_len);
|
||||
if (!info->screen_base) {
|
||||
- framebuffer_release(info);
|
||||
- return -ENODEV;
|
||||
+ ret = -ENOMEM;
|
||||
+ goto error_fb_release;
|
||||
}
|
||||
info->pseudo_palette = par->palette;
|
||||
|
||||
@@ -247,14 +247,18 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
ret = register_framebuffer(info);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
|
||||
- iounmap(info->screen_base);
|
||||
- framebuffer_release(info);
|
||||
- return ret;
|
||||
+ goto error_unmap;
|
||||
}
|
||||
|
||||
dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);
|
||||
|
||||
return 0;
|
||||
+
|
||||
+error_unmap:
|
||||
+ iounmap(info->screen_base);
|
||||
+error_fb_release:
|
||||
+ framebuffer_release(info);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static int simplefb_remove(struct platform_device *pdev)
|
||||
--
|
||||
2.1.4
|
||||
|
90
debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
vendored
Normal file
90
debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
From a3bf3921e8e032943cf39f17daa30d35f412e365 Mon Sep 17 00:00:00 2001
|
||||
From: Luc Verhaegen <libv@skynet.be>
|
||||
Date: Fri, 14 Nov 2014 13:26:48 +0100
|
||||
Subject: [PATCH 01/15] simplefb: formalize pseudo palette handling
|
||||
Origin: https://git.kernel.org/linus/1270be4a4fb852630280638cbb169b67c485b3e3
|
||||
|
||||
Add a proper struct describing simplefb private data, with the palette in there,
|
||||
instead of directly storing the palette in the fb_info->par pointer.
|
||||
|
||||
Signed-off-by: Luc Verhaegen <libv@skynet.be>
|
||||
Acked-by: Stephen Warren <swarren@nvidia.com>
|
||||
[hdegoede@redhat.com: drop unnecessary void * cast]
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
|
||||
Acked-by: Grant Likely <grant.likely@linaro.org>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
|
||||
---
|
||||
drivers/video/fbdev/simplefb.c | 15 ++++++++++++---
|
||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
|
||||
index 210f3a0..ec112c1 100644
|
||||
--- a/drivers/video/fbdev/simplefb.c
|
||||
+++ b/drivers/video/fbdev/simplefb.c
|
||||
@@ -41,6 +41,8 @@ static struct fb_var_screeninfo simplefb_var = {
|
||||
.vmode = FB_VMODE_NONINTERLACED,
|
||||
};
|
||||
|
||||
+#define PSEUDO_PALETTE_SIZE 16
|
||||
+
|
||||
static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
|
||||
u_int transp, struct fb_info *info)
|
||||
{
|
||||
@@ -50,7 +52,7 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
|
||||
u32 cb = blue >> (16 - info->var.blue.length);
|
||||
u32 value;
|
||||
|
||||
- if (regno >= 16)
|
||||
+ if (regno >= PSEUDO_PALETTE_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
value = (cr << info->var.red.offset) |
|
||||
@@ -163,11 +165,16 @@ static int simplefb_parse_pd(struct platform_device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+struct simplefb_par {
|
||||
+ u32 palette[PSEUDO_PALETTE_SIZE];
|
||||
+};
|
||||
+
|
||||
static int simplefb_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
struct simplefb_params params;
|
||||
struct fb_info *info;
|
||||
+ struct simplefb_par *par;
|
||||
struct resource *mem;
|
||||
|
||||
if (fb_get_options("simplefb", NULL))
|
||||
@@ -188,11 +195,13 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
- info = framebuffer_alloc(sizeof(u32) * 16, &pdev->dev);
|
||||
+ info = framebuffer_alloc(sizeof(struct simplefb_par), &pdev->dev);
|
||||
if (!info)
|
||||
return -ENOMEM;
|
||||
platform_set_drvdata(pdev, info);
|
||||
|
||||
+ par = info->par;
|
||||
+
|
||||
info->fix = simplefb_fix;
|
||||
info->fix.smem_start = mem->start;
|
||||
info->fix.smem_len = resource_size(mem);
|
||||
@@ -225,7 +234,7 @@ static int simplefb_probe(struct platform_device *pdev)
|
||||
framebuffer_release(info);
|
||||
return -ENODEV;
|
||||
}
|
||||
- info->pseudo_palette = (void *)(info + 1);
|
||||
+ info->pseudo_palette = par->palette;
|
||||
|
||||
dev_info(&pdev->dev, "framebuffer at 0x%lx, 0x%x bytes, mapped to 0x%p\n",
|
||||
info->fix.smem_start, info->fix.smem_len,
|
||||
--
|
||||
2.1.4
|
||||
|
44
debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
vendored
Normal file
44
debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
From 5429cd33ae8abeada683b08bab6d13f6227e2734 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 19 Jan 2015 14:01:17 +0100
|
||||
Subject: [PATCH 14/15] ARM: dts: sun4i: Add simplefb node with
|
||||
de_fe0-de_be0-lcd0-hdmi pipeline
|
||||
Origin: https://git.kernel.org/linus/8cedd6628472aa2d8f2f54dfcc36633e46a59db8
|
||||
|
||||
Testing has shown that on sun4i the display backend engine does not have
|
||||
deep enough fifo-s causing flickering / tearing in full-hd mode due to
|
||||
fifo underruns. This can be avoided by letting the display frontend engine
|
||||
do the dma from memory, and then letting it feed the data directly into
|
||||
the backend unmodified, as the frontend does have deep enough fifo-s.
|
||||
|
||||
Note since u-boot-v2015.01 has been released using the de_be0-lcd0-hdmi
|
||||
pipeline on sun4i, we need to keep that one around too (unfortunately).
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index a9a657c..7e3e5dd 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -39,6 +39,14 @@
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+ framebuffer@1 {
|
||||
+ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
+ <&ahb_gates 44>, <&ahb_gates 46>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
|
||||
cpus {
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
From 1924660efb8ad8b0dfe6c16e3f9b865489617bc1 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 16:34:34 +0100
|
||||
Subject: [PATCH 08/15] ARM: dts: sun4i: Add simplefb node
|
||||
Origin: https://git.kernel.org/linus/5790d4ee1e425fefef0e012d1415c25baeb9dae8
|
||||
|
||||
Add a simplefb template node for u-boot to further fill and activate.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index d96e179..8aa412f 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -27,6 +27,18 @@
|
||||
serial7 = &uart7;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges;
|
||||
+
|
||||
+ framebuffer0-hdmi {
|
||||
+ compatible = "simple-framebuffer";
|
||||
+ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
From 8b6ded18e0b025919bf6f99f2ec0cb579a40e099 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 16:34:35 +0100
|
||||
Subject: [PATCH 09/15] ARM: dts: sun5i: Add simplefb node
|
||||
Origin: https://git.kernel.org/linus/d501841fc42a97a8b69449135eadf6e9c4589a87
|
||||
|
||||
Add a simplefb template node for u-boot to further fill and activate.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun5i-a10s.dtsi | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
index b64f705..3b0ea26 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
@@ -24,6 +24,18 @@
|
||||
serial3 = &uart3;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges;
|
||||
+
|
||||
+ framebuffer0-hdmi {
|
||||
+ compatible = "simple-framebuffer";
|
||||
+ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a8";
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
From 81d90d6cc2132414c9af30c49b487651a03f4c82 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 16:34:36 +0100
|
||||
Subject: [PATCH 10/15] ARM: dts: sun6i: Add simplefb node
|
||||
Origin: https://git.kernel.org/linus/e53a8b2201384ee1a2cfd1609c9ffdf951b041a1
|
||||
|
||||
Add a simplefb template node for u-boot to further fill and activate.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
index a9dfa12..eedb1e0 100644
|
||||
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
@@ -25,6 +25,16 @@
|
||||
serial5 = &uart5;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges;
|
||||
+
|
||||
+ framebuffer0-hdmi {
|
||||
+ compatible = "simple-framebuffer";
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
|
||||
cpus {
|
||||
enable-method = "allwinner,sun6i-a31";
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
From 0c484cbb0f590f457abbe6616d817cd623b382fa Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 14 Nov 2014 16:34:37 +0100
|
||||
Subject: [PATCH 11/15] ARM: dts: sun7i: Add simplefb node
|
||||
Origin: https://git.kernel.org/linus/8efc5c2be5b29f7ceec83bb471da81690273e141
|
||||
|
||||
Add a simplefb template node for u-boot to further fill and activate.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index 01e9466..bb01f9b 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -28,6 +28,18 @@
|
||||
serial7 = &uart7;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges;
|
||||
+
|
||||
+ framebuffer0-hdmi {
|
||||
+ compatible = "simple-framebuffer";
|
||||
+ clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
--
|
||||
2.1.4
|
||||
|
80
debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
vendored
Normal file
80
debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
From 0c9c7408537a543b10035434d79842651f540d7d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Sun, 16 Nov 2014 17:09:32 +0100
|
||||
Subject: [PATCH 12/15] ARM: dts: sunxi: Add de_be0 clk parent pll to simplefb
|
||||
node
|
||||
Origin: https://git.kernel.org/linus/678e75d3e5526bee1b09f0e916096ec7f7d35c8e
|
||||
|
||||
Avoid the parent pll for the mod-clk for de_be0 getting disabled when non of
|
||||
the other users are enabled (which can happen when none of i2c, spi and mmc
|
||||
are in use).
|
||||
|
||||
Note for now we point directly to the parent rather then to the de_be0 mod-clk
|
||||
as that is not modelled in our devicetree yet.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 3 ++-
|
||||
arch/arm/boot/dts/sun5i-a10s.dtsi | 3 ++-
|
||||
arch/arm/boot/dts/sun6i-a31.dtsi | 1 +
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 3 ++-
|
||||
4 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index 8aa412f..e6aaad6 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -34,7 +34,8 @@
|
||||
|
||||
framebuffer0-hdmi {
|
||||
compatible = "simple-framebuffer";
|
||||
- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
+ <&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
index 3b0ea26..7b9bb3f 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
@@ -31,7 +31,8 @@
|
||||
|
||||
framebuffer0-hdmi {
|
||||
compatible = "simple-framebuffer";
|
||||
- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
+ <&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
index eedb1e0..842d2e6 100644
|
||||
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
framebuffer0-hdmi {
|
||||
compatible = "simple-framebuffer";
|
||||
+ clocks = <&pll6 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index bb01f9b..c120b4f 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -35,7 +35,8 @@
|
||||
|
||||
framebuffer0-hdmi {
|
||||
compatible = "simple-framebuffer";
|
||||
- clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
+ <&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
--
|
||||
2.1.4
|
||||
|
149
debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
vendored
Normal file
149
debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
From fc020448ed2abd7d649153e248e3ec08d17ae1f5 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 19 Jan 2015 14:05:12 +0100
|
||||
Subject: [PATCH 15/15] ARM: dts: sunxi: Add simplefb nodes for de_be0-lcd0,
|
||||
de_be0-lcd0-tve0 pipelines
|
||||
Origin: https://git.kernel.org/linus/fd18c7eac03540654abdbfedd52e6dfb3718b489
|
||||
|
||||
Add simplefb nodes for "[de_fe0-]de_be0-lcd0" and "[de_fe0-]de_be0-lcd0-tve0"
|
||||
display pipelines for when u-boot has set up a pipeline to drive a LCD panel /
|
||||
VGA output rather then the HDMI output.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
|
||||
Conflicts:
|
||||
arch/arm/boot/dts/sun8i-a23.dtsi
|
||||
|
||||
[ ijc -- dropped arch/arm/boot/dts/sun8i-a23.dtsi changes, not in baseline ]
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 18 ++++++++++++++++++
|
||||
arch/arm/boot/dts/sun5i-a10s.dtsi | 8 ++++++++
|
||||
arch/arm/boot/dts/sun5i-a13.dtsi | 14 ++++++++++++++
|
||||
arch/arm/boot/dts/sun6i-a31.dtsi | 8 ++++++++
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 17 +++++++++++++++++
|
||||
5 files changed, 65 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index 7e3e5dd..eae8bfd 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -47,6 +47,24 @@
|
||||
<&ahb_gates 44>, <&ahb_gates 46>;
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+ framebuffer@2 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_fe0-de_be0-lcd0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>,
|
||||
+ <&ahb_gates 46>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ framebuffer@3 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
|
||||
+ <&ahb_gates 44>, <&ahb_gates 46>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
|
||||
cpus {
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
index 245a25b..95bbfea 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
@@ -36,6 +36,14 @@
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+ framebuffer@1 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
|
||||
cpus {
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
|
||||
index 3b2a94c..a194c1e 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
|
||||
@@ -21,6 +21,20 @@
|
||||
serial1 = &uart3;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+ ranges;
|
||||
+
|
||||
+ framebuffer@0 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
index fe2c938..90cc322 100644
|
||||
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
@@ -36,6 +36,14 @@
|
||||
clocks = <&pll6 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+ framebuffer@1 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0";
|
||||
+ clocks = <&pll6 0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
|
||||
cpus {
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index e31ae3a..7d47914 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -40,6 +40,23 @@
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
};
|
||||
+
|
||||
+ framebuffer@1 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ framebuffer@2 {
|
||||
+ compatible = "allwinner,simple-framebuffer",
|
||||
+ "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0-tve0";
|
||||
+ clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>,
|
||||
+ <&ahb_gates 44>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
};
|
||||
|
||||
cpus {
|
||||
--
|
||||
2.1.4
|
||||
|
93
debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
vendored
Normal file
93
debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
From cba654240791a0ac72310f0ba840f48a377277a3 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 18 Nov 2014 12:07:13 +0100
|
||||
Subject: [PATCH 13/15] ARM: dts: sunxi: Update simplefb nodes so that u-boot
|
||||
can find them
|
||||
Origin: https://git.kernel.org/linus/a9f8cda32a3acc3150755fe973f7fa1867a7a5d6
|
||||
|
||||
Review of the u-boot sunxi simplefb patches has led to the decision that
|
||||
u-boot should not use a specific path to find the nodes as this goes contrary
|
||||
to how devicetree usually works.
|
||||
|
||||
Instead a platform specific compatible + properties should be used for this.
|
||||
|
||||
The simplefb bindings have already been updated to reflect this, this patch
|
||||
brings the sunxi devicetree files in line with the new binding, and the
|
||||
actual u-boot implementation as it is going upstream.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 5 +++--
|
||||
arch/arm/boot/dts/sun5i-a10s.dtsi | 5 +++--
|
||||
arch/arm/boot/dts/sun6i-a31.dtsi | 5 +++--
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 5 +++--
|
||||
4 files changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index e6aaad6..a9a657c 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -32,8 +32,9 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- framebuffer0-hdmi {
|
||||
- compatible = "simple-framebuffer";
|
||||
+ framebuffer@0 {
|
||||
+ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||
clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
index 7b9bb3f..245a25b 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
@@ -29,8 +29,9 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- framebuffer0-hdmi {
|
||||
- compatible = "simple-framebuffer";
|
||||
+ framebuffer@0 {
|
||||
+ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||
clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
index 842d2e6..fe2c938 100644
|
||||
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
|
||||
@@ -30,8 +30,9 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- framebuffer0-hdmi {
|
||||
- compatible = "simple-framebuffer";
|
||||
+ framebuffer@0 {
|
||||
+ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||
clocks = <&pll6 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index c120b4f..e31ae3a 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -33,8 +33,9 @@
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
- framebuffer0-hdmi {
|
||||
- compatible = "simple-framebuffer";
|
||||
+ framebuffer@0 {
|
||||
+ compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
|
||||
+ allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||
clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>,
|
||||
<&ahb_gates 44>;
|
||||
status = "disabled";
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -110,6 +110,14 @@ features/arm/dts-sun7i-Add-support-for-A20-OLinuXino-Lime2.patch
|
|||
features/arm/dts-sunxi-Add-IR-controllers-on-A20-to-dtsi.patch
|
||||
features/arm/dts-sun7i-Rename-sun7i-a20-ir-to-sun4i-a10-ir.patch
|
||||
features/arm/dts-sun7i-Add-dts-file-for-Bananapro-board.patch
|
||||
features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
|
||||
features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
|
||||
features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
|
||||
features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
|
||||
features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
|
||||
features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
|
||||
features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
|
||||
features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
|
||||
features/arm64/drivers-net-Add-APM-X-Gene-SoC-ethernet-driver-suppo.patch
|
||||
features/arm64/drivers-net-NET_XGENE-should-depend-on-HAS_DMA.patch
|
||||
features/arm64/net-xgene-Check-negative-return-value-of-xgene_enet_.patch
|
||||
|
@ -190,6 +198,13 @@ features/all/of-correct-of_console_check-s-return-value.patch
|
|||
features/all/of-add-optional-options-parameter-to-of_find_node_by.patch
|
||||
features/all/of-support-passing-console-options-with-stdout-path.patch
|
||||
features/all/efi-expose-underlying-uefi-firmware-platform-size-to.patch
|
||||
features/all/simplefb-formalize-pseudo-palette-handling.patch
|
||||
features/all/simplefb-add-goto-error-path-to-probe.patch
|
||||
features/all/simplefb-add-clock-handling-code.patch
|
||||
features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
|
||||
features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
|
||||
features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
|
||||
features/all/simplefb-Fix-build-failure-on-Sparc.patch
|
||||
|
||||
# Update r8723au to 3.17
|
||||
features/all/r8723au/0001-staging-rtl8723au-rtw_get_wps_ie23a-Remove-unused-de.patch
|
||||
|
|
Loading…
Reference in New Issue