You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
61 lines
1.5 KiB
4 months ago
|
#ifndef _WCD_DSP_GLINK_H
|
||
|
#define _WCD_DSP_GLINK_H
|
||
|
|
||
|
#include <linux/types.h>
|
||
|
|
||
|
#define WDSP_CH_NAME_MAX_LEN 50
|
||
|
|
||
|
enum {
|
||
|
WDSP_REG_PKT = 1,
|
||
|
WDSP_CMD_PKT,
|
||
|
WDSP_READY_PKT,
|
||
|
};
|
||
|
#define WDSP_READY_PKT WDSP_READY_PKT
|
||
|
|
||
|
/*
|
||
|
* struct wdsp_reg_pkt - Glink channel information structure format
|
||
|
* @no_of_channels: Number of glink channels to open
|
||
|
* @payload[0]: Dynamic array contains all the glink channels information
|
||
|
*/
|
||
|
struct wdsp_reg_pkt {
|
||
|
__u8 no_of_channels;
|
||
|
__u8 payload[0];
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* struct wdsp_cmd_pkt - WDSP command packet format
|
||
|
* @ch_name: Name of the glink channel
|
||
|
* @payload_size: Size of the payload
|
||
|
* @payload[0]: Actual data payload
|
||
|
*/
|
||
|
struct wdsp_cmd_pkt {
|
||
|
char ch_name[WDSP_CH_NAME_MAX_LEN];
|
||
|
__u32 payload_size;
|
||
|
__u8 payload[0];
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* struct wdsp_write_pkt - Format that userspace send the data to driver.
|
||
|
* @pkt_type: Type of the packet(REG or CMD PKT)
|
||
|
* @payload[0]: Payload is either cmd or reg pkt structure based on pkt type
|
||
|
*/
|
||
|
struct wdsp_write_pkt {
|
||
|
__u8 pkt_type;
|
||
|
__u8 payload[0];
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* struct wdsp_glink_ch_cfg - Defines the glink channel configuration.
|
||
|
* @ch_name: Name of the glink channel
|
||
|
* @latency_in_us: Latency specified in micro seconds for QOS
|
||
|
* @no_of_intents: Number of intents prequeued
|
||
|
* @intents_size[0]: Dynamic array to specify size of each intent
|
||
|
*/
|
||
|
struct wdsp_glink_ch_cfg {
|
||
|
char name[WDSP_CH_NAME_MAX_LEN];
|
||
|
__u32 latency_in_us;
|
||
|
__u32 no_of_intents;
|
||
|
__u32 intents_size[0];
|
||
|
};
|
||
|
#endif /* _WCD_DSP_GLINK_H */
|