[kernel] r22429 - in dists/sid/linux/debian: . patches patches/features/all patches/features/arm

Ian James Campbell ijc at moszumanska.debian.org
Sat Feb 28 16:17:12 UTC 2015


Author: ijc
Date: Sat Feb 28 16:17:12 2015
New Revision: 22429

Log:
[armhf] Enable FB_SIMPLE on sunxi platform, backporting fixes and DTS entries.

Added:
   dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
   dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
   dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
   dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
   dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
   dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
   dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
   dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/series

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Fri Feb 27 13:31:54 2015	(r22428)
+++ dists/sid/linux/debian/changelog	Sat Feb 28 16:17:12 2015	(r22429)
@@ -162,6 +162,8 @@
   [ 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

Added: dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-Add-support-for-enumerating-simplefb-dt-nod.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,60 @@
+From f819ccbe992cfec6081acef7c5a06d770178b03e Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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 at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+-- 
+2.1.4
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-Change-simplefb_init-from-module_init-to-fs.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,36 @@
+From 4fe57f1608272587892d50c524d98f96d311b115 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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 at wwwdotorg.org>");
+ MODULE_DESCRIPTION("Simple framebuffer driver");
+-- 
+2.1.4
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-errors-when-CONFIG_COMMON_CLK-is-.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,39 @@
+From b516039bf5ce5464bc9a6eefac50c87415c9f318 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-Fix-build-failure-on-Sparc.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,33 @@
+From 28f3658954b8a749d9c7109b20f69019dd671252 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at intel.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-add-clock-handling-code.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,185 @@
+From 26007c1238d7923f0ef8ff7aed10ed89ee5ef5c5 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at 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 at skynet.be>
+[hdegoede at redhat.com: Change clks from list to dynamic array]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-add-goto-error-path-to-probe.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,75 @@
+From e57f8f9adc3d2924c8bf312a66786885c84cd06c Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at 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 at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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
+

Added: dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/all/simplefb-formalize-pseudo-palette-handling.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,90 @@
+From a3bf3921e8e032943cf39f17daa30d35f412e365 Mon Sep 17 00:00:00 2001
+From: Luc Verhaegen <libv at 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 at skynet.be>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+[hdegoede at redhat.com: drop unnecessary void * cast]
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+Acked-by: Geert Uytterhoeven <geert at linux-m68k.org>
+Reviewed-by: Maxime Ripard <maxime.ripard at free-electrons.com>
+Reviewed-by: David Herrmann <dh.herrmann at gmail.com>
+Acked-by: Grant Likely <grant.likely at linaro.org>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node-with-de_fe0-de_be0-l.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,44 @@
+From 5429cd33ae8abeada683b08bab6d13f6227e2734 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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 at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sun4i-Add-simplefb-node.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,40 @@
+From 1924660efb8ad8b0dfe6c16e3f9b865489617bc1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sun5i-Add-simplefb-node.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,40 @@
+From 8b6ded18e0b025919bf6f99f2ec0cb579a40e099 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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 at 0 {
+ 			compatible = "arm,cortex-a8";
+-- 
+2.1.4
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sun6i-Add-simplefb-node.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,38 @@
+From 81d90d6cc2132414c9af30c49b487651a03f4c82 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sun7i-Add-simplefb-node.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,40 @@
+From 0c484cbb0f590f457abbe6616d817cd623b382fa Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-de_be0-clk-parent-pll-to-simplefb-.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,80 @@
+From 0c9c7408537a543b10035434d79842651f540d7d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,149 @@
+From fc020448ed2abd7d649153e248e3ec08d17ae1f5 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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 at 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 at 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 at 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 at 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 at 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 at 1 {
++			compatible = "allwinner,simple-framebuffer",
++				     "simple-framebuffer";
++			allwinner,pipeline = "de_be0-lcd0";
++			clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 44>;
++			status = "disabled";
++		};
++
++		framebuffer at 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
+

Added: dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/arm/ARM-dts-sunxi-Update-simplefb-nodes-so-that-u-boot-c.patch	Sat Feb 28 16:17:12 2015	(r22429)
@@ -0,0 +1,93 @@
+From cba654240791a0ac72310f0ba840f48a377277a3 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at 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 at redhat.com>
+Signed-off-by: Maxime Ripard <maxime.ripard at 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 at 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 at 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 at 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 at 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
+

Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Fri Feb 27 13:31:54 2015	(r22428)
+++ dists/sid/linux/debian/patches/series	Sat Feb 28 16:17:12 2015	(r22429)
@@ -110,6 +110,14 @@
 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-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



More information about the Kernel-svn-changes mailing list