lkml.org 
[lkml]   [2016]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/7] drm/amdgpu: Don't retry 7 times in amdgpu_atombios_dp_get_dpcd()
    Date
    When this code was written, we didn't retry DP aux transactions on any
    error, which required retrying important transactions like this in
    individual drivers. Since that's no longer the case, retrying here is
    not necessary. As well, we retry any aux transaction on any error 32
    times. 7 * 32 = 224, which means this loop causes us to retry grabbing
    the dpcd 224 times. This is definitely far more then we actually need to
    do.

    Signed-off-by: Lyude <cpaul@redhat.com>
    ---
    drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 21 ++++++++++-----------
    1 file changed, 10 insertions(+), 11 deletions(-)

    diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
    index 166dc7b..f81068b 100644
    --- a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
    +++ b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
    @@ -338,22 +338,21 @@ int amdgpu_atombios_dp_get_dpcd(struct amdgpu_connector *amdgpu_connector)
    {
    struct amdgpu_connector_atom_dig *dig_connector = amdgpu_connector->con_priv;
    u8 msg[DP_DPCD_SIZE];
    - int ret, i;
    + int ret;

    - for (i = 0; i < 7; i++) {
    - ret = drm_dp_dpcd_read(&amdgpu_connector->ddc_bus->aux, DP_DPCD_REV, msg,
    - DP_DPCD_SIZE);
    - if (ret == DP_DPCD_SIZE) {
    - memcpy(dig_connector->dpcd, msg, DP_DPCD_SIZE);
    + ret = drm_dp_dpcd_read(&amdgpu_connector->ddc_bus->aux, DP_DPCD_REV,
    + msg, DP_DPCD_SIZE);
    + if (ret == DP_DPCD_SIZE) {
    + memcpy(dig_connector->dpcd, msg, DP_DPCD_SIZE);

    - DRM_DEBUG_KMS("DPCD: %*ph\n", (int)sizeof(dig_connector->dpcd),
    - dig_connector->dpcd);
    + DRM_DEBUG_KMS("DPCD: %*ph\n", (int)sizeof(dig_connector->dpcd),
    + dig_connector->dpcd);

    - amdgpu_atombios_dp_probe_oui(amdgpu_connector);
    + amdgpu_atombios_dp_probe_oui(amdgpu_connector);

    - return 0;
    - }
    + return 0;
    }
    +
    dig_connector->dpcd[0] = 0;
    return -EINVAL;
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-08-06 23:01    [W:4.687 / U:0.728 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site