qcacmn: Add support for Bangradar with detector ID

Provide support for bangradar with detector ID as one of the parameters.
Add the parameter as part of the packed arguments to be sent to FW.

Also add APIs for basic sanity check of bangradar params and packing
bangradar params inside an 32 bit unsigned integer.

CRs-Fixed: 2646549
Change-Id: Ie781bc9421b7ac0d407eb01814c9242c7f988884
Šī revīzija ir iekļauta:
Vignesh Mohan
2019-07-08 17:38:28 +05:30
revīziju iesūtīja nshrivas
vecāks e6ffcdabce
revīzija 2b0ff06748
6 mainīti faili ar 104 papildinājumiem un 73 dzēšanām

Parādīt failu

@@ -167,12 +167,14 @@ enum dfs_bangradar_types {
* @seg_id: Segment ID information.
* @is_chirp: Chirp radar or not.
* @freq_offset: Frequency offset at which radar was found.
* @detector_id: Detector ID corresponding to primary/agile detectors.
*/
struct dfs_bangradar_params {
enum dfs_bangradar_types bangradar_type;
uint8_t seg_id;
uint8_t is_chirp;
int32_t freq_offset;
uint8_t detector_id;
};
#define DFS_IOCTL_PARAM_NOVAL 65535
#define DFS_IOCTL_PARAM_ENABLE 0x8000

Parādīt failu

@@ -47,19 +47,20 @@
* 1). Segment ID,
* 2). Chirp information (is chirp or non chirp),
* 3). Frequency offset.
* 4). Detector ID.
*
* The packed argument structure is:
*
* ------------------------------32 bits arg-------------------------
* ------------------------------32 bits arg----------------------------
*
* ------------21 bits-------------|-------8 bits------|1 bit|2 bits|
* __________________________________________________________________
*| | | | | | | | | | | | | | |
*|---------21 Unused bits---------|x|x|x| |x|x|x|x| |x| x | x | x |
*|________________________________|_|_|_|_|_|_|_|_|_|_|_____|___|___|
* ------------19 bits-------|--2 bits-|-------8 bits------|1 bit|2 bits|
* ______________________________________________________________________
*| | | | | | | | | | | | | | | | | |
*|------19 Unused bits------| x | | x |x|x|x| |x|x|x|x| |x| x | x | x |
*|__________________________|___|_|___|_|_|_|_|_|_|_|_|_|_|_____|___|___|
*
* |___________________|_____|_______|
* freq.offset Chirp segID
* |_________|___________________|_____|_______|
* det.ID freq.offset Chirp seg.ID
*
* @DFS_UNIT_TEST_NUM_ARGS: Number of arguments for bangradar unit test
* command.
@@ -74,9 +75,14 @@ enum {
DFS_MAX_NUM_UNIT_TEST_ARGS = DFS_UNIT_TEST_NUM_ARGS
};
#define SEG_ID_SIZE 2
#define IS_CHIRP_SIZE 1
#define MASK 0xFF
#define SEG_ID_SHIFT 0
#define IS_CHIRP_SHIFT 2
#define FREQ_OFF_SHIFT 3
#define DET_ID_SHIFT 11
#define SEG_ID_MASK 0x03
#define IS_CHIRP_MASK 0x01
#define FREQ_OFFSET_MASK 0xFF
#define DET_ID_MASK 0x03
/**
* struct dfs_emulate_bang_radar_test_cmd - Unit test command structure to send