lkml.org 
[lkml]   [2012]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 08/13 v4] drm/i915/intel_i2c: handle zero-length writes
    Date
    On Wed, 28 Mar 2012 19:32:27 +0800, Daniel Kurtz <djkurtz@chromium.org> wrote:
    > Unfortunately there is a bug in both my original patch (it wasn't
    > incrementing loop), and in your suggested cleanup (it always
    > decrements len, even when it is already 0... or if the loop test
    > fails). How about the following; despite its pythonic nature, it
    > always completes with len holding the number of bytes remaining.
    >
    > val = loop = 0;
    > while (len && loop < 4) {
    > val |= *buf++ << (8 * loop++);
    > len -= 1;
    > }

    I'm getting over my aversion ;-)

    As we are here, have you considered doing an optimised u32 variant whilst
    len >= 4, which should be reasonably common during EDID transfer. Though
    I am not sure if that loop is merely in the noise compared to the rest of
    the mmio.
    -Chris

    --
    Chris Wilson, Intel Open Source Technology Centre


    \
     
     \ /
      Last update: 2012-03-28 13:41    [W:0.020 / U:3.384 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site