net: ipa: don't save the platform device
authorAlex Elder <elder@linaro.org>
Fri, 1 Mar 2024 17:02:42 +0000 (11:02 -0600)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Mar 2024 11:44:41 +0000 (11:44 +0000)
The IPA platform device is now only used as the structure containing
the IPA device structure.  Replace the platform device pointer with
a pointer to the device structure.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
drivers/net/ipa/ipa.h
drivers/net/ipa/ipa_cmd.c
drivers/net/ipa/ipa_endpoint.c
drivers/net/ipa/ipa_interrupt.c
drivers/net/ipa/ipa_main.c
drivers/net/ipa/ipa_mem.c
drivers/net/ipa/ipa_modem.c
drivers/net/ipa/ipa_power.c
drivers/net/ipa/ipa_qmi.c
drivers/net/ipa/ipa_smp2p.c
drivers/net/ipa/ipa_table.c
drivers/net/ipa/ipa_uc.c

index f3355e040a9e114bc88d6e5b632d0d9c3b77aafa..334cd62cf28662cd8c1db65e104ee25177714546 100644 (file)
@@ -21,7 +21,6 @@
 struct clk;
 struct icc_path;
 struct net_device;
-struct platform_device;
 
 struct ipa_power;
 struct ipa_smp2p;
@@ -31,7 +30,7 @@ struct ipa_interrupt;
  * struct ipa - IPA information
  * @gsi:               Embedded GSI structure
  * @version:           IPA hardware version
- * @pdev:              Platform device
+ * @dev:               IPA device pointer
  * @completion:                Used to signal pipeline clear transfer complete
  * @nb:                        Notifier block used for remoteproc SSR
  * @notifier:          Remoteproc SSR notifier
@@ -79,7 +78,7 @@ struct ipa_interrupt;
 struct ipa {
        struct gsi gsi;
        enum ipa_version version;
-       struct platform_device *pdev;
+       struct device *dev;
        struct completion completion;
        struct notifier_block nb;
        void *notifier;
index f1419fbd776c3200b3105cd75c3abc73d4386026..39219963dbb3f9daa0e8bc2bae6b86b52dc4f9a2 100644 (file)
@@ -174,7 +174,7 @@ bool ipa_cmd_table_init_valid(struct ipa *ipa, const struct ipa_mem *mem,
        u32 offset_max = field_max(IP_FLTRT_FLAGS_NHASH_ADDR_FMASK);
        u32 size_max = field_max(IP_FLTRT_FLAGS_NHASH_SIZE_FMASK);
        const char *table = route ? "route" : "filter";
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        u32 size;
 
        size = route ? ipa->route_count : ipa->filter_count + 1;
@@ -204,7 +204,7 @@ bool ipa_cmd_table_init_valid(struct ipa *ipa, const struct ipa_mem *mem,
 /* Validate the memory region that holds headers */
 static bool ipa_cmd_header_init_local_valid(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        const struct ipa_mem *mem;
        u32 offset_max;
        u32 size_max;
@@ -256,7 +256,7 @@ static bool ipa_cmd_register_write_offset_valid(struct ipa *ipa,
                                                const char *name, u32 offset)
 {
        struct ipa_cmd_register_write *payload;
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        u32 offset_max;
        u32 bit_count;
 
index afa1d56d9095c13fe65a09f76fbc99679d9d8624..dd490941615e2ffdd8eefd450357711dcc2c097b 100644 (file)
@@ -233,8 +233,8 @@ static bool ipa_endpoint_data_valid_one(struct ipa *ipa, u32 count,
                            const struct ipa_gsi_endpoint_data *data)
 {
        const struct ipa_gsi_endpoint_data *other_data;
-       struct device *dev = &ipa->pdev->dev;
        enum ipa_endpoint_name other_name;
+       struct device *dev = ipa->dev;
 
        if (ipa_gsi_endpoint_data_empty(data))
                return true;
@@ -388,7 +388,7 @@ static u32 ipa_endpoint_max(struct ipa *ipa, u32 count,
                            const struct ipa_gsi_endpoint_data *data)
 {
        const struct ipa_gsi_endpoint_data *dp = data;
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        enum ipa_endpoint_name name;
        u32 max;
 
@@ -606,7 +606,7 @@ int ipa_endpoint_modem_exception_reset_all(struct ipa *ipa)
        count = ipa->modem_tx_count + ipa_cmd_pipeline_clear_count();
        trans = ipa_cmd_trans_alloc(ipa, count);
        if (!trans) {
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "no transaction to reset modem exception endpoints\n");
                return -EBUSY;
        }
@@ -1498,8 +1498,7 @@ ipa_endpoint_status_tag_valid(struct ipa_endpoint *endpoint, const void *data)
        if (endpoint_id == command_endpoint->endpoint_id) {
                complete(&ipa->completion);
        } else {
-               dev_err(&ipa->pdev->dev,
-                       "unexpected tagged packet from endpoint %u\n",
+               dev_err(ipa->dev, "unexpected tagged packet from endpoint %u\n",
                        endpoint_id);
        }
 
@@ -1536,6 +1535,7 @@ static void ipa_endpoint_status_parse(struct ipa_endpoint *endpoint,
        void *data = page_address(page) + NET_SKB_PAD;
        u32 unused = buffer_size - total_len;
        struct ipa *ipa = endpoint->ipa;
+       struct device *dev = ipa->dev;
        u32 resid = total_len;
 
        while (resid) {
@@ -1544,7 +1544,7 @@ static void ipa_endpoint_status_parse(struct ipa_endpoint *endpoint,
                u32 len;
 
                if (resid < IPA_STATUS_SIZE) {
-                       dev_err(&endpoint->ipa->pdev->dev,
+                       dev_err(dev,
                                "short message (%u bytes < %zu byte status)\n",
                                resid, IPA_STATUS_SIZE);
                        break;
@@ -1666,8 +1666,8 @@ void ipa_endpoint_default_route_clear(struct ipa *ipa)
  */
 static int ipa_endpoint_reset_rx_aggr(struct ipa_endpoint *endpoint)
 {
-       struct device *dev = &endpoint->ipa->pdev->dev;
        struct ipa *ipa = endpoint->ipa;
+       struct device *dev = ipa->dev;
        struct gsi *gsi = &ipa->gsi;
        bool suspended = false;
        dma_addr_t addr;
@@ -1769,7 +1769,7 @@ static void ipa_endpoint_reset(struct ipa_endpoint *endpoint)
                gsi_channel_reset(&ipa->gsi, channel_id, true);
 
        if (ret)
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "error %d resetting channel %u for endpoint %u\n",
                        ret, endpoint->channel_id, endpoint->endpoint_id);
 }
@@ -1817,7 +1817,7 @@ int ipa_endpoint_enable_one(struct ipa_endpoint *endpoint)
 
        ret = gsi_channel_start(gsi, endpoint->channel_id);
        if (ret) {
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "error %d starting %cX channel %u for endpoint %u\n",
                        ret, endpoint->toward_ipa ? 'T' : 'R',
                        endpoint->channel_id, endpoint_id);
@@ -1854,14 +1854,13 @@ void ipa_endpoint_disable_one(struct ipa_endpoint *endpoint)
        /* Note that if stop fails, the channel's state is not well-defined */
        ret = gsi_channel_stop(gsi, endpoint->channel_id);
        if (ret)
-               dev_err(&ipa->pdev->dev,
-                       "error %d attempting to stop endpoint %u\n", ret,
-                       endpoint_id);
+               dev_err(ipa->dev, "error %d attempting to stop endpoint %u\n",
+                       ret, endpoint_id);
 }
 
 void ipa_endpoint_suspend_one(struct ipa_endpoint *endpoint)
 {
-       struct device *dev = &endpoint->ipa->pdev->dev;
+       struct device *dev = endpoint->ipa->dev;
        struct gsi *gsi = &endpoint->ipa->gsi;
        int ret;
 
@@ -1881,7 +1880,7 @@ void ipa_endpoint_suspend_one(struct ipa_endpoint *endpoint)
 
 void ipa_endpoint_resume_one(struct ipa_endpoint *endpoint)
 {
-       struct device *dev = &endpoint->ipa->pdev->dev;
+       struct device *dev = endpoint->ipa->dev;
        struct gsi *gsi = &endpoint->ipa->gsi;
        int ret;
 
@@ -1983,7 +1982,7 @@ void ipa_endpoint_deconfig(struct ipa *ipa)
 
 int ipa_endpoint_config(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        const struct reg *reg;
        u32 endpoint_id;
        u32 hw_limit;
index 7399724160a89951abe294f16324771979132238..c3e8784d51d913eb0eb754a026984804449720ab 100644 (file)
@@ -110,14 +110,13 @@ static irqreturn_t ipa_isr_thread(int irq, void *dev_id)
        struct ipa_interrupt *interrupt = dev_id;
        struct ipa *ipa = interrupt->ipa;
        u32 enabled = interrupt->enabled;
+       struct device *dev = ipa->dev;
        const struct reg *reg;
-       struct device *dev;
        u32 pending;
        u32 offset;
        u32 mask;
        int ret;
 
-       dev = &ipa->pdev->dev;
        ret = pm_runtime_get_sync(dev);
        if (WARN_ON(ret < 0))
                goto out_power_put;
@@ -240,8 +239,8 @@ void ipa_interrupt_simulate_suspend(struct ipa_interrupt *interrupt)
 int ipa_interrupt_config(struct ipa *ipa)
 {
        struct ipa_interrupt *interrupt = ipa->interrupt;
-       struct device *dev = &ipa->pdev->dev;
        unsigned int irq = interrupt->irq;
+       struct device *dev = ipa->dev;
        const struct reg *reg;
        int ret;
 
@@ -281,7 +280,7 @@ err_kfree:
 void ipa_interrupt_deconfig(struct ipa *ipa)
 {
        struct ipa_interrupt *interrupt = ipa->interrupt;
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        ipa->interrupt = NULL;
 
index 3125aec88e6e1ca082680dee239f14ae4a5c9f9e..57b241417e8cd255d8582ed3c1d1fbe34fb5d7f1 100644 (file)
@@ -7,7 +7,6 @@
 #include <linux/types.h>
 #include <linux/atomic.h>
 #include <linux/bitfield.h>
-#include <linux/device.h>
 #include <linux/bug.h>
 #include <linux/io.h>
 #include <linux/firmware.h>
@@ -114,7 +113,7 @@ int ipa_setup(struct ipa *ipa)
 {
        struct ipa_endpoint *exception_endpoint;
        struct ipa_endpoint *command_endpoint;
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        int ret;
 
        ret = gsi_setup(&ipa->gsi);
@@ -858,7 +857,7 @@ static int ipa_probe(struct platform_device *pdev)
                goto err_power_exit;
        }
 
-       ipa->pdev = pdev;
+       ipa->dev = dev;
        dev_set_drvdata(dev, ipa);
        ipa->interrupt = interrupt;
        ipa->power = power;
@@ -953,12 +952,16 @@ err_interrupt_exit:
 
 static void ipa_remove(struct platform_device *pdev)
 {
-       struct ipa *ipa = dev_get_drvdata(&pdev->dev);
-       struct device *dev = &pdev->dev;
        struct ipa_interrupt *interrupt;
        struct ipa_power *power;
+       struct device *dev;
+       struct ipa *ipa;
        int ret;
 
+       ipa = dev_get_drvdata(&pdev->dev);
+       dev = ipa->dev;
+       WARN_ON(dev != &pdev->dev);
+
        power = ipa->power;
        interrupt = ipa->interrupt;
 
index d7df7d340221da24bed58991e30ceabf1a5b4fe8..709f061ede6170cc1e8e0d0fd9204331c0b41eb6 100644 (file)
@@ -88,7 +88,7 @@ int ipa_mem_setup(struct ipa *ipa)
         */
        trans = ipa_cmd_trans_alloc(ipa, 4);
        if (!trans) {
-               dev_err(&ipa->pdev->dev, "no transaction for memory setup\n");
+               dev_err(ipa->dev, "no transaction for memory setup\n");
                return -EBUSY;
        }
 
@@ -218,8 +218,8 @@ static bool ipa_mem_id_required(struct ipa *ipa, enum ipa_mem_id mem_id)
 
 static bool ipa_mem_valid_one(struct ipa *ipa, const struct ipa_mem *mem)
 {
-       struct device *dev = &ipa->pdev->dev;
        enum ipa_mem_id mem_id = mem->id;
+       struct device *dev = ipa->dev;
        u16 size_multiple;
 
        /* Make sure the memory region is valid for this version of IPA */
@@ -255,7 +255,7 @@ static bool ipa_mem_valid_one(struct ipa *ipa, const struct ipa_mem *mem)
 static bool ipa_mem_valid(struct ipa *ipa, const struct ipa_mem_data *mem_data)
 {
        DECLARE_BITMAP(regions, IPA_MEM_COUNT) = { };
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        enum ipa_mem_id mem_id;
        u32 i;
 
@@ -291,7 +291,7 @@ static bool ipa_mem_valid(struct ipa *ipa, const struct ipa_mem_data *mem_data)
 /* Do all memory regions fit within the IPA local memory? */
 static bool ipa_mem_size_valid(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        u32 limit = ipa->mem_size;
        u32 i;
 
@@ -318,7 +318,7 @@ static bool ipa_mem_size_valid(struct ipa *ipa)
  */
 int ipa_mem_config(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        const struct ipa_mem *mem;
        const struct reg *reg;
        dma_addr_t addr;
@@ -394,7 +394,7 @@ err_dma_free:
 /* Inverse of ipa_mem_config() */
 void ipa_mem_deconfig(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        dma_free_coherent(dev, ipa->zero_size, ipa->zero_virt, ipa->zero_addr);
        ipa->zero_size = 0;
@@ -421,8 +421,7 @@ int ipa_mem_zero_modem(struct ipa *ipa)
         */
        trans = ipa_cmd_trans_alloc(ipa, 3);
        if (!trans) {
-               dev_err(&ipa->pdev->dev,
-                       "no transaction to zero modem memory\n");
+               dev_err(ipa->dev, "no transaction to zero modem memory\n");
                return -EBUSY;
        }
 
@@ -453,7 +452,7 @@ int ipa_mem_zero_modem(struct ipa *ipa)
  */
 static int ipa_imem_init(struct ipa *ipa, unsigned long addr, size_t size)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        struct iommu_domain *domain;
        unsigned long iova;
        phys_addr_t phys;
@@ -486,13 +485,12 @@ static int ipa_imem_init(struct ipa *ipa, unsigned long addr, size_t size)
 
 static void ipa_imem_exit(struct ipa *ipa)
 {
+       struct device *dev = ipa->dev;
        struct iommu_domain *domain;
-       struct device *dev;
 
        if (!ipa->imem_size)
                return;
 
-       dev = &ipa->pdev->dev;
        domain = iommu_get_domain_for_dev(dev);
        if (domain) {
                size_t size;
@@ -528,7 +526,7 @@ static void ipa_imem_exit(struct ipa *ipa)
  */
 static int ipa_smem_init(struct ipa *ipa, u32 item, size_t size)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        struct iommu_domain *domain;
        unsigned long iova;
        phys_addr_t phys;
@@ -595,7 +593,7 @@ static int ipa_smem_init(struct ipa *ipa, u32 item, size_t size)
 
 static void ipa_smem_exit(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        struct iommu_domain *domain;
 
        domain = iommu_get_domain_for_dev(dev);
index 1d1be92fbebcbd214575da4c805f64a05e196ba3..c27ca3f27f7d4642337ae3c50deb787e6caef94a 100644 (file)
@@ -58,7 +58,7 @@ static int ipa_open(struct net_device *netdev)
        struct device *dev;
        int ret;
 
-       dev = &ipa->pdev->dev;
+       dev = ipa->dev;
        ret = pm_runtime_get_sync(dev);
        if (ret < 0)
                goto err_power_put;
@@ -94,7 +94,7 @@ static int ipa_stop(struct net_device *netdev)
        struct device *dev;
        int ret;
 
-       dev = &ipa->pdev->dev;
+       dev = ipa->dev;
        ret = pm_runtime_get_sync(dev);
        if (ret < 0)
                goto out_power_put;
@@ -158,7 +158,7 @@ ipa_start_xmit(struct sk_buff *skb, struct net_device *netdev)
         */
        netif_stop_queue(netdev);
 
-       dev = &ipa->pdev->dev;
+       dev = ipa->dev;
        ret = pm_runtime_get(dev);
        if (ret < 1) {
                /* If a resume won't happen, just drop the packet */
@@ -322,7 +322,7 @@ int ipa_modem_start(struct ipa *ipa)
                goto out_set_state;
        }
 
-       SET_NETDEV_DEV(netdev, &ipa->pdev->dev);
+       SET_NETDEV_DEV(netdev, ipa->dev);
        priv = netdev_priv(netdev);
        priv->ipa = ipa;
        priv->tx = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX];
@@ -396,7 +396,7 @@ int ipa_modem_stop(struct ipa *ipa)
 /* Treat a "clean" modem stop the same as a crash */
 static void ipa_modem_crashed(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        int ret;
 
        /* Prevent the modem from triggering a call to ipa_setup() */
@@ -443,7 +443,7 @@ static int ipa_modem_notify(struct notifier_block *nb, unsigned long action,
 {
        struct ipa *ipa = container_of(nb, struct ipa, nb);
        struct qcom_ssr_notify_data *notify_data = data;
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        switch (action) {
        case QCOM_SSR_BEFORE_POWERUP:
@@ -492,7 +492,7 @@ int ipa_modem_config(struct ipa *ipa)
 
 void ipa_modem_deconfig(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        int ret;
 
        ret = qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb);
index 0f635b8356bfb7cd34f5f433ee3e2b36ff905a9b..41ca7ef5e20fc041b85f18abb95b06f8add9a839 100644 (file)
@@ -238,7 +238,7 @@ int ipa_power_setup(struct ipa *ipa)
 
        ipa_interrupt_enable(ipa, IPA_IRQ_TX_SUSPEND);
 
-       ret = device_init_wakeup(&ipa->pdev->dev, true);
+       ret = device_init_wakeup(ipa->dev, true);
        if (ret)
                ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND);
 
@@ -247,7 +247,7 @@ int ipa_power_setup(struct ipa *ipa)
 
 void ipa_power_teardown(struct ipa *ipa)
 {
-       (void)device_init_wakeup(&ipa->pdev->dev, false);
+       (void)device_init_wakeup(ipa->dev, false);
        ipa_interrupt_disable(ipa, IPA_IRQ_TX_SUSPEND);
 }
 
index f70f0a1d1cdacc942385efb1279ed73f40440571..65c40e207802a9e12f34267b27d7a10980160cf4 100644 (file)
@@ -96,7 +96,7 @@ static void ipa_server_init_complete(struct ipa_qmi *ipa_qmi)
                                   IPA_QMI_INIT_COMPLETE_IND_SZ,
                                   ipa_init_complete_ind_ei, &ind);
        if (ret)
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "error %d sending init complete indication\n", ret);
        else
                ipa_qmi->indication_sent = true;
@@ -148,7 +148,7 @@ static void ipa_qmi_ready(struct ipa_qmi *ipa_qmi)
        ipa = container_of(ipa_qmi, struct ipa, qmi);
        ret = ipa_modem_start(ipa);
        if (ret)
-               dev_err(&ipa->pdev->dev, "error %d starting modem\n", ret);
+               dev_err(ipa->dev, "error %d starting modem\n", ret);
 }
 
 /* All QMI clients from the modem node are gone (modem shut down or crashed). */
@@ -199,7 +199,7 @@ static void ipa_server_indication_register(struct qmi_handle *qmi,
                ipa_qmi->indication_requested = true;
                ipa_qmi_ready(ipa_qmi);         /* We might be ready now */
        } else {
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "error %d sending register indication response\n", ret);
        }
 }
@@ -228,7 +228,7 @@ static void ipa_server_driver_init_complete(struct qmi_handle *qmi,
                ipa_qmi->uc_ready = true;
                ipa_qmi_ready(ipa_qmi);         /* We might be ready now */
        } else {
-               dev_err(&ipa->pdev->dev,
+               dev_err(ipa->dev,
                        "error %d sending init complete response\n", ret);
        }
 }
@@ -417,7 +417,7 @@ static void ipa_client_init_driver_work(struct work_struct *work)
        qmi = &ipa_qmi->client_handle;
 
        ipa = container_of(ipa_qmi, struct ipa, qmi);
-       dev = &ipa->pdev->dev;
+       dev = ipa->dev;
 
        ret = qmi_txn_init(qmi, &txn, NULL, NULL);
        if (ret < 0) {
index 831268551d9a7f26c5e332888b1d9422ad3a4abe..aeccce9fab7272ac4a292a70e3aa11723f4d1ab2 100644 (file)
@@ -84,15 +84,13 @@ struct ipa_smp2p {
  */
 static void ipa_smp2p_notify(struct ipa_smp2p *smp2p)
 {
-       struct device *dev;
        u32 value;
        u32 mask;
 
        if (smp2p->notified)
                return;
 
-       dev = &smp2p->ipa->pdev->dev;
-       smp2p->power_on = pm_runtime_get_if_active(dev, true) > 0;
+       smp2p->power_on = pm_runtime_get_if_active(smp2p->ipa->dev, true) > 0;
 
        /* Signal whether the IPA power is enabled */
        mask = BIT(smp2p->enabled_bit);
@@ -152,15 +150,16 @@ static void ipa_smp2p_panic_notifier_unregister(struct ipa_smp2p *smp2p)
 static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int irq, void *dev_id)
 {
        struct ipa_smp2p *smp2p = dev_id;
+       struct ipa *ipa = smp2p->ipa;
        struct device *dev;
        int ret;
 
        /* Ignore any (spurious) interrupts received after the first */
-       if (smp2p->ipa->setup_complete)
+       if (ipa->setup_complete)
                return IRQ_HANDLED;
 
        /* Power needs to be active for setup */
-       dev = &smp2p->ipa->pdev->dev;
+       dev = ipa->dev;
        ret = pm_runtime_get_sync(dev);
        if (ret < 0) {
                dev_err(dev, "error %d getting power for setup\n", ret);
@@ -168,7 +167,7 @@ static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int irq, void *dev_id)
        }
 
        /* An error here won't cause driver shutdown, so warn if one occurs */
-       ret = ipa_setup(smp2p->ipa);
+       ret = ipa_setup(ipa);
        WARN(ret != 0, "error %d from ipa_setup()\n", ret);
 
 out_power_put:
@@ -209,7 +208,7 @@ static void ipa_smp2p_irq_exit(struct ipa_smp2p *smp2p, u32 irq)
 /* Drop the power reference if it was taken in ipa_smp2p_notify() */
 static void ipa_smp2p_power_release(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        if (!ipa->smp2p->power_on)
                return;
index 7b637bb8b41c87f1c656618f793923fb2a42b7f7..a24ac11b8893d534b6f8c8792fb3f5aff04c5ef8 100644 (file)
@@ -163,7 +163,7 @@ ipa_table_mem(struct ipa *ipa, bool filter, bool hashed, bool ipv6)
 
 bool ipa_filtered_valid(struct ipa *ipa, u64 filtered)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        u32 count;
 
        if (!filtered) {
@@ -236,8 +236,7 @@ ipa_filter_reset_table(struct ipa *ipa, bool hashed, bool ipv6, bool modem)
 
        trans = ipa_cmd_trans_alloc(ipa, hweight64(ep_mask));
        if (!trans) {
-               dev_err(&ipa->pdev->dev,
-                       "no transaction for %s filter reset\n",
+               dev_err(ipa->dev, "no transaction for %s filter reset\n",
                        modem ? "modem" : "AP");
                return -EBUSY;
        }
@@ -298,8 +297,7 @@ static int ipa_route_reset(struct ipa *ipa, bool modem)
 
        trans = ipa_cmd_trans_alloc(ipa, hash_support ? 4 : 2);
        if (!trans) {
-               dev_err(&ipa->pdev->dev,
-                       "no transaction for %s route reset\n",
+               dev_err(ipa->dev, "no transaction for %s route reset\n",
                        modem ? "modem" : "AP");
                return -EBUSY;
        }
@@ -327,7 +325,7 @@ static int ipa_route_reset(struct ipa *ipa, bool modem)
 
 void ipa_table_reset(struct ipa *ipa, bool modem)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        const char *ee_name;
        int ret;
 
@@ -356,7 +354,7 @@ int ipa_table_hash_flush(struct ipa *ipa)
 
        trans = ipa_cmd_trans_alloc(ipa, 1);
        if (!trans) {
-               dev_err(&ipa->pdev->dev, "no transaction for hash flush\n");
+               dev_err(ipa->dev, "no transaction for hash flush\n");
                return -EBUSY;
        }
 
@@ -469,7 +467,7 @@ int ipa_table_setup(struct ipa *ipa)
         */
        trans = ipa_cmd_trans_alloc(ipa, 8);
        if (!trans) {
-               dev_err(&ipa->pdev->dev, "no transaction for table setup\n");
+               dev_err(ipa->dev, "no transaction for table setup\n");
                return -EBUSY;
        }
 
@@ -713,7 +711,7 @@ bool ipa_table_mem_valid(struct ipa *ipa, bool filter)
  */
 int ipa_table_init(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        dma_addr_t addr;
        __le64 le_addr;
        __le64 *virt;
@@ -763,7 +761,7 @@ int ipa_table_init(struct ipa *ipa)
 void ipa_table_exit(struct ipa *ipa)
 {
        u32 count = max_t(u32, 1 + ipa->filter_count, ipa->route_count);
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
        size_t size;
 
        size = IPA_ZERO_RULE_SIZE + (1 + count) * sizeof(__le64);
index 7eaa0b4ebed92875c37be43988c02bb57fd76d3e..bfd5dc6dab432bb3ec6045bbe27efff7450fadf8 100644 (file)
@@ -127,7 +127,7 @@ static struct ipa_uc_mem_area *ipa_uc_shared(struct ipa *ipa)
 static void ipa_uc_event_handler(struct ipa *ipa)
 {
        struct ipa_uc_mem_area *shared = ipa_uc_shared(ipa);
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        if (shared->event == IPA_UC_EVENT_ERROR)
                dev_err(dev, "microcontroller error event\n");
@@ -141,7 +141,7 @@ static void ipa_uc_event_handler(struct ipa *ipa)
 static void ipa_uc_response_hdlr(struct ipa *ipa)
 {
        struct ipa_uc_mem_area *shared = ipa_uc_shared(ipa);
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        /* An INIT_COMPLETED response message is sent to the AP by the
         * microcontroller when it is operational.  Other than this, the AP
@@ -191,7 +191,7 @@ void ipa_uc_config(struct ipa *ipa)
 /* Inverse of ipa_uc_config() */
 void ipa_uc_deconfig(struct ipa *ipa)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = ipa->dev;
 
        ipa_interrupt_disable(ipa, IPA_IRQ_UC_1);
        ipa_interrupt_disable(ipa, IPA_IRQ_UC_0);
@@ -208,8 +208,8 @@ void ipa_uc_deconfig(struct ipa *ipa)
 /* Take a proxy power reference for the microcontroller */
 void ipa_uc_power(struct ipa *ipa)
 {
+       struct device *dev = ipa->dev;
        static bool already;
-       struct device *dev;
        int ret;
 
        if (already)
@@ -217,7 +217,6 @@ void ipa_uc_power(struct ipa *ipa)
        already = true;         /* Only do this on first boot */
 
        /* This power reference dropped in ipa_uc_response_hdlr() above */
-       dev = &ipa->pdev->dev;
        ret = pm_runtime_get_sync(dev);
        if (ret < 0) {
                pm_runtime_put_noidle(dev);