lkml.org 
[lkml]   [2022]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next 5/6] net: ipa: kill ipa_interrupt_add()
    Date
    The dynamic assignment of IPA interrupt handlers isn't needed; we
    only handle three IPA interrupt types, and their handler functions
    are now assigned directly. We can get rid of ipa_interrupt_add()
    and ipa_interrupt_remove() now, because they serve no purpose.

    Signed-off-by: Alex Elder <elder@linaro.org>
    ---
    drivers/net/ipa/ipa_interrupt.c | 16 ++--------------
    drivers/net/ipa/ipa_interrupt.h | 33 ---------------------------------
    drivers/net/ipa/ipa_power.c | 7 +------
    drivers/net/ipa/ipa_uc.c | 6 ------
    4 files changed, 3 insertions(+), 59 deletions(-)

    diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c
    index f32ac40a79372..f0a68b0a242c1 100644
    --- a/drivers/net/ipa/ipa_interrupt.c
    +++ b/drivers/net/ipa/ipa_interrupt.c
    @@ -30,6 +30,8 @@
    #include "ipa_uc.h"
    #include "ipa_interrupt.h"

    +typedef void (*ipa_irq_handler_t)(struct ipa *ipa, enum ipa_irq_id irq_id);
    +
    /**
    * struct ipa_interrupt - IPA interrupt information
    * @ipa: IPA pointer
    @@ -226,20 +228,6 @@ void ipa_interrupt_simulate_suspend(struct ipa_interrupt *interrupt)
    ipa_interrupt_process(interrupt, IPA_IRQ_TX_SUSPEND);
    }

    -/* Add a handler for an IPA interrupt */
    -void ipa_interrupt_add(struct ipa_interrupt *interrupt,
    - enum ipa_irq_id ipa_irq, ipa_irq_handler_t handler)
    -{
    - WARN_ON(ipa_irq >= IPA_IRQ_COUNT);
    -}
    -
    -/* Remove the handler for an IPA interrupt type */
    -void
    -ipa_interrupt_remove(struct ipa_interrupt *interrupt, enum ipa_irq_id ipa_irq)
    -{
    - WARN_ON(ipa_irq >= IPA_IRQ_COUNT);
    -}
    -
    /* Configure the IPA interrupt framework */
    struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa)
    {
    diff --git a/drivers/net/ipa/ipa_interrupt.h b/drivers/net/ipa/ipa_interrupt.h
    index 5f7d2e90ea337..c1df054be8fab 100644
    --- a/drivers/net/ipa/ipa_interrupt.h
    +++ b/drivers/net/ipa/ipa_interrupt.h
    @@ -12,39 +12,6 @@
    struct ipa;
    struct ipa_interrupt;

    -/**
    - * typedef ipa_irq_handler_t - IPA interrupt handler function type
    - * @ipa: IPA pointer
    - * @irq_id: interrupt type
    - *
    - * Callback function registered by ipa_interrupt_add() to handle a specific
    - * IPA interrupt type
    - */
    -typedef void (*ipa_irq_handler_t)(struct ipa *ipa, enum ipa_irq_id irq_id);
    -
    -/**
    - * ipa_interrupt_add() - Register a handler for an IPA interrupt type
    - * @interrupt: IPA interrupt structure
    - * @irq_id: IPA interrupt type
    - * @handler: Handler function for the interrupt
    - *
    - * Add a handler for an IPA interrupt and enable it. IPA interrupt
    - * handlers are run in threaded interrupt context, so are allowed to
    - * block.
    - */
    -void ipa_interrupt_add(struct ipa_interrupt *interrupt, enum ipa_irq_id irq_id,
    - ipa_irq_handler_t handler);
    -
    -/**
    - * ipa_interrupt_remove() - Remove the handler for an IPA interrupt type
    - * @interrupt: IPA interrupt structure
    - * @irq_id: IPA interrupt type
    - *
    - * Remove an IPA interrupt handler and disable it.
    - */
    -void ipa_interrupt_remove(struct ipa_interrupt *interrupt,
    - enum ipa_irq_id irq_id);
    -
    /**
    * ipa_interrupt_suspend_enable - Enable TX_SUSPEND for an endpoint
    * @interrupt: IPA interrupt structure
    diff --git a/drivers/net/ipa/ipa_power.c b/drivers/net/ipa/ipa_power.c
    index 4198f8e97e40b..a282512ebd2d8 100644
    --- a/drivers/net/ipa/ipa_power.c
    +++ b/drivers/net/ipa/ipa_power.c
    @@ -325,15 +325,11 @@ int ipa_power_setup(struct ipa *ipa)
    {
    int ret;

    - ipa_interrupt_add(ipa->interrupt, IPA_IRQ_TX_SUSPEND,
    - ipa_power_suspend_handler);
    ipa_interrupt_enable(ipa, IPA_IRQ_TX_SUSPEND);

    ret = device_init_wakeup(&ipa->pdev->dev, true);
    - if (ret) {
    + if (ret)
    ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND);
    - ipa_interrupt_remove(ipa->interrupt, IPA_IRQ_TX_SUSPEND);
    - }

    return ret;
    }
    @@ -342,7 +338,6 @@ void ipa_power_teardown(struct ipa *ipa)
    {
    (void)device_init_wakeup(&ipa->pdev->dev, false);
    ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND);
    - ipa_interrupt_remove(ipa->interrupt, IPA_IRQ_TX_SUSPEND);
    }

    /* Initialize IPA power management */
    diff --git a/drivers/net/ipa/ipa_uc.c b/drivers/net/ipa/ipa_uc.c
    index 6b7d289cfaffa..cb8a76a75f21d 100644
    --- a/drivers/net/ipa/ipa_uc.c
    +++ b/drivers/net/ipa/ipa_uc.c
    @@ -182,13 +182,9 @@ void ipa_uc_interrupt_handler(struct ipa *ipa, enum ipa_irq_id irq_id)
    /* Configure the IPA microcontroller subsystem */
    void ipa_uc_config(struct ipa *ipa)
    {
    - struct ipa_interrupt *interrupt = ipa->interrupt;
    -
    ipa->uc_powered = false;
    ipa->uc_loaded = false;
    - ipa_interrupt_add(interrupt, IPA_IRQ_UC_0, ipa_uc_interrupt_handler);
    ipa_interrupt_enable(ipa, IPA_IRQ_UC_0);
    - ipa_interrupt_add(interrupt, IPA_IRQ_UC_1, ipa_uc_interrupt_handler);
    ipa_interrupt_enable(ipa, IPA_IRQ_UC_1);
    }

    @@ -198,9 +194,7 @@ void ipa_uc_deconfig(struct ipa *ipa)
    struct device *dev = &ipa->pdev->dev;

    ipa_interrupt_disable(ipa, IPA_IRQ_UC_1);
    - ipa_interrupt_remove(ipa->interrupt, IPA_IRQ_UC_1);
    ipa_interrupt_disable(ipa, IPA_IRQ_UC_0);
    - ipa_interrupt_remove(ipa->interrupt, IPA_IRQ_UC_0);
    if (ipa->uc_loaded)
    ipa_power_retention(ipa, false);

    --
    2.34.1
    \
     
     \ /
      Last update: 2023-03-26 23:23    [W:5.423 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site