• Andrew Cooks's avatar
    i2c: piix4: Fix port selection for AMD Family 16h Model 30h · 3b26fa9e
    Andrew Cooks authored
    [ Upstream commit c7c06a15 ]
    
    Family 16h Model 30h SMBus controller needs the same port selection fix
    as described and fixed in commit 0fe16195 ("i2c: piix4: Fix SMBus port
    selection for AMD Family 17h chips")
    
    commit 6befa3fd ("i2c: piix4: Support alternative port selection
    register") also fixed the port selection for Hudson2, but unfortunately
    this is not the exact same device and the AMD naming and PCI Device IDs
    aren't particularly helpful here.
    
    The SMBus port selection register is common to the following Families
    and models, as documented in AMD's publicly available BIOS and Kernel
    Developer Guides:
    
     50742 - Family 15h Model 60h-6Fh (PCI_DEVICE_ID_AMD_KERNCZ_SMBUS)
     55072 - Family 15h Model 70h-7Fh (PCI_DEVICE_ID_AMD_KERNCZ_SMBUS)
     52740 - Family 16h Model 30h-3Fh (PCI_DEVICE_ID_AMD_HUDSON2_SMBUS)
    
    The Hudson2 PCI Device ID (PCI_DEVICE_ID_AMD_HUDSON2_SMBUS) is shared
    between Bolton FCH and Family 16h Model 30h, but the location of the
    SmBus0Sel port selection bits are different:
    
     51192 - Bolton Register Reference Guide
    
    We distinguish between Bolton and Family 16h Model 30h using the PCI
    Revision ID:
    
      Bolton is device 0x780b, revision 0x15
      Family 16h Model 30h is device 0x780b, revision 0x1F
      Family 15h Model 60h and 70h are both device 0x790b, revision 0x4A.
    
    The following additional public AMD BKDG documents were checked and do
    not share the same port selection register:
    
     42301 - Family 15h Model 00h-0Fh doesn't mention any
     42300 - Family 15h Model 10h-1Fh doesn't mention any
     49125 - Family 15h Model 30h-3Fh doesn't mention any
    
     48751 - Family 16h Model 00h-0Fh uses the previously supported
             index register SB800_PIIX4_PORT_IDX_ALT at 0x2e
    Signed-off-by: default avatarAndrew Cooks <andrew.cooks@opengear.com>
    Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
    Cc: stable@vger.kernel.org [v4.6+]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    3b26fa9e
i2c-piix4.c 27.5 KB