qcacmn: IPA uC: Round down Tx/Rx buffer count to nearest power of two
qcacld-2.0 to qcacmn propagation In certain situation, allocated Tx buffer count could be an arbitrary number, so not power of two. This could violate F/W ring buffer count requirement. If allocated Tx buffer count is not power of two, round down it to the nearest power of two. The same change is also applicable for INI parameters IpaUcTxBufCount and IpaUcRxIndRingCount. Change-Id: I7c119886a669c79adbc7bd9b2c1c1d93de41cf72 CRs-Fixed: 973723
This commit is contained in:
@@ -506,4 +506,18 @@ uint32_t qdf_get_upper_32_bits(qdf_dma_addr_t addr)
|
|||||||
return __qdf_get_upper_32_bits(addr);
|
return __qdf_get_upper_32_bits(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_rounddown_pow_of_two() - Round down to nearest power of two
|
||||||
|
* @n: number to be tested
|
||||||
|
*
|
||||||
|
* Test if the input number is power of two, and return the nearest power of two
|
||||||
|
*
|
||||||
|
* Return: number rounded down to the nearest power of two
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
unsigned long qdf_rounddown_pow_of_two(unsigned long n)
|
||||||
|
{
|
||||||
|
return __qdf_rounddown_pow_of_two(n);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /*_QDF_UTIL_H*/
|
#endif /*_QDF_UTIL_H*/
|
||||||
|
@@ -346,5 +346,21 @@ uint32_t __qdf_get_upper_32_bits(__qdf_dma_addr_t addr)
|
|||||||
return upper_32_bits(addr);
|
return upper_32_bits(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __qdf_rounddown_pow_of_two() - Round down to nearest power of two
|
||||||
|
* @n: number to be tested
|
||||||
|
*
|
||||||
|
* Test if the input number is power of two, and return the nearest power of two
|
||||||
|
*
|
||||||
|
* Return: number rounded down to the nearest power of two
|
||||||
|
*/
|
||||||
|
static inline
|
||||||
|
unsigned long __qdf_rounddown_pow_of_two(unsigned long n)
|
||||||
|
{
|
||||||
|
if (is_power_of_2(n))
|
||||||
|
return n; /* already a power of 2 */
|
||||||
|
|
||||||
|
return __rounddown_pow_of_two(n);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /*_I_QDF_UTIL_H*/
|
#endif /*_I_QDF_UTIL_H*/
|
||||||
|
Reference in New Issue
Block a user