提交 56dfe8de 编写于 作者: A Alex Elder 提交者: Jakub Kicinski

net: ipa: use version in gsi_channel_init()

A quirk of IPA v4.2 requires the AP to allocate the GSI channels
that are owned by the modem.

Rather than pass a flag argument to gsi_channel_init(), use the
IPA version directly in that function to determine whether modem
channels need to be allocated.
Signed-off-by: NAlex Elder <elder@linaro.org>
Signed-off-by: NJakub Kicinski <kuba@kernel.org>
上级 14dbf977
...@@ -1894,12 +1894,15 @@ static void gsi_channel_exit_one(struct gsi_channel *channel) ...@@ -1894,12 +1894,15 @@ static void gsi_channel_exit_one(struct gsi_channel *channel)
/* Init function for channels */ /* Init function for channels */
static int gsi_channel_init(struct gsi *gsi, u32 count, static int gsi_channel_init(struct gsi *gsi, u32 count,
const struct ipa_gsi_endpoint_data *data, const struct ipa_gsi_endpoint_data *data)
bool modem_alloc)
{ {
bool modem_alloc;
int ret = 0; int ret = 0;
u32 i; u32 i;
/* IPA v4.2 requires the AP to allocate channels for the modem */
modem_alloc = gsi->version == IPA_VERSION_4_2;
gsi_evt_ring_init(gsi); gsi_evt_ring_init(gsi);
/* The endpoint data array is indexed by endpoint name */ /* The endpoint data array is indexed by endpoint name */
...@@ -1961,14 +1964,10 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, ...@@ -1961,14 +1964,10 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev,
struct resource *res; struct resource *res;
resource_size_t size; resource_size_t size;
unsigned int irq; unsigned int irq;
bool modem_alloc;
int ret; int ret;
gsi_validate_build(); gsi_validate_build();
/* IPA v4.2 requires the AP to allocate channels for the modem */
modem_alloc = version == IPA_VERSION_4_2;
gsi->dev = dev; gsi->dev = dev;
gsi->version = version; gsi->version = version;
...@@ -2014,7 +2013,7 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev, ...@@ -2014,7 +2013,7 @@ int gsi_init(struct gsi *gsi, struct platform_device *pdev,
goto err_free_irq; goto err_free_irq;
} }
ret = gsi_channel_init(gsi, count, data, modem_alloc); ret = gsi_channel_init(gsi, count, data);
if (ret) if (ret)
goto err_iounmap; goto err_iounmap;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册