Re: [Intel-gfx] [PATCH v2 8/8] drm/i915: Deduplicate the code to fill the aux message header

2018-02-23 Thread Ramalingam C

With minor suggestions:

Reviewed-by: Ramalingam C 


On Friday 23 February 2018 02:58 AM, Ville Syrjala wrote:

From: Ville Syrjälä 

We have two instances of the code to fill out the header for the aux
message. Pull it into a small helper.

v2: Rebase due to txbuf[] changes

Cc: Sean Paul 
Cc: Ramalingam C 
Signed-off-by: Ville Syrjälä 
---
  drivers/gpu/drm/i915/intel_dp.c | 32 
  1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 0d699d230b77..e04aaa182d4c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1240,6 +1240,17 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
  
  #define BARE_ADDRESS_SIZE	3

  #define HEADER_SIZE   (BARE_ADDRESS_SIZE + 1)
+
+static void
+intel_dp_aux_header(u8 txbuf[HEADER_SIZE],
+   const struct drm_dp_aux_msg *msg)
+{
+   txbuf[0] = (msg->request << 4) | ((msg->address >> 16) & 0xf);
+   txbuf[1] = (msg->address >> 8) & 0xff;
+   txbuf[2] = msg->address & 0xff;
+   txbuf[3] = msg->size - 1;
+}
+
  static ssize_t
  intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
  {
@@ -1248,11 +1259,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct 
drm_dp_aux_msg *msg)
size_t txsize, rxsize;
int ret;
  
-	txbuf[0] = (msg->request << 4) |

-   ((msg->address >> 16) & 0xf);
-   txbuf[1] = (msg->address >> 8) & 0xff;
-   txbuf[2] = msg->address & 0xff;
-   txbuf[3] = msg->size - 1;
+   intel_dp_aux_header(txbuf, msg);
  
  	switch (msg->request & ~DP_AUX_I2C_MOT) {

case DP_AUX_NATIVE_WRITE:
@@ -5068,7 +5075,12 @@ int intel_dp_hdcp_write_an_aksv(struct 
intel_digital_port *intel_dig_port,
u8 *an)
  {
struct intel_dp *intel_dp = enc_to_intel_dp(_dig_port->base.base);
-   uint8_t txbuf[4+5] = {}, rxbuf[2], reply = 0;
+   static const struct drm_dp_aux_msg msg = {
+   .request = DP_AUX_NATIVE_WRITE,
+   .address = DP_AUX_HDCP_AKSV,
+   .size = DRM_HDCP_KSV_LEN,
+   };
+   uint8_t txbuf[HEADER_SIZE + DRM_HDCP_KSV_LEN] = {}, rxbuf[2], reply = 0;
Replacing numbers with macros could be moved to the previous patch of 
the series.

ssize_t dpcd_ret;
int ret;
  
@@ -5086,13 +5098,9 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,

 * we were writing the data, and then tickle the hardware to output the
 * data once the header is sent out.
 */
-   txbuf[0] = (DP_AUX_NATIVE_WRITE << 4) |
-  ((DP_AUX_HDCP_AKSV >> 16) & 0xf);
-   txbuf[1] = (DP_AUX_HDCP_AKSV >> 8) & 0xff;
-   txbuf[2] = DP_AUX_HDCP_AKSV & 0xff;
-   txbuf[3] = DRM_HDCP_KSV_LEN - 1;
+   intel_dp_aux_header(txbuf, );
  
-	ret = intel_dp_aux_xfer(intel_dp, txbuf, sizeof(txbuf),

+   ret = intel_dp_aux_xfer(intel_dp, txbuf, HEADER_SIZE + msg.size,
We could use the HEADER_SIZE + DRM_HDCP_KSV_LEN itself for txbuf size, 
as they are const anyway.
this also could be moved to the prev patch, so that this patch just adds 
a helper for filling the aux header.


--Ram

rxbuf, sizeof(rxbuf),
DP_AUX_CH_CTL_AUX_AKSV_SELECT);
if (ret < 0) {


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 8/8] drm/i915: Deduplicate the code to fill the aux message header

2018-02-22 Thread Ville Syrjala
From: Ville Syrjälä 

We have two instances of the code to fill out the header for the aux
message. Pull it into a small helper.

v2: Rebase due to txbuf[] changes

Cc: Sean Paul 
Cc: Ramalingam C 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_dp.c | 32 
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 0d699d230b77..e04aaa182d4c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1240,6 +1240,17 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
 
 #define BARE_ADDRESS_SIZE  3
 #define HEADER_SIZE(BARE_ADDRESS_SIZE + 1)
+
+static void
+intel_dp_aux_header(u8 txbuf[HEADER_SIZE],
+   const struct drm_dp_aux_msg *msg)
+{
+   txbuf[0] = (msg->request << 4) | ((msg->address >> 16) & 0xf);
+   txbuf[1] = (msg->address >> 8) & 0xff;
+   txbuf[2] = msg->address & 0xff;
+   txbuf[3] = msg->size - 1;
+}
+
 static ssize_t
 intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
 {
@@ -1248,11 +1259,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct 
drm_dp_aux_msg *msg)
size_t txsize, rxsize;
int ret;
 
-   txbuf[0] = (msg->request << 4) |
-   ((msg->address >> 16) & 0xf);
-   txbuf[1] = (msg->address >> 8) & 0xff;
-   txbuf[2] = msg->address & 0xff;
-   txbuf[3] = msg->size - 1;
+   intel_dp_aux_header(txbuf, msg);
 
switch (msg->request & ~DP_AUX_I2C_MOT) {
case DP_AUX_NATIVE_WRITE:
@@ -5068,7 +5075,12 @@ int intel_dp_hdcp_write_an_aksv(struct 
intel_digital_port *intel_dig_port,
u8 *an)
 {
struct intel_dp *intel_dp = enc_to_intel_dp(_dig_port->base.base);
-   uint8_t txbuf[4+5] = {}, rxbuf[2], reply = 0;
+   static const struct drm_dp_aux_msg msg = {
+   .request = DP_AUX_NATIVE_WRITE,
+   .address = DP_AUX_HDCP_AKSV,
+   .size = DRM_HDCP_KSV_LEN,
+   };
+   uint8_t txbuf[HEADER_SIZE + DRM_HDCP_KSV_LEN] = {}, rxbuf[2], reply = 0;
ssize_t dpcd_ret;
int ret;
 
@@ -5086,13 +5098,9 @@ int intel_dp_hdcp_write_an_aksv(struct 
intel_digital_port *intel_dig_port,
 * we were writing the data, and then tickle the hardware to output the
 * data once the header is sent out.
 */
-   txbuf[0] = (DP_AUX_NATIVE_WRITE << 4) |
-  ((DP_AUX_HDCP_AKSV >> 16) & 0xf);
-   txbuf[1] = (DP_AUX_HDCP_AKSV >> 8) & 0xff;
-   txbuf[2] = DP_AUX_HDCP_AKSV & 0xff;
-   txbuf[3] = DRM_HDCP_KSV_LEN - 1;
+   intel_dp_aux_header(txbuf, );
 
-   ret = intel_dp_aux_xfer(intel_dp, txbuf, sizeof(txbuf),
+   ret = intel_dp_aux_xfer(intel_dp, txbuf, HEADER_SIZE + msg.size,
rxbuf, sizeof(rxbuf),
DP_AUX_CH_CTL_AUX_AKSV_SELECT);
if (ret < 0) {
-- 
2.13.6

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx