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