net: ipa: rework how HOL_BLOCK handling is specified
The head-of-line block (HOLB) drop timer is only meaningful when dropping packets due to blocking is enabled. Given that, redefine the interface so the timer is specified when enabling HOLB drop, and use a different function when disabling. To enable and disable HOLB drop, these functions will now be used: ipa_endpoint_init_hol_block_enable(endpoint, milliseconds) ipa_endpoint_init_hol_block_disable(endpoint) The existing ipa_endpoint_init_hol_block_enable() becomes a helper function, renamed ipa_endpoint_init_hol_block_en(), and used with ipa_endpoint_init_hol_block_timer() to enable HOLB block on an endpoint. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
dc901505fd
commit
e6aab6b9b6
@ -860,7 +860,7 @@ static void ipa_endpoint_init_hol_block_timer(struct ipa_endpoint *endpoint,
|
||||
}
|
||||
|
||||
static void
|
||||
ipa_endpoint_init_hol_block_enable(struct ipa_endpoint *endpoint, bool enable)
|
||||
ipa_endpoint_init_hol_block_en(struct ipa_endpoint *endpoint, bool enable)
|
||||
{
|
||||
u32 endpoint_id = endpoint->endpoint_id;
|
||||
u32 offset;
|
||||
@ -874,6 +874,19 @@ ipa_endpoint_init_hol_block_enable(struct ipa_endpoint *endpoint, bool enable)
|
||||
iowrite32(val, endpoint->ipa->reg_virt + offset);
|
||||
}
|
||||
|
||||
/* Assumes HOL_BLOCK is in disabled state */
|
||||
static void ipa_endpoint_init_hol_block_enable(struct ipa_endpoint *endpoint,
|
||||
u32 microseconds)
|
||||
{
|
||||
ipa_endpoint_init_hol_block_timer(endpoint, microseconds);
|
||||
ipa_endpoint_init_hol_block_en(endpoint, true);
|
||||
}
|
||||
|
||||
static void ipa_endpoint_init_hol_block_disable(struct ipa_endpoint *endpoint)
|
||||
{
|
||||
ipa_endpoint_init_hol_block_en(endpoint, false);
|
||||
}
|
||||
|
||||
void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa)
|
||||
{
|
||||
u32 i;
|
||||
@ -884,9 +897,8 @@ void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa)
|
||||
if (endpoint->toward_ipa || endpoint->ee_id != GSI_EE_MODEM)
|
||||
continue;
|
||||
|
||||
ipa_endpoint_init_hol_block_enable(endpoint, false);
|
||||
ipa_endpoint_init_hol_block_timer(endpoint, 0);
|
||||
ipa_endpoint_init_hol_block_enable(endpoint, true);
|
||||
ipa_endpoint_init_hol_block_disable(endpoint);
|
||||
ipa_endpoint_init_hol_block_enable(endpoint, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user