HID: intel-ish-hid: add MSI interrupt support

Now ish hid ipc only support sideband interrupt but on some platforms
they use MSI interrupt.
In order to make the interrupt type coverage all the scenario add
single MSI interrupt support, it can match all interrupt types.

Signed-off-by: Song Hongyan <hongyan.song@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
Song Hongyan 2018-12-11 09:58:23 +08:00 коммит произвёл Jiri Kosina
Родитель f5d582777b
Коммит 74fbc7d371
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -117,6 +117,7 @@ static int ish_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ {
int ret; int ret;
struct ish_hw *hw; struct ish_hw *hw;
unsigned long irq_flag = 0;
struct ishtp_device *ishtp; struct ishtp_device *ishtp;
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
@ -156,8 +157,12 @@ static int ish_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3; pdev->dev_flags |= PCI_DEV_FLAGS_NO_D3;
/* request and enable interrupt */ /* request and enable interrupt */
ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES);
if (!pdev->msi_enabled && !pdev->msix_enabled)
irq_flag = IRQF_SHARED;
ret = devm_request_irq(dev, pdev->irq, ish_irq_handler, ret = devm_request_irq(dev, pdev->irq, ish_irq_handler,
IRQF_SHARED, KBUILD_MODNAME, ishtp); irq_flag, KBUILD_MODNAME, ishtp);
if (ret) { if (ret) {
dev_err(dev, "ISH: request IRQ %d failed\n", pdev->irq); dev_err(dev, "ISH: request IRQ %d failed\n", pdev->irq);
return ret; return ret;