• Jarkko Nikula's avatar
    i3c: mipi-i3c-hci: Fix DAT/DCT entry sizes · 0676bfeb
    Jarkko Nikula authored
    MIPI I3C HCI specification v1.1 describes the ENTRY_SIZE field for the
    Device Address Table (DAT) and the Device Characteristics Table (DCT)
    section offset registers (DAT_SECTION_OFFSET and DCT_SECTION_OFFSET).
    That field is not documented in earlier version.
    
    ENTRY_SIZE value 0 is meant to be backward compatible. For the DAT entry
    size it is interpreted as 2 DWORDs (8-bytes) and for the DCT entry size
    as 4 DWORDs (16-bytes). Values 1-15 are reserved for future use.
    
    New version I believe fixes also the TABLE_SIZE field description.
    Before it was defined in DWORDs which I believe is incorrect since the
    DAT/DCT table entry structures, and sizes, are described having
    8-bytes/16-bytes entries.
    
    This is more clear in the specification v1.1 which states the TABLE_SIZE
    fields are interpreted as number of entries in the DAT/DCT tables. I
    believe this same holds also in earlier version, at least it makes more
    sense.
    
    Fix code accordingly and let the DAT_entry_size and the DCT_entry_size
    variables carry the size as bytes. Which is how it is already
    interpreted in the dat_v1.c: hci_dat_v1_init().
    Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
    Link: https://lore.kernel.org/r/20230921055704.1087277-4-jarkko.nikula@linux.intel.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    0676bfeb
core.c 21.4 KB