• Michael Hennerich's avatar
    USB: isp1760: use a write barrier to ensure proper ndelay timing · ebb8a4e4
    Michael Hennerich authored
    The ISP1760 has some timing requirements where it has to delay a short
    period after a write to a register has started.  However, this delay is
    from the time the write hits the USB chip (the ISP1760), not from the
    time where the processor started processing the write.  So on a quick
    enough processor, it is sometimes possible for the write to not hit the
    device before we start delaying, and we then violate the part's timing
    requirements, so things stop working.
    
    To avoid all this, insert a write barrier after the register write and
    before the timing delay/register read so we can guarantee we only start
    counting time after the write has hit the device.
    Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    ebb8a4e4
isp1760-hcd.c 55.8 KB