• Jarkko Nikula's avatar
    i3c: mipi-i3c-hci: Fix number of DAT/DCT entries for HCI versions < 1.1 · be90ae1b
    Jarkko Nikula authored
    I was wrong about the TABLE_SIZE field description in the
    commit 0676bfeb ("i3c: mipi-i3c-hci: Fix DAT/DCT entry sizes").
    
    For the MIPI I3C HCI versions 1.0 and earlier the TABLE_SIZE field in
    the registers DAT_SECTION_OFFSET and DCT_SECTION_OFFSET is indeed defined
    in DWORDs and not number of entries like it is defined in later versions.
    
    Where above fix allowed driver initialization to continue the wrongly
    interpreted TABLE_SIZE field leads variables DAT_entries being twice and
    DCT_entries four times as big as they really are.
    
    That in turn leads clearing the DAT table over the boundary in the
    dat_v1.c: hci_dat_v1_init().
    
    So interprete the TABLE_SIZE field in DWORDs for HCI versions < 1.1 and
    fix number of DAT/DCT entries accordingly.
    
    Fixes: 0676bfeb ("i3c: mipi-i3c-hci: Fix DAT/DCT entry sizes")
    Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    be90ae1b
core.c 22.8 KB