[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200913025006.GQ3715@yoga>
Date: Sat, 12 Sep 2020 21:50:06 -0500
From: Bjorn Andersson <bjorn.andersson@...aro.org>
To: Alex Elder <elder@...aro.org>
Cc: davem@...emloft.net, kuba@...nel.org, evgreen@...omium.org,
subashab@...eaurora.org, cpratapa@...eaurora.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next v2 7/7] net: ipa: do not enable GSI interrupt
for wakeup
On Fri 11 Sep 19:45 CDT 2020, Alex Elder wrote:
> We now trigger a system resume when we receive an IPA SUSPEND
> interrupt. We should *not* wake up on GSI interrupts.
>
Reviewed-by: Bjorn Andersson <bjorn.andersson@...aro.org>
> Signed-off-by: Alex Elder <elder@...aro.org>
> ---
> drivers/net/ipa/gsi.c | 17 ++++-------------
> drivers/net/ipa/gsi.h | 1 -
> 2 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
> index 0e63d35320aaf..cb75f7d540571 100644
> --- a/drivers/net/ipa/gsi.c
> +++ b/drivers/net/ipa/gsi.c
> @@ -1987,31 +1987,26 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, bool prefetch,
> }
> gsi->irq = irq;
>
> - ret = enable_irq_wake(gsi->irq);
> - if (ret)
> - dev_warn(dev, "error %d enabling gsi wake irq\n", ret);
> - gsi->irq_wake_enabled = !ret;
> -
> /* Get GSI memory range and map it */
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gsi");
> if (!res) {
> dev_err(dev, "DT error getting \"gsi\" memory property\n");
> ret = -ENODEV;
> - goto err_disable_irq_wake;
> + goto err_free_irq;
> }
>
> size = resource_size(res);
> if (res->start > U32_MAX || size > U32_MAX - res->start) {
> dev_err(dev, "DT memory resource \"gsi\" out of range\n");
> ret = -EINVAL;
> - goto err_disable_irq_wake;
> + goto err_free_irq;
> }
>
> gsi->virt = ioremap(res->start, size);
> if (!gsi->virt) {
> dev_err(dev, "unable to remap \"gsi\" memory\n");
> ret = -ENOMEM;
> - goto err_disable_irq_wake;
> + goto err_free_irq;
> }
>
> ret = gsi_channel_init(gsi, prefetch, count, data, modem_alloc);
> @@ -2025,9 +2020,7 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, bool prefetch,
>
> err_iounmap:
> iounmap(gsi->virt);
> -err_disable_irq_wake:
> - if (gsi->irq_wake_enabled)
> - (void)disable_irq_wake(gsi->irq);
> +err_free_irq:
> free_irq(gsi->irq, gsi);
>
> return ret;
> @@ -2038,8 +2031,6 @@ void gsi_exit(struct gsi *gsi)
> {
> mutex_destroy(&gsi->mutex);
> gsi_channel_exit(gsi);
> - if (gsi->irq_wake_enabled)
> - (void)disable_irq_wake(gsi->irq);
> free_irq(gsi->irq, gsi);
> iounmap(gsi->virt);
> }
> diff --git a/drivers/net/ipa/gsi.h b/drivers/net/ipa/gsi.h
> index 061312773df09..3f9f29d531c43 100644
> --- a/drivers/net/ipa/gsi.h
> +++ b/drivers/net/ipa/gsi.h
> @@ -150,7 +150,6 @@ struct gsi {
> struct net_device dummy_dev; /* needed for NAPI */
> void __iomem *virt;
> u32 irq;
> - bool irq_wake_enabled;
> u32 channel_count;
> u32 evt_ring_count;
> struct gsi_channel channel[GSI_CHANNEL_COUNT_MAX];
> --
> 2.20.1
>
Powered by blists - more mailing lists