123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #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 */
|