• L
    drm/amdgpu: Optimize EEPROM RAS table I/O · 63d4c081
    Luben Tuikov 提交于
    Split functionality between read and write, which
    simplifies the code and exposes areas of
    optimization and more or less complexity, and take
    advantage of that.
    
    Read and write the table in one go; use a separate
    stage to decode or encode the data, as opposed to
    on the fly, which keeps the I2C bus busy. Use a
    single read/write to read/write the table or at
    most two if the number of records we're
    reading/writing wraps around.
    
    Check the check-sum of a table in EEPROM on init.
    
    Update the checksum at the same time as when
    updating the table header signature, when the
    threshold was increased on boot.
    
    Take advantage of arithmetic modulo 256, that is,
    use a byte!, to greatly simplify checksum
    arithmetic.
    
    Cc: Alexander Deucher <Alexander.Deucher@amd.com>
    Cc: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
    Signed-off-by: NLuben Tuikov <luben.tuikov@amd.com>
    Acked-by: NAlexander Deucher <Alexander.Deucher@amd.com>
    Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
    63d4c081
amdgpu_ras.c 62.8 KB