mirror of
https://github.com/Fishwaldo/build.git
synced 2025-04-15 10:31:41 +00:00
86 lines
3.3 KiB
Diff
86 lines
3.3 KiB
Diff
From dea73d61466e4f09c8184f7bb5375975878645b3 Mon Sep 17 00:00:00 2001
|
|
From: Torsten Duwe <duwe@lst.de>
|
|
Date: Tue, 29 Oct 2019 13:16:57 +0100
|
|
Subject: drm/bridge: Prepare Analogix anx6345 support
|
|
|
|
Add bit definitions required for the anx6345 and add a
|
|
sanity check in anx_dp_aux_transfer.
|
|
|
|
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
|
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
Link: https://patchwork.freedesktop.org/patch/msgid/20191107135218.01C2168C4E@verein.lst.de
|
|
---
|
|
drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.c | 2 +-
|
|
drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h | 8 ++++++++
|
|
drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h | 3 +++
|
|
3 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
(limited to 'drivers/gpu/drm/bridge/analogix')
|
|
|
|
diff --git a/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.c b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.c
|
|
index 60707bb5afe7..fe40bab21530 100644
|
|
--- a/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.c
|
|
+++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.c
|
|
@@ -116,7 +116,7 @@ ssize_t anx_dp_aux_transfer(struct regmap *map_dptx,
|
|
else /* For non-zero-sized set the length field. */
|
|
ctrl1 |= (msg->size - 1) << SP_AUX_LENGTH_SHIFT;
|
|
|
|
- if ((msg->request & DP_AUX_I2C_READ) == 0) {
|
|
+ if ((msg->size > 0) && ((msg->request & DP_AUX_I2C_READ) == 0)) {
|
|
/* When WRITE | MOT write values to data buffer */
|
|
err = regmap_bulk_write(map_dptx,
|
|
SP_DP_BUF_DATA0_REG, buffer,
|
|
diff --git a/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h
|
|
index db24f7290461..663c4bea6e70 100644
|
|
--- a/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h
|
|
+++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-dptx.h
|
|
@@ -72,7 +72,11 @@
|
|
#define SP_CHA_STA BIT(2)
|
|
/* Bits for DP System Control Register 3 */
|
|
#define SP_HPD_STATUS BIT(6)
|
|
+#define SP_HPD_FORCE BIT(5)
|
|
+#define SP_HPD_CTRL BIT(4)
|
|
#define SP_STRM_VALID BIT(2)
|
|
+#define SP_STRM_FORCE BIT(1)
|
|
+#define SP_STRM_CTRL BIT(0)
|
|
/* Bits for DP System Control Register 4 */
|
|
#define SP_ENHANCED_MODE BIT(3)
|
|
|
|
@@ -117,6 +121,9 @@
|
|
#define SP_LINK_BW_SET_MASK 0x1f
|
|
#define SP_INITIAL_SLIM_M_AUD_SEL BIT(5)
|
|
|
|
+/* DP Lane Count Setting Register */
|
|
+#define SP_DP_LANE_COUNT_SET_REG 0xa1
|
|
+
|
|
/* DP Training Pattern Set Register */
|
|
#define SP_DP_TRAINING_PATTERN_SET_REG 0xa2
|
|
|
|
@@ -130,6 +137,7 @@
|
|
|
|
/* DP Link Training Control Register */
|
|
#define SP_DP_LT_CTRL_REG 0xa8
|
|
+#define SP_DP_LT_INPROGRESS 0x80
|
|
#define SP_LT_ERROR_TYPE_MASK 0x70
|
|
# define SP_LT_NO_ERROR 0x00
|
|
# define SP_LT_AUX_WRITE_ERROR 0x01
|
|
diff --git a/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h b/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h
|
|
index 677e78fb862f..3c843497d835 100644
|
|
--- a/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h
|
|
+++ b/drivers/gpu/drm/bridge/analogix/analogix-i2c-txcommon.h
|
|
@@ -177,6 +177,9 @@
|
|
#define SP_VBIT BIT(1)
|
|
#define SP_AUDIO_LAYOUT BIT(0)
|
|
|
|
+/* Analog Debug Register 1 */
|
|
+#define SP_ANALOG_DEBUG1_REG 0xdc
|
|
+
|
|
/* Analog Debug Register 2 */
|
|
#define SP_ANALOG_DEBUG2_REG 0xdd
|
|
#define SP_FORCE_SW_OFF_BYPASS 0x20
|
|
--
|
|
cgit 1.2-0.3.lf.el7
|
|
|