|
@@ -83,17 +83,18 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux,
|
|
|
enum i2c_mot_mode mot = (msg->request & DP_AUX_I2C_MOT) ?
|
|
enum i2c_mot_mode mot = (msg->request & DP_AUX_I2C_MOT) ?
|
|
|
I2C_MOT_TRUE : I2C_MOT_FALSE;
|
|
I2C_MOT_TRUE : I2C_MOT_FALSE;
|
|
|
enum ddc_result res;
|
|
enum ddc_result res;
|
|
|
|
|
+ ssize_t read_bytes;
|
|
|
|
|
|
|
|
switch (msg->request & ~DP_AUX_I2C_MOT) {
|
|
switch (msg->request & ~DP_AUX_I2C_MOT) {
|
|
|
case DP_AUX_NATIVE_READ:
|
|
case DP_AUX_NATIVE_READ:
|
|
|
- res = dal_ddc_service_read_dpcd_data(
|
|
|
|
|
|
|
+ read_bytes = dal_ddc_service_read_dpcd_data(
|
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
|
false,
|
|
false,
|
|
|
I2C_MOT_UNDEF,
|
|
I2C_MOT_UNDEF,
|
|
|
msg->address,
|
|
msg->address,
|
|
|
msg->buffer,
|
|
msg->buffer,
|
|
|
msg->size);
|
|
msg->size);
|
|
|
- break;
|
|
|
|
|
|
|
+ return read_bytes;
|
|
|
case DP_AUX_NATIVE_WRITE:
|
|
case DP_AUX_NATIVE_WRITE:
|
|
|
res = dal_ddc_service_write_dpcd_data(
|
|
res = dal_ddc_service_write_dpcd_data(
|
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
@@ -104,14 +105,14 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux,
|
|
|
msg->size);
|
|
msg->size);
|
|
|
break;
|
|
break;
|
|
|
case DP_AUX_I2C_READ:
|
|
case DP_AUX_I2C_READ:
|
|
|
- res = dal_ddc_service_read_dpcd_data(
|
|
|
|
|
|
|
+ read_bytes = dal_ddc_service_read_dpcd_data(
|
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
|
true,
|
|
true,
|
|
|
mot,
|
|
mot,
|
|
|
msg->address,
|
|
msg->address,
|
|
|
msg->buffer,
|
|
msg->buffer,
|
|
|
msg->size);
|
|
msg->size);
|
|
|
- break;
|
|
|
|
|
|
|
+ return read_bytes;
|
|
|
case DP_AUX_I2C_WRITE:
|
|
case DP_AUX_I2C_WRITE:
|
|
|
res = dal_ddc_service_write_dpcd_data(
|
|
res = dal_ddc_service_write_dpcd_data(
|
|
|
TO_DM_AUX(aux)->ddc_service,
|
|
TO_DM_AUX(aux)->ddc_service,
|