net: ipa: get rid of empty IPA functions
authorAlex Elder <elder@linaro.org>
Fri, 9 Apr 2021 18:07:20 +0000 (13:07 -0500)
committerJakub Kicinski <kuba@kernel.org>
Sat, 10 Apr 2021 03:57:25 +0000 (20:57 -0700)
There are place holder functions in the IPA code that do nothing.
For the most part these are inverse functions, for example, once the
routing or filter tables are set up there is no need to perform any
matching teardown activity at shutdown, or in the case of an error.

These can be safely removed, resulting in some code simplification.
Add comments in these spots making it explicit that there is no
inverse.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/ipa_main.c
drivers/net/ipa/ipa_mem.c
drivers/net/ipa/ipa_mem.h
drivers/net/ipa/ipa_resource.c
drivers/net/ipa/ipa_resource.h
drivers/net/ipa/ipa_table.c
drivers/net/ipa/ipa_table.h

index a970d10e650ef19d57b760f1c732acccf02be593..bfed151f5d6dc767f341dda465cd9827d4fdf095 100644 (file)
@@ -147,13 +147,13 @@ int ipa_setup(struct ipa *ipa)
        if (ret)
                goto err_endpoint_teardown;
 
-       ret = ipa_mem_setup(ipa);
+       ret = ipa_mem_setup(ipa);       /* No matching teardown required */
        if (ret)
                goto err_command_disable;
 
-       ret = ipa_table_setup(ipa);
+       ret = ipa_table_setup(ipa);     /* No matching teardown required */
        if (ret)
-               goto err_mem_teardown;
+               goto err_command_disable;
 
        /* Enable the exception handling endpoint, and tell the hardware
         * to use it by default.
@@ -161,7 +161,7 @@ int ipa_setup(struct ipa *ipa)
        exception_endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX];
        ret = ipa_endpoint_enable_one(exception_endpoint);
        if (ret)
-               goto err_table_teardown;
+               goto err_command_disable;
 
        ipa_endpoint_default_route_set(ipa, exception_endpoint->endpoint_id);
 
@@ -179,10 +179,6 @@ int ipa_setup(struct ipa *ipa)
 err_default_route_clear:
        ipa_endpoint_default_route_clear(ipa);
        ipa_endpoint_disable_one(exception_endpoint);
-err_table_teardown:
-       ipa_table_teardown(ipa);
-err_mem_teardown:
-       ipa_mem_teardown(ipa);
 err_command_disable:
        ipa_endpoint_disable_one(command_endpoint);
 err_endpoint_teardown:
@@ -211,8 +207,6 @@ static void ipa_teardown(struct ipa *ipa)
        ipa_endpoint_default_route_clear(ipa);
        exception_endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX];
        ipa_endpoint_disable_one(exception_endpoint);
-       ipa_table_teardown(ipa);
-       ipa_mem_teardown(ipa);
        command_endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX];
        ipa_endpoint_disable_one(command_endpoint);
        ipa_endpoint_teardown(ipa);
@@ -480,23 +474,20 @@ static int ipa_config(struct ipa *ipa, const struct ipa_data *data)
        if (ret)
                goto err_endpoint_deconfig;
 
-       ipa_table_config(ipa);
+       ipa_table_config(ipa);          /* No deconfig required */
 
-       /* Assign resource limitation to each group */
+       /* Assign resource limitation to each group; no deconfig required */
        ret = ipa_resource_config(ipa, data->resource_data);
        if (ret)
-               goto err_table_deconfig;
+               goto err_mem_deconfig;
 
        ret = ipa_modem_config(ipa);
        if (ret)
-               goto err_resource_deconfig;
+               goto err_mem_deconfig;
 
        return 0;
 
-err_resource_deconfig:
-       ipa_resource_deconfig(ipa);
-err_table_deconfig:
-       ipa_table_deconfig(ipa);
+err_mem_deconfig:
        ipa_mem_deconfig(ipa);
 err_endpoint_deconfig:
        ipa_endpoint_deconfig(ipa);
@@ -514,8 +505,6 @@ err_hardware_deconfig:
 static void ipa_deconfig(struct ipa *ipa)
 {
        ipa_modem_deconfig(ipa);
-       ipa_resource_deconfig(ipa);
-       ipa_table_deconfig(ipa);
        ipa_mem_deconfig(ipa);
        ipa_endpoint_deconfig(ipa);
        ipa_hardware_deconfig(ipa);
index 32907dde5dc6aa04bc4ba03acf101eb512327137..c5c3b1b7e67d5a13c6122217cedc244aa040bbb4 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 
 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
- * Copyright (C) 2019-2020 Linaro Ltd.
+ * Copyright (C) 2019-2021 Linaro Ltd.
  */
 
 #include <linux/types.h>
@@ -53,6 +53,8 @@ ipa_mem_zero_region_add(struct gsi_trans *trans, const struct ipa_mem *mem)
  * The AP informs the modem where its portions of memory are located
  * in a QMI exchange that occurs at modem startup.
  *
+ * There is no need for a matching ipa_mem_teardown() function.
+ *
  * Return:     0 if successful, or a negative error code
  */
 int ipa_mem_setup(struct ipa *ipa)
@@ -97,11 +99,6 @@ int ipa_mem_setup(struct ipa *ipa)
        return 0;
 }
 
-void ipa_mem_teardown(struct ipa *ipa)
-{
-       /* Nothing to do */
-}
-
 #ifdef IPA_VALIDATE
 
 static bool ipa_mem_valid(struct ipa *ipa, enum ipa_mem_id mem_id)
index df61ef48df36538322eed455c742d31fe12a66b2..9ca8a47bd4afd494a6bae747169bbc1b1dcb3a78 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 
 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
- * Copyright (C) 2019-2020 Linaro Ltd.
+ * Copyright (C) 2019-2021 Linaro Ltd.
  */
 #ifndef _IPA_MEM_H_
 #define _IPA_MEM_H_
@@ -88,8 +88,7 @@ struct ipa_mem {
 int ipa_mem_config(struct ipa *ipa);
 void ipa_mem_deconfig(struct ipa *ipa);
 
-int ipa_mem_setup(struct ipa *ipa);
-void ipa_mem_teardown(struct ipa *ipa);
+int ipa_mem_setup(struct ipa *ipa);    /* No ipa_mem_teardown() needed */
 
 int ipa_mem_zero_modem(struct ipa *ipa);
 
index 85f922d6f222f413e654dbac967ecbbca41588b2..3b2dc216d3a68c900c3b66f6d6eeeb6e4f7f3f62 100644 (file)
@@ -158,7 +158,7 @@ static void ipa_resource_config_dst(struct ipa *ipa, u32 resource_type,
        ipa_resource_config_common(ipa, offset, &resource->limits[6], ylimits);
 }
 
-/* Configure resources */
+/* Configure resources; there is no ipa_resource_deconfig() */
 int ipa_resource_config(struct ipa *ipa, const struct ipa_resource_data *data)
 {
        u32 i;
@@ -174,9 +174,3 @@ int ipa_resource_config(struct ipa *ipa, const struct ipa_resource_data *data)
 
        return 0;
 }
-
-/* Inverse of ipa_resource_config() */
-void ipa_resource_deconfig(struct ipa *ipa)
-{
-       /* Nothing to do */
-}
index 9f74036fb95c53c76b1318fbde03a0be913a199a..ef5818bff180d99dbe945541c49fa60d947321a1 100644 (file)
@@ -14,14 +14,10 @@ struct ipa_resource_data;
  * @ipa:       IPA pointer
  * @data:      IPA resource configuration data
  *
+ * There is no need for a matching ipa_resource_deconfig() function.
+ *
  * Return:     true if all regions are valid, false otherwise
  */
 int ipa_resource_config(struct ipa *ipa, const struct ipa_resource_data *data);
 
-/**
- * ipa_resource_deconfig() - Inverse of ipa_resource_config()
- * @ipa:       IPA pointer
- */
-void ipa_resource_deconfig(struct ipa *ipa);
-
 #endif /* _IPA_RESOURCE_H_ */
index 401b568df6a345218b4f69583fffa9bded58ce18..3168d72f42450cf8a42715ea03008b0f49887d86 100644 (file)
@@ -497,11 +497,6 @@ int ipa_table_setup(struct ipa *ipa)
        return 0;
 }
 
-void ipa_table_teardown(struct ipa *ipa)
-{
-       /* Nothing to do */     /* XXX Maybe reset the tables? */
-}
-
 /**
  * ipa_filter_tuple_zero() - Zero an endpoint's hashed filter tuple
  * @endpoint:  Endpoint whose filter hash tuple should be zeroed
@@ -525,6 +520,7 @@ static void ipa_filter_tuple_zero(struct ipa_endpoint *endpoint)
        iowrite32(val, endpoint->ipa->reg_virt + offset);
 }
 
+/* Configure a hashed filter table; there is no ipa_filter_deconfig() */
 static void ipa_filter_config(struct ipa *ipa, bool modem)
 {
        enum gsi_ee_id ee_id = modem ? GSI_EE_MODEM : GSI_EE_AP;
@@ -545,11 +541,6 @@ static void ipa_filter_config(struct ipa *ipa, bool modem)
        }
 }
 
-static void ipa_filter_deconfig(struct ipa *ipa, bool modem)
-{
-       /* Nothing to do */
-}
-
 static bool ipa_route_id_modem(u32 route_id)
 {
        return route_id >= IPA_ROUTE_MODEM_MIN &&
@@ -576,6 +567,7 @@ static void ipa_route_tuple_zero(struct ipa *ipa, u32 route_id)
        iowrite32(val, ipa->reg_virt + offset);
 }
 
+/* Configure a hashed route table; there is no ipa_route_deconfig() */
 static void ipa_route_config(struct ipa *ipa, bool modem)
 {
        u32 route_id;
@@ -588,11 +580,7 @@ static void ipa_route_config(struct ipa *ipa, bool modem)
                        ipa_route_tuple_zero(ipa, route_id);
 }
 
-static void ipa_route_deconfig(struct ipa *ipa, bool modem)
-{
-       /* Nothing to do */
-}
-
+/* Configure a filter and route tables; there is no ipa_table_deconfig() */
 void ipa_table_config(struct ipa *ipa)
 {
        ipa_filter_config(ipa, false);
@@ -601,14 +589,6 @@ void ipa_table_config(struct ipa *ipa)
        ipa_route_config(ipa, true);
 }
 
-void ipa_table_deconfig(struct ipa *ipa)
-{
-       ipa_route_deconfig(ipa, true);
-       ipa_route_deconfig(ipa, false);
-       ipa_filter_deconfig(ipa, true);
-       ipa_filter_deconfig(ipa, false);
-}
-
 /*
  * Initialize a coherent DMA allocation containing initialized filter and
  * route table data.  This is used when initializing or resetting the IPA
index 018045b95aad817c91285b0b3c3c750ad6b8edef..1e2be9fce2f813676202b4913488e4caf07eb789 100644 (file)
@@ -74,27 +74,19 @@ int ipa_table_hash_flush(struct ipa *ipa);
 /**
  * ipa_table_setup() - Set up filter and route tables
  * @ipa:       IPA pointer
+ *
+ * There is no need for a matching ipa_table_teardown() function.
  */
 int ipa_table_setup(struct ipa *ipa);
 
-/**
- * ipa_table_teardown() - Inverse of ipa_table_setup()
- * @ipa:       IPA pointer
- */
-void ipa_table_teardown(struct ipa *ipa);
-
 /**
  * ipa_table_config() - Configure filter and route tables
  * @ipa:       IPA pointer
+ *
+ * There is no need for a matching ipa_table_deconfig() function.
  */
 void ipa_table_config(struct ipa *ipa);
 
-/**
- * ipa_table_deconfig() - Inverse of ipa_table_config()
- * @ipa:       IPA pointer
- */
-void ipa_table_deconfig(struct ipa *ipa);
-
 /**
  * ipa_table_init() - Do early initialization of filter and route tables
  * @ipa:       IPA pointer