diff options
author | Jani Nikula <jani.nikula@intel.com> | 2014-04-07 11:37:25 +0200 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2014-04-08 16:12:37 +0200 |
commit | a6c8aff022d4d06e4b41455ae9b2a5d3d503bf76 (patch) | |
tree | 946b20aac20bef14af46b26d1ccb343d53673ced | |
parent | drm/tegra: dp: Support address-only I2C-over-AUX transactions (diff) | |
download | linux-a6c8aff022d4d06e4b41455ae9b2a5d3d503bf76.tar.xz linux-a6c8aff022d4d06e4b41455ae9b2a5d3d503bf76.zip |
drm/i915: support address only i2c-over-aux transactions
To support bare address requests used by the drm dp helpers.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index a0dad1a2f819..d2a55884ad52 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -575,7 +575,8 @@ out: return ret; } -#define HEADER_SIZE 4 +#define BARE_ADDRESS_SIZE 3 +#define HEADER_SIZE (BARE_ADDRESS_SIZE + 1) static ssize_t intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) { @@ -592,7 +593,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) switch (msg->request & ~DP_AUX_I2C_MOT) { case DP_AUX_NATIVE_WRITE: case DP_AUX_I2C_WRITE: - txsize = HEADER_SIZE + msg->size; + txsize = msg->size ? HEADER_SIZE + msg->size : BARE_ADDRESS_SIZE; rxsize = 1; if (WARN_ON(txsize > 20)) @@ -611,7 +612,7 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) case DP_AUX_NATIVE_READ: case DP_AUX_I2C_READ: - txsize = HEADER_SIZE; + txsize = msg->size ? HEADER_SIZE : BARE_ADDRESS_SIZE; rxsize = msg->size + 1; if (WARN_ON(rxsize > 20)) |