Re: [PATCH] hid:intel-ish-hid: add MSI interrupt support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux