• Dan Williams's avatar
    nfit: fix format interface code byte order · 1bcbf42d
    Dan Williams authored
    Per JEDEC Annex L Release 3 the SPD data is:
    
    Bits 9~5 00 000 = Function Undefined
             00 001 = Byte addressable energy backed
             00 010 = Block addressed
             00 011 = Byte addressable, no energy backed
             All other codes reserved
    Bits 4~0 0 0000 = Proprietary interface
             0 0001 = Standard interface 1
             All other codes reserved; see Definitions of Functions
    
    ...and per the ACPI 6.1 spec:
    
        byte0: Bits 4~0 (0 or 1)
        byte1: Bits 9~5 (1, 2, or 3)
    
    ...so a format interface code displayed as 0x301 should be stored in the
    nfit as (0x1, 0x3), little-endian.
    
    Cc: Toshi Kani <toshi.kani@hpe.com>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Cc: Robert Moore <robert.moore@intel.com>
    Cc: Robert Elliott <elliott@hpe.com>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=121161
    Fixes: 30ec5fd4 ("nfit: fix format interface code byte order per ACPI6.1")
    Fixes: 5ad9a7fd ("acpi/nfit: Update nfit driver to comply with ACPI 6.1")
    Reported-by: default avatarKristin Jacque <kristin.jacque@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    1bcbf42d
nfit.c 72.3 KB