qcacmn: Add check for supported register
Register offsets have 2 possible invalid values. need to check for both values. Change-Id: I6168aa46c4af66169284b98dee26ab56e4ed12c5 CRs-Fixed: 1012824
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
3db96a43b6
commit
056d452238
@@ -19,6 +19,21 @@
|
|||||||
#ifndef REG_STRUCT_H
|
#ifndef REG_STRUCT_H
|
||||||
#define REG_STRUCT_H
|
#define REG_STRUCT_H
|
||||||
|
|
||||||
|
#define MISSING_REGISTER 0
|
||||||
|
#define UNSUPPORTED_REGISTER_OFFSET 0xffffffff
|
||||||
|
|
||||||
|
/**
|
||||||
|
* is_register_supported() - return true if the register offset is valid
|
||||||
|
* @reg: register address being checked
|
||||||
|
*
|
||||||
|
* Return: true if the register offset is valid
|
||||||
|
*/
|
||||||
|
static inline bool is_register_supported(uint32_t reg)
|
||||||
|
{
|
||||||
|
return (reg != MISSING_REGISTER) &&
|
||||||
|
(reg != UNSUPPORTED_REGISTER_OFFSET);
|
||||||
|
}
|
||||||
|
|
||||||
struct targetdef_s {
|
struct targetdef_s {
|
||||||
uint32_t d_RTC_SOC_BASE_ADDRESS;
|
uint32_t d_RTC_SOC_BASE_ADDRESS;
|
||||||
uint32_t d_RTC_WMAC_BASE_ADDRESS;
|
uint32_t d_RTC_WMAC_BASE_ADDRESS;
|
||||||
|
@@ -25,7 +25,7 @@ typedef struct targetdef_s TARGET_REGISTER_TABLE;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define ATH_UNSUPPORTED_REG_OFFSET 0xffffffff
|
#define ATH_UNSUPPORTED_REG_OFFSET UNSUPPORTED_REGISTER_OFFSET
|
||||||
#define ATH_SUPPORTED_BY_TARGET(reg_offset) \
|
#define ATH_SUPPORTED_BY_TARGET(reg_offset) \
|
||||||
((reg_offset) != ATH_UNSUPPORTED_REG_OFFSET)
|
((reg_offset) != ATH_UNSUPPORTED_REG_OFFSET)
|
||||||
|
|
||||||
|
@@ -713,7 +713,7 @@ struct CE_handle *ce_init(struct hif_softc *scn,
|
|||||||
(uint32_t)(dma_addr & 0xFFFFFFFF));
|
(uint32_t)(dma_addr & 0xFFFFFFFF));
|
||||||
|
|
||||||
/* if SR_BA_ADDRESS_HIGH register exists */
|
/* if SR_BA_ADDRESS_HIGH register exists */
|
||||||
if (SR_BA_ADDRESS_HIGH) {
|
if (is_register_supported(SR_BA_ADDRESS_HIGH)) {
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
tmp = CE_SRC_RING_BASE_ADDR_HIGH_GET(
|
tmp = CE_SRC_RING_BASE_ADDR_HIGH_GET(
|
||||||
scn, ctrl_addr);
|
scn, ctrl_addr);
|
||||||
@@ -852,7 +852,7 @@ struct CE_handle *ce_init(struct hif_softc *scn,
|
|||||||
(uint32_t)(dma_addr & 0xFFFFFFFF));
|
(uint32_t)(dma_addr & 0xFFFFFFFF));
|
||||||
|
|
||||||
/* if DR_BA_ADDRESS_HIGH exists */
|
/* if DR_BA_ADDRESS_HIGH exists */
|
||||||
if (DR_BA_ADDRESS_HIGH) {
|
if (is_register_supported(DR_BA_ADDRESS_HIGH)) {
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
tmp = CE_DEST_RING_BASE_ADDR_HIGH_GET(scn,
|
tmp = CE_DEST_RING_BASE_ADDR_HIGH_GET(scn,
|
||||||
ctrl_addr);
|
ctrl_addr);
|
||||||
|
Reference in New Issue
Block a user