Home | History | Annotate | Download | only in sound
      1 #ifndef _WCD_DSP_GLINK_H
      2 #define _WCD_DSP_GLINK_H
      3 
      4 #include <linux/types.h>
      5 
      6 #define WDSP_CH_NAME_MAX_LEN 50
      7 
      8 enum {
      9 	WDSP_REG_PKT = 1,
     10 	WDSP_CMD_PKT,
     11 	WDSP_READY_PKT,
     12 };
     13 #define WDSP_READY_PKT WDSP_READY_PKT
     14 
     15 /*
     16  * struct wdsp_reg_pkt -  Glink channel information structure format
     17  * @no_of_channels:   Number of glink channels to open
     18  * @payload[0]:       Dynamic array contains all the glink channels information
     19  */
     20 struct wdsp_reg_pkt {
     21 	__u8 no_of_channels;
     22 	__u8 payload[0];
     23 };
     24 
     25 /*
     26  * struct wdsp_cmd_pkt - WDSP command packet format
     27  * @ch_name:         Name of the glink channel
     28  * @payload_size:    Size of the payload
     29  * @payload[0]:      Actual data payload
     30  */
     31 struct wdsp_cmd_pkt {
     32 	char ch_name[WDSP_CH_NAME_MAX_LEN];
     33 	__u32 payload_size;
     34 	__u8 payload[0];
     35 };
     36 
     37 /*
     38  * struct wdsp_write_pkt - Format that userspace send the data to driver.
     39  * @pkt_type:      Type of the packet(REG or CMD PKT)
     40  * @payload[0]:    Payload is either cmd or reg pkt structure based on pkt type
     41  */
     42 struct wdsp_write_pkt {
     43 	__u8 pkt_type;
     44 	__u8 payload[0];
     45 };
     46 
     47 /*
     48  * struct wdsp_glink_ch_cfg - Defines the glink channel configuration.
     49  * @ch_name:           Name of the glink channel
     50  * @latency_in_us:     Latency specified in micro seconds for QOS
     51  * @no_of_intents:     Number of intents prequeued
     52  * @intents_size[0]:   Dynamic array to specify size of each intent
     53  */
     54 struct wdsp_glink_ch_cfg {
     55 	char name[WDSP_CH_NAME_MAX_LEN];
     56 	__u32 latency_in_us;
     57 	__u32 no_of_intents;
     58 	__u32 intents_size[0];
     59 };
     60 #endif /* _WCD_DSP_GLINK_H */
     61