mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: Edgar Cherkasov <echerkasov@dev.rtsoft.ru>,
	Michael Brunner <Michael.Brunner@kontron.com>,
	Wolfram Sang <wsa@the-dreams.de>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL for 3.18 14/53] i2c: i2c-scmi: add a MS HID
Date: Thu, 8 Mar 2018 05:03:12 +0000	[thread overview]
Message-ID: <20180308050230.8876-14-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180308050230.8876-1-alexander.levin@microsoft.com>

From: Edgar Cherkasov <echerkasov@dev.rtsoft.ru>

[ Upstream commit e058e7a4bc89104540a8a303682248614b5df6f1 ]

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: Edgar Cherkasov <echerkasov@dev.rtsoft.ru>
Signed-off-by: Michael Brunner <Michael.Brunner@kontron.com>
Acked-by: Viktor Krasnov <vkrasnov@dev.rtsoft.ru>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 drivers/i2c/busses/i2c-scmi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/i2c/busses/i2c-scmi.c b/drivers/i2c/busses/i2c-scmi.c
index dfc98df7b1b6..7aa7b9cb6203 100644
--- a/drivers/i2c/busses/i2c-scmi.c
+++ b/drivers/i2c/busses/i2c-scmi.c
@@ -18,6 +18,9 @@
 #define ACPI_SMBUS_HC_CLASS		"smbus"
 #define ACPI_SMBUS_HC_DEVICE_NAME	"cmi"
 
+/* SMBUS HID definition as supported by Microsoft Windows */
+#define ACPI_SMBUS_MS_HID		"SMB0001"
+
 ACPI_MODULE_NAME("smbus_cmi");
 
 struct smbus_methods_t {
@@ -51,6 +54,7 @@ static const struct smbus_methods_t ibm_smbus_methods = {
 static const struct acpi_device_id acpi_smbus_cmi_ids[] = {
 	{"SMBUS01", (kernel_ulong_t)&smbus_methods},
 	{ACPI_SMBUS_IBM_HID, (kernel_ulong_t)&ibm_smbus_methods},
+	{ACPI_SMBUS_MS_HID, (kernel_ulong_t)&smbus_methods},
 	{"", 0}
 };
 MODULE_DEVICE_TABLE(acpi, acpi_smbus_cmi_ids);
-- 
2.14.1

  parent reply	other threads:[~2018-03-08  5:18 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-08  5:03 [PATCH AUTOSEL for 3.18 01/53] usb: gadget: dummy_hcd: Fix wrong power status bit clear/reset in dummy_hub_control() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 02/53] perf session: Don't rely on evlist in pipe mode Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 04/53] scsi: sg: close race condition in sg_remove_sfp_usercontext() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 03/53] scsi: sg: check for valid direction before starting the request Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 05/53] kprobes/x86: Fix kprobe-booster not to boost far call instructions Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 06/53] kprobes/x86: Set kprobes pages read-only Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 07/53] wil6210: fix memory access violation in wil_memcpy_from/toio_32 Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 09/53] x86: i8259: export legacy_pic symbol Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 08/53] platform/x86: asus-nb-wmi: Add wapf4 quirk for the X302UA Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 10/53] Input: ar1021_i2c - fix too long name in driver's device table Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 12/53] cpufreq/sh: Replace racy task affinity logic Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 11/53] ACPI/processor: " Sasha Levin
2018-03-08  5:03 ` Sasha Levin [this message]
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 13/53] genirq: Use irqd_get_trigger_type to compare the trigger type for shared IRQs Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 16/53] [media] media/dvb-core: Race condition when writing to CAM Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 15/53] net: ipv6: send unsolicited NA on admin up Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 18/53] ath: Fix updating radar flags for coutry code India Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 17/53] spi: dw: Disable clock after unregistering the host Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 20/53] KVM: PPC: Book3S PR: Exit KVM on failed mapping Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 21/53] tcp: remove poll() flakes with FastOpen Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 19/53] scsi: virtio_scsi: Always try to read VPD pages Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 22/53] e1000e: fix timing for 82579 Gigabit Ethernet controller Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 23/53] ALSA: hda - Fix headset microphone detection for ASUS N551 and N751 Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 24/53] IB/ipoib: Update broadcast object if PKey value was changed in index 0 Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 25/53] HSI: ssi_protocol: double free in ssip_pn_xmit() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 27/53] mmc: host: omap_hsmmc: checking for NULL instead of IS_ERR() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 26/53] Fix driver usage of 128B WQEs when WQ_CREATE is V1 Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 28/53] wan: pc300too: abort path on failure Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 29/53] qlcnic: fix unchecked return value Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 31/53] rndis_wlan: add return value validation Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 30/53] scsi: mac_esp: Replace bogus memory barrier with spinlock Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 32/53] Btrfs: send, fix file hole not being preserved due to inline extent Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 33/53] mac80211: don't parse encrypted management frames in ieee80211_frame_acked Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 34/53] mfd: palmas: Reset the POWERHOLD mux during power off Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 36/53] ipmi/watchdog: fix wdog hang on panic waiting for ipmi response Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 35/53] ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 37/53] bnx2x: Align RX buffers Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 38/53] power: supply: pda_power: move from timer to delayed_work Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 39/53] md/raid10: skip spare disk as 'first' disk Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 40/53] ia64: fix module loading for gcc-5.4 Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 41/53] video: fbdev: udlfb: Fix buffer on stack Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 42/53] sm501fb: don't return zero on failure path in sm501fb_start() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 44/53] drm/msm: fix leak in failed get_pages Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 43/53] cifs: small underflow in cnvrtDosUnixTm() Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 46/53] media: [RESEND] media: dvb-frontends: Add delay to Si2168 restart Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 45/53] media: bt8xx: Fix err 'bt878_probe()' Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 48/53] IB/ipoib: Avoid memory leak if the SA returns a different DGID Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 47/53] mmc: avoid removing non-removable hosts during suspend Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 50/53] vgacon: Set VGA struct resource types Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 51/53] drm/omap: DMM: Check for DMM readiness after successful transaction commit Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 49/53] RDMA/cma: Use correct size when writing netlink stats Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 52/53] pinctrl: Really force states during suspend/resume Sasha Levin
2018-03-08  5:03 ` [PATCH AUTOSEL for 3.18 53/53] clk: si5351: Rename internal plls to avoid name collisions Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180308050230.8876-14-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=Michael.Brunner@kontron.com \
    --cc=echerkasov@dev.rtsoft.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®