HID: intel-ish-hid: Prevent loading of driver on Mehlow
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 18 Jul 2018 19:32:00 +0000 (12:32 -0700)
committerJiri Kosina <jkosina@suse.cz>
Thu, 2 Aug 2018 11:25:49 +0000 (13:25 +0200)
commita1e9a9c0dfe47a3f13734be489b7953a2f8bdd83
treefa9d8a3905fb131e62afd624d67879f937ddffe8
parent092150a25cb7bd6a79aa00bb1ad131063f58073d
HID: intel-ish-hid: Prevent loading of driver on Mehlow

On Mehlow Xeon-E workstation, ISH PCI device is enabled but without ISH
firmware. Here the ISH device PCI device id was reused for some non Linux
storage drivers. So this was not done for enabling ISH. But this has a
undesirable side effect for Linux.

Here the ISH driver will be loaded via PCI enumeration and will try to do
reset sequence. But reset sequence will wait till timeout as there is no
real ISH firmware is present to take action. This delay will add to boot
time of Linux (This platform will still continue to boot after this
timeout).

To avoid this boot delay we need to prevent loading of ISH drivers on
this platform. So we need to have hack to avoid treating this device as
ISH on this platform. To identify this workstation, we need some runtime
method. Luckily there are special PCI id on this workstation to
distinguish from the client version of this platform. On client version,
the ISH is supported using same PCI device id. So this change look for
the presence of PCI device IDs A309 and A30A and exit.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/intel-ish-hid/ipc/pci-ish.c