--- /dev/null
+From 17d2d05cd9edccbe8af368355f904c12ff4fb034 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 14 Dec 2018 23:10:11 +0100
+Subject: ARM: dts: qcom-apq8064-arrow-sd-600eval fix graph_endpoint warning
+
+Upstream commit 972910948fb6 ("ARM: dts: qcom: Remove Arrow SD600
+eval board") removed this file because there are no known users,
+but in linux-4.19.y, we still get a compile-time warnign for it:
+
+arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dtb: Warning (graph_endpoint): /soc/mdp@5100000/ports/port@3/endpoint: graph connection to node '/soc/hdmi-tx@4a00000/ports/port@0/endpoint' is not bidirectional
+
+Address the warning by adding the remote endpoint that makes the link
+bidirectional. This is the same property that other boards use.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
+index 76b56eafaab9..f714a20649d7 100644
+--- a/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
++++ b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
+@@ -387,6 +387,11 @@
+ hpd-gpio = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
+
+ ports {
++ port@0 {
++ endpoint {
++ remote-endpoint = <&mdp_dtv_out>;
++ };
++ };
+ port@1 {
+ endpoint {
+ remote-endpoint = <&hdmi_con>;
+--
+2.19.1
+
--- /dev/null
+From 92f42ccea176028898d9c8219a3b214c8846d3ff Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 14 Dec 2018 23:10:12 +0100
+Subject: drm/msm: fix address space warning
+
+In the linux-4.19 stable kernel, we get a warning about a type
+mismatch between phys_addr_t and dma_addr_t:
+
+drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c: In function '_dpu_dbg_dump_dpu_dbg_bus':
+drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c:2003:16: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
+ list_size, &phys, GFP_KERNEL);
+ ^~~~~
+In file included from include/linux/dma-buf.h:31,
+ from drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c:20:
+include/linux/dma-mapping.h:561:15: note: expected 'dma_addr_t *' {aka 'long long unsigned int *'} but argument is of type 'phys_addr_t *' {aka 'unsigned int *'}
+ dma_addr_t *dma_handle, gfp_t flag)
+ ~~~~~~~~~~~~^~~~~~~~~~
+drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c: In function '_dpu_dbg_dump_vbif_dbg_bus':
+drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c:2154:16: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
+ list_size, &phys, GFP_KERNEL);
+ ^~~~~
+In file included from include/linux/dma-buf.h:31,
+ from drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c:20:
+include/linux/dma-mapping.h:561:15: note: expected 'dma_addr_t *' {aka 'long long unsigned int *'} but argument is of type 'phys_addr_t *' {aka 'unsigned int *'}
+
+This code was removed in linux-4.20 with upstream commit effec874792f
+("drm/msm/dpu: Remove dpu_dbg"). Rather than backporting the large
+patch, this just fixes the warning by using the correct type.
+
+Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c
+index ae2aee7ed9e1..e741d26185df 100644
+--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c
++++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_dbg.c
+@@ -1962,7 +1962,7 @@ static void _dpu_dbg_dump_dpu_dbg_bus(struct dpu_dbg_dpu_debug_bus *bus)
+ u32 *dump_addr = NULL;
+ u32 status = 0;
+ struct dpu_debug_bus_entry *head;
+- phys_addr_t phys = 0;
++ dma_addr_t dma = 0;
+ int list_size;
+ int i;
+ u32 offset;
+@@ -2000,7 +2000,7 @@ static void _dpu_dbg_dump_dpu_dbg_bus(struct dpu_dbg_dpu_debug_bus *bus)
+ if (in_mem) {
+ if (!(*dump_mem))
+ *dump_mem = dma_alloc_coherent(dpu_dbg_base.dev,
+- list_size, &phys, GFP_KERNEL);
++ list_size, &dma, GFP_KERNEL);
+
+ if (*dump_mem) {
+ dump_addr = *dump_mem;
+@@ -2101,7 +2101,7 @@ static void _dpu_dbg_dump_vbif_dbg_bus(struct dpu_dbg_vbif_debug_bus *bus)
+ u32 value, d0, d1;
+ unsigned long reg, reg1, reg2;
+ struct vbif_debug_bus_entry *head;
+- phys_addr_t phys = 0;
++ dma_addr_t dma = 0;
+ int i, list_size = 0;
+ void __iomem *mem_base = NULL;
+ struct vbif_debug_bus_entry *dbg_bus;
+@@ -2151,7 +2151,7 @@ static void _dpu_dbg_dump_vbif_dbg_bus(struct dpu_dbg_vbif_debug_bus *bus)
+ if (in_mem) {
+ if (!(*dump_mem))
+ *dump_mem = dma_alloc_coherent(dpu_dbg_base.dev,
+- list_size, &phys, GFP_KERNEL);
++ list_size, &dma, GFP_KERNEL);
+
+ if (*dump_mem) {
+ dump_addr = *dump_mem;
+--
+2.19.1
+
--- /dev/null
+From 383bc18cbbbc7af21691f6e653436058ddd51fb4 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 14 Dec 2018 23:10:10 +0100
+Subject: i2c: aspeed: fix build warning
+
+Upstream commit 3e9efc3299dd ("i2c: aspeed: Handle master/slave combined irq events
+properly") reworked the interrupt handling and fixed a warning in the process:
+
+drivers/i2c/busses/i2c-aspeed.c: In function 'aspeed_i2c_bus_irq':
+drivers/i2c/busses/i2c-aspeed.c:567:1: error: label 'out' defined but not used [-Werror=unused-label]
+
+The warning is still present in v4.19.8 and can be fixed either by applying
+that original patch, or by adding a simple #ifdef.
+
+Here, I choose the second simpler option as the original patch seems too
+invasive for a stable backport.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-aspeed.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c
+index a4f956c6d567..a19fbff16861 100644
+--- a/drivers/i2c/busses/i2c-aspeed.c
++++ b/drivers/i2c/busses/i2c-aspeed.c
+@@ -555,7 +555,7 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id)
+ spin_lock(&bus->lock);
+
+ #if IS_ENABLED(CONFIG_I2C_SLAVE)
+- if (aspeed_i2c_slave_irq(bus)) {
++ if (IS_ENABLED(CONFIG_I2C_SLAVE) && aspeed_i2c_slave_irq(bus)) {
+ dev_dbg(bus->dev, "irq handled by slave.\n");
+ ret = true;
+ goto out;
+@@ -564,7 +564,9 @@ static irqreturn_t aspeed_i2c_bus_irq(int irq, void *dev_id)
+
+ ret = aspeed_i2c_master_irq(bus);
+
++#if IS_ENABLED(CONFIG_I2C_SLAVE)
+ out:
++#endif
+ spin_unlock(&bus->lock);
+ return ret ? IRQ_HANDLED : IRQ_NONE;
+ }
+--
+2.19.1
+
--- /dev/null
+From c2c2cce1a3aa8f7b503cfc07e5aa7614b061ffdb Mon Sep 17 00:00:00 2001
+From: Vincent Guittot <vincent.guittot@linaro.org>
+Date: Fri, 14 Dec 2018 23:10:06 +0100
+Subject: sched/pelt: Fix warning and clean up IRQ PELT config
+
+Commit 11d4afd4ff667f9b6178ee8c142c36cb78bd84db upstream.
+
+Create a config for enabling irq load tracking in the scheduler.
+irq load tracking is useful only when irq or paravirtual time is
+accounted but it's only possible with SMP for now.
+
+Also use __maybe_unused to remove the compilation warning in
+update_rq_clock_task() that has been introduced by:
+
+ 2e62c4743adc ("sched/fair: Remove #ifdefs from scale_rt_capacity()")
+
+Suggested-by: Ingo Molnar <mingo@redhat.com>
+Reported-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
+Reported-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
+Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: bp@alien8.de
+Cc: dou_liyang@163.com
+Fixes: 2e62c4743adc ("sched/fair: Remove #ifdefs from scale_rt_capacity()")
+Link: http://lkml.kernel.org/r/1537867062-27285-1-git-send-email-vincent.guittot@linaro.org
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ init/Kconfig | 5 +++++
+ kernel/sched/core.c | 7 +++----
+ kernel/sched/fair.c | 2 +-
+ kernel/sched/pelt.c | 2 +-
+ kernel/sched/pelt.h | 2 +-
+ kernel/sched/sched.h | 5 ++---
+ 6 files changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 1e234e2f1cba..317d5ccb5191 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -415,6 +415,11 @@ config IRQ_TIME_ACCOUNTING
+
+ If in doubt, say N here.
+
++config HAVE_SCHED_AVG_IRQ
++ def_bool y
++ depends on IRQ_TIME_ACCOUNTING || PARAVIRT_TIME_ACCOUNTING
++ depends on SMP
++
+ config BSD_PROCESS_ACCT
+ bool "BSD Process Accounting"
+ depends on MULTIUSER
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 2beda4b726e2..13ddfa46d741 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -135,9 +135,8 @@ static void update_rq_clock_task(struct rq *rq, s64 delta)
+ * In theory, the compile should just see 0 here, and optimize out the call
+ * to sched_rt_avg_update. But I don't trust it...
+ */
+-#if defined(CONFIG_IRQ_TIME_ACCOUNTING) || defined(CONFIG_PARAVIRT_TIME_ACCOUNTING)
+- s64 steal = 0, irq_delta = 0;
+-#endif
++ s64 __maybe_unused steal = 0, irq_delta = 0;
++
+ #ifdef CONFIG_IRQ_TIME_ACCOUNTING
+ irq_delta = irq_time_read(cpu_of(rq)) - rq->prev_irq_time;
+
+@@ -177,7 +176,7 @@ static void update_rq_clock_task(struct rq *rq, s64 delta)
+
+ rq->clock_task += delta;
+
+-#ifdef HAVE_SCHED_AVG_IRQ
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ if ((irq_delta + steal) && sched_feat(NONTASK_CAPACITY))
+ update_irq_load_avg(rq, irq_delta + steal);
+ #endif
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 1162552dc3cc..eabbf6b10b44 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -7361,7 +7361,7 @@ static inline bool others_have_blocked(struct rq *rq)
+ if (READ_ONCE(rq->avg_dl.util_avg))
+ return true;
+
+-#if defined(CONFIG_IRQ_TIME_ACCOUNTING) || defined(CONFIG_PARAVIRT_TIME_ACCOUNTING)
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ if (READ_ONCE(rq->avg_irq.util_avg))
+ return true;
+ #endif
+diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
+index 35475c0c5419..48a126486435 100644
+--- a/kernel/sched/pelt.c
++++ b/kernel/sched/pelt.c
+@@ -358,7 +358,7 @@ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running)
+ return 0;
+ }
+
+-#if defined(CONFIG_IRQ_TIME_ACCOUNTING) || defined(CONFIG_PARAVIRT_TIME_ACCOUNTING)
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ /*
+ * irq:
+ *
+diff --git a/kernel/sched/pelt.h b/kernel/sched/pelt.h
+index d2894db28955..7e56b489ff32 100644
+--- a/kernel/sched/pelt.h
++++ b/kernel/sched/pelt.h
+@@ -6,7 +6,7 @@ int __update_load_avg_cfs_rq(u64 now, int cpu, struct cfs_rq *cfs_rq);
+ int update_rt_rq_load_avg(u64 now, struct rq *rq, int running);
+ int update_dl_rq_load_avg(u64 now, struct rq *rq, int running);
+
+-#if defined(CONFIG_IRQ_TIME_ACCOUNTING) || defined(CONFIG_PARAVIRT_TIME_ACCOUNTING)
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ int update_irq_load_avg(struct rq *rq, u64 running);
+ #else
+ static inline int
+diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
+index 6c25bbe87bd3..b63172288f7b 100644
+--- a/kernel/sched/sched.h
++++ b/kernel/sched/sched.h
+@@ -859,8 +859,7 @@ struct rq {
+
+ struct sched_avg avg_rt;
+ struct sched_avg avg_dl;
+-#if defined(CONFIG_IRQ_TIME_ACCOUNTING) || defined(CONFIG_PARAVIRT_TIME_ACCOUNTING)
+-#define HAVE_SCHED_AVG_IRQ
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ struct sched_avg avg_irq;
+ #endif
+ u64 idle_stamp;
+@@ -2215,7 +2214,7 @@ static inline unsigned long cpu_util_rt(struct rq *rq)
+ }
+ #endif
+
+-#ifdef HAVE_SCHED_AVG_IRQ
++#ifdef CONFIG_HAVE_SCHED_AVG_IRQ
+ static inline unsigned long cpu_util_irq(struct rq *rq)
+ {
+ return rq->avg_irq.util_avg;
+--
+2.19.1
+
--- /dev/null
+From 492d3c521942a1a54c828b14822723fd936fdb6f Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 14 Dec 2018 23:10:07 +0100
+Subject: scsi: raid_attrs: fix unused variable warning
+
+Commit 0eeec01488da9b1403c8c29e73eacac8af9e4bf2 upstream.
+
+I ran into a new warning on randconfig kernels:
+
+drivers/scsi/raid_class.c: In function 'raid_match':
+drivers/scsi/raid_class.c:64:24: error: unused variable 'i' [-Werror=unused-variable]
+
+This looks like a very old problem that for some reason was very hard to
+run into, but it is very easy to fix, by replacing the incorrect #ifdef
+with a simpler IS_ENABLED() check.
+
+Fixes: fac829fdcaf4 ("[SCSI] raid_attrs: fix dependency problems")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/raid_class.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/scsi/raid_class.c b/drivers/scsi/raid_class.c
+index ea88906d2cc5..5c3d6e1e0145 100644
+--- a/drivers/scsi/raid_class.c
++++ b/drivers/scsi/raid_class.c
+@@ -63,8 +63,7 @@ static int raid_match(struct attribute_container *cont, struct device *dev)
+ * emulated RAID devices, so start with SCSI */
+ struct raid_internal *i = ac_to_raid_internal(cont);
+
+-#if defined(CONFIG_SCSI) || defined(CONFIG_SCSI_MODULE)
+- if (scsi_is_sdev_device(dev)) {
++ if (IS_ENABLED(CONFIG_SCSI) && scsi_is_sdev_device(dev)) {
+ struct scsi_device *sdev = to_scsi_device(dev);
+
+ if (i->f->cookie != sdev->host->hostt)
+@@ -72,7 +71,6 @@ static int raid_match(struct attribute_container *cont, struct device *dev)
+
+ return i->f->is_raid(dev);
+ }
+-#endif
+ /* FIXME: look at other subsystems too */
+ return 0;
+ }
+--
+2.19.1
+
--- /dev/null
+sched-pelt-fix-warning-and-clean-up-irq-pelt-config.patch
+scsi-raid_attrs-fix-unused-variable-warning.patch
+staging-olpc_dcon-add-a-missing-dependency.patch
+slimbus-ngd-mark-pm-functions-as-__maybe_unused.patch
+i2c-aspeed-fix-build-warning.patch
+arm-dts-qcom-apq8064-arrow-sd-600eval-fix-graph_endp.patch
+drm-msm-fix-address-space-warning.patch
--- /dev/null
+From 5ee9cdefbf56bdaea18135b75839d374a244e2c2 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Fri, 14 Dec 2018 23:10:09 +0100
+Subject: slimbus: ngd: mark PM functions as __maybe_unused
+
+Commit 2e6ae11dd0d1c37f44cec51a58fb2092e55ed0f5 upstream.
+
+qcom_slim_ngd_runtime_suspend is protected by an #ifdef,
+qcom_slim_ngd_runtime_idle is now, which causes a build time warning:
+
+drivers/slimbus/qcom-ngd-ctrl.c:1470:12: error: 'qcom_slim_ngd_runtime_idle' defined but not used [-Werror=unused-function]
+
+Marking both as __maybe_unused lets us get rid of the warning
+as well as the #ifdef.
+
+Fixes: 917809e2280b ("slimbus: ngd: Add qcom SLIMBus NGD driver")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/slimbus/qcom-ngd-ctrl.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c
+index 8be4d6786c61..14a9d18306cb 100644
+--- a/drivers/slimbus/qcom-ngd-ctrl.c
++++ b/drivers/slimbus/qcom-ngd-ctrl.c
+@@ -1467,7 +1467,7 @@ static int qcom_slim_ngd_remove(struct platform_device *pdev)
+ return 0;
+ }
+
+-static int qcom_slim_ngd_runtime_idle(struct device *dev)
++static int __maybe_unused qcom_slim_ngd_runtime_idle(struct device *dev)
+ {
+ struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev);
+
+@@ -1477,8 +1477,7 @@ static int qcom_slim_ngd_runtime_idle(struct device *dev)
+ return -EAGAIN;
+ }
+
+-#ifdef CONFIG_PM
+-static int qcom_slim_ngd_runtime_suspend(struct device *dev)
++static int __maybe_unused qcom_slim_ngd_runtime_suspend(struct device *dev)
+ {
+ struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev);
+ int ret = 0;
+@@ -1491,7 +1490,6 @@ static int qcom_slim_ngd_runtime_suspend(struct device *dev)
+
+ return ret;
+ }
+-#endif
+
+ static const struct dev_pm_ops qcom_slim_ngd_dev_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+--
+2.19.1
+
--- /dev/null
+From 490b2c0deada9e5cd89ab1147993348a07352ac4 Mon Sep 17 00:00:00 2001
+From: Lubomir Rintel <lkundrak@v3.sk>
+Date: Fri, 14 Dec 2018 23:10:08 +0100
+Subject: staging: olpc_dcon: add a missing dependency
+
+Commit 33f49571d75024b1044cd02689ad2bdb4924cc80 upstream.
+
+ WARNING: unmet direct dependencies detected for BACKLIGHT_CLASS_DEVICE
+ Depends on [n]: HAS_IOMEM [=y] && BACKLIGHT_LCD_SUPPORT [=n]
+ Selected by [y]:
+ - FB_OLPC_DCON [=y] && STAGING [=y] && X86 [=y] && OLPC [=y] && FB [=y]
+ && I2C [=y] && (GPIO_CS5535 [=n] || GPIO_CS5535 [=n]=n)
+
+Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/staging/olpc_dcon/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/staging/olpc_dcon/Kconfig b/drivers/staging/olpc_dcon/Kconfig
+index c91a56f77bcb..192cc8d0853f 100644
+--- a/drivers/staging/olpc_dcon/Kconfig
++++ b/drivers/staging/olpc_dcon/Kconfig
+@@ -2,6 +2,7 @@ config FB_OLPC_DCON
+ tristate "One Laptop Per Child Display CONtroller support"
+ depends on OLPC && FB
+ depends on I2C
++ depends on BACKLIGHT_LCD_SUPPORT
+ depends on (GPIO_CS5535 || GPIO_CS5535=n)
+ select BACKLIGHT_CLASS_DEVICE
+ help
+--
+2.19.1
+