On Tue, 11 Dec 2018, hongyan.song@xxxxxxxxx wrote: > From: Song Hongyan <hongyan.song@xxxxxxxxx> > > 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. Let's add Srinivas to CC as well. > > Signed-off-by: Song Hongyan <hongyan.song@xxxxxxxxx> > --- > v2: update the comments, add more description about this patch. > > drivers/hid/intel-ish-hid/ipc/pci-ish.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/hid/intel-ish-hid/ipc/pci-ish.c b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > index 8793cc4..a6e1ee7 100644 > --- a/drivers/hid/intel-ish-hid/ipc/pci-ish.c > +++ b/drivers/hid/intel-ish-hid/ipc/pci-ish.c > @@ -117,6 +117,7 @@ static int ish_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > { > int ret; > struct ish_hw *hw; > + unsigned long irq_flag = 0; > struct ishtp_device *ishtp; > 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; > > /* 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, > - IRQF_SHARED, KBUILD_MODNAME, ishtp); > + irq_flag, KBUILD_MODNAME, ishtp); > if (ret) { > dev_err(dev, "ISH: request IRQ %d failed\n", pdev->irq); > return ret; > -- > 2.7.4 > -- Jiri Kosina SUSE Labs