* [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
@ 2024-10-16 7:54 Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE Hermes Wu via B4 Relay
` (11 more replies)
0 siblings, 12 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
This is a v6 patch-set.
There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
In Order to fix those failures, HDCP flow needs to be changed.
The DisplayPort AUX protocol supports I2C transport.
In Order to support MCCS via the aux channel, the aux-i2c operation is added.
v5->v6:
-keep the commit message wrapped at 72-75 chars.
-[10/10] fix return variable being used without being initialized
v4->v5:
-add more messages for changes.
-[2/10] modified AUX transfer data size judgment.
change for-loop to do-while.
-[7/10] change for-loop to do-while.
-[9/10] change wait timer with timer_after()
links:
https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/
https://lore.kernel.org/all/20240926075134.22394-1-Hermes.Wu@ite.com.tw/
v3->v4:
-split changes into patches.
v2->v3:
-split aux read KSV function to a patch.
-[1/3] new in v3
-[2/3] add description of patch
v1->v2:
- ignored.
Hermes Wu (10):
drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
drm/bridge: it6505: improve AUX operation for edid read
drm/bridge: it6505: add AUX operation for HDCP KSV list read
drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
drm/bridge: it6505: fix HDCP Bstatus check
drm/bridge: it6505: fix HDCP encryption when R0 ready
drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
drm/bridge: it6505: fix HDCP CTS compare V matching
drm/bridge: it6505: fix HDCP CTS KSV list wait timer
drm/bridge: it6505: add I2C functionality on AUX
Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
Hermes Wu (10):
drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
drm/bridge: it6505: improve AUX operation for edid read
drm/bridge: it6505: add AUX operation for HDCP KSV list read
drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
drm/bridge: it6505: fix HDCP Bstatus check
drm/bridge: it6505: fix HDCP encryption when R0 ready
drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
drm/bridge: it6505: fix HDCP CTS compare V matching
drm/bridge: it6505: fix HDCP CTS KSV list wait timer
drm/bridge: it6505: add I2C functionality on AUX
drivers/gpu/drm/bridge/ite-it6505.c | 334 ++++++++++++++++++++++++++++++------
1 file changed, 277 insertions(+), 57 deletions(-)
---
base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
change-id: 20241015-upstream-v6-9f4b015fecf7
Best regards,
--
Hermes Wu <Hermes.wu@ite.com.tw>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-18 12:56 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read Hermes Wu via B4 Relay
` (10 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
The hardware AUX FIFO is 16 bytes
Change definition of AUX_FIFO_MAX_SIZE to 16
Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 7ff17aa14b01e4d9f626424e065131ae2b195c62..3272ca6951f2585f9592834869de23ac50ce41a4 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -300,7 +300,7 @@
#define MAX_CR_LEVEL 0x03
#define MAX_EQ_LEVEL 0x03
#define AUX_WAIT_TIMEOUT_MS 15
-#define AUX_FIFO_MAX_SIZE 32
+#define AUX_FIFO_MAX_SIZE 16
#define PIXEL_CLK_DELAY 1
#define PIXEL_CLK_INVERSE 0
#define ADJUST_PHASE_THRESHOLD 80000
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-20 13:53 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
` (9 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
The original AUX operation using data registers is limited to 4 bytes.
The AUX operation command CMD_AUX_I2C_EDID_READ uses AUX FIFO and
is capable of reading 16 bytes.
This improves the speed of EDID read.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 3272ca6951f2585f9592834869de23ac50ce41a4..9747d7ccf435d536da55c6a3ff79e504b7c724f0 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -1076,10 +1076,13 @@ static ssize_t it6505_aux_do_transfer(struct it6505 *it6505,
size_t size, enum aux_cmd_reply *reply)
{
int i, ret_size, ret = 0, request_size;
+ int fifo_max_size = (cmd == CMD_AUX_I2C_EDID_READ) ? AUX_FIFO_MAX_SIZE : 4;
mutex_lock(&it6505->aux_lock);
- for (i = 0; i < size; i += 4) {
- request_size = min((int)size - i, 4);
+ i = 0;
+ do {
+ request_size = min_t(int, (int)size - i, fifo_max_size);
+
ret_size = it6505_aux_operation(it6505, cmd, address + i,
buffer + i, request_size,
reply);
@@ -1088,8 +1091,9 @@ static ssize_t it6505_aux_do_transfer(struct it6505 *it6505,
goto aux_op_err;
}
+ i += request_size;
ret += ret_size;
- }
+ } while (i < size);
aux_op_err:
mutex_unlock(&it6505->aux_lock);
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-19 23:30 ` kernel test robot
` (2 more replies)
2024-10-16 7:54 ` [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT Hermes Wu via B4 Relay
` (8 subsequent siblings)
11 siblings, 3 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
HDCP KSV list readback can choose to use AUX FIFO or
general data register.
For some DisplayPort devices, the KSV list must be read
in 5 byte boundaries.
The original AUX read command does not support these devices.
The AUX command operation control register "REG_AUX_CMD_REQ" uses b[3:0]
as AUX operacion control, and b[7:4] are status bits and read only.
To change KSV read operation uses "CMD_AUX_NATIVE_READ" from using
the data registers to using AUX FIFO.
The extended command "CMD_AUX_GET_KSV_LIST" is added as
"CMD_AUX_NATIVE_READ" with the 0x10 flag which selects AUX FIFO mode.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 9747d7ccf435d536da55c6a3ff79e504b7c724f0..4e6ec1695ae45111d06026d7548d108fac9e5219 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -126,6 +126,7 @@
#define REG_AUX_OUT_DATA0 0x27
#define REG_AUX_CMD_REQ 0x2B
+#define M_AUX_REQ_CMD 0x0F
#define AUX_BUSY BIT(5)
#define REG_AUX_DATA_0_7 0x2C
@@ -324,6 +325,9 @@ enum aux_cmd_type {
CMD_AUX_NATIVE_READ = 0x0,
CMD_AUX_NATIVE_WRITE = 0x5,
CMD_AUX_I2C_EDID_READ = 0xB,
+
+ /* KSV read with AUX FIFO extend from CMD_AUX_NATIVE_READ*/
+ CMD_AUX_GET_KSV_LIST = 0x10,
};
enum aux_cmd_reply {
@@ -965,7 +969,8 @@ static ssize_t it6505_aux_operation(struct it6505 *it6505,
it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, AUX_USER_MODE);
aux_op_start:
- if (cmd == CMD_AUX_I2C_EDID_READ) {
+ /* HW AUX FIFO supports only EDID and DCPD KSV FIFO area */
+ if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
/* AUX EDID FIFO has max length of AUX_FIFO_MAX_SIZE bytes. */
size = min_t(size_t, size, AUX_FIFO_MAX_SIZE);
/* Enable AUX FIFO read back and clear FIFO */
@@ -996,7 +1001,7 @@ static ssize_t it6505_aux_operation(struct it6505 *it6505,
size);
/* Aux Fire */
- it6505_write(it6505, REG_AUX_CMD_REQ, cmd);
+ it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
ret = it6505_aux_wait(it6505);
if (ret < 0)
@@ -1030,7 +1035,7 @@ static ssize_t it6505_aux_operation(struct it6505 *it6505,
goto aux_op_start;
}
- if (cmd == CMD_AUX_I2C_EDID_READ) {
+ if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
for (i = 0; i < size; i++) {
ret = it6505_read(it6505, REG_AUX_DATA_FIFO);
if (ret < 0)
@@ -1055,7 +1060,7 @@ static ssize_t it6505_aux_operation(struct it6505 *it6505,
ret = i;
aux_op_err:
- if (cmd == CMD_AUX_I2C_EDID_READ) {
+ if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
/* clear AUX FIFO */
it6505_set_bits(it6505, REG_AUX_CTRL,
AUX_EN_FIFO_READ | CLR_EDID_FIFO,
@@ -1076,7 +1081,8 @@ static ssize_t it6505_aux_do_transfer(struct it6505 *it6505,
size_t size, enum aux_cmd_reply *reply)
{
int i, ret_size, ret = 0, request_size;
- int fifo_max_size = (cmd == CMD_AUX_I2C_EDID_READ) ? AUX_FIFO_MAX_SIZE : 4;
+ int fifo_max_size = (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) ?
+ AUX_FIFO_MAX_SIZE : 4;
mutex_lock(&it6505->aux_lock);
i = 0;
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (2 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-20 13:53 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 05/10] drm/bridge: it6505: fix HDCP Bstatus check Hermes Wu via B4 Relay
` (7 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
A HDCP source device shall support max downstream to 127 devices.
Change definition MAX_HDCP_DOWN_STREAM_COUNT to 127
KSVs shall save for DRM blocked devices check.
This results in struct it6505 growth by ~0.5 KiB.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 4e6ec1695ae45111d06026d7548d108fac9e5219..1159725f6871e5912aa6c2660823bee67115143e 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -297,7 +297,7 @@
#define MAX_LANE_COUNT 4
#define MAX_LINK_RATE HBR
#define AUTO_TRAIN_RETRY 3
-#define MAX_HDCP_DOWN_STREAM_COUNT 10
+#define MAX_HDCP_DOWN_STREAM_COUNT 127
#define MAX_CR_LEVEL 0x03
#define MAX_EQ_LEVEL 0x03
#define AUX_WAIT_TIMEOUT_MS 15
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 05/10] drm/bridge: it6505: fix HDCP Bstatus check
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (3 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 06/10] drm/bridge: it6505: fix HDCP encryption when R0 ready Hermes Wu via B4 Relay
` (6 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
When HDCP is activated,
a DisplayPort source receiving CP_IRQ from the sink
shall check Bstatus from DPCD and process the corresponding value
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 1159725f6871e5912aa6c2660823bee67115143e..65c17e53e05f3bc2a647474cba7d9d7e737f11b8 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -2322,14 +2322,20 @@ static int it6505_process_hpd_irq(struct it6505 *it6505)
DRM_DEV_DEBUG_DRIVER(dev, "dp_irq_vector = 0x%02x", dp_irq_vector);
if (dp_irq_vector & DP_CP_IRQ) {
- it6505_set_bits(it6505, REG_HDCP_TRIGGER, HDCP_TRIGGER_CPIRQ,
- HDCP_TRIGGER_CPIRQ);
-
bstatus = it6505_dpcd_read(it6505, DP_AUX_HDCP_BSTATUS);
if (bstatus < 0)
return bstatus;
DRM_DEV_DEBUG_DRIVER(dev, "Bstatus = 0x%02x", bstatus);
+
+ /*check BSTATUS when recive CP_IRQ */
+ if (bstatus & DP_BSTATUS_R0_PRIME_READY &&
+ it6505->hdcp_status == HDCP_AUTH_GOING)
+ it6505_set_bits(it6505, REG_HDCP_TRIGGER, HDCP_TRIGGER_CPIRQ,
+ HDCP_TRIGGER_CPIRQ);
+ else if (bstatus & (DP_BSTATUS_REAUTH_REQ | DP_BSTATUS_LINK_FAILURE) &&
+ it6505->hdcp_status == HDCP_AUTH_DONE)
+ it6505_start_hdcp(it6505);
}
ret = drm_dp_dpcd_read_link_status(&it6505->aux, link_status);
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 06/10] drm/bridge: it6505: fix HDCP encryption when R0 ready
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (4 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 05/10] drm/bridge: it6505: fix HDCP Bstatus check Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100 Hermes Wu via B4 Relay
` (5 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
When starting HDCP authentication, HDCP encryption should be enabled
when R0'is checked.
Change encryption enables time at R0' ready.
The hardware HDCP engine trigger is changed and the repeater KSV fails
will restart HDCP.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 65c17e53e05f3bc2a647474cba7d9d7e737f11b8..85626b49a048a1178676ed616130a522ca314152 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -2091,15 +2091,12 @@ static void it6505_hdcp_wait_ksv_list(struct work_struct *work)
ksv_list_check = it6505_hdcp_part2_ksvlist_check(it6505);
DRM_DEV_DEBUG_DRIVER(dev, "ksv list ready, ksv list check %s",
ksv_list_check ? "pass" : "fail");
- if (ksv_list_check) {
- it6505_set_bits(it6505, REG_HDCP_TRIGGER,
- HDCP_TRIGGER_KSV_DONE, HDCP_TRIGGER_KSV_DONE);
+
+ if (ksv_list_check)
return;
- }
+
timeout:
- it6505_set_bits(it6505, REG_HDCP_TRIGGER,
- HDCP_TRIGGER_KSV_DONE | HDCP_TRIGGER_KSV_FAIL,
- HDCP_TRIGGER_KSV_DONE | HDCP_TRIGGER_KSV_FAIL);
+ it6505_start_hdcp(it6505);
}
static void it6505_hdcp_work(struct work_struct *work)
@@ -2472,7 +2469,11 @@ static void it6505_irq_hdcp_ksv_check(struct it6505 *it6505)
{
struct device *dev = it6505->dev;
- DRM_DEV_DEBUG_DRIVER(dev, "HDCP event Interrupt");
+ DRM_DEV_DEBUG_DRIVER(dev, "HDCP repeater R0 event Interrupt");
+ /* 1B01 HDCP encription should start when R0 is ready*/
+ it6505_set_bits(it6505, REG_HDCP_TRIGGER,
+ HDCP_TRIGGER_KSV_DONE, HDCP_TRIGGER_KSV_DONE);
+
schedule_work(&it6505->hdcp_wait_ksv_list);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (5 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 06/10] drm/bridge: it6505: fix HDCP encryption when R0 ready Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-20 13:54 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 08/10] drm/bridge: it6505: fix HDCP CTS compare V matching Hermes Wu via B4 Relay
` (4 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
When running the HDCP CTS test with UNIGRAF DPR-100.
KSV list must be read from DP_AUX_HDCP_KSV_FIFO in an AUX request,
and can not separate with multiple read requests.
The AUX operation command "CMD_AUX_GET_KSV_LIST" reads the KSV list
with AUX FIFO and is able to read DP_AUX_HDCP_KSV_FIFO in an AUX request.
Add it6505_get_ksvlist() which uses CMD_AUX_GET_KSV_LIST operation
to read the KSV list.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 48 +++++++++++++++++++++++++++----------
1 file changed, 36 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 85626b49a048a1178676ed616130a522ca314152..40fb47f4954331d63681066fb3af19f0f57bb929 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -1188,6 +1188,37 @@ static int it6505_get_edid_block(void *data, u8 *buf, unsigned int block,
return 0;
}
+static int it6505_get_ksvlist(struct it6505 *it6505, u8 *buf, size_t len)
+{
+ struct device *dev = it6505->dev;
+ enum aux_cmd_reply reply;
+ int request_size, ret;
+ int i = 0;
+
+ do {
+ request_size = min_t(int, (int)len - i, 15);
+
+ ret = it6505_aux_do_transfer(it6505, CMD_AUX_GET_KSV_LIST,
+ DP_AUX_HDCP_KSV_FIFO,
+ buf + i, request_size, &reply);
+
+ DRM_DEV_DEBUG_DRIVER(dev, "request_size = %d, ret =%d", request_size, ret);
+ if (ret < 0)
+ return ret;
+
+ i += request_size;
+ } while (i < len);
+
+ DRM_DEV_DEBUG_DRIVER(dev, "ksv read cnt = %d down_stream_cnt=%d ", i, i / 5);
+
+ for (i = 0 ; i < len; i += 5) {
+ DRM_DEV_DEBUG_DRIVER(dev, "ksv[%d] = %02X%02X%02X%02X%02X",
+ i / 5, buf[i], buf[i + 1], buf[i + 2], buf[i + 3], buf[i + 4]);
+ }
+
+ return len;
+}
+
static void it6505_variable_config(struct it6505 *it6505)
{
it6505->link_rate_bw_code = HBR;
@@ -1969,7 +2000,7 @@ static int it6505_setup_sha1_input(struct it6505 *it6505, u8 *sha1_input)
{
struct device *dev = it6505->dev;
u8 binfo[2];
- int down_stream_count, i, err, msg_count = 0;
+ int down_stream_count, err, msg_count = 0;
err = it6505_get_dpcd(it6505, DP_AUX_HDCP_BINFO, binfo,
ARRAY_SIZE(binfo));
@@ -1994,18 +2025,11 @@ static int it6505_setup_sha1_input(struct it6505 *it6505, u8 *sha1_input)
down_stream_count);
return 0;
}
+ err = it6505_get_ksvlist(it6505, sha1_input, down_stream_count * 5);
+ if (err < 0)
+ return err;
- for (i = 0; i < down_stream_count; i++) {
- err = it6505_get_dpcd(it6505, DP_AUX_HDCP_KSV_FIFO +
- (i % 3) * DRM_HDCP_KSV_LEN,
- sha1_input + msg_count,
- DRM_HDCP_KSV_LEN);
-
- if (err < 0)
- return err;
-
- msg_count += 5;
- }
+ msg_count += down_stream_count * 5;
it6505->hdcp_down_stream_count = down_stream_count;
sha1_input[msg_count++] = binfo[0];
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 08/10] drm/bridge: it6505: fix HDCP CTS compare V matching
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (6 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100 Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 09/10] drm/bridge: it6505: fix HDCP CTS KSV list wait timer Hermes Wu via B4 Relay
` (3 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
When HDCP negotiation with a repeater device.
Checking SHA V' matching must retry 3 times before restarting HDCP.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 32 +++++++++++++++++++-------------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 40fb47f4954331d63681066fb3af19f0f57bb929..439cca455ecf91b5f83b0add416db7f099f9a34d 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -2057,7 +2057,7 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
{
struct device *dev = it6505->dev;
u8 av[5][4], bv[5][4];
- int i, err;
+ int i, err, retry;
i = it6505_setup_sha1_input(it6505, it6505->sha1_input);
if (i <= 0) {
@@ -2066,22 +2066,28 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
}
it6505_sha1_digest(it6505, it6505->sha1_input, i, (u8 *)av);
+ /*1B-05 V' must retry 3 times */
+ for (retry = 0; retry < 3; retry++) {
+ err = it6505_get_dpcd(it6505, DP_AUX_HDCP_V_PRIME(0), (u8 *)bv,
+ sizeof(bv));
- err = it6505_get_dpcd(it6505, DP_AUX_HDCP_V_PRIME(0), (u8 *)bv,
- sizeof(bv));
+ if (err < 0) {
+ dev_err(dev, "Read V' value Fail %d", retry);
+ continue;
+ }
- if (err < 0) {
- dev_err(dev, "Read V' value Fail");
- return false;
- }
+ for (i = 0; i < 5; i++) {
+ if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
+ av[i][1] != av[i][2] || bv[i][0] != av[i][3])
+ break;
- for (i = 0; i < 5; i++)
- if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
- bv[i][1] != av[i][2] || bv[i][0] != av[i][3])
- return false;
+ DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
+ return true;
+ }
+ }
- DRM_DEV_DEBUG_DRIVER(dev, "V' all match!!");
- return true;
+ DRM_DEV_DEBUG_DRIVER(dev, "V' NOT match!! %d", retry);
+ return false;
}
static void it6505_hdcp_wait_ksv_list(struct work_struct *work)
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 09/10] drm/bridge: it6505: fix HDCP CTS KSV list wait timer
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (7 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 08/10] drm/bridge: it6505: fix HDCP CTS compare V matching Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX Hermes Wu via B4 Relay
` (2 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
HDCP must disabled encryption and restart authentication after
waiting KSV for 5s.
The original method uses a counter in a waitting loop that may
wait much longer than it is supposed to.
Use time_after() for KSV wait timeout.
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 439cca455ecf91b5f83b0add416db7f099f9a34d..4fc2147e9788501f0161180fc865072ab965ecbf 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -2095,12 +2095,13 @@ static void it6505_hdcp_wait_ksv_list(struct work_struct *work)
struct it6505 *it6505 = container_of(work, struct it6505,
hdcp_wait_ksv_list);
struct device *dev = it6505->dev;
- unsigned int timeout = 5000;
- u8 bstatus = 0;
+ u8 bstatus;
bool ksv_list_check;
+ /* 1B-04 wait ksv list for 5s */
+ unsigned long timeout = jiffies +
+ msecs_to_jiffies(5000) + 1;
- timeout /= 20;
- while (timeout > 0) {
+ for (;;) {
if (!it6505_get_sink_hpd_status(it6505))
return;
@@ -2109,13 +2110,12 @@ static void it6505_hdcp_wait_ksv_list(struct work_struct *work)
if (bstatus & DP_BSTATUS_READY)
break;
- msleep(20);
- timeout--;
- }
+ if (time_after(jiffies, timeout)) {
+ DRM_DEV_DEBUG_DRIVER(dev, "KSV list wait timeout");
+ goto timeout;
+ }
- if (timeout == 0) {
- DRM_DEV_DEBUG_DRIVER(dev, "timeout and ksv list wait failed");
- goto timeout;
+ msleep(20);
}
ksv_list_check = it6505_hdcp_part2_ksvlist_check(it6505);
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (8 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 09/10] drm/bridge: it6505: fix HDCP CTS KSV list wait timer Hermes Wu via B4 Relay
@ 2024-10-16 7:54 ` Hermes Wu via B4 Relay
2024-10-20 13:54 ` Dmitry Baryshkov
2024-10-16 21:52 ` [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Pin-yen Lin
2024-10-20 13:57 ` Dmitry Baryshkov
11 siblings, 1 reply; 25+ messages in thread
From: Hermes Wu via B4 Relay @ 2024-10-16 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin
Cc: dri-devel, linux-kernel, Kenneth Hung, Pet Weng, Hermes Wu
From: Hermes Wu <Hermes.wu@ite.com.tw>
DisplayPort AUX protocol supports I2C transport which is capable of
reading EDID or supports MCCS.
In drm_dp_helper, drm_dp_i2c_xfer() packs I2C requests into a
sequence of AUX requests.
it6505_aux_i2c_operation() is implemented to match drm_dp_i2c_xfer()
operactions.
it6505_aux_i2c_transfer() adds I2C functionality
for it6505_aux_transfer().
Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
drivers/gpu/drm/bridge/ite-it6505.c | 177 +++++++++++++++++++++++++++++++++++-
1 file changed, 175 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 4fc2147e9788501f0161180fc865072ab965ecbf..04e17737f0d7228e5178984aefe124f88bce0825 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -267,6 +267,18 @@
#define REG_SSC_CTRL1 0x189
#define REG_SSC_CTRL2 0x18A
+#define REG_AUX_USER_CTRL 0x190
+#define EN_USER_AUX BIT(0)
+#define USER_AUX_DONE BIT(1)
+#define AUX_EVENT BIT(4)
+
+#define REG_AUX_USER_DATA_REC 0x191
+#define M_AUX_IN_REC 0xF0
+#define M_AUX_OUT_REC 0x0F
+
+#define REG_AUX_USER_REPLY 0x19A
+#define REG_AUX_USER_RXB(n) (n + 0x19B)
+
#define RBR DP_LINK_BW_1_62
#define HBR DP_LINK_BW_2_7
#define HBR2 DP_LINK_BW_5_4
@@ -302,6 +314,8 @@
#define MAX_EQ_LEVEL 0x03
#define AUX_WAIT_TIMEOUT_MS 15
#define AUX_FIFO_MAX_SIZE 16
+#define AUX_I2C_MAX_SIZE 4
+#define AUX_I2C_DEFER_RETRY 4
#define PIXEL_CLK_DELAY 1
#define PIXEL_CLK_INVERSE 0
#define ADJUST_PHASE_THRESHOLD 80000
@@ -324,7 +338,12 @@
enum aux_cmd_type {
CMD_AUX_NATIVE_READ = 0x0,
CMD_AUX_NATIVE_WRITE = 0x5,
+ CMD_AUX_GI2C_ADR = 0x08,
+ CMD_AUX_GI2C_READ = 0x09,
+ CMD_AUX_GI2C_WRITE = 0x0A,
CMD_AUX_I2C_EDID_READ = 0xB,
+ CMD_AUX_I2C_READ = 0x0D,
+ CMD_AUX_I2C_WRITE = 0x0C,
/* KSV read with AUX FIFO extend from CMD_AUX_NATIVE_READ*/
CMD_AUX_GET_KSV_LIST = 0x10,
@@ -1106,6 +1125,161 @@ static ssize_t it6505_aux_do_transfer(struct it6505 *it6505,
return ret;
}
+static bool it6505_aux_i2c_reply_defer(u8 reply)
+{
+ if (reply == DP_AUX_NATIVE_REPLY_DEFER || reply == DP_AUX_I2C_REPLY_DEFER)
+ return true;
+ return false;
+}
+
+static bool it6505_aux_i2c_reply_nack(u8 reply)
+{
+ if (reply == DP_AUX_NATIVE_REPLY_NACK || reply == DP_AUX_I2C_REPLY_NACK)
+ return true;
+ return false;
+}
+
+static int it6505_aux_i2c_wait(struct it6505 *it6505, u8 *reply)
+{
+ int err = 0;
+ unsigned long timeout;
+ struct device *dev = it6505->dev;
+
+ timeout = jiffies + msecs_to_jiffies(AUX_WAIT_TIMEOUT_MS) + 1;
+
+ do {
+ if (it6505_read(it6505, REG_AUX_USER_CTRL) & AUX_EVENT)
+ break;
+ if (time_after(jiffies, timeout)) {
+ dev_err(dev, "Timed out waiting AUX I2C, BUSY = %X\n",
+ it6505_aux_op_finished(it6505));
+ err = -ETIMEDOUT;
+ goto end_aux_i2c_wait;
+ }
+ usleep_range(300, 800);
+ } while (!it6505_aux_op_finished(it6505));
+
+ *reply = it6505_read(it6505, REG_AUX_USER_REPLY) >> 4;
+
+ if (*reply == 0)
+ goto end_aux_i2c_wait;
+
+ if (it6505_aux_i2c_reply_defer(*reply))
+ err = -EBUSY;
+ else if (it6505_aux_i2c_reply_nack(*reply))
+ err = -ENXIO;
+
+end_aux_i2c_wait:
+ it6505_set_bits(it6505, REG_AUX_USER_CTRL, USER_AUX_DONE, USER_AUX_DONE);
+ return err;
+}
+
+static int it6505_aux_i2c_readb(struct it6505 *it6505, u8 *buf, size_t size, u8 *reply)
+{
+ int ret, i;
+ int retry;
+
+ for (retry = 0; retry < AUX_I2C_DEFER_RETRY; retry++) {
+ it6505_write(it6505, REG_AUX_CMD_REQ, CMD_AUX_GI2C_READ);
+
+ ret = it6505_aux_i2c_wait(it6505, reply);
+ if (it6505_aux_i2c_reply_defer(*reply))
+ continue;
+ if (ret >= 0)
+ break;
+ }
+
+ for (i = 0; i < size; i++)
+ buf[i] = it6505_read(it6505, REG_AUX_USER_RXB(0 + i));
+
+ return size;
+}
+
+static int it6505_aux_i2c_writeb(struct it6505 *it6505, u8 *buf, size_t size, u8 *reply)
+{
+ int i, ret;
+ int retry;
+
+ for (i = 0; i < size; i++)
+ it6505_write(it6505, REG_AUX_OUT_DATA0 + i, buf[i]);
+
+ for (retry = 0; retry < AUX_I2C_DEFER_RETRY; retry++) {
+ it6505_write(it6505, REG_AUX_CMD_REQ, CMD_AUX_GI2C_WRITE);
+
+ ret = it6505_aux_i2c_wait(it6505, reply);
+ if (it6505_aux_i2c_reply_defer(*reply))
+ continue;
+ if (ret >= 0)
+ break;
+ }
+ return size;
+}
+
+static ssize_t it6505_aux_i2c_operation(struct it6505 *it6505,
+ struct drm_dp_aux_msg *msg)
+{
+ int ret;
+ ssize_t request_size, data_cnt = 0;
+ u8 *buffer = msg->buffer;
+
+ /* set AUX user mode */
+ it6505_set_bits(it6505, REG_AUX_CTRL,
+ AUX_USER_MODE | AUX_NO_SEGMENT_WR, AUX_USER_MODE);
+ it6505_set_bits(it6505, REG_AUX_USER_CTRL, EN_USER_AUX, EN_USER_AUX);
+ /* clear AUX FIFO */
+ it6505_set_bits(it6505, REG_AUX_CTRL,
+ AUX_EN_FIFO_READ | CLR_EDID_FIFO,
+ AUX_EN_FIFO_READ | CLR_EDID_FIFO);
+
+ it6505_set_bits(it6505, REG_AUX_CTRL,
+ AUX_EN_FIFO_READ | CLR_EDID_FIFO, 0x00);
+
+ it6505_write(it6505, REG_AUX_ADR_0_7, 0x00);
+ it6505_write(it6505, REG_AUX_ADR_8_15, msg->address << 1);
+
+ if (msg->size == 0) {
+ /* IIC Start/STOP dummy write */
+ it6505_write(it6505, REG_AUX_ADR_16_19, msg->request);
+ it6505_write(it6505, REG_AUX_CMD_REQ, CMD_AUX_GI2C_ADR);
+ ret = it6505_aux_i2c_wait(it6505, &msg->reply);
+ goto end_aux_i2c_transfer;
+ }
+
+ /* IIC data transfer */
+ data_cnt = 0;
+ do {
+ request_size = min_t(ssize_t, msg->size - data_cnt, AUX_I2C_MAX_SIZE);
+ it6505_write(it6505, REG_AUX_ADR_16_19,
+ msg->request | ((request_size - 1) << 4));
+ if ((msg->request & DP_AUX_I2C_READ) == DP_AUX_I2C_READ)
+ ret = it6505_aux_i2c_readb(it6505, &buffer[data_cnt],
+ request_size, &msg->reply);
+ else
+ ret = it6505_aux_i2c_writeb(it6505, &buffer[data_cnt],
+ request_size, &msg->reply);
+
+ if (ret < 0)
+ goto end_aux_i2c_transfer;
+
+ data_cnt += request_size;
+ } while (data_cnt < msg->size);
+ ret = data_cnt;
+end_aux_i2c_transfer:
+
+ it6505_set_bits(it6505, REG_AUX_USER_CTRL, EN_USER_AUX, 0);
+ it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, 0);
+ return ret;
+}
+
+static ssize_t it6505_aux_i2c_transfer(struct drm_dp_aux *aux,
+ struct drm_dp_aux_msg *msg)
+{
+ struct it6505 *it6505 = container_of(aux, struct it6505, aux);
+
+ guard(mutex)(&it6505->aux_lock);
+ return it6505_aux_i2c_operation(it6505, msg);
+}
+
static ssize_t it6505_aux_transfer(struct drm_dp_aux *aux,
struct drm_dp_aux_msg *msg)
{
@@ -1115,9 +1289,8 @@ static ssize_t it6505_aux_transfer(struct drm_dp_aux *aux,
int ret;
enum aux_cmd_reply reply;
- /* IT6505 doesn't support arbitrary I2C read / write. */
if (is_i2c)
- return -EINVAL;
+ return it6505_aux_i2c_transfer(aux, msg);
switch (msg->request) {
case DP_AUX_NATIVE_READ:
--
2.34.1
^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (9 preceding siblings ...)
2024-10-16 7:54 ` [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX Hermes Wu via B4 Relay
@ 2024-10-16 21:52 ` Pin-yen Lin
2024-10-17 2:10 ` Hermes.Wu
2024-10-20 13:57 ` Dmitry Baryshkov
11 siblings, 1 reply; 25+ messages in thread
From: Pin-yen Lin @ 2024-10-16 21:52 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, dri-devel, linux-kernel, Kenneth Hung,
Pet Weng
Hi Hermes,
On Wed, Oct 16, 2024 at 3:54 AM Hermes Wu via B4 Relay
<devnull+Hermes.wu.ite.com.tw@kernel.org> wrote:
>
> This is a v6 patch-set.
>
> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
> In Order to fix those failures, HDCP flow needs to be changed.
>
> The DisplayPort AUX protocol supports I2C transport.
> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
>
> v5->v6:
> -keep the commit message wrapped at 72-75 chars.
> -[10/10] fix return variable being used without being initialized
>
> v4->v5:
> -add more messages for changes.
> -[2/10] modified AUX transfer data size judgment.
> change for-loop to do-while.
> -[7/10] change for-loop to do-while.
> -[9/10] change wait timer with timer_after()
>
> links:
> https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/
> https://lore.kernel.org/all/20240926075134.22394-1-Hermes.Wu@ite.com.tw/
>
> v3->v4:
> -split changes into patches.
>
> v2->v3:
> -split aux read KSV function to a patch.
> -[1/3] new in v3
> -[2/3] add description of patch
>
> v1->v2:
> - ignored.
>
> Hermes Wu (10):
> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> drm/bridge: it6505: improve AUX operation for edid read
> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> drm/bridge: it6505: fix HDCP Bstatus check
> drm/bridge: it6505: fix HDCP encryption when R0 ready
> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> drm/bridge: it6505: fix HDCP CTS compare V matching
> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> drm/bridge: it6505: add I2C functionality on AUX
>
> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> Hermes Wu (10):
> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> drm/bridge: it6505: improve AUX operation for edid read
> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> drm/bridge: it6505: fix HDCP Bstatus check
> drm/bridge: it6505: fix HDCP encryption when R0 ready
> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> drm/bridge: it6505: fix HDCP CTS compare V matching
> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> drm/bridge: it6505: add I2C functionality on AUX
>
> drivers/gpu/drm/bridge/ite-it6505.c | 334 ++++++++++++++++++++++++++++++------
> 1 file changed, 277 insertions(+), 57 deletions(-)
> ---
> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
> change-id: 20241015-upstream-v6-9f4b015fecf7
>
> Best regards,
> --
> Hermes Wu <Hermes.wu@ite.com.tw>
>
>
I'm not sure if this requires a re-spin, but you are supposed to
collect the reviewed-by tags you received when you send out a new
version. i.e., put the "Reviewed-by:" lines you received before your
"Signed-off-by:" line.
Regards,
Pin-yen
^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-16 21:52 ` [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Pin-yen Lin
@ 2024-10-17 2:10 ` Hermes.Wu
2024-10-17 2:44 ` Pin-yen Lin
0 siblings, 1 reply; 25+ messages in thread
From: Hermes.Wu @ 2024-10-17 2:10 UTC (permalink / raw)
To: treapking
Cc: andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, maarten.lankhorst, mripard, tzimmermann, airlied,
simona, angelogioacchino.delregno, dri-devel, linux-kernel,
Kenneth.Hung, Pet.Weng
>
>
>-----Original Message-----
>From: Pin-yen Lin <treapking@chromium.org>
>Sent: Thursday, October 17, 2024 5:52 AM
>To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
>Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Pet Weng (翁玉芬) <Pet.Weng@ite.com.tw>
>Subject: Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
>
>Hi Hermes,
>
>On Wed, Oct 16, 2024 at 3:54 AM Hermes Wu via B4 Relay <devnull+Hermes.wu.ite.com.tw@kernel.org> wrote:
>>
>> This is a v6 patch-set.
>>
>> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
>> In Order to fix those failures, HDCP flow needs to be changed.
>>
>> The DisplayPort AUX protocol supports I2C transport.
>> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
>>
>> v5->v6:
>> -keep the commit message wrapped at 72-75 chars.
>> -[10/10] fix return variable being used without being
>> initialized
>>
>> v4->v5:
>> -add more messages for changes.
>> -[2/10] modified AUX transfer data size judgment.
>> change for-loop to do-while.
>> -[7/10] change for-loop to do-while.
>> -[9/10] change wait timer with timer_after()
>>
>> links:
>> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuNAGYuJGScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZazumE8vA$
>>
>> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926075134
>> .22394-1-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuNAGYuJG
>> ScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZb7YFr4mw$
>>
>> v3->v4:
>> -split changes into patches.
>>
>> v2->v3:
>> -split aux read KSV function to a patch.
>> -[1/3] new in v3
>> -[2/3] add description of patch
>>
>> v1->v2:
>> - ignored.
>>
>> Hermes Wu (10):
>> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> drm/bridge: it6505: improve AUX operation for edid read
>> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> drm/bridge: it6505: fix HDCP Bstatus check
>> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> drm/bridge: it6505: fix HDCP CTS compare V matching
>> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> drm/bridge: it6505: add I2C functionality on AUX
>>
>> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
>> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
>> ---
>> Hermes Wu (10):
>> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> drm/bridge: it6505: improve AUX operation for edid read
>> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> drm/bridge: it6505: fix HDCP Bstatus check
>> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> drm/bridge: it6505: fix HDCP CTS compare V matching
>> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> drm/bridge: it6505: add I2C functionality on AUX
>>
>> drivers/gpu/drm/bridge/ite-it6505.c | 334
>> ++++++++++++++++++++++++++++++------
>> 1 file changed, 277 insertions(+), 57 deletions(-)
>> ---
>> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
>> change-id: 20241015-upstream-v6-9f4b015fecf7
>>
>> Best regards,
>> --
>> Hermes Wu <Hermes.wu@ite.com.tw>
>>
>>
>
>I'm not sure if this requires a re-spin, but you are supposed to collect the reviewed-by tags you received when you send out a new version. i.e., put the "Reviewed-by:" lines you received before your "Signed-off-by:" line.
only cover-letter or all patches? need "RESEND" for same v6 patch header?
>Regards,
>Pin-yen
BR,
Hermes
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-17 2:10 ` Hermes.Wu
@ 2024-10-17 2:44 ` Pin-yen Lin
2024-10-17 2:50 ` Hermes.Wu
0 siblings, 1 reply; 25+ messages in thread
From: Pin-yen Lin @ 2024-10-17 2:44 UTC (permalink / raw)
To: Hermes.Wu
Cc: andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, maarten.lankhorst, mripard, tzimmermann, airlied,
simona, angelogioacchino.delregno, dri-devel, linux-kernel,
Kenneth.Hung, Pet.Weng
Hi,
On Wed, Oct 16, 2024 at 10:10 PM <Hermes.Wu@ite.com.tw> wrote:
>
> >
> >
> >-----Original Message-----
> >From: Pin-yen Lin <treapking@chromium.org>
> >Sent: Thursday, October 17, 2024 5:52 AM
> >To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
> >Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Pet Weng (翁玉芬) <Pet.Weng@ite.com.tw>
> >Subject: Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
> >
> >Hi Hermes,
> >
> >On Wed, Oct 16, 2024 at 3:54 AM Hermes Wu via B4 Relay <devnull+Hermes.wu.ite.com.tw@kernel.org> wrote:
> >>
> >> This is a v6 patch-set.
> >>
> >> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
> >> In Order to fix those failures, HDCP flow needs to be changed.
> >>
> >> The DisplayPort AUX protocol supports I2C transport.
> >> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
> >>
> >> v5->v6:
> >> -keep the commit message wrapped at 72-75 chars.
> >> -[10/10] fix return variable being used without being
> >> initialized
> >>
> >> v4->v5:
> >> -add more messages for changes.
> >> -[2/10] modified AUX transfer data size judgment.
> >> change for-loop to do-while.
> >> -[7/10] change for-loop to do-while.
> >> -[9/10] change wait timer with timer_after()
> >>
> >> links:
> >> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuNAGYuJGScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZazumE8vA$
> >>
> >> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926075134
> >> .22394-1-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuNAGYuJG
> >> ScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZb7YFr4mw$
> >>
> >> v3->v4:
> >> -split changes into patches.
> >>
> >> v2->v3:
> >> -split aux read KSV function to a patch.
> >> -[1/3] new in v3
> >> -[2/3] add description of patch
> >>
> >> v1->v2:
> >> - ignored.
> >>
> >> Hermes Wu (10):
> >> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> >> drm/bridge: it6505: improve AUX operation for edid read
> >> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> >> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> >> drm/bridge: it6505: fix HDCP Bstatus check
> >> drm/bridge: it6505: fix HDCP encryption when R0 ready
> >> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> >> drm/bridge: it6505: fix HDCP CTS compare V matching
> >> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> >> drm/bridge: it6505: add I2C functionality on AUX
> >>
> >> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
> >> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> >> ---
> >> Hermes Wu (10):
> >> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> >> drm/bridge: it6505: improve AUX operation for edid read
> >> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> >> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> >> drm/bridge: it6505: fix HDCP Bstatus check
> >> drm/bridge: it6505: fix HDCP encryption when R0 ready
> >> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> >> drm/bridge: it6505: fix HDCP CTS compare V matching
> >> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> >> drm/bridge: it6505: add I2C functionality on AUX
> >>
> >> drivers/gpu/drm/bridge/ite-it6505.c | 334
> >> ++++++++++++++++++++++++++++++------
> >> 1 file changed, 277 insertions(+), 57 deletions(-)
> >> ---
> >> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
> >> change-id: 20241015-upstream-v6-9f4b015fecf7
> >>
> >> Best regards,
> >> --
> >> Hermes Wu <Hermes.wu@ite.com.tw>
> >>
> >>
> >
> >I'm not sure if this requires a re-spin, but you are supposed to collect the reviewed-by tags you received when you send out a new version. i.e., put the "Reviewed-by:" lines you received before your "Signed-off-by:" line.
>
> only cover-letter or all patches? need "RESEND" for same v6 patch header?
You should add the review tags to the individual patches that have not
changed since the previous review. For this series, I think you can
wait a few days and collect feedbacks from the community first.
>
> >Regards,
> >Pin-yen
>
>
>
> BR,
> Hermes
Pin-yen
^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-17 2:44 ` Pin-yen Lin
@ 2024-10-17 2:50 ` Hermes.Wu
0 siblings, 0 replies; 25+ messages in thread
From: Hermes.Wu @ 2024-10-17 2:50 UTC (permalink / raw)
To: treapking
Cc: andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, maarten.lankhorst, mripard, tzimmermann, airlied,
simona, angelogioacchino.delregno, dri-devel, linux-kernel,
Kenneth.Hung, Pet.Weng
Hi,
>Hi,
>
>On Wed, Oct 16, 2024 at 10:10 PM <Hermes.Wu@ite.com.tw> wrote:
>>
>> >
>> >
>> >-----Original Message-----
>> >From: Pin-yen Lin <treapking@chromium.org>
>> >Sent: Thursday, October 17, 2024 5:52 AM
>> >To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
>> >Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong
>> ><neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent
>> >Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman
>> ><jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten
>> >Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard
>> ><mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David
>> >Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>;
>> >AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>;
>> >dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org;
>> >Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Pet Weng (翁玉芬)
>> ><Pet.Weng@ite.com.tw>
>> >Subject: Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail
>> >items and add MCCS support
>> >
>> >Hi Hermes,
>> >
>> >On Wed, Oct 16, 2024 at 3:54 AM Hermes Wu via B4 Relay <devnull+Hermes.wu.ite.com.tw@kernel.org> wrote:
>> >>
>> >> This is a v6 patch-set.
>> >>
>> >> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
>> >> In Order to fix those failures, HDCP flow needs to be changed.
>> >>
>> >> The DisplayPort AUX protocol supports I2C transport.
>> >> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
>> >>
>> >> v5->v6:
>> >> -keep the commit message wrapped at 72-75 chars.
>> >> -[10/10] fix return variable being used without being
>> >> initialized
>> >>
>> >> v4->v5:
>> >> -add more messages for changes.
>> >> -[2/10] modified AUX transfer data size judgment.
>> >> change for-loop to do-while.
>> >> -[7/10] change for-loop to do-while.
>> >> -[9/10] change wait timer with timer_after()
>> >>
>> >> links:
>> >>
>> >> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926074
>> >> 755.22176-4-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuN
>> >> AGYuJGScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZazumE8vA$
>> >>
>> >> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926075
>> >> 134
>> >> .22394-1-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!H06km5WNa8VgoR25MvWuNAGY
>> >> uJG ScCXQx0tQwni_NPHKwOqT4hNpaCrFZPPMVKeqBXXHTRoGj1C2pZb7YFr4mw$
>> >>
>> >> v3->v4:
>> >> -split changes into patches.
>> >>
>> >> v2->v3:
>> >> -split aux read KSV function to a patch.
>> >> -[1/3] new in v3
>> >> -[2/3] add description of patch
>> >>
>> >> v1->v2:
>> >> - ignored.
>> >>
>> >> Hermes Wu (10):
>> >> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> >> drm/bridge: it6505: improve AUX operation for edid read
>> >> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> >> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> >> drm/bridge: it6505: fix HDCP Bstatus check
>> >> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> >> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> >> drm/bridge: it6505: fix HDCP CTS compare V matching
>> >> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> >> drm/bridge: it6505: add I2C functionality on AUX
>> >>
>> >> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
>> >> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
>> >> ---
>> >> Hermes Wu (10):
>> >> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> >> drm/bridge: it6505: improve AUX operation for edid read
>> >> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> >> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> >> drm/bridge: it6505: fix HDCP Bstatus check
>> >> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> >> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> >> drm/bridge: it6505: fix HDCP CTS compare V matching
>> >> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> >> drm/bridge: it6505: add I2C functionality on AUX
>> >>
>> >> drivers/gpu/drm/bridge/ite-it6505.c | 334
>> >> ++++++++++++++++++++++++++++++------
>> >> 1 file changed, 277 insertions(+), 57 deletions(-)
>> >> ---
>> >> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
>> >> change-id: 20241015-upstream-v6-9f4b015fecf7
>> >>
>> >> Best regards,
>> >> --
>> >> Hermes Wu <Hermes.wu@ite.com.tw>
>> >>
>> >>
>> >
>> >I'm not sure if this requires a re-spin, but you are supposed to collect the reviewed-by tags you received when you send out a new version. i.e., put the "Reviewed-by:" lines you received before your "Signed-off-by:" line.
>>
>> only cover-letter or all patches? need "RESEND" for same v6 patch header?
>
>You should add the review tags to the individual patches that have not changed since the previous review. For this series, I think you can wait a few days and collect feedbacks from the community first.
>>
ok,
thanks.
>> >Regards,
>> >Pin-yen
>>
>>
>>
>> BR,
>> Hermes
>
>Pin-yen
>
BR,
Hermes
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
2024-10-16 7:54 ` [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE Hermes Wu via B4 Relay
@ 2024-10-18 12:56 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-18 12:56 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:13PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> The hardware AUX FIFO is 16 bytes
> Change definition of AUX_FIFO_MAX_SIZE to 16
>
> Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
@ 2024-10-19 23:30 ` kernel test robot
2024-10-20 0:52 ` kernel test robot
2024-10-20 13:53 ` Dmitry Baryshkov
2 siblings, 0 replies; 25+ messages in thread
From: kernel test robot @ 2024-10-19 23:30 UTC (permalink / raw)
To: Hermes Wu via B4 Relay, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, AngeloGioacchino Del Regno, Pin-yen Lin
Cc: llvm, oe-kbuild-all, dri-devel, linux-kernel, Kenneth Hung,
Pet Weng, Hermes Wu
Hi Hermes,
kernel test robot noticed the following build errors:
[auto build test ERROR on b8128f7815ff135f0333c1b46dcdf1543c41b860]
url: https://github.com/intel-lab-lkp/linux/commits/Hermes-Wu-via-B4-Relay/drm-bridge-it6505-Change-definition-of-AUX_FIFO_MAX_SIZE/20241016-155607
base: b8128f7815ff135f0333c1b46dcdf1543c41b860
patch link: https://lore.kernel.org/r/20241016-upstream-v6-v6-3-4d93a0c46de1%40ite.com.tw
patch subject: [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20241020/202410200756.KlsPLE8A-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project bfe84f7085d82d06d61c632a7bad1e692fd159e4)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241020/202410200756.KlsPLE8A-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410200756.KlsPLE8A-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/bridge/ite-it6505.c:13:
In file included from include/linux/i2c.h:19:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:8:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:14:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
548 | val = __raw_readb(PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
561 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
| ^
In file included from drivers/gpu/drm/bridge/ite-it6505.c:13:
In file included from include/linux/i2c.h:19:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:8:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:14:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
574 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
| ~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
| ^
In file included from drivers/gpu/drm/bridge/ite-it6505.c:13:
In file included from include/linux/i2c.h:19:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:13:
In file included from include/linux/cgroup.h:26:
In file included from include/linux/kernel_stat.h:8:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:14:
In file included from arch/hexagon/include/asm/io.h:328:
include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
585 | __raw_writeb(value, PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
595 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
605 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
| ~~~~~~~~~~ ^
In file included from drivers/gpu/drm/bridge/ite-it6505.c:13:
In file included from include/linux/i2c.h:19:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:21:
In file included from include/linux/mm.h:2213:
include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/gpu/drm/bridge/ite-it6505.c:1004:40: error: call to undeclared function 'FIELD_GET'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1004 | it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
| ^
7 warnings and 1 error generated.
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for MODVERSIONS
Depends on [n]: MODULES [=y] && !COMPILE_TEST [=y]
Selected by [y]:
- RANDSTRUCT_FULL [=y] && (CC_HAS_RANDSTRUCT [=y] || GCC_PLUGINS [=n]) && MODULES [=y]
WARNING: unmet direct dependencies detected for GET_FREE_REGION
Depends on [n]: SPARSEMEM [=n]
Selected by [m]:
- RESOURCE_KUNIT_TEST [=m] && RUNTIME_TESTING_MENU [=y] && KUNIT [=m]
vim +/FIELD_GET +1004 drivers/gpu/drm/bridge/ite-it6505.c
956
957 static ssize_t it6505_aux_operation(struct it6505 *it6505,
958 enum aux_cmd_type cmd,
959 unsigned int address, u8 *buffer,
960 size_t size, enum aux_cmd_reply *reply)
961 {
962 int i, ret;
963 bool aux_write_check = false;
964
965 if (!it6505_get_sink_hpd_status(it6505))
966 return -EIO;
967
968 /* set AUX user mode */
969 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, AUX_USER_MODE);
970
971 aux_op_start:
972 /* HW AUX FIFO supports only EDID and DCPD KSV FIFO area */
973 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
974 /* AUX EDID FIFO has max length of AUX_FIFO_MAX_SIZE bytes. */
975 size = min_t(size_t, size, AUX_FIFO_MAX_SIZE);
976 /* Enable AUX FIFO read back and clear FIFO */
977 it6505_set_bits(it6505, REG_AUX_CTRL,
978 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
979 AUX_EN_FIFO_READ | CLR_EDID_FIFO);
980
981 it6505_set_bits(it6505, REG_AUX_CTRL,
982 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
983 AUX_EN_FIFO_READ);
984 } else {
985 /* The DP AUX transmit buffer has 4 bytes. */
986 size = min_t(size_t, size, 4);
987 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_NO_SEGMENT_WR,
988 AUX_NO_SEGMENT_WR);
989 }
990
991 /* Start Address[7:0] */
992 it6505_write(it6505, REG_AUX_ADR_0_7, (address >> 0) & 0xFF);
993 /* Start Address[15:8] */
994 it6505_write(it6505, REG_AUX_ADR_8_15, (address >> 8) & 0xFF);
995 /* WriteNum[3:0]+StartAdr[19:16] */
996 it6505_write(it6505, REG_AUX_ADR_16_19,
997 ((address >> 16) & 0x0F) | ((size - 1) << 4));
998
999 if (cmd == CMD_AUX_NATIVE_WRITE)
1000 regmap_bulk_write(it6505->regmap, REG_AUX_OUT_DATA0, buffer,
1001 size);
1002
1003 /* Aux Fire */
> 1004 it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
1005
1006 ret = it6505_aux_wait(it6505);
1007 if (ret < 0)
1008 goto aux_op_err;
1009
1010 ret = it6505_read(it6505, REG_AUX_ERROR_STS);
1011 if (ret < 0)
1012 goto aux_op_err;
1013
1014 switch ((ret >> 6) & 0x3) {
1015 case 0:
1016 *reply = REPLY_ACK;
1017 break;
1018 case 1:
1019 *reply = REPLY_DEFER;
1020 ret = -EAGAIN;
1021 goto aux_op_err;
1022 case 2:
1023 *reply = REPLY_NACK;
1024 ret = -EIO;
1025 goto aux_op_err;
1026 case 3:
1027 ret = -ETIMEDOUT;
1028 goto aux_op_err;
1029 }
1030
1031 /* Read back Native Write data */
1032 if (cmd == CMD_AUX_NATIVE_WRITE) {
1033 aux_write_check = true;
1034 cmd = CMD_AUX_NATIVE_READ;
1035 goto aux_op_start;
1036 }
1037
1038 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
1039 for (i = 0; i < size; i++) {
1040 ret = it6505_read(it6505, REG_AUX_DATA_FIFO);
1041 if (ret < 0)
1042 goto aux_op_err;
1043 buffer[i] = ret;
1044 }
1045 } else {
1046 for (i = 0; i < size; i++) {
1047 ret = it6505_read(it6505, REG_AUX_DATA_0_7 + i);
1048 if (ret < 0)
1049 goto aux_op_err;
1050
1051 if (aux_write_check && buffer[size - 1 - i] != ret) {
1052 ret = -EINVAL;
1053 goto aux_op_err;
1054 }
1055
1056 buffer[size - 1 - i] = ret;
1057 }
1058 }
1059
1060 ret = i;
1061
1062 aux_op_err:
1063 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
1064 /* clear AUX FIFO */
1065 it6505_set_bits(it6505, REG_AUX_CTRL,
1066 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
1067 AUX_EN_FIFO_READ | CLR_EDID_FIFO);
1068 it6505_set_bits(it6505, REG_AUX_CTRL,
1069 AUX_EN_FIFO_READ | CLR_EDID_FIFO, 0x00);
1070 }
1071
1072 /* Leave AUX user mode */
1073 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, 0);
1074
1075 return ret;
1076 }
1077
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
2024-10-19 23:30 ` kernel test robot
@ 2024-10-20 0:52 ` kernel test robot
2024-10-20 13:53 ` Dmitry Baryshkov
2 siblings, 0 replies; 25+ messages in thread
From: kernel test robot @ 2024-10-20 0:52 UTC (permalink / raw)
To: Hermes Wu via B4 Relay, Andrzej Hajda, Neil Armstrong,
Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, AngeloGioacchino Del Regno, Pin-yen Lin
Cc: oe-kbuild-all, dri-devel, linux-kernel, Kenneth Hung, Pet Weng,
Hermes Wu
Hi Hermes,
kernel test robot noticed the following build errors:
[auto build test ERROR on b8128f7815ff135f0333c1b46dcdf1543c41b860]
url: https://github.com/intel-lab-lkp/linux/commits/Hermes-Wu-via-B4-Relay/drm-bridge-it6505-Change-definition-of-AUX_FIFO_MAX_SIZE/20241016-155607
base: b8128f7815ff135f0333c1b46dcdf1543c41b860
patch link: https://lore.kernel.org/r/20241016-upstream-v6-v6-3-4d93a0c46de1%40ite.com.tw
patch subject: [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20241020/202410200624.sr8sF1ya-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241020/202410200624.sr8sF1ya-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410200624.sr8sF1ya-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/gpu/drm/bridge/ite-it6505.c: In function 'it6505_aux_operation':
>> drivers/gpu/drm/bridge/ite-it6505.c:1004:47: error: implicit declaration of function 'FIELD_GET' [-Wimplicit-function-declaration]
1004 | it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
| ^~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for GET_FREE_REGION
Depends on [n]: SPARSEMEM [=n]
Selected by [m]:
- RESOURCE_KUNIT_TEST [=m] && RUNTIME_TESTING_MENU [=y] && KUNIT [=m]
vim +/FIELD_GET +1004 drivers/gpu/drm/bridge/ite-it6505.c
956
957 static ssize_t it6505_aux_operation(struct it6505 *it6505,
958 enum aux_cmd_type cmd,
959 unsigned int address, u8 *buffer,
960 size_t size, enum aux_cmd_reply *reply)
961 {
962 int i, ret;
963 bool aux_write_check = false;
964
965 if (!it6505_get_sink_hpd_status(it6505))
966 return -EIO;
967
968 /* set AUX user mode */
969 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, AUX_USER_MODE);
970
971 aux_op_start:
972 /* HW AUX FIFO supports only EDID and DCPD KSV FIFO area */
973 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
974 /* AUX EDID FIFO has max length of AUX_FIFO_MAX_SIZE bytes. */
975 size = min_t(size_t, size, AUX_FIFO_MAX_SIZE);
976 /* Enable AUX FIFO read back and clear FIFO */
977 it6505_set_bits(it6505, REG_AUX_CTRL,
978 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
979 AUX_EN_FIFO_READ | CLR_EDID_FIFO);
980
981 it6505_set_bits(it6505, REG_AUX_CTRL,
982 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
983 AUX_EN_FIFO_READ);
984 } else {
985 /* The DP AUX transmit buffer has 4 bytes. */
986 size = min_t(size_t, size, 4);
987 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_NO_SEGMENT_WR,
988 AUX_NO_SEGMENT_WR);
989 }
990
991 /* Start Address[7:0] */
992 it6505_write(it6505, REG_AUX_ADR_0_7, (address >> 0) & 0xFF);
993 /* Start Address[15:8] */
994 it6505_write(it6505, REG_AUX_ADR_8_15, (address >> 8) & 0xFF);
995 /* WriteNum[3:0]+StartAdr[19:16] */
996 it6505_write(it6505, REG_AUX_ADR_16_19,
997 ((address >> 16) & 0x0F) | ((size - 1) << 4));
998
999 if (cmd == CMD_AUX_NATIVE_WRITE)
1000 regmap_bulk_write(it6505->regmap, REG_AUX_OUT_DATA0, buffer,
1001 size);
1002
1003 /* Aux Fire */
> 1004 it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
1005
1006 ret = it6505_aux_wait(it6505);
1007 if (ret < 0)
1008 goto aux_op_err;
1009
1010 ret = it6505_read(it6505, REG_AUX_ERROR_STS);
1011 if (ret < 0)
1012 goto aux_op_err;
1013
1014 switch ((ret >> 6) & 0x3) {
1015 case 0:
1016 *reply = REPLY_ACK;
1017 break;
1018 case 1:
1019 *reply = REPLY_DEFER;
1020 ret = -EAGAIN;
1021 goto aux_op_err;
1022 case 2:
1023 *reply = REPLY_NACK;
1024 ret = -EIO;
1025 goto aux_op_err;
1026 case 3:
1027 ret = -ETIMEDOUT;
1028 goto aux_op_err;
1029 }
1030
1031 /* Read back Native Write data */
1032 if (cmd == CMD_AUX_NATIVE_WRITE) {
1033 aux_write_check = true;
1034 cmd = CMD_AUX_NATIVE_READ;
1035 goto aux_op_start;
1036 }
1037
1038 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
1039 for (i = 0; i < size; i++) {
1040 ret = it6505_read(it6505, REG_AUX_DATA_FIFO);
1041 if (ret < 0)
1042 goto aux_op_err;
1043 buffer[i] = ret;
1044 }
1045 } else {
1046 for (i = 0; i < size; i++) {
1047 ret = it6505_read(it6505, REG_AUX_DATA_0_7 + i);
1048 if (ret < 0)
1049 goto aux_op_err;
1050
1051 if (aux_write_check && buffer[size - 1 - i] != ret) {
1052 ret = -EINVAL;
1053 goto aux_op_err;
1054 }
1055
1056 buffer[size - 1 - i] = ret;
1057 }
1058 }
1059
1060 ret = i;
1061
1062 aux_op_err:
1063 if (cmd == CMD_AUX_I2C_EDID_READ || cmd == CMD_AUX_GET_KSV_LIST) {
1064 /* clear AUX FIFO */
1065 it6505_set_bits(it6505, REG_AUX_CTRL,
1066 AUX_EN_FIFO_READ | CLR_EDID_FIFO,
1067 AUX_EN_FIFO_READ | CLR_EDID_FIFO);
1068 it6505_set_bits(it6505, REG_AUX_CTRL,
1069 AUX_EN_FIFO_READ | CLR_EDID_FIFO, 0x00);
1070 }
1071
1072 /* Leave AUX user mode */
1073 it6505_set_bits(it6505, REG_AUX_CTRL, AUX_USER_MODE, 0);
1074
1075 return ret;
1076 }
1077
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
2024-10-19 23:30 ` kernel test robot
2024-10-20 0:52 ` kernel test robot
@ 2024-10-20 13:53 ` Dmitry Baryshkov
2 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:53 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:15PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> HDCP KSV list readback can choose to use AUX FIFO or
> general data register.
> For some DisplayPort devices, the KSV list must be read
> in 5 byte boundaries.
> The original AUX read command does not support these devices.
>
> The AUX command operation control register "REG_AUX_CMD_REQ" uses b[3:0]
> as AUX operacion control, and b[7:4] are status bits and read only.
> To change KSV read operation uses "CMD_AUX_NATIVE_READ" from using
> the data registers to using AUX FIFO.
> The extended command "CMD_AUX_GET_KSV_LIST" is added as
> "CMD_AUX_NATIVE_READ" with the 0x10 flag which selects AUX FIFO mode.
>
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> @@ -996,7 +1001,7 @@ static ssize_t it6505_aux_operation(struct it6505 *it6505,
> size);
>
> /* Aux Fire */
> - it6505_write(it6505, REG_AUX_CMD_REQ, cmd);
> + it6505_write(it6505, REG_AUX_CMD_REQ, FIELD_GET(M_AUX_REQ_CMD, cmd));
This needs #include <linux/bitfield.h>
Other than that
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>
> ret = it6505_aux_wait(it6505);
> if (ret < 0)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read
2024-10-16 7:54 ` [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read Hermes Wu via B4 Relay
@ 2024-10-20 13:53 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:53 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:14PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> The original AUX operation using data registers is limited to 4 bytes.
> The AUX operation command CMD_AUX_I2C_EDID_READ uses AUX FIFO and
> is capable of reading 16 bytes.
> This improves the speed of EDID read.
>
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
2024-10-16 7:54 ` [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT Hermes Wu via B4 Relay
@ 2024-10-20 13:53 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:53 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:16PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> A HDCP source device shall support max downstream to 127 devices.
> Change definition MAX_HDCP_DOWN_STREAM_COUNT to 127
>
> KSVs shall save for DRM blocked devices check.
> This results in struct it6505 growth by ~0.5 KiB.
>
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
2024-10-16 7:54 ` [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100 Hermes Wu via B4 Relay
@ 2024-10-20 13:54 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:54 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:19PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> When running the HDCP CTS test with UNIGRAF DPR-100.
> KSV list must be read from DP_AUX_HDCP_KSV_FIFO in an AUX request,
> and can not separate with multiple read requests.
>
> The AUX operation command "CMD_AUX_GET_KSV_LIST" reads the KSV list
> with AUX FIFO and is able to read DP_AUX_HDCP_KSV_FIFO in an AUX request.
>
> Add it6505_get_ksvlist() which uses CMD_AUX_GET_KSV_LIST operation
> to read the KSV list.
>
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 48 +++++++++++++++++++++++++++----------
> 1 file changed, 36 insertions(+), 12 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX
2024-10-16 7:54 ` [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX Hermes Wu via B4 Relay
@ 2024-10-20 13:54 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:54 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:22PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
>
> DisplayPort AUX protocol supports I2C transport which is capable of
> reading EDID or supports MCCS.
>
> In drm_dp_helper, drm_dp_i2c_xfer() packs I2C requests into a
> sequence of AUX requests.
> it6505_aux_i2c_operation() is implemented to match drm_dp_i2c_xfer()
> operactions.
> it6505_aux_i2c_transfer() adds I2C functionality
> for it6505_aux_transfer().
>
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 177 +++++++++++++++++++++++++++++++++++-
> 1 file changed, 175 insertions(+), 2 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
` (10 preceding siblings ...)
2024-10-16 21:52 ` [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Pin-yen Lin
@ 2024-10-20 13:57 ` Dmitry Baryshkov
2024-10-21 6:33 ` Hermes.Wu
11 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2024-10-20 13:57 UTC (permalink / raw)
To: Hermes.wu
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter,
AngeloGioacchino Del Regno, Pin-yen Lin, dri-devel, linux-kernel,
Kenneth Hung, Pet Weng
On Wed, Oct 16, 2024 at 03:54:12PM +0800, Hermes Wu via B4 Relay wrote:
> This is a v6 patch-set.
>
> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
> In Order to fix those failures, HDCP flow needs to be changed.
>
> The DisplayPort AUX protocol supports I2C transport.
> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
>
> v5->v6:
> -keep the commit message wrapped at 72-75 chars.
> -[10/10] fix return variable being used without being initialized
I have reviewed the patches that I could review, but I lack deep HDCP
knowledge, so I can not review patches 5, 6, 8, 9. Hopefully somebody
else can step up.
>
> v4->v5:
> -add more messages for changes.
> -[2/10] modified AUX transfer data size judgment.
> change for-loop to do-while.
> -[7/10] change for-loop to do-while.
> -[9/10] change wait timer with timer_after()
>
> links:
> https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/
> https://lore.kernel.org/all/20240926075134.22394-1-Hermes.Wu@ite.com.tw/
>
> v3->v4:
> -split changes into patches.
>
> v2->v3:
> -split aux read KSV function to a patch.
> -[1/3] new in v3
> -[2/3] add description of patch
>
> v1->v2:
> - ignored.
>
> Hermes Wu (10):
> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> drm/bridge: it6505: improve AUX operation for edid read
> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> drm/bridge: it6505: fix HDCP Bstatus check
> drm/bridge: it6505: fix HDCP encryption when R0 ready
> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> drm/bridge: it6505: fix HDCP CTS compare V matching
> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> drm/bridge: it6505: add I2C functionality on AUX
>
> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> ---
> Hermes Wu (10):
> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
> drm/bridge: it6505: improve AUX operation for edid read
> drm/bridge: it6505: add AUX operation for HDCP KSV list read
> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
> drm/bridge: it6505: fix HDCP Bstatus check
> drm/bridge: it6505: fix HDCP encryption when R0 ready
> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
> drm/bridge: it6505: fix HDCP CTS compare V matching
> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
> drm/bridge: it6505: add I2C functionality on AUX
>
> drivers/gpu/drm/bridge/ite-it6505.c | 334 ++++++++++++++++++++++++++++++------
> 1 file changed, 277 insertions(+), 57 deletions(-)
> ---
> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
> change-id: 20241015-upstream-v6-9f4b015fecf7
>
> Best regards,
> --
> Hermes Wu <Hermes.wu@ite.com.tw>
>
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* RE: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
2024-10-20 13:57 ` Dmitry Baryshkov
@ 2024-10-21 6:33 ` Hermes.Wu
0 siblings, 0 replies; 25+ messages in thread
From: Hermes.Wu @ 2024-10-21 6:33 UTC (permalink / raw)
To: dmitry.baryshkov
Cc: andrzej.hajda, neil.armstrong, rfoss, Laurent.pinchart, jonas,
jernej.skrabec, maarten.lankhorst, mripard, tzimmermann, airlied,
simona, angelogioacchino.delregno, treapking, dri-devel,
linux-kernel, Kenneth.Hung, Pet.Weng
hi
>-----Original Message-----
>From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>Sent: Sunday, October 20, 2024 9:57 PM
>To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
>Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>; Pin-yen Lin <treapking@chromium.org>; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Pet Weng (翁玉芬) <Pet.Weng@ite.com.tw>
>Subject: Re: [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support
>
>On Wed, Oct 16, 2024 at 03:54:12PM +0800, Hermes Wu via B4 Relay wrote:
>> This is a v6 patch-set.
>>
>> There are lots of failure items while running HDCP CTS using UNIGRAF DPR-100.
>> In Order to fix those failures, HDCP flow needs to be changed.
>>
>> The DisplayPort AUX protocol supports I2C transport.
>> In Order to support MCCS via the aux channel, the aux-i2c operation is added.
>>
>> v5->v6:
>> -keep the commit message wrapped at 72-75 chars.
>> -[10/10] fix return variable being used without being initialized
>
>I have reviewed the patches that I could review, but I lack deep HDCP knowledge, so I can not review patches 5, 6, 8, 9. Hopefully somebody else can step up.
>
thank you.
>> v4->v5:
>> -add more messages for changes.
>> -[2/10] modified AUX transfer data size judgment.
>> change for-loop to do-while.
>> -[7/10] change for-loop to do-while.
>> -[9/10] change wait timer with timer_after()
>>
>> links:
>> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926074755.22176-4-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!HOwy05_egTbj5U7vrjfPhJC21VK_Jxll8UWNOcGEzNSDxnKQjE6QSLhamd-IROE-SxGOrzFS_SLfixtORjLLBTjdL3SV$
>>
>> https://urldefense.com/v3/__https://lore.kernel.org/all/20240926075134
>> .22394-1-Hermes.Wu@ite.com.tw/__;!!HtnLE8A!HOwy05_egTbj5U7vrjfPhJC21VK
>> _Jxll8UWNOcGEzNSDxnKQjE6QSLhamd-IROE-SxGOrzFS_SLfixtORjLLBTc_Yg8R$
>>
>> v3->v4:
>> -split changes into patches.
>>
>> v2->v3:
>> -split aux read KSV function to a patch.
>> -[1/3] new in v3
>> -[2/3] add description of patch
>>
>> v1->v2:
>> - ignored.
>>
>> Hermes Wu (10):
>> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> drm/bridge: it6505: improve AUX operation for edid read
>> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> drm/bridge: it6505: fix HDCP Bstatus check
>> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> drm/bridge: it6505: fix HDCP CTS compare V matching
>> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> drm/bridge: it6505: add I2C functionality on AUX
>>
>> Change-Id: Iad0c056d72abf2655081357cf40c3b0d3df916b5
>> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
>> ---
>> Hermes Wu (10):
>> drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
>> drm/bridge: it6505: improve AUX operation for edid read
>> drm/bridge: it6505: add AUX operation for HDCP KSV list read
>> drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
>> drm/bridge: it6505: fix HDCP Bstatus check
>> drm/bridge: it6505: fix HDCP encryption when R0 ready
>> drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100.
>> drm/bridge: it6505: fix HDCP CTS compare V matching
>> drm/bridge: it6505: fix HDCP CTS KSV list wait timer
>> drm/bridge: it6505: add I2C functionality on AUX
>>
>> drivers/gpu/drm/bridge/ite-it6505.c | 334
>> ++++++++++++++++++++++++++++++------
>> 1 file changed, 277 insertions(+), 57 deletions(-)
>> ---
>> base-commit: b8128f7815ff135f0333c1b46dcdf1543c41b860
>> change-id: 20241015-upstream-v6-9f4b015fecf7
>>
>> Best regards,
>> --
>> Hermes Wu <Hermes.wu@ite.com.tw>
>>
>>
>
>--
>With best wishes
>Dmitry
>
BR,
Hermes
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2024-10-21 6:33 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-16 7:54 [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 01/10] drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE Hermes Wu via B4 Relay
2024-10-18 12:56 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 02/10] drm/bridge: it6505: improve AUX operation for edid read Hermes Wu via B4 Relay
2024-10-20 13:53 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 03/10] drm/bridge: it6505: add AUX operation for HDCP KSV list read Hermes Wu via B4 Relay
2024-10-19 23:30 ` kernel test robot
2024-10-20 0:52 ` kernel test robot
2024-10-20 13:53 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 04/10] drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT Hermes Wu via B4 Relay
2024-10-20 13:53 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 05/10] drm/bridge: it6505: fix HDCP Bstatus check Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 06/10] drm/bridge: it6505: fix HDCP encryption when R0 ready Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 07/10] drm/bridge: it6505: fix HDCP CTS KSV list read with UNIGRAF DPR-100 Hermes Wu via B4 Relay
2024-10-20 13:54 ` Dmitry Baryshkov
2024-10-16 7:54 ` [PATCH v6 08/10] drm/bridge: it6505: fix HDCP CTS compare V matching Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 09/10] drm/bridge: it6505: fix HDCP CTS KSV list wait timer Hermes Wu via B4 Relay
2024-10-16 7:54 ` [PATCH v6 10/10] drm/bridge: it6505: add I2C functionality on AUX Hermes Wu via B4 Relay
2024-10-20 13:54 ` Dmitry Baryshkov
2024-10-16 21:52 ` [PATCH v6 00/10] drm/bridge: it6505: fix HDCP CTS fail items and add MCCS support Pin-yen Lin
2024-10-17 2:10 ` Hermes.Wu
2024-10-17 2:44 ` Pin-yen Lin
2024-10-17 2:50 ` Hermes.Wu
2024-10-20 13:57 ` Dmitry Baryshkov
2024-10-21 6:33 ` Hermes.Wu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox