• Luben Tuikov's avatar
    drm/amdgpu: The I2C IP doesn't support 0 writes/reads · c0838d3a
    Luben Tuikov authored
    The I2C IP doesn't support writes or reads of 0 bytes.
    
    In order for a START/STOP transaction to take
    place on the bus, the data written/read has to be
    at least one byte.
    
    That is, you cannot generate a write with 0 bytes,
    just to get the ACK from a device, just so you can
    probe that device if it is on the bus and so to
    discover all devices on the bus--you'll have to
    read at least one byte. Writes of 0 bytes generate
    no START/STOP on this I2C IP--the bus is not
    engaged at all.
    
    Set the I2C_AQ_NO_ZERO_LEN to the existing I2C
    quirk tables for Aldebaran, Arcturus, Navi10 and
    Sienna Cichlid, and add a quirk table to the I2C
    driver which drives the bus when the SMU
    doesn't--for instance on Vega20.
    
    Cc: Alexander Deucher <Alexander.Deucher@amd.com>
    Cc: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com>
    Cc: Lijo Lazar <Lijo.Lazar@amd.com>
    Cc: John Clements <john.clements@amd.com>
    Cc: Hawking Zhang <Hawking.Zhang@amd.com>
    Signed-off-by: default avatarLuben Tuikov <luben.tuikov@amd.com>
    Reviewed-by: default avatarLijo Lazar <Lijo.Lazar@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    c0838d3a
navi10_ppt.c 100 KB