aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-09-21 09:16:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-09-21 09:16:40 +0200
commit6adcca806694a3e47f94625d7855b02368391d7a (patch)
tree791ca2c0442fe364206592dbb25a403e16d7ae03
parent6f420586f4c17ce2800abae383d6f289120285d2 (diff)
downloadltsi-kernel-6adcca806694a3e47f94625d7855b02368391d7a.tar.gz
Update KERNEL_VERSION to 4.9.51v4.9.51-ltsi
-rw-r--r--KERNEL_VERSION2
-rw-r--r--patches.renesas/0001-drm-bridge-adv7511-Add-Audio-support.patch8
-rw-r--r--patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch18
-rw-r--r--patches.renesas/0002-drm-bridge-adv7511-Use-work_struct-to-defer-hotplug-.patch83
-rw-r--r--patches.renesas/0003-drm-bridge-adv7511-Switch-to-using-drm_kms_helper_ho.patch59
-rw-r--r--series2
6 files changed, 14 insertions, 158 deletions
diff --git a/KERNEL_VERSION b/KERNEL_VERSION
index 83e4ab67ec7a54..2ba6040343925f 100644
--- a/KERNEL_VERSION
+++ b/KERNEL_VERSION
@@ -1 +1 @@
-4.9.47
+4.9.51
diff --git a/patches.renesas/0001-drm-bridge-adv7511-Add-Audio-support.patch b/patches.renesas/0001-drm-bridge-adv7511-Add-Audio-support.patch
index 68098bc81a4c29..718ed1e89958a1 100644
--- a/patches.renesas/0001-drm-bridge-adv7511-Add-Audio-support.patch
+++ b/patches.renesas/0001-drm-bridge-adv7511-Add-Audio-support.patch
@@ -85,7 +85,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
unsigned int current_edid_segment;
uint8_t edid_buf[256];
-@@ -334,6 +336,7 @@ struct adv7511 {
+@@ -336,6 +338,7 @@ struct adv7511 {
bool use_timing_gen;
enum adv7511_type type;
@@ -93,7 +93,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
};
#ifdef CONFIG_DRM_I2C_ADV7533
-@@ -389,4 +392,17 @@ static inline int adv7533_parse_dt(struc
+@@ -391,4 +394,17 @@ static inline int adv7533_parse_dt(struc
}
#endif
@@ -329,7 +329,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
+}
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-@@ -1037,6 +1037,8 @@ static int adv7511_probe(struct i2c_clie
+@@ -1060,6 +1060,8 @@ static int adv7511_probe(struct i2c_clie
goto err_unregister_cec;
}
@@ -338,7 +338,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
return 0;
err_unregister_cec:
-@@ -1058,6 +1060,8 @@ static int adv7511_remove(struct i2c_cli
+@@ -1081,6 +1083,8 @@ static int adv7511_remove(struct i2c_cli
drm_bridge_remove(&adv7511->bridge);
diff --git a/patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch b/patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch
index 3126469a3b422d..fcca4b05f81427 100644
--- a/patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch
+++ b/patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch
@@ -29,7 +29,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_mipi_dsi.h>
-@@ -329,6 +330,9 @@ struct adv7511 {
+@@ -331,6 +332,9 @@ struct adv7511 {
struct gpio_desc *gpio_pd;
@@ -41,7 +41,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
struct mipi_dsi_device *dsi;
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-@@ -839,6 +839,58 @@ static struct drm_bridge_funcs adv7511_b
+@@ -860,6 +860,58 @@ static struct drm_bridge_funcs adv7511_b
* Probe & remove
*/
@@ -100,7 +100,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
static int adv7511_parse_dt(struct device_node *np,
struct adv7511_link_config *config)
{
-@@ -939,6 +991,7 @@ static int adv7511_probe(struct i2c_clie
+@@ -960,6 +1012,7 @@ static int adv7511_probe(struct i2c_clie
if (!adv7511)
return -ENOMEM;
@@ -108,7 +108,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
adv7511->powered = false;
adv7511->status = connector_status_disconnected;
-@@ -956,13 +1009,21 @@ static int adv7511_probe(struct i2c_clie
+@@ -977,13 +1030,21 @@ static int adv7511_probe(struct i2c_clie
if (ret)
return ret;
@@ -132,7 +132,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
if (adv7511->gpio_pd) {
mdelay(5);
-@@ -970,12 +1031,14 @@ static int adv7511_probe(struct i2c_clie
+@@ -991,12 +1052,14 @@ static int adv7511_probe(struct i2c_clie
}
adv7511->regmap = devm_regmap_init_i2c(i2c, &adv7511_regmap_config);
@@ -150,7 +150,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
dev_dbg(dev, "Rev. %d\n", val);
if (adv7511->type == ADV7511)
-@@ -985,7 +1048,7 @@ static int adv7511_probe(struct i2c_clie
+@@ -1006,7 +1069,7 @@ static int adv7511_probe(struct i2c_clie
else
ret = adv7533_patch_registers(adv7511);
if (ret)
@@ -159,7 +159,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
regmap_write(adv7511->regmap, ADV7511_REG_EDID_I2C_ADDR, edid_i2c_addr);
regmap_write(adv7511->regmap, ADV7511_REG_PACKET_I2C_ADDR,
-@@ -995,10 +1058,11 @@ static int adv7511_probe(struct i2c_clie
+@@ -1016,10 +1079,11 @@ static int adv7511_probe(struct i2c_clie
adv7511_packet_disable(adv7511, 0xffff);
@@ -174,7 +174,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
if (adv7511->type == ADV7533) {
ret = adv7533_init_cec(adv7511);
-@@ -1045,6 +1109,8 @@ err_unregister_cec:
+@@ -1068,6 +1132,8 @@ err_unregister_cec:
adv7533_uninit_cec(adv7511);
err_i2c_unregister_edid:
i2c_unregister_device(adv7511->i2c_edid);
@@ -183,7 +183,7 @@ Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
return ret;
}
-@@ -1058,6 +1124,8 @@ static int adv7511_remove(struct i2c_cli
+@@ -1081,6 +1147,8 @@ static int adv7511_remove(struct i2c_cli
adv7533_uninit_cec(adv7511);
}
diff --git a/patches.renesas/0002-drm-bridge-adv7511-Use-work_struct-to-defer-hotplug-.patch b/patches.renesas/0002-drm-bridge-adv7511-Use-work_struct-to-defer-hotplug-.patch
deleted file mode 100644
index c8881752f4e89a..00000000000000
--- a/patches.renesas/0002-drm-bridge-adv7511-Use-work_struct-to-defer-hotplug-.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 4f389283ad4ecc0bceb09cccb825df1822fca6e3 Mon Sep 17 00:00:00 2001
-From: John Stultz <john.stultz@linaro.org>
-Date: Mon, 16 Jan 2017 16:52:47 -0800
-Subject: [PATCH 002/255] drm/bridge: adv7511: Use work_struct to defer hotplug
- handing to out of irq context
-
-I was recently seeing issues with EDID probing, where
-the logic to wait for the EDID read bit to be set by the
-IRQ wasn't happening and the code would time out and fail.
-
-Digging deeper, I found this was due to the fact that
-IRQs were disabled as we were running in IRQ context from
-the HPD signal.
-
-Thus this patch changes the logic to handle the HPD signal
-via a work_struct so we can be out of irq context.
-
-With this patch, the EDID probing on hotplug does not time
-out.
-
-Cc: David Airlie <airlied@linux.ie>
-Cc: Archit Taneja <architt@codeaurora.org>
-Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
-Cc: Lars-Peter Clausen <lars@metafoo.de>
-Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Cc: dri-devel@lists.freedesktop.org
-Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Signed-off-by: John Stultz <john.stultz@linaro.org>
-Signed-off-by: Archit Taneja <architt@codeaurora.org>
-Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-2-git-send-email-john.stultz@linaro.org
-(cherry picked from commit 518cb7057a59b9441336d2e88a396d52b6ab0cce)
-Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
----
- drivers/gpu/drm/bridge/adv7511/adv7511.h | 2 ++
- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 11 ++++++++++-
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/bridge/adv7511/adv7511.h
-+++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h
-@@ -318,6 +318,8 @@ struct adv7511 {
- bool edid_read;
-
- wait_queue_head_t wq;
-+ struct work_struct hpd_work;
-+
- struct drm_bridge bridge;
- struct drm_connector connector;
-
---- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-@@ -402,6 +402,13 @@ static bool adv7511_hpd(struct adv7511 *
- return false;
- }
-
-+static void adv7511_hpd_work(struct work_struct *work)
-+{
-+ struct adv7511 *adv7511 = container_of(work, struct adv7511, hpd_work);
-+
-+ drm_helper_hpd_irq_event(adv7511->connector.dev);
-+}
-+
- static int adv7511_irq_process(struct adv7511 *adv7511, bool process_hpd)
- {
- unsigned int irq0, irq1;
-@@ -419,7 +426,7 @@ static int adv7511_irq_process(struct ad
- regmap_write(adv7511->regmap, ADV7511_REG_INT(1), irq1);
-
- if (process_hpd && irq0 & ADV7511_INT0_HPD && adv7511->bridge.encoder)
-- drm_helper_hpd_irq_event(adv7511->connector.dev);
-+ schedule_work(&adv7511->hpd_work);
-
- if (irq0 & ADV7511_INT0_EDID_READY || irq1 & ADV7511_INT1_DDC_ERROR) {
- adv7511->edid_read = true;
-@@ -1070,6 +1077,8 @@ static int adv7511_probe(struct i2c_clie
- goto err_i2c_unregister_edid;
- }
-
-+ INIT_WORK(&adv7511->hpd_work, adv7511_hpd_work);
-+
- if (i2c->irq) {
- init_waitqueue_head(&adv7511->wq);
-
diff --git a/patches.renesas/0003-drm-bridge-adv7511-Switch-to-using-drm_kms_helper_ho.patch b/patches.renesas/0003-drm-bridge-adv7511-Switch-to-using-drm_kms_helper_ho.patch
deleted file mode 100644
index 2ed38c015e163b..00000000000000
--- a/patches.renesas/0003-drm-bridge-adv7511-Switch-to-using-drm_kms_helper_ho.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 399870f6fae9864ccc6a72db51b05cbdddfe5af5 Mon Sep 17 00:00:00 2001
-From: John Stultz <john.stultz@linaro.org>
-Date: Mon, 16 Jan 2017 16:52:48 -0800
-Subject: [PATCH 003/255] drm/bridge: adv7511: Switch to using
- drm_kms_helper_hotplug_event()
-
-In chasing down a previous issue with EDID probing from calling
-drm_helper_hpd_irq_event() from irq context, Laurent noticed
-that the DRM documentation suggests that
-drm_kms_helper_hotplug_event() should be used instead.
-
-Thus this patch replaces drm_helper_hpd_irq_event() with
-drm_kms_helper_hotplug_event(), which requires we update the
-connector.status entry and only call _hotplug_event() when the
-status changes.
-
-Cc: David Airlie <airlied@linux.ie>
-Cc: Archit Taneja <architt@codeaurora.org>
-Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
-Cc: Lars-Peter Clausen <lars@metafoo.de>
-Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Cc: dri-devel@lists.freedesktop.org
-Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-Signed-off-by: John Stultz <john.stultz@linaro.org>
-Signed-off-by: Archit Taneja <architt@codeaurora.org>
-Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-3-git-send-email-john.stultz@linaro.org
-(cherry picked from commit 6d5104c5a6b56385426e15047050584794bb6254)
-Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
----
- drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
-@@ -405,8 +405,22 @@ static bool adv7511_hpd(struct adv7511 *
- static void adv7511_hpd_work(struct work_struct *work)
- {
- struct adv7511 *adv7511 = container_of(work, struct adv7511, hpd_work);
-+ enum drm_connector_status status;
-+ unsigned int val;
-+ int ret;
-
-- drm_helper_hpd_irq_event(adv7511->connector.dev);
-+ ret = regmap_read(adv7511->regmap, ADV7511_REG_STATUS, &val);
-+ if (ret < 0)
-+ status = connector_status_disconnected;
-+ else if (val & ADV7511_STATUS_HPD)
-+ status = connector_status_connected;
-+ else
-+ status = connector_status_disconnected;
-+
-+ if (adv7511->connector.status != status) {
-+ adv7511->connector.status = status;
-+ drm_kms_helper_hotplug_event(adv7511->connector.dev);
-+ }
- }
-
- static int adv7511_irq_process(struct adv7511 *adv7511, bool process_hpd)
diff --git a/series b/series
index a618ca3ef632c3..df9109ef133f09 100644
--- a/series
+++ b/series
@@ -314,8 +314,6 @@ patches.renesas/0298-drm-bridge-dw_hdmi-add-dw-hdmi-i2c-bus-adapter-suppo.patch
patches.renesas/0299-drm-bridge-add-DesignWare-HDMI-I2S-audio-support.patch
patches.renesas/0001-drm-bridge-adv7511-Initialize-regulators.patch
-patches.renesas/0002-drm-bridge-adv7511-Use-work_struct-to-defer-hotplug-.patch
-patches.renesas/0003-drm-bridge-adv7511-Switch-to-using-drm_kms_helper_ho.patch
patches.renesas/0004-drm-bridge-adv7511-Enable-HPD-interrupts-to-support-.patch
patches.renesas/0005-drm-bridge-adv7511-Rework-adv7511_power_on-off-so-th.patch
patches.renesas/0006-drm-bridge-adv7511-Reuse-__adv7511_power_on-off-when.patch