All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
@ 2017-03-03 13:39 ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Tomeu Vizoso, Mark Yao,
	Heiko Stuebner, Jani Nikula, dri-devel, linux-rockchip,
	David Airlie, Archit Taneja, linux-arm-kernel

Hi,

this series builds up on the API for exposing captured CRCs through
debugfs.

It adds new DP helpers for starting and stopping CRC capture and gets
the Rockchip driver to use it.

With these patches, tests in IGT such as kms_pipe_crc_basic and
kms_plane do pass on RK3288.

In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
drm_connector, following discussion with Sean Paul.

Thanks,

Tomeu


Tomeu Vizoso (4):
  drm/dp: add crtc backpointer to drm_dp_aux
  drm/dp: add helpers for capture of frame CRCs
  drm/bridge: analogix_dp: add helpers for capture of frame CRCs
  drm/rockchip: Implement CRC debugfs API

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
 drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
 include/drm/bridge/analogix_dp.h                   |   3 +
 include/drm/drm_dp_helper.h                        |   9 ++
 5 files changed, 201 insertions(+)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
@ 2017-03-03 13:39 ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-arm-kernel, Tomeu Vizoso, Emil Velikov, linux-rockchip,
	dri-devel, intel-gfx-trybot, Daniel Vetter

Hi,

this series builds up on the API for exposing captured CRCs through
debugfs.

It adds new DP helpers for starting and stopping CRC capture and gets
the Rockchip driver to use it.

With these patches, tests in IGT such as kms_pipe_crc_basic and
kms_plane do pass on RK3288.

In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
drm_connector, following discussion with Sean Paul.

Thanks,

Tomeu


Tomeu Vizoso (4):
  drm/dp: add crtc backpointer to drm_dp_aux
  drm/dp: add helpers for capture of frame CRCs
  drm/bridge: analogix_dp: add helpers for capture of frame CRCs
  drm/rockchip: Implement CRC debugfs API

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
 drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
 include/drm/bridge/analogix_dp.h                   |   3 +
 include/drm/drm_dp_helper.h                        |   9 ++
 5 files changed, 201 insertions(+)

-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
@ 2017-03-03 13:39 ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

this series builds up on the API for exposing captured CRCs through
debugfs.

It adds new DP helpers for starting and stopping CRC capture and gets
the Rockchip driver to use it.

With these patches, tests in IGT such as kms_pipe_crc_basic and
kms_plane do pass on RK3288.

In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
drm_connector, following discussion with Sean Paul.

Thanks,

Tomeu


Tomeu Vizoso (4):
  drm/dp: add crtc backpointer to drm_dp_aux
  drm/dp: add helpers for capture of frame CRCs
  drm/bridge: analogix_dp: add helpers for capture of frame CRCs
  drm/rockchip: Implement CRC debugfs API

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
 drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
 include/drm/bridge/analogix_dp.h                   |   3 +
 include/drm/drm_dp_helper.h                        |   9 ++
 5 files changed, 201 insertions(+)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 1/4] drm/dp: add crtc backpointer to drm_dp_aux
  2017-03-03 13:39 ` Tomeu Vizoso
@ 2017-03-03 13:39   ` Tomeu Vizoso
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Tomeu Vizoso, Jani Nikula,
	dri-devel, David Airlie

This backpointer allows DP helpers to access the crtc it's currently
being used for.

v6: Have the backpointer be to drm_crtc (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 include/drm/drm_dp_helper.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index ba89295c8651..a710e39b5f83 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -789,6 +789,7 @@ struct drm_dp_aux_msg {
  * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter
  * @ddc: I2C adapter that can be used for I2C-over-AUX communication
  * @dev: pointer to struct device that is the parent for this AUX channel
+ * @crtc: backpointer to the crtc that is currently using this AUX channel
  * @hw_mutex: internal mutex used for locking transfers
  * @transfer: transfers a message representing a single AUX transaction
  *
@@ -825,6 +826,7 @@ struct drm_dp_aux {
 	const char *name;
 	struct i2c_adapter ddc;
 	struct device *dev;
+	struct drm_crtc *crtc;
 	struct mutex hw_mutex;
 	ssize_t (*transfer)(struct drm_dp_aux *aux,
 			    struct drm_dp_aux_msg *msg);
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 1/4] drm/dp: add crtc backpointer to drm_dp_aux
@ 2017-03-03 13:39   ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Emil Velikov, dri-devel, intel-gfx-trybot, Daniel Vetter

This backpointer allows DP helpers to access the crtc it's currently
being used for.

v6: Have the backpointer be to drm_crtc (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 include/drm/drm_dp_helper.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index ba89295c8651..a710e39b5f83 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -789,6 +789,7 @@ struct drm_dp_aux_msg {
  * @name: user-visible name of this AUX channel and the I2C-over-AUX adapter
  * @ddc: I2C adapter that can be used for I2C-over-AUX communication
  * @dev: pointer to struct device that is the parent for this AUX channel
+ * @crtc: backpointer to the crtc that is currently using this AUX channel
  * @hw_mutex: internal mutex used for locking transfers
  * @transfer: transfers a message representing a single AUX transaction
  *
@@ -825,6 +826,7 @@ struct drm_dp_aux {
 	const char *name;
 	struct i2c_adapter ddc;
 	struct device *dev;
+	struct drm_crtc *crtc;
 	struct mutex hw_mutex;
 	ssize_t (*transfer)(struct drm_dp_aux *aux,
 			    struct drm_dp_aux_msg *msg);
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 2/4] drm/dp: add helpers for capture of frame CRCs
  2017-03-03 13:39 ` Tomeu Vizoso
@ 2017-03-03 13:39   ` Tomeu Vizoso
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Tomeu Vizoso, Jani Nikula,
	dri-devel, David Airlie

Adds helpers for starting and stopping capture of frame CRCs through the
DPCD. When capture is on, a worker waits for vblanks and retrieves the
frame CRC to put it in the queue on the CRTC that is using the
eDP connector, so it's passed to userspace.

v2: Reuse drm_crtc_wait_one_vblank
    Update locking, as drm_crtc_add_crc_entry now takes the lock

v3: Don't call wake_up_interruptible directly, that's now done in
    drm_crtc_add_crc_entry.

v4: Style fixes (Sean Paul)
    Reworked retry of CRC reads (Sean Paul)
    Flush worker after stopping CRC generationa (Sean Paul)

v5: Move back to make the retry explicitly once

v6: Set and use the drm_crtc backpointer (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/drm_dp_helper.c | 126 ++++++++++++++++++++++++++++++++++++++++
 include/drm/drm_dp_helper.h     |   7 +++
 2 files changed, 133 insertions(+)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 68908c1d5ca1..c40cfe2e63ab 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -981,6 +981,78 @@ static const struct i2c_lock_operations drm_dp_i2c_lock_ops = {
 	.unlock_bus = unlock_bus,
 };
 
+static int drm_dp_aux_get_crc(struct drm_dp_aux *aux, u8 *crc)
+{
+	u8 buf, count;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	WARN_ON(!(buf & DP_TEST_SINK_START));
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK_MISC, &buf);
+	if (ret < 0)
+		return ret;
+
+	count = buf & DP_TEST_COUNT_MASK;
+	if (count == aux->crc_count)
+		return -EAGAIN; /* No CRC yet */
+
+	aux->crc_count = count;
+
+	/*
+	 * At DP_TEST_CRC_R_CR, there's 6 bytes containing CRC data, 2 bytes
+	 * per component (RGB or CrYCb).
+	 */
+	ret = drm_dp_dpcd_read(aux, DP_TEST_CRC_R_CR, crc, 6);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
+static void drm_dp_aux_crc_work(struct work_struct *work)
+{
+	struct drm_dp_aux *aux = container_of(work, struct drm_dp_aux,
+					      crc_work);
+	struct drm_crtc *crtc;
+	u8 crc_bytes[6];
+	uint32_t crcs[3];
+	int ret;
+
+	if (WARN_ON(!aux->crtc))
+		return;
+
+	crtc = aux->crtc;
+	while (crtc->crc.opened) {
+		drm_crtc_wait_one_vblank(crtc);
+		if (!crtc->crc.opened)
+			break;
+
+		ret = drm_dp_aux_get_crc(aux, crc_bytes);
+		if (ret == -EAGAIN) {
+			usleep_range(1000, 2000);
+			ret = drm_dp_aux_get_crc(aux, crc_bytes);
+		}
+
+		if (ret == -EAGAIN) {
+			DRM_DEBUG_KMS("Get CRC failed after retrying: %d\n",
+				      ret);
+			continue;
+		} else if (ret) {
+			DRM_DEBUG_KMS("Failed to get a CRC: %d\n", ret);
+			continue;
+		}
+
+		crcs[0] = crc_bytes[0] | crc_bytes[1] << 8;
+		crcs[1] = crc_bytes[2] | crc_bytes[3] << 8;
+		crcs[2] = crc_bytes[4] | crc_bytes[5] << 8;
+		drm_crtc_add_crc_entry(crtc, false, 0, crcs);
+	}
+}
+
 /**
  * drm_dp_aux_init() - minimally initialise an aux channel
  * @aux: DisplayPort AUX channel
@@ -993,6 +1065,7 @@ static const struct i2c_lock_operations drm_dp_i2c_lock_ops = {
 void drm_dp_aux_init(struct drm_dp_aux *aux)
 {
 	mutex_init(&aux->hw_mutex);
+	INIT_WORK(&aux->crc_work, drm_dp_aux_crc_work);
 
 	aux->ddc.algo = &drm_dp_i2c_algo;
 	aux->ddc.algo_data = aux;
@@ -1081,3 +1154,56 @@ int drm_dp_psr_setup_time(const u8 psr_cap[EDP_PSR_RECEIVER_CAP_SIZE])
 EXPORT_SYMBOL(drm_dp_psr_setup_time);
 
 #undef PSR_SETUP_TIME
+
+/**
+ * drm_dp_start_crc() - start capture of frame CRCs
+ * @aux: DisplayPort AUX channel
+ *
+ * Returns 0 on success or a negative error code on failure.
+ */
+int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc)
+{
+	u8 buf;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	ret = drm_dp_dpcd_writeb(aux, DP_TEST_SINK, buf | DP_TEST_SINK_START);
+	if (ret < 0)
+		return ret;
+
+	aux->crc_count = 0;
+	aux->crtc = crtc;
+	schedule_work(&aux->crc_work);
+
+	return 0;
+}
+EXPORT_SYMBOL(drm_dp_start_crc);
+
+/**
+ * drm_dp_stop_crc() - stop capture of frame CRCs
+ * @aux: DisplayPort AUX channel
+ *
+ * Returns 0 on success or a negative error code on failure.
+ */
+int drm_dp_stop_crc(struct drm_dp_aux *aux)
+{
+	u8 buf;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	ret = drm_dp_dpcd_writeb(aux, DP_TEST_SINK, buf & ~DP_TEST_SINK_START);
+	if (ret < 0)
+		return ret;
+
+	flush_work(&aux->crc_work);
+	aux->crtc = NULL;
+
+	return 0;
+}
+EXPORT_SYMBOL(drm_dp_stop_crc);
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index a710e39b5f83..c0bd0d7651a9 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -791,6 +791,8 @@ struct drm_dp_aux_msg {
  * @dev: pointer to struct device that is the parent for this AUX channel
  * @crtc: backpointer to the crtc that is currently using this AUX channel
  * @hw_mutex: internal mutex used for locking transfers
+ * @crc_work: worker that captures CRCs for each frame
+ * @crc_count: counter of captured frame CRCs
  * @transfer: transfers a message representing a single AUX transaction
  *
  * The .dev field should be set to a pointer to the device that implements
@@ -828,6 +830,8 @@ struct drm_dp_aux {
 	struct device *dev;
 	struct drm_crtc *crtc;
 	struct mutex hw_mutex;
+	struct work_struct crc_work;
+	u8 crc_count;
 	ssize_t (*transfer)(struct drm_dp_aux *aux,
 			    struct drm_dp_aux_msg *msg);
 	/**
@@ -906,4 +910,7 @@ void drm_dp_aux_init(struct drm_dp_aux *aux);
 int drm_dp_aux_register(struct drm_dp_aux *aux);
 void drm_dp_aux_unregister(struct drm_dp_aux *aux);
 
+int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc);
+int drm_dp_stop_crc(struct drm_dp_aux *aux);
+
 #endif /* _DRM_DP_HELPER_H_ */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 2/4] drm/dp: add helpers for capture of frame CRCs
@ 2017-03-03 13:39   ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Emil Velikov, dri-devel, intel-gfx-trybot, Daniel Vetter

Adds helpers for starting and stopping capture of frame CRCs through the
DPCD. When capture is on, a worker waits for vblanks and retrieves the
frame CRC to put it in the queue on the CRTC that is using the
eDP connector, so it's passed to userspace.

v2: Reuse drm_crtc_wait_one_vblank
    Update locking, as drm_crtc_add_crc_entry now takes the lock

v3: Don't call wake_up_interruptible directly, that's now done in
    drm_crtc_add_crc_entry.

v4: Style fixes (Sean Paul)
    Reworked retry of CRC reads (Sean Paul)
    Flush worker after stopping CRC generationa (Sean Paul)

v5: Move back to make the retry explicitly once

v6: Set and use the drm_crtc backpointer (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/drm_dp_helper.c | 126 ++++++++++++++++++++++++++++++++++++++++
 include/drm/drm_dp_helper.h     |   7 +++
 2 files changed, 133 insertions(+)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 68908c1d5ca1..c40cfe2e63ab 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -981,6 +981,78 @@ static const struct i2c_lock_operations drm_dp_i2c_lock_ops = {
 	.unlock_bus = unlock_bus,
 };
 
+static int drm_dp_aux_get_crc(struct drm_dp_aux *aux, u8 *crc)
+{
+	u8 buf, count;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	WARN_ON(!(buf & DP_TEST_SINK_START));
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK_MISC, &buf);
+	if (ret < 0)
+		return ret;
+
+	count = buf & DP_TEST_COUNT_MASK;
+	if (count == aux->crc_count)
+		return -EAGAIN; /* No CRC yet */
+
+	aux->crc_count = count;
+
+	/*
+	 * At DP_TEST_CRC_R_CR, there's 6 bytes containing CRC data, 2 bytes
+	 * per component (RGB or CrYCb).
+	 */
+	ret = drm_dp_dpcd_read(aux, DP_TEST_CRC_R_CR, crc, 6);
+	if (ret < 0)
+		return ret;
+
+	return 0;
+}
+
+static void drm_dp_aux_crc_work(struct work_struct *work)
+{
+	struct drm_dp_aux *aux = container_of(work, struct drm_dp_aux,
+					      crc_work);
+	struct drm_crtc *crtc;
+	u8 crc_bytes[6];
+	uint32_t crcs[3];
+	int ret;
+
+	if (WARN_ON(!aux->crtc))
+		return;
+
+	crtc = aux->crtc;
+	while (crtc->crc.opened) {
+		drm_crtc_wait_one_vblank(crtc);
+		if (!crtc->crc.opened)
+			break;
+
+		ret = drm_dp_aux_get_crc(aux, crc_bytes);
+		if (ret == -EAGAIN) {
+			usleep_range(1000, 2000);
+			ret = drm_dp_aux_get_crc(aux, crc_bytes);
+		}
+
+		if (ret == -EAGAIN) {
+			DRM_DEBUG_KMS("Get CRC failed after retrying: %d\n",
+				      ret);
+			continue;
+		} else if (ret) {
+			DRM_DEBUG_KMS("Failed to get a CRC: %d\n", ret);
+			continue;
+		}
+
+		crcs[0] = crc_bytes[0] | crc_bytes[1] << 8;
+		crcs[1] = crc_bytes[2] | crc_bytes[3] << 8;
+		crcs[2] = crc_bytes[4] | crc_bytes[5] << 8;
+		drm_crtc_add_crc_entry(crtc, false, 0, crcs);
+	}
+}
+
 /**
  * drm_dp_aux_init() - minimally initialise an aux channel
  * @aux: DisplayPort AUX channel
@@ -993,6 +1065,7 @@ static const struct i2c_lock_operations drm_dp_i2c_lock_ops = {
 void drm_dp_aux_init(struct drm_dp_aux *aux)
 {
 	mutex_init(&aux->hw_mutex);
+	INIT_WORK(&aux->crc_work, drm_dp_aux_crc_work);
 
 	aux->ddc.algo = &drm_dp_i2c_algo;
 	aux->ddc.algo_data = aux;
@@ -1081,3 +1154,56 @@ int drm_dp_psr_setup_time(const u8 psr_cap[EDP_PSR_RECEIVER_CAP_SIZE])
 EXPORT_SYMBOL(drm_dp_psr_setup_time);
 
 #undef PSR_SETUP_TIME
+
+/**
+ * drm_dp_start_crc() - start capture of frame CRCs
+ * @aux: DisplayPort AUX channel
+ *
+ * Returns 0 on success or a negative error code on failure.
+ */
+int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc)
+{
+	u8 buf;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	ret = drm_dp_dpcd_writeb(aux, DP_TEST_SINK, buf | DP_TEST_SINK_START);
+	if (ret < 0)
+		return ret;
+
+	aux->crc_count = 0;
+	aux->crtc = crtc;
+	schedule_work(&aux->crc_work);
+
+	return 0;
+}
+EXPORT_SYMBOL(drm_dp_start_crc);
+
+/**
+ * drm_dp_stop_crc() - stop capture of frame CRCs
+ * @aux: DisplayPort AUX channel
+ *
+ * Returns 0 on success or a negative error code on failure.
+ */
+int drm_dp_stop_crc(struct drm_dp_aux *aux)
+{
+	u8 buf;
+	int ret;
+
+	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
+	if (ret < 0)
+		return ret;
+
+	ret = drm_dp_dpcd_writeb(aux, DP_TEST_SINK, buf & ~DP_TEST_SINK_START);
+	if (ret < 0)
+		return ret;
+
+	flush_work(&aux->crc_work);
+	aux->crtc = NULL;
+
+	return 0;
+}
+EXPORT_SYMBOL(drm_dp_stop_crc);
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index a710e39b5f83..c0bd0d7651a9 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -791,6 +791,8 @@ struct drm_dp_aux_msg {
  * @dev: pointer to struct device that is the parent for this AUX channel
  * @crtc: backpointer to the crtc that is currently using this AUX channel
  * @hw_mutex: internal mutex used for locking transfers
+ * @crc_work: worker that captures CRCs for each frame
+ * @crc_count: counter of captured frame CRCs
  * @transfer: transfers a message representing a single AUX transaction
  *
  * The .dev field should be set to a pointer to the device that implements
@@ -828,6 +830,8 @@ struct drm_dp_aux {
 	struct device *dev;
 	struct drm_crtc *crtc;
 	struct mutex hw_mutex;
+	struct work_struct crc_work;
+	u8 crc_count;
 	ssize_t (*transfer)(struct drm_dp_aux *aux,
 			    struct drm_dp_aux_msg *msg);
 	/**
@@ -906,4 +910,7 @@ void drm_dp_aux_init(struct drm_dp_aux *aux);
 int drm_dp_aux_register(struct drm_dp_aux *aux);
 void drm_dp_aux_unregister(struct drm_dp_aux *aux);
 
+int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc);
+int drm_dp_stop_crc(struct drm_dp_aux *aux);
+
 #endif /* _DRM_DP_HELPER_H_ */
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 3/4] drm/bridge: analogix_dp: add helpers for capture of frame CRCs
  2017-03-03 13:39 ` Tomeu Vizoso
@ 2017-03-03 13:39   ` Tomeu Vizoso
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Tomeu Vizoso, Archit Taneja,
	David Airlie, dri-devel

Add two simple functions that just take the drm_dp_aux from our struct
and calls the corresponding DP helpers with it.

v6: Pass to the DP helper the drm_crtc of the current connector (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 22 ++++++++++++++++++++++
 include/drm/bridge/analogix_dp.h                   |  3 +++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index e7cd1056ff2d..c26997afd3cf 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1488,6 +1488,28 @@ int analogix_dp_resume(struct device *dev)
 EXPORT_SYMBOL_GPL(analogix_dp_resume);
 #endif
 
+int analogix_dp_start_crc(struct drm_connector *connector)
+{
+	struct analogix_dp_device *dp = to_dp(connector);
+
+	if (!connector->state->crtc) {
+		DRM_ERROR("Connector %s doesn't currently have a CRTC.\n",
+			  connector->name);
+		return -EINVAL;
+	}
+
+	return drm_dp_start_crc(&dp->aux, connector->state->crtc);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_start_crc);
+
+int analogix_dp_stop_crc(struct drm_connector *connector)
+{
+	struct analogix_dp_device *dp = to_dp(connector);
+
+	return drm_dp_stop_crc(&dp->aux);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_stop_crc);
+
 MODULE_AUTHOR("Jingoo Han <jg1.han@samsung.com>");
 MODULE_DESCRIPTION("Analogix DP Core Driver");
 MODULE_LICENSE("GPL v2");
diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/analogix_dp.h
index f6f0c062205c..c99d6eaef1ac 100644
--- a/include/drm/bridge/analogix_dp.h
+++ b/include/drm/bridge/analogix_dp.h
@@ -49,4 +49,7 @@ int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
 		     struct analogix_dp_plat_data *plat_data);
 void analogix_dp_unbind(struct device *dev, struct device *master, void *data);
 
+int analogix_dp_start_crc(struct drm_connector *connector);
+int analogix_dp_stop_crc(struct drm_connector *connector);
+
 #endif /* _ANALOGIX_DP_H_ */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 3/4] drm/bridge: analogix_dp: add helpers for capture of frame CRCs
@ 2017-03-03 13:39   ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Emil Velikov, dri-devel, intel-gfx-trybot, Daniel Vetter

Add two simple functions that just take the drm_dp_aux from our struct
and calls the corresponding DP helpers with it.

v6: Pass to the DP helper the drm_crtc of the current connector (Sean Paul)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 22 ++++++++++++++++++++++
 include/drm/bridge/analogix_dp.h                   |  3 +++
 2 files changed, 25 insertions(+)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index e7cd1056ff2d..c26997afd3cf 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1488,6 +1488,28 @@ int analogix_dp_resume(struct device *dev)
 EXPORT_SYMBOL_GPL(analogix_dp_resume);
 #endif
 
+int analogix_dp_start_crc(struct drm_connector *connector)
+{
+	struct analogix_dp_device *dp = to_dp(connector);
+
+	if (!connector->state->crtc) {
+		DRM_ERROR("Connector %s doesn't currently have a CRTC.\n",
+			  connector->name);
+		return -EINVAL;
+	}
+
+	return drm_dp_start_crc(&dp->aux, connector->state->crtc);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_start_crc);
+
+int analogix_dp_stop_crc(struct drm_connector *connector)
+{
+	struct analogix_dp_device *dp = to_dp(connector);
+
+	return drm_dp_stop_crc(&dp->aux);
+}
+EXPORT_SYMBOL_GPL(analogix_dp_stop_crc);
+
 MODULE_AUTHOR("Jingoo Han <jg1.han@samsung.com>");
 MODULE_DESCRIPTION("Analogix DP Core Driver");
 MODULE_LICENSE("GPL v2");
diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/analogix_dp.h
index f6f0c062205c..c99d6eaef1ac 100644
--- a/include/drm/bridge/analogix_dp.h
+++ b/include/drm/bridge/analogix_dp.h
@@ -49,4 +49,7 @@ int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
 		     struct analogix_dp_plat_data *plat_data);
 void analogix_dp_unbind(struct device *dev, struct device *master, void *data);
 
+int analogix_dp_start_crc(struct drm_connector *connector);
+int analogix_dp_stop_crc(struct drm_connector *connector);
+
 #endif /* _ANALOGIX_DP_H_ */
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
  2017-03-03 13:39 ` Tomeu Vizoso
  (?)
@ 2017-03-03 13:39   ` Tomeu Vizoso
  -1 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Tomeu Vizoso, Mark Yao,
	Heiko Stuebner, dri-devel, linux-rockchip, David Airlie,
	linux-arm-kernel

Implement the .set_crc_source() callback and call the DP helpers
accordingly to start and stop CRC capture.

This is only done if this CRTC is currently using the eDP connector.

v3: Remove superfluous check on rockchip_crtc_state->output_type

v6: Remove superfluous variable

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 94d7b7327ff7..17ab16c4b922 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -19,6 +19,7 @@
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_flip_work.h>
 #include <drm/drm_plane_helper.h>
+#include <drm/bridge/analogix_dp.h>
 
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
 	kfree(s);
 }
 
+static struct drm_connector *vop_get_edp_connector(struct vop *vop)
+{
+	struct drm_crtc *crtc = &vop->crtc;
+	struct drm_connector *connector;
+
+	mutex_lock(&crtc->dev->mode_config.mutex);
+	drm_for_each_connector(connector, crtc->dev)
+		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+			mutex_unlock(&crtc->dev->mode_config.mutex);
+			return connector;
+		}
+	mutex_unlock(&crtc->dev->mode_config.mutex);
+
+	return NULL;
+}
+
+static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
+				   const char *source_name, size_t *values_cnt)
+{
+	struct vop *vop = to_vop(crtc);
+	struct drm_connector *connector;
+	int ret;
+
+	connector = vop_get_edp_connector(vop);
+	if (!connector)
+		return -EINVAL;
+
+	*values_cnt = 3;
+
+	if (source_name && strcmp(source_name, "auto") == 0)
+		ret = analogix_dp_start_crc(connector);
+	else if (!source_name)
+		ret = analogix_dp_stop_crc(connector);
+	else
+		ret = -EINVAL;
+
+	return ret;
+}
+
 static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.page_flip = drm_atomic_helper_page_flip,
@@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.atomic_destroy_state = vop_crtc_destroy_state,
 	.enable_vblank = vop_crtc_enable_vblank,
 	.disable_vblank = vop_crtc_disable_vblank,
+	.set_crc_source = vop_crtc_set_crc_source,
 };
 
 static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-03 13:39   ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Emil Velikov, dri-devel, linux-rockchip,
	linux-arm-kernel, intel-gfx-trybot, Daniel Vetter

Implement the .set_crc_source() callback and call the DP helpers
accordingly to start and stop CRC capture.

This is only done if this CRTC is currently using the eDP connector.

v3: Remove superfluous check on rockchip_crtc_state->output_type

v6: Remove superfluous variable

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 94d7b7327ff7..17ab16c4b922 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -19,6 +19,7 @@
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_flip_work.h>
 #include <drm/drm_plane_helper.h>
+#include <drm/bridge/analogix_dp.h>
 
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
 	kfree(s);
 }
 
+static struct drm_connector *vop_get_edp_connector(struct vop *vop)
+{
+	struct drm_crtc *crtc = &vop->crtc;
+	struct drm_connector *connector;
+
+	mutex_lock(&crtc->dev->mode_config.mutex);
+	drm_for_each_connector(connector, crtc->dev)
+		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+			mutex_unlock(&crtc->dev->mode_config.mutex);
+			return connector;
+		}
+	mutex_unlock(&crtc->dev->mode_config.mutex);
+
+	return NULL;
+}
+
+static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
+				   const char *source_name, size_t *values_cnt)
+{
+	struct vop *vop = to_vop(crtc);
+	struct drm_connector *connector;
+	int ret;
+
+	connector = vop_get_edp_connector(vop);
+	if (!connector)
+		return -EINVAL;
+
+	*values_cnt = 3;
+
+	if (source_name && strcmp(source_name, "auto") == 0)
+		ret = analogix_dp_start_crc(connector);
+	else if (!source_name)
+		ret = analogix_dp_stop_crc(connector);
+	else
+		ret = -EINVAL;
+
+	return ret;
+}
+
 static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.page_flip = drm_atomic_helper_page_flip,
@@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.atomic_destroy_state = vop_crtc_destroy_state,
 	.enable_vblank = vop_crtc_enable_vblank,
 	.disable_vblank = vop_crtc_disable_vblank,
+	.set_crc_source = vop_crtc_set_crc_source,
 };
 
 static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-03 13:39   ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-03 13:39 UTC (permalink / raw)
  To: linux-arm-kernel

Implement the .set_crc_source() callback and call the DP helpers
accordingly to start and stop CRC capture.

This is only done if this CRTC is currently using the eDP connector.

v3: Remove superfluous check on rockchip_crtc_state->output_type

v6: Remove superfluous variable

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 94d7b7327ff7..17ab16c4b922 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -19,6 +19,7 @@
 #include <drm/drm_crtc_helper.h>
 #include <drm/drm_flip_work.h>
 #include <drm/drm_plane_helper.h>
+#include <drm/bridge/analogix_dp.h>
 
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
 	kfree(s);
 }
 
+static struct drm_connector *vop_get_edp_connector(struct vop *vop)
+{
+	struct drm_crtc *crtc = &vop->crtc;
+	struct drm_connector *connector;
+
+	mutex_lock(&crtc->dev->mode_config.mutex);
+	drm_for_each_connector(connector, crtc->dev)
+		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+			mutex_unlock(&crtc->dev->mode_config.mutex);
+			return connector;
+		}
+	mutex_unlock(&crtc->dev->mode_config.mutex);
+
+	return NULL;
+}
+
+static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
+				   const char *source_name, size_t *values_cnt)
+{
+	struct vop *vop = to_vop(crtc);
+	struct drm_connector *connector;
+	int ret;
+
+	connector = vop_get_edp_connector(vop);
+	if (!connector)
+		return -EINVAL;
+
+	*values_cnt = 3;
+
+	if (source_name && strcmp(source_name, "auto") == 0)
+		ret = analogix_dp_start_crc(connector);
+	else if (!source_name)
+		ret = analogix_dp_stop_crc(connector);
+	else
+		ret = -EINVAL;
+
+	return ret;
+}
+
 static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.set_config = drm_atomic_helper_set_config,
 	.page_flip = drm_atomic_helper_page_flip,
@@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
 	.atomic_destroy_state = vop_crtc_destroy_state,
 	.enable_vblank = vop_crtc_enable_vblank,
 	.disable_vblank = vop_crtc_disable_vblank,
+	.set_crc_source = vop_crtc_set_crc_source,
 };
 
 static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
  2017-03-03 13:39   ` Tomeu Vizoso
  (?)
@ 2017-03-06  0:55     ` Mark yao
  -1 siblings, 0 replies; 30+ messages in thread
From: Mark yao @ 2017-03-06  0:55 UTC (permalink / raw)
  To: Tomeu Vizoso, linux-kernel
  Cc: Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Emil Velikov,
	Daniel Vetter, Benjamin Gaignard, Heiko Stuebner, dri-devel,
	linux-rockchip, David Airlie, linux-arm-kernel

On 2017年03月03日 21:39, Tomeu Vizoso wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---

looks good for me

Acked-by: Mark Yao <mark.yao@rock-chips.com>

>   drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> index 94d7b7327ff7..17ab16c4b922 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> @@ -19,6 +19,7 @@
>   #include <drm/drm_crtc_helper.h>
>   #include <drm/drm_flip_work.h>
>   #include <drm/drm_plane_helper.h>
> +#include <drm/bridge/analogix_dp.h>
>   
>   #include <linux/kernel.h>
>   #include <linux/module.h>
> @@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
>   	kfree(s);
>   }
>   
> +static struct drm_connector *vop_get_edp_connector(struct vop *vop)
> +{
> +	struct drm_crtc *crtc = &vop->crtc;
> +	struct drm_connector *connector;
> +
> +	mutex_lock(&crtc->dev->mode_config.mutex);
> +	drm_for_each_connector(connector, crtc->dev)
> +		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
> +			mutex_unlock(&crtc->dev->mode_config.mutex);
> +			return connector;
> +		}
> +	mutex_unlock(&crtc->dev->mode_config.mutex);
> +
> +	return NULL;
> +}
> +
> +static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
> +				   const char *source_name, size_t *values_cnt)
> +{
> +	struct vop *vop = to_vop(crtc);
> +	struct drm_connector *connector;
> +	int ret;
> +
> +	connector = vop_get_edp_connector(vop);
> +	if (!connector)
> +		return -EINVAL;
> +
> +	*values_cnt = 3;
> +
> +	if (source_name && strcmp(source_name, "auto") == 0)
> +		ret = analogix_dp_start_crc(connector);
> +	else if (!source_name)
> +		ret = analogix_dp_stop_crc(connector);
> +	else
> +		ret = -EINVAL;
> +
> +	return ret;
> +}
> +
>   static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> @@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.atomic_destroy_state = vop_crtc_destroy_state,
>   	.enable_vblank = vop_crtc_enable_vblank,
>   	.disable_vblank = vop_crtc_disable_vblank,
> +	.set_crc_source = vop_crtc_set_crc_source,
>   };
>   
>   static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)


-- 
Mark Yao

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-06  0:55     ` Mark yao
  0 siblings, 0 replies; 30+ messages in thread
From: Mark yao @ 2017-03-06  0:55 UTC (permalink / raw)
  To: Tomeu Vizoso, linux-kernel
  Cc: Emil Velikov, dri-devel, linux-rockchip, linux-arm-kernel,
	intel-gfx-trybot, Daniel Vetter

On 2017年03月03日 21:39, Tomeu Vizoso wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---

looks good for me

Acked-by: Mark Yao <mark.yao@rock-chips.com>

>   drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> index 94d7b7327ff7..17ab16c4b922 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> @@ -19,6 +19,7 @@
>   #include <drm/drm_crtc_helper.h>
>   #include <drm/drm_flip_work.h>
>   #include <drm/drm_plane_helper.h>
> +#include <drm/bridge/analogix_dp.h>
>   
>   #include <linux/kernel.h>
>   #include <linux/module.h>
> @@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
>   	kfree(s);
>   }
>   
> +static struct drm_connector *vop_get_edp_connector(struct vop *vop)
> +{
> +	struct drm_crtc *crtc = &vop->crtc;
> +	struct drm_connector *connector;
> +
> +	mutex_lock(&crtc->dev->mode_config.mutex);
> +	drm_for_each_connector(connector, crtc->dev)
> +		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
> +			mutex_unlock(&crtc->dev->mode_config.mutex);
> +			return connector;
> +		}
> +	mutex_unlock(&crtc->dev->mode_config.mutex);
> +
> +	return NULL;
> +}
> +
> +static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
> +				   const char *source_name, size_t *values_cnt)
> +{
> +	struct vop *vop = to_vop(crtc);
> +	struct drm_connector *connector;
> +	int ret;
> +
> +	connector = vop_get_edp_connector(vop);
> +	if (!connector)
> +		return -EINVAL;
> +
> +	*values_cnt = 3;
> +
> +	if (source_name && strcmp(source_name, "auto") == 0)
> +		ret = analogix_dp_start_crc(connector);
> +	else if (!source_name)
> +		ret = analogix_dp_stop_crc(connector);
> +	else
> +		ret = -EINVAL;
> +
> +	return ret;
> +}
> +
>   static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> @@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.atomic_destroy_state = vop_crtc_destroy_state,
>   	.enable_vblank = vop_crtc_enable_vblank,
>   	.disable_vblank = vop_crtc_disable_vblank,
> +	.set_crc_source = vop_crtc_set_crc_source,
>   };
>   
>   static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)


-- 
Mark Yao


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-06  0:55     ` Mark yao
  0 siblings, 0 replies; 30+ messages in thread
From: Mark yao @ 2017-03-06  0:55 UTC (permalink / raw)
  To: linux-arm-kernel

On 2017?03?03? 21:39, Tomeu Vizoso wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---

looks good for me

Acked-by: Mark Yao <mark.yao@rock-chips.com>

>   drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> index 94d7b7327ff7..17ab16c4b922 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
> @@ -19,6 +19,7 @@
>   #include <drm/drm_crtc_helper.h>
>   #include <drm/drm_flip_work.h>
>   #include <drm/drm_plane_helper.h>
> +#include <drm/bridge/analogix_dp.h>
>   
>   #include <linux/kernel.h>
>   #include <linux/module.h>
> @@ -1111,6 +1112,45 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
>   	kfree(s);
>   }
>   
> +static struct drm_connector *vop_get_edp_connector(struct vop *vop)
> +{
> +	struct drm_crtc *crtc = &vop->crtc;
> +	struct drm_connector *connector;
> +
> +	mutex_lock(&crtc->dev->mode_config.mutex);
> +	drm_for_each_connector(connector, crtc->dev)
> +		if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
> +			mutex_unlock(&crtc->dev->mode_config.mutex);
> +			return connector;
> +		}
> +	mutex_unlock(&crtc->dev->mode_config.mutex);
> +
> +	return NULL;
> +}
> +
> +static int vop_crtc_set_crc_source(struct drm_crtc *crtc,
> +				   const char *source_name, size_t *values_cnt)
> +{
> +	struct vop *vop = to_vop(crtc);
> +	struct drm_connector *connector;
> +	int ret;
> +
> +	connector = vop_get_edp_connector(vop);
> +	if (!connector)
> +		return -EINVAL;
> +
> +	*values_cnt = 3;
> +
> +	if (source_name && strcmp(source_name, "auto") == 0)
> +		ret = analogix_dp_start_crc(connector);
> +	else if (!source_name)
> +		ret = analogix_dp_stop_crc(connector);
> +	else
> +		ret = -EINVAL;
> +
> +	return ret;
> +}
> +
>   static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.set_config = drm_atomic_helper_set_config,
>   	.page_flip = drm_atomic_helper_page_flip,
> @@ -1120,6 +1160,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
>   	.atomic_destroy_state = vop_crtc_destroy_state,
>   	.enable_vblank = vop_crtc_enable_vblank,
>   	.disable_vblank = vop_crtc_disable_vblank,
> +	.set_crc_source = vop_crtc_set_crc_source,
>   };
>   
>   static void vop_fb_unref_worker(struct drm_flip_work *work, void *val)


-- 
?ark Yao

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
  2017-03-03 13:39 ` Tomeu Vizoso
  (?)
@ 2017-03-06 17:19   ` Sean Paul
  -1 siblings, 0 replies; 30+ messages in thread
From: Sean Paul @ 2017-03-06 17:19 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: linux-kernel, linux-arm-kernel, Emil Velikov, linux-rockchip,
	dri-devel, intel-gfx-trybot, Daniel Vetter

On Fri, Mar 03, 2017 at 02:39:32PM +0100, Tomeu Vizoso wrote:
> Hi,
> 
> this series builds up on the API for exposing captured CRCs through
> debugfs.
> 
> It adds new DP helpers for starting and stopping CRC capture and gets
> the Rockchip driver to use it.
> 
> With these patches, tests in IGT such as kms_pipe_crc_basic and
> kms_plane do pass on RK3288.
> 
> In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
> drm_connector, following discussion with Sean Paul.
> 
> Thanks,

Thanks for respinning this, Tomeu.

Applied to -misc

Sean

> 
> Tomeu
> 
> 
> Tomeu Vizoso (4):
>   drm/dp: add crtc backpointer to drm_dp_aux
>   drm/dp: add helpers for capture of frame CRCs
>   drm/bridge: analogix_dp: add helpers for capture of frame CRCs
>   drm/rockchip: Implement CRC debugfs API
> 
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
>  drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
>  include/drm/bridge/analogix_dp.h                   |   3 +
>  include/drm/drm_dp_helper.h                        |   9 ++
>  5 files changed, 201 insertions(+)
> 
> -- 
> 2.9.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
@ 2017-03-06 17:19   ` Sean Paul
  0 siblings, 0 replies; 30+ messages in thread
From: Sean Paul @ 2017-03-06 17:19 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Emil Velikov, linux-kernel, dri-devel, linux-rockchip,
	intel-gfx-trybot, Daniel Vetter, linux-arm-kernel

On Fri, Mar 03, 2017 at 02:39:32PM +0100, Tomeu Vizoso wrote:
> Hi,
> 
> this series builds up on the API for exposing captured CRCs through
> debugfs.
> 
> It adds new DP helpers for starting and stopping CRC capture and gets
> the Rockchip driver to use it.
> 
> With these patches, tests in IGT such as kms_pipe_crc_basic and
> kms_plane do pass on RK3288.
> 
> In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
> drm_connector, following discussion with Sean Paul.
> 
> Thanks,

Thanks for respinning this, Tomeu.

Applied to -misc

Sean

> 
> Tomeu
> 
> 
> Tomeu Vizoso (4):
>   drm/dp: add crtc backpointer to drm_dp_aux
>   drm/dp: add helpers for capture of frame CRCs
>   drm/bridge: analogix_dp: add helpers for capture of frame CRCs
>   drm/rockchip: Implement CRC debugfs API
> 
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
>  drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
>  include/drm/bridge/analogix_dp.h                   |   3 +
>  include/drm/drm_dp_helper.h                        |   9 ++
>  5 files changed, 201 insertions(+)
> 
> -- 
> 2.9.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 0/4] drm/dp: Implement CRC debugfs API
@ 2017-03-06 17:19   ` Sean Paul
  0 siblings, 0 replies; 30+ messages in thread
From: Sean Paul @ 2017-03-06 17:19 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Mar 03, 2017 at 02:39:32PM +0100, Tomeu Vizoso wrote:
> Hi,
> 
> this series builds up on the API for exposing captured CRCs through
> debugfs.
> 
> It adds new DP helpers for starting and stopping CRC capture and gets
> the Rockchip driver to use it.
> 
> With these patches, tests in IGT such as kms_pipe_crc_basic and
> kms_plane do pass on RK3288.
> 
> In this v6, the backpointer in drm_dp_aux becomes drm_crtc instead of
> drm_connector, following discussion with Sean Paul.
> 
> Thanks,

Thanks for respinning this, Tomeu.

Applied to -misc

Sean

> 
> Tomeu
> 
> 
> Tomeu Vizoso (4):
>   drm/dp: add crtc backpointer to drm_dp_aux
>   drm/dp: add helpers for capture of frame CRCs
>   drm/bridge: analogix_dp: add helpers for capture of frame CRCs
>   drm/rockchip: Implement CRC debugfs API
> 
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  22 ++++
>  drivers/gpu/drm/drm_dp_helper.c                    | 126 +++++++++++++++++++++
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  41 +++++++
>  include/drm/bridge/analogix_dp.h                   |   3 +
>  include/drm/drm_dp_helper.h                        |   9 ++
>  5 files changed, 201 insertions(+)
> 
> -- 
> 2.9.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
  2017-03-03 13:39   ` Tomeu Vizoso
  (?)
@ 2017-03-06 17:58     ` Emil Velikov
  -1 siblings, 0 replies; 30+ messages in thread
From: Emil Velikov @ 2017-03-06 17:58 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Linux-Kernel@Vger. Kernel. Org, Ville Syrjälä,
	Sean Paul, Thierry Reding, intel-gfx-trybot, Daniel Vetter,
	Benjamin Gaignard, Mark Yao, Heiko Stuebner, ML dri-devel,
	linux-rockchip, David Airlie, LAKML

Hi Tomeu,

Pardon for dropping in late.

On 3 March 2017 at 13:39, Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
I think this won't fly (build).

Afaict analogix_dp-rockchip.c (as guarded by ROCKCHIP_ANALOGIX_DP) is
the only piece that can/should have DRM_ANALOGIX_DP code. Perhaps
adding a simple wrapper/stubs will be the easier option here ?

-Emil

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-06 17:58     ` Emil Velikov
  0 siblings, 0 replies; 30+ messages in thread
From: Emil Velikov @ 2017-03-06 17:58 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Linux-Kernel@Vger. Kernel. Org, ML dri-devel, linux-rockchip,
	LAKML, intel-gfx-trybot, Daniel Vetter

Hi Tomeu,

Pardon for dropping in late.

On 3 March 2017 at 13:39, Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
I think this won't fly (build).

Afaict analogix_dp-rockchip.c (as guarded by ROCKCHIP_ANALOGIX_DP) is
the only piece that can/should have DRM_ANALOGIX_DP code. Perhaps
adding a simple wrapper/stubs will be the easier option here ?

-Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API
@ 2017-03-06 17:58     ` Emil Velikov
  0 siblings, 0 replies; 30+ messages in thread
From: Emil Velikov @ 2017-03-06 17:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Tomeu,

Pardon for dropping in late.

On 3 March 2017 at 13:39, Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote:
> Implement the .set_crc_source() callback and call the DP helpers
> accordingly to start and stop CRC capture.
>
> This is only done if this CRTC is currently using the eDP connector.
>
> v3: Remove superfluous check on rockchip_crtc_state->output_type
>
> v6: Remove superfluous variable
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>
>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 41 +++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
I think this won't fly (build).

Afaict analogix_dp-rockchip.c (as guarded by ROCKCHIP_ANALOGIX_DP) is
the only piece that can/should have DRM_ANALOGIX_DP code. Perhaps
adding a simple wrapper/stubs will be the easier option here ?

-Emil

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v6 2/4] drm/dp: add helpers for capture of frame CRCs
  2017-03-03 13:39   ` Tomeu Vizoso
  (?)
@ 2017-03-07 18:26   ` Gabriel Krisman Bertazi
  2017-03-07 20:35       ` Tomeu Vizoso
  -1 siblings, 1 reply; 30+ messages in thread
From: Gabriel Krisman Bertazi @ 2017-03-07 18:26 UTC (permalink / raw)
  To: Tomeu Vizoso; +Cc: dri-devel

Tomeu Vizoso <tomeu.vizoso@collabora.com> writes:

> +
> +/**
> + * drm_dp_start_crc() - start capture of frame CRCs
> + * @aux: DisplayPort AUX channel
> + *
> + * Returns 0 on success or a negative error code on failure.
> + */
> +int drm_dp_start_crc(struct drm_dp_aux *aux, struct drm_crtc *crtc)
> +{
> +	u8 buf;
> +	int ret;
> +
> +	ret = drm_dp_dpcd_readb(aux, DP_TEST_SINK, &buf);
> +	if (ret < 0)
> +		return ret;
> +
> +	ret = drm_dp_dpcd_writeb(aux, DP_TEST_SINK, buf | DP_TEST_SINK_START);
> +	if (ret < 0)
> +		return ret;
> +
> +	aux->crc_count = 0;
> +	aux->crtc = crtc;
> +	schedule_work(&aux->crc_work);
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL(drm_dp_start_crc);
> +

Hi Tomeu,

This triggers a new warning when building documentation:

./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
for parameter 'crtc'
./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
for parameter 'crtc'

-- 
Gabriel Krisman Bertazi
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH] drm/dp: Add missing description to parameter
  2017-03-07 18:26   ` Gabriel Krisman Bertazi
@ 2017-03-07 20:35       ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-07 20:35 UTC (permalink / raw)
  To: linux-kernel
  Cc: Gabriel Krisman Bertazi, Tomeu Vizoso, Daniel Vetter,
	Jani Nikula, Sean Paul, David Airlie, dri-devel

Gabriel Krisman reported these warnings when building the documentation:

 ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
for parameter 'crtc'
./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
for parameter 'crtc'

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_dp_helper.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index c40cfe2e63ab..3e5f52110ea1 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -1158,6 +1158,7 @@ EXPORT_SYMBOL(drm_dp_psr_setup_time);
 /**
  * drm_dp_start_crc() - start capture of frame CRCs
  * @aux: DisplayPort AUX channel
+ * @crtc: CRTC displaying the frames whose CRCs are to be captured
  *
  * Returns 0 on success or a negative error code on failure.
  */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH] drm/dp: Add missing description to parameter
@ 2017-03-07 20:35       ` Tomeu Vizoso
  0 siblings, 0 replies; 30+ messages in thread
From: Tomeu Vizoso @ 2017-03-07 20:35 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, dri-devel, Daniel Vetter, Gabriel Krisman Bertazi

Gabriel Krisman reported these warnings when building the documentation:

 ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
for parameter 'crtc'
./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
for parameter 'crtc'

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_dp_helper.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index c40cfe2e63ab..3e5f52110ea1 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -1158,6 +1158,7 @@ EXPORT_SYMBOL(drm_dp_psr_setup_time);
 /**
  * drm_dp_start_crc() - start capture of frame CRCs
  * @aux: DisplayPort AUX channel
+ * @crtc: CRTC displaying the frames whose CRCs are to be captured
  *
  * Returns 0 on success or a negative error code on failure.
  */
-- 
2.9.3

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] drm/dp: Add missing description to parameter
  2017-03-07 20:35       ` Tomeu Vizoso
@ 2017-03-07 22:03         ` Sean Paul
  -1 siblings, 0 replies; 30+ messages in thread
From: Sean Paul @ 2017-03-07 22:03 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: linux-kernel, dri-devel, Daniel Vetter, Gabriel Krisman Bertazi

On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
> Gabriel Krisman reported these warnings when building the documentation:
> 
>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
> for parameter 'crtc'
> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
> for parameter 'crtc'
> 

I've now added htmldocs build to my pre-merge build testing so I'll hopefully
catch this earlier (no promises).

In the meantime, this has been applied to -misc

Thanks,

Sean

> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>  drivers/gpu/drm/drm_dp_helper.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
> index c40cfe2e63ab..3e5f52110ea1 100644
> --- a/drivers/gpu/drm/drm_dp_helper.c
> +++ b/drivers/gpu/drm/drm_dp_helper.c
> @@ -1158,6 +1158,7 @@ EXPORT_SYMBOL(drm_dp_psr_setup_time);
>  /**
>   * drm_dp_start_crc() - start capture of frame CRCs
>   * @aux: DisplayPort AUX channel
> + * @crtc: CRTC displaying the frames whose CRCs are to be captured
>   *
>   * Returns 0 on success or a negative error code on failure.
>   */
> -- 
> 2.9.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] drm/dp: Add missing description to parameter
@ 2017-03-07 22:03         ` Sean Paul
  0 siblings, 0 replies; 30+ messages in thread
From: Sean Paul @ 2017-03-07 22:03 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Daniel Vetter, linux-kernel, dri-devel, Gabriel Krisman Bertazi

On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
> Gabriel Krisman reported these warnings when building the documentation:
> 
>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
> for parameter 'crtc'
> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
> for parameter 'crtc'
> 

I've now added htmldocs build to my pre-merge build testing so I'll hopefully
catch this earlier (no promises).

In the meantime, this has been applied to -misc

Thanks,

Sean

> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>  drivers/gpu/drm/drm_dp_helper.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
> index c40cfe2e63ab..3e5f52110ea1 100644
> --- a/drivers/gpu/drm/drm_dp_helper.c
> +++ b/drivers/gpu/drm/drm_dp_helper.c
> @@ -1158,6 +1158,7 @@ EXPORT_SYMBOL(drm_dp_psr_setup_time);
>  /**
>   * drm_dp_start_crc() - start capture of frame CRCs
>   * @aux: DisplayPort AUX channel
> + * @crtc: CRTC displaying the frames whose CRCs are to be captured
>   *
>   * Returns 0 on success or a negative error code on failure.
>   */
> -- 
> 2.9.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter)
  2017-03-07 22:03         ` Sean Paul
  (?)
@ 2017-03-08  8:39         ` Jani Nikula
  2017-03-08  8:41           ` Jani Nikula
  -1 siblings, 1 reply; 30+ messages in thread
From: Jani Nikula @ 2017-03-08  8:39 UTC (permalink / raw)
  To: Sean Paul, Tomeu Vizoso, kbuild-all
  Cc: Daniel Vetter, Fengguang Wu, Gabriel Krisman Bertazi, dri-devel

On Wed, 08 Mar 2017, Sean Paul <seanpaul@chromium.org> wrote:
> On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
>> Gabriel Krisman reported these warnings when building the documentation:
>> 
>>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
>> for parameter 'crtc'
>> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
>> for parameter 'crtc'
>> 
>
> I've now added htmldocs build to my pre-merge build testing so I'll hopefully
> catch this earlier (no promises).

Dear 0day folks, what's the status of 'make htmldocs' build testing on
patches posted to dri-devel and intel-gfx mailing lists? I see
occasional mails reporting issues in documentation, but sometimes there
are no reports.

And while I'm reaching out, have we ensured testing of the new repos and
branches we have? There's the drm-misc and drm-tip repos. drm-tip is an
integration tree, and other repos and branches feed to it. If you don't
have anything such, we should probably discuss whether it's best to test
the individual trees, or the integration tree, or both.


BR,
Jani.


-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter)
  2017-03-08  8:39         ` 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter) Jani Nikula
@ 2017-03-08  8:41           ` Jani Nikula
  2017-03-08  9:20             ` [kbuild-all] " Philip Li
  2017-03-08  9:24             ` Fengguang Wu
  0 siblings, 2 replies; 30+ messages in thread
From: Jani Nikula @ 2017-03-08  8:41 UTC (permalink / raw)
  To: Sean Paul, Tomeu Vizoso, kbuild-all
  Cc: Daniel Vetter, Fengguang Wu, Gabriel Krisman Bertazi, dri-devel

On Wed, 08 Mar 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Wed, 08 Mar 2017, Sean Paul <seanpaul@chromium.org> wrote:
>> On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
>>> Gabriel Krisman reported these warnings when building the documentation:
>>> 
>>>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
>>> for parameter 'crtc'
>>> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
>>> for parameter 'crtc'
>>> 
>>
>> I've now added htmldocs build to my pre-merge build testing so I'll hopefully
>> catch this earlier (no promises).
>
> Dear 0day folks, what's the status of 'make htmldocs' build testing on
> patches posted to dri-devel and intel-gfx mailing lists? I see
> occasional mails reporting issues in documentation, but sometimes there
> are no reports.
>
> And while I'm reaching out, have we ensured testing of the new repos and
> branches we have? There's the drm-misc and drm-tip repos. drm-tip is an
> integration tree, and other repos and branches feed to it. If you don't
> have anything such, we should probably discuss whether it's best to test
> the individual trees, or the integration tree, or both.

Okay, I see that you've sent reports about drm-tip, but there's nothing
on the drm-misc branches after it moved from drm-intel.git to a repo of
its own. Is drm-tip enough, or should we expand on drm-misc?

BR,
Jani.

>
>
> BR,
> Jani.

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [kbuild-all] 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter)
  2017-03-08  8:41           ` Jani Nikula
@ 2017-03-08  9:20             ` Philip Li
  2017-03-08  9:24             ` Fengguang Wu
  1 sibling, 0 replies; 30+ messages in thread
From: Philip Li @ 2017-03-08  9:20 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Tomeu Vizoso, dri-devel, kbuild-all, Daniel Vetter, Fengguang Wu,
	Gabriel Krisman Bertazi

On Wed, Mar 08, 2017 at 10:41:37AM +0200, Jani Nikula wrote:
> On Wed, 08 Mar 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> > On Wed, 08 Mar 2017, Sean Paul <seanpaul@chromium.org> wrote:
> >> On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
> >>> Gabriel Krisman reported these warnings when building the documentation:
> >>> 
> >>>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
> >>> for parameter 'crtc'
> >>> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
> >>> for parameter 'crtc'
> >>> 
> >>
> >> I've now added htmldocs build to my pre-merge build testing so I'll hopefully
> >> catch this earlier (no promises).
> >
> > Dear 0day folks, what's the status of 'make htmldocs' build testing on
> > patches posted to dri-devel and intel-gfx mailing lists? I see
> > occasional mails reporting issues in documentation, but sometimes there
> > are no reports.
> >
> > And while I'm reaching out, have we ensured testing of the new repos and
> > branches we have? There's the drm-misc and drm-tip repos. drm-tip is an
> > integration tree, and other repos and branches feed to it. If you don't
> > have anything such, we should probably discuss whether it's best to test
> > the individual trees, or the integration tree, or both.
> 
> Okay, I see that you've sent reports about drm-tip, but there's nothing
> on the drm-misc branches after it moved from drm-intel.git to a repo of
> its own. Is drm-tip enough, or should we expand on drm-misc?
hi Jani, currently we had covered several drm repos (list a few of them below).
Can you share me the url of drm-misc, probably it is not covered yet.

git://anongit.freedesktop.org/drm/drm-tip
git://anongit.freedesktop.org/drm-intel
git://people.freedesktop.org/~jani/drm

> 
> BR,
> Jani.
> 
> >
> >
> > BR,
> > Jani.
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> kbuild-all mailing list
> kbuild-all@lists.01.org
> https://lists.01.org/mailman/listinfo/kbuild-all
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [kbuild-all] 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter)
  2017-03-08  8:41           ` Jani Nikula
  2017-03-08  9:20             ` [kbuild-all] " Philip Li
@ 2017-03-08  9:24             ` Fengguang Wu
  1 sibling, 0 replies; 30+ messages in thread
From: Fengguang Wu @ 2017-03-08  9:24 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Tomeu Vizoso, dri-devel, kbuild-all, Daniel Vetter,
	Gabriel Krisman Bertazi

Hi Jani,

On Wed, Mar 08, 2017 at 10:41:37AM +0200, Jani Nikula wrote:
>On Wed, 08 Mar 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote:
>> On Wed, 08 Mar 2017, Sean Paul <seanpaul@chromium.org> wrote:
>>> On Tue, Mar 07, 2017 at 09:35:11PM +0100, Tomeu Vizoso wrote:
>>>> Gabriel Krisman reported these warnings when building the documentation:
>>>>
>>>>  ./drivers/gpu/drm/drm_dp_helper.c:1165: warning: No description found
>>>> for parameter 'crtc'
>>>> ./drivers/gpu/drm/drm_dp_helper.c:1166: warning: No description found
>>>> for parameter 'crtc'
>>>>
>>>
>>> I've now added htmldocs build to my pre-merge build testing so I'll hopefully
>>> catch this earlier (no promises).
>>
>> Dear 0day folks, what's the status of 'make htmldocs' build testing on
>> patches posted to dri-devel and intel-gfx mailing lists? I see
>> occasional mails reporting issues in documentation, but sometimes there
>> are no reports.
>>
>> And while I'm reaching out, have we ensured testing of the new repos and
>> branches we have? There's the drm-misc and drm-tip repos. drm-tip is an
>> integration tree, and other repos and branches feed to it. If you don't
>> have anything such, we should probably discuss whether it's best to test
>> the individual trees, or the integration tree, or both.
>
>Okay, I see that you've sent reports about drm-tip, but there's nothing
>on the drm-misc branches after it moved from drm-intel.git to a repo of
>its own. Is drm-tip enough, or should we expand on drm-misc?

In 0day testing POV, we'd like to cover all tree/branches as well as
mailing lists. The extra costs are not a big deal to us. If we missed
some coverage, it may be we are not aware of the tree or mailing list,
or something abnormal happened (eg. bugs in the robot or failed to
fetch new code, etc.).

If you think some tree/branch or mailing list should be tested, just
tell us the URL etc. If that's already in our coverage, it may help to
tell us the exact patch/commit that has problem, so that we can try to
find the root cause.

Thanks,
Fengguang
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2017-03-08  9:24 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-03 13:39 [PATCH v6 0/4] drm/dp: Implement CRC debugfs API Tomeu Vizoso
2017-03-03 13:39 ` Tomeu Vizoso
2017-03-03 13:39 ` Tomeu Vizoso
2017-03-03 13:39 ` [PATCH v6 1/4] drm/dp: add crtc backpointer to drm_dp_aux Tomeu Vizoso
2017-03-03 13:39   ` Tomeu Vizoso
2017-03-03 13:39 ` [PATCH v6 2/4] drm/dp: add helpers for capture of frame CRCs Tomeu Vizoso
2017-03-03 13:39   ` Tomeu Vizoso
2017-03-07 18:26   ` Gabriel Krisman Bertazi
2017-03-07 20:35     ` [PATCH] drm/dp: Add missing description to parameter Tomeu Vizoso
2017-03-07 20:35       ` Tomeu Vizoso
2017-03-07 22:03       ` Sean Paul
2017-03-07 22:03         ` Sean Paul
2017-03-08  8:39         ` 0day 'make htmldocs' testing (was: Re: [PATCH] drm/dp: Add missing description to parameter) Jani Nikula
2017-03-08  8:41           ` Jani Nikula
2017-03-08  9:20             ` [kbuild-all] " Philip Li
2017-03-08  9:24             ` Fengguang Wu
2017-03-03 13:39 ` [PATCH v6 3/4] drm/bridge: analogix_dp: add helpers for capture of frame CRCs Tomeu Vizoso
2017-03-03 13:39   ` Tomeu Vizoso
2017-03-03 13:39 ` [PATCH v6 4/4] drm/rockchip: Implement CRC debugfs API Tomeu Vizoso
2017-03-03 13:39   ` Tomeu Vizoso
2017-03-03 13:39   ` Tomeu Vizoso
2017-03-06  0:55   ` Mark yao
2017-03-06  0:55     ` Mark yao
2017-03-06  0:55     ` Mark yao
2017-03-06 17:58   ` Emil Velikov
2017-03-06 17:58     ` Emil Velikov
2017-03-06 17:58     ` Emil Velikov
2017-03-06 17:19 ` [PATCH v6 0/4] drm/dp: " Sean Paul
2017-03-06 17:19   ` Sean Paul
2017-03-06 17:19   ` Sean Paul

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.