• Edgar Cherkasov's avatar
    i2c: i2c-scmi: add a MS HID · e058e7a4
    Edgar Cherkasov authored
    Description of the problem:
     - i2c-scmi driver contains only two identifiers "SMBUS01" and "SMBUSIBM";
     - the fist HID (SMBUS01) is clearly defined in "SMBus Control Method
       Interface Specification, version 1.0": "Each device must specify
       'SMBUS01' as its _HID and use a unique _UID value";
     - unfortunately, BIOS vendors (like AMI) seem to ignore this requirement
       and implement "SMB0001" HID instead of "SMBUS01";
     - I speculate that they do this because only "SMB0001" is hard coded in
       Windows SMBus driver produced by Microsoft.
    
    This leads to following situation:
     - SMBus works out of box in Windows but not in Linux;
     - board vendors are forced to add correct "SMBUS01" HID to BIOS to make
       SMBus work in Linux. Moreover the same board vendors complain that
       tools (3-rd party ASL compiler) do not like the "SMBUS01" identifier
       and produce errors.  So they need to constantly patch the compiler for
       each new version of BIOS.
    
    As it is very unlikely that BIOS vendors implement a correct HID in
    future, I would propose to consider whether it is possible to work around
    the problem by adding MS HID to the Linux i2c-scmi driver.
    
    v2: move the definition of the new HID to the driver itself.
    Signed-off-by: default avatarEdgar Cherkasov <echerkasov@dev.rtsoft.ru>
    Signed-off-by: default avatarMichael Brunner <Michael.Brunner@kontron.com>
    Acked-by: default avatarViktor Krasnov <vkrasnov@dev.rtsoft.ru>
    Reviewed-by: default avatarJean Delvare <jdelvare@suse.de>
    Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    e058e7a4
i2c-scmi.c 11 KB