Commit 57ab8ca4 authored by Alex Elder's avatar Alex Elder Committed by Jakub Kicinski

net: ipa: get rid of empty GSI functions

There are place holder functions in the GSI code that do nothing.
Remove these, knowing we can add something back in their place if
they're really needed someday.

Some of these are inverse functions (such as teardown to match setup).
Explicitly comment that there is no inverse in these cases.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 74858b63
...@@ -198,7 +198,7 @@ static void gsi_irq_type_disable(struct gsi *gsi, enum gsi_irq_type_id type_id) ...@@ -198,7 +198,7 @@ static void gsi_irq_type_disable(struct gsi *gsi, enum gsi_irq_type_id type_id)
gsi_irq_type_update(gsi, gsi->type_enabled_bitmap & ~BIT(type_id)); gsi_irq_type_update(gsi, gsi->type_enabled_bitmap & ~BIT(type_id));
} }
/* Turn off all GSI interrupts initially */ /* Turn off all GSI interrupts initially; there is no gsi_irq_teardown() */
static void gsi_irq_setup(struct gsi *gsi) static void gsi_irq_setup(struct gsi *gsi)
{ {
/* Disable all interrupt types */ /* Disable all interrupt types */
...@@ -217,12 +217,6 @@ static void gsi_irq_setup(struct gsi *gsi) ...@@ -217,12 +217,6 @@ static void gsi_irq_setup(struct gsi *gsi)
iowrite32(0, gsi->virt + GSI_CNTXT_GSI_IRQ_EN_OFFSET); iowrite32(0, gsi->virt + GSI_CNTXT_GSI_IRQ_EN_OFFSET);
} }
/* Turn off all GSI interrupts when we're all done */
static void gsi_irq_teardown(struct gsi *gsi)
{
/* Nothing to do */
}
/* Event ring commands are performed one at a time. Their completion /* Event ring commands are performed one at a time. Their completion
* is signaled by the event ring control GSI interrupt type, which is * is signaled by the event ring control GSI interrupt type, which is
* only enabled when we issue an event ring command. Only the event * only enabled when we issue an event ring command. Only the event
...@@ -786,7 +780,7 @@ static void gsi_channel_trans_quiesce(struct gsi_channel *channel) ...@@ -786,7 +780,7 @@ static void gsi_channel_trans_quiesce(struct gsi_channel *channel)
} }
} }
/* Program a channel for use */ /* Program a channel for use; there is no gsi_channel_deprogram() */
static void gsi_channel_program(struct gsi_channel *channel, bool doorbell) static void gsi_channel_program(struct gsi_channel *channel, bool doorbell)
{ {
size_t size = channel->tre_ring.count * GSI_RING_ELEMENT_SIZE; size_t size = channel->tre_ring.count * GSI_RING_ELEMENT_SIZE;
...@@ -874,11 +868,6 @@ static void gsi_channel_program(struct gsi_channel *channel, bool doorbell) ...@@ -874,11 +868,6 @@ static void gsi_channel_program(struct gsi_channel *channel, bool doorbell)
/* All done! */ /* All done! */
} }
static void gsi_channel_deprogram(struct gsi_channel *channel)
{
/* Nothing to do */
}
static int __gsi_channel_start(struct gsi_channel *channel, bool start) static int __gsi_channel_start(struct gsi_channel *channel, bool start)
{ {
struct gsi *gsi = channel->gsi; struct gsi *gsi = channel->gsi;
...@@ -1623,18 +1612,6 @@ static u32 gsi_event_bitmap_init(u32 evt_ring_max) ...@@ -1623,18 +1612,6 @@ static u32 gsi_event_bitmap_init(u32 evt_ring_max)
return event_bitmap; return event_bitmap;
} }
/* Setup function for event rings */
static void gsi_evt_ring_setup(struct gsi *gsi)
{
/* Nothing to do */
}
/* Inverse of gsi_evt_ring_setup() */
static void gsi_evt_ring_teardown(struct gsi *gsi)
{
/* Nothing to do */
}
/* Setup function for a single channel */ /* Setup function for a single channel */
static int gsi_channel_setup_one(struct gsi *gsi, u32 channel_id) static int gsi_channel_setup_one(struct gsi *gsi, u32 channel_id)
{ {
...@@ -1684,7 +1661,6 @@ static void gsi_channel_teardown_one(struct gsi *gsi, u32 channel_id) ...@@ -1684,7 +1661,6 @@ static void gsi_channel_teardown_one(struct gsi *gsi, u32 channel_id)
netif_napi_del(&channel->napi); netif_napi_del(&channel->napi);
gsi_channel_deprogram(channel);
gsi_channel_de_alloc_command(gsi, channel_id); gsi_channel_de_alloc_command(gsi, channel_id);
gsi_evt_ring_reset_command(gsi, evt_ring_id); gsi_evt_ring_reset_command(gsi, evt_ring_id);
gsi_evt_ring_de_alloc_command(gsi, evt_ring_id); gsi_evt_ring_de_alloc_command(gsi, evt_ring_id);
...@@ -1759,7 +1735,6 @@ static int gsi_channel_setup(struct gsi *gsi) ...@@ -1759,7 +1735,6 @@ static int gsi_channel_setup(struct gsi *gsi)
u32 mask; u32 mask;
int ret; int ret;
gsi_evt_ring_setup(gsi);
gsi_irq_enable(gsi); gsi_irq_enable(gsi);
mutex_lock(&gsi->mutex); mutex_lock(&gsi->mutex);
...@@ -1819,7 +1794,6 @@ static int gsi_channel_setup(struct gsi *gsi) ...@@ -1819,7 +1794,6 @@ static int gsi_channel_setup(struct gsi *gsi)
mutex_unlock(&gsi->mutex); mutex_unlock(&gsi->mutex);
gsi_irq_disable(gsi); gsi_irq_disable(gsi);
gsi_evt_ring_teardown(gsi);
return ret; return ret;
} }
...@@ -1848,7 +1822,6 @@ static void gsi_channel_teardown(struct gsi *gsi) ...@@ -1848,7 +1822,6 @@ static void gsi_channel_teardown(struct gsi *gsi)
mutex_unlock(&gsi->mutex); mutex_unlock(&gsi->mutex);
gsi_irq_disable(gsi); gsi_irq_disable(gsi);
gsi_evt_ring_teardown(gsi);
} }
/* Setup function for GSI. GSI firmware must be loaded and initialized */ /* Setup function for GSI. GSI firmware must be loaded and initialized */
...@@ -1856,7 +1829,6 @@ int gsi_setup(struct gsi *gsi) ...@@ -1856,7 +1829,6 @@ int gsi_setup(struct gsi *gsi)
{ {
struct device *dev = gsi->dev; struct device *dev = gsi->dev;
u32 val; u32 val;
int ret;
/* Here is where we first touch the GSI hardware */ /* Here is where we first touch the GSI hardware */
val = ioread32(gsi->virt + GSI_GSI_STATUS_OFFSET); val = ioread32(gsi->virt + GSI_GSI_STATUS_OFFSET);
...@@ -1865,7 +1837,7 @@ int gsi_setup(struct gsi *gsi) ...@@ -1865,7 +1837,7 @@ int gsi_setup(struct gsi *gsi)
return -EIO; return -EIO;
} }
gsi_irq_setup(gsi); gsi_irq_setup(gsi); /* No matching teardown required */
val = ioread32(gsi->virt + GSI_GSI_HW_PARAM_2_OFFSET); val = ioread32(gsi->virt + GSI_GSI_HW_PARAM_2_OFFSET);
...@@ -1899,18 +1871,13 @@ int gsi_setup(struct gsi *gsi) ...@@ -1899,18 +1871,13 @@ int gsi_setup(struct gsi *gsi)
/* Writing 1 indicates IRQ interrupts; 0 would be MSI */ /* Writing 1 indicates IRQ interrupts; 0 would be MSI */
iowrite32(1, gsi->virt + GSI_CNTXT_INTSET_OFFSET); iowrite32(1, gsi->virt + GSI_CNTXT_INTSET_OFFSET);
ret = gsi_channel_setup(gsi); return gsi_channel_setup(gsi);
if (ret)
gsi_irq_teardown(gsi);
return ret;
} }
/* Inverse of gsi_setup() */ /* Inverse of gsi_setup() */
void gsi_teardown(struct gsi *gsi) void gsi_teardown(struct gsi *gsi)
{ {
gsi_channel_teardown(gsi); gsi_channel_teardown(gsi);
gsi_irq_teardown(gsi);
} }
/* Initialize a channel's event ring */ /* Initialize a channel's event ring */
...@@ -1952,7 +1919,7 @@ static void gsi_channel_evt_ring_exit(struct gsi_channel *channel) ...@@ -1952,7 +1919,7 @@ static void gsi_channel_evt_ring_exit(struct gsi_channel *channel)
gsi_evt_ring_id_free(gsi, evt_ring_id); gsi_evt_ring_id_free(gsi, evt_ring_id);
} }
/* Init function for event rings */ /* Init function for event rings; there is no gsi_evt_ring_exit() */
static void gsi_evt_ring_init(struct gsi *gsi) static void gsi_evt_ring_init(struct gsi *gsi)
{ {
u32 evt_ring_id = 0; u32 evt_ring_id = 0;
...@@ -1964,12 +1931,6 @@ static void gsi_evt_ring_init(struct gsi *gsi) ...@@ -1964,12 +1931,6 @@ static void gsi_evt_ring_init(struct gsi *gsi)
while (++evt_ring_id < GSI_EVT_RING_COUNT_MAX); while (++evt_ring_id < GSI_EVT_RING_COUNT_MAX);
} }
/* Inverse of gsi_evt_ring_init() */
static void gsi_evt_ring_exit(struct gsi *gsi)
{
/* Nothing to do */
}
static bool gsi_channel_data_valid(struct gsi *gsi, static bool gsi_channel_data_valid(struct gsi *gsi,
const struct ipa_gsi_endpoint_data *data) const struct ipa_gsi_endpoint_data *data)
{ {
...@@ -2114,7 +2075,7 @@ static int gsi_channel_init(struct gsi *gsi, u32 count, ...@@ -2114,7 +2075,7 @@ static int gsi_channel_init(struct gsi *gsi, u32 count,
/* IPA v4.2 requires the AP to allocate channels for the modem */ /* IPA v4.2 requires the AP to allocate channels for the modem */
modem_alloc = gsi->version == IPA_VERSION_4_2; modem_alloc = gsi->version == IPA_VERSION_4_2;
gsi_evt_ring_init(gsi); gsi_evt_ring_init(gsi); /* No matching exit required */
/* The endpoint data array is indexed by endpoint name */ /* The endpoint data array is indexed by endpoint name */
for (i = 0; i < count; i++) { for (i = 0; i < count; i++) {
...@@ -2148,7 +2109,6 @@ static int gsi_channel_init(struct gsi *gsi, u32 count, ...@@ -2148,7 +2109,6 @@ static int gsi_channel_init(struct gsi *gsi, u32 count,
} }
gsi_channel_exit_one(&gsi->channel[data->channel_id]); gsi_channel_exit_one(&gsi->channel[data->channel_id]);
} }
gsi_evt_ring_exit(gsi);
return ret; return ret;
} }
...@@ -2162,8 +2122,6 @@ static void gsi_channel_exit(struct gsi *gsi) ...@@ -2162,8 +2122,6 @@ static void gsi_channel_exit(struct gsi *gsi)
gsi_channel_exit_one(&gsi->channel[channel_id]); gsi_channel_exit_one(&gsi->channel[channel_id]);
while (channel_id--); while (channel_id--);
gsi->modem_channel_bitmap = 0; gsi->modem_channel_bitmap = 0;
gsi_evt_ring_exit(gsi);
} }
/* Init function for GSI. GSI hardware does not need to be "ready" */ /* Init function for GSI. GSI hardware does not need to be "ready" */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment