ASoC: Updates for v6.10 This is a very big update, in large part due to extensive work the Intel people have been doing in their drivers though it's also been busy elsewhere. There's also a big overhaul of the DAPM documentation from Luca Ceresoli arising from the work he did putting together his recent ELC talk, and he also contributed a new tool for visualising the DAPM state. - A new tool dapm-graph for visualising the DAPM state. - Substantial fixes and clarifications for the DAPM documentation. - Very large updates throughout the Intel audio drivers. - Cleanups of accessors for driver data, module labelling, and for constification. - Modernsation and cleanup work in the Mediatek drivers. - Several fixes and features for the DaVinci I2S driver. - New drivers for several AMD and Intel platforms, Nuvoton NAU8325, Rockchip RK3308 and Texas Instruments PCM6240.
Showing the changes to include/uapi (4 of 1365 files). Show all
Unified · Split
| @@ -57,7 +57,7 @@ enum vdpa_attr { · 56 unmodified lines | |||
| 57 | VDPA_ATTR_DEV_FEATURES, /* u64 */ | 57 | VDPA_ATTR_DEV_FEATURES, /* u64 */ |
| 58 | 58 | ||
| 59 | VDPA_ATTR_DEV_BLK_CFG_CAPACITY, /* u64 */ | 59 | VDPA_ATTR_DEV_BLK_CFG_CAPACITY, /* u64 */ |
| 60 | VDPA_ATTR_DEV_BLK_CFG_SEG_SIZE, /* u32 */ | 60 | VDPA_ATTR_DEV_BLK_CFG_SIZE_MAX, /* u32 */ |
| 61 | VDPA_ATTR_DEV_BLK_CFG_BLK_SIZE, /* u32 */ | 61 | VDPA_ATTR_DEV_BLK_CFG_BLK_SIZE, /* u32 */ |
| 62 | VDPA_ATTR_DEV_BLK_CFG_SEG_MAX, /* u32 */ | 62 | VDPA_ATTR_DEV_BLK_CFG_SEG_MAX, /* u32 */ |
| 63 | VDPA_ATTR_DEV_BLK_CFG_NUM_QUEUES, /* u16 */ | 63 | VDPA_ATTR_DEV_BLK_CFG_NUM_QUEUES, /* u16 */ |
| @@ -70,8 +70,8 @@ enum vdpa_attr { · 6 unmodified lines | |||
| 70 | VDPA_ATTR_DEV_BLK_CFG_DISCARD_SEC_ALIGN,/* u32 */ | 70 | VDPA_ATTR_DEV_BLK_CFG_DISCARD_SEC_ALIGN,/* u32 */ |
| 71 | VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEC, /* u32 */ | 71 | VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEC, /* u32 */ |
| 72 | VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEG, /* u32 */ | 72 | VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEG, /* u32 */ |
| 73 | VDPA_ATTR_DEV_BLK_CFG_READ_ONLY, /* u8 */ | 73 | VDPA_ATTR_DEV_BLK_READ_ONLY, /* u8 */ |
| 74 | VDPA_ATTR_DEV_BLK_CFG_FLUSH, /* u8 */ | 74 | VDPA_ATTR_DEV_BLK_FLUSH, /* u8 */ |
| 75 | 75 | ||
| 76 | /* new attributes must be added above here */ | 76 | /* new attributes must be added above here */ |
| 77 | VDPA_ATTR_MAX, | 77 | VDPA_ATTR_MAX, |
| @@ -179,12 +179,6 @@ · 178 unmodified lines | |||
| 179 | /* Get the config size */ | 179 | /* Get the config size */ |
| 180 | #define VHOST_VDPA_GET_CONFIG_SIZE _IOR(VHOST_VIRTIO, 0x79, __u32) | 180 | #define VHOST_VDPA_GET_CONFIG_SIZE _IOR(VHOST_VIRTIO, 0x79, __u32) |
| 181 | 181 | ||
| 182 | /* Get the count of all virtqueues */ | ||
| 183 | #define VHOST_VDPA_GET_VQS_COUNT _IOR(VHOST_VIRTIO, 0x80, __u32) | ||
| 184 | |||
| 185 | /* Get the number of virtqueue groups. */ | ||
| 186 | #define VHOST_VDPA_GET_GROUP_NUM _IOR(VHOST_VIRTIO, 0x81, __u32) | ||
| 187 | |||
| 188 | /* Get the number of address spaces. */ | 182 | /* Get the number of address spaces. */ |
| 189 | #define VHOST_VDPA_GET_AS_NUM _IOR(VHOST_VIRTIO, 0x7A, unsigned int) | 183 | #define VHOST_VDPA_GET_AS_NUM _IOR(VHOST_VIRTIO, 0x7A, unsigned int) |
| 190 | 184 | ||
| @@ -228,10 +222,17 @@ · 37 unmodified lines | |||
| 228 | #define VHOST_VDPA_GET_VRING_DESC_GROUP _IOWR(VHOST_VIRTIO, 0x7F, \ | 222 | #define VHOST_VDPA_GET_VRING_DESC_GROUP _IOWR(VHOST_VIRTIO, 0x7F, \ |
| 229 | struct vhost_vring_state) | 223 | struct vhost_vring_state) |
| 230 | 224 | ||
| 225 | |||
| 226 | /* Get the count of all virtqueues */ | ||
| 227 | #define VHOST_VDPA_GET_VQS_COUNT _IOR(VHOST_VIRTIO, 0x80, __u32) | ||
| 228 | |||
| 229 | /* Get the number of virtqueue groups. */ | ||
| 230 | #define VHOST_VDPA_GET_GROUP_NUM _IOR(VHOST_VIRTIO, 0x81, __u32) | ||
| 231 | |||
| 231 | /* Get the queue size of a specific virtqueue. | 232 | /* Get the queue size of a specific virtqueue. |
| 232 | * userspace set the vring index in vhost_vring_state.index | 233 | * userspace set the vring index in vhost_vring_state.index |
| 233 | * kernel set the queue size in vhost_vring_state.num | 234 | * kernel set the queue size in vhost_vring_state.num |
| 234 | */ | 235 | */ |
| 235 | #define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x80, \ | 236 | #define VHOST_VDPA_GET_VRING_SIZE _IOWR(VHOST_VIRTIO, 0x82, \ |
| 236 | struct vhost_vring_state) | 237 | struct vhost_vring_state) |
| 237 | #endif | 238 | #endif |
| @@ -576,60 +576,4 @@ struct snd_soc_tplg_dai { · 575 unmodified lines | |||
| 576 | struct snd_soc_tplg_private priv; | 576 | struct snd_soc_tplg_private priv; |
| 577 | } __attribute__((packed)); | 577 | } __attribute__((packed)); |
| 578 | 578 | ||
| 579 | /* | ||
| 580 | * Old version of ABI structs, supported for backward compatibility. | ||
| 581 | */ | ||
| 582 | |||
| 583 | /* Manifest v4 */ | ||
| 584 | struct snd_soc_tplg_manifest_v4 { | ||
| 585 | __le32 size; /* in bytes of this structure */ | ||
| 586 | __le32 control_elems; /* number of control elements */ | ||
| 587 | __le32 widget_elems; /* number of widget elements */ | ||
| 588 | __le32 graph_elems; /* number of graph elements */ | ||
| 589 | __le32 pcm_elems; /* number of PCM elements */ | ||
| 590 | __le32 dai_link_elems; /* number of DAI link elements */ | ||
| 591 | struct snd_soc_tplg_private priv; | ||
| 592 | } __packed; | ||
| 593 | |||
| 594 | /* Stream Capabilities v4 */ | ||
| 595 | struct snd_soc_tplg_stream_caps_v4 { | ||
| 596 | __le32 size; /* in bytes of this structure */ | ||
| 597 | char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | ||
| 598 | __le64 formats; /* supported formats SNDRV_PCM_FMTBIT_* */ | ||
| 599 | __le32 rates; /* supported rates SNDRV_PCM_RATE_* */ | ||
| 600 | __le32 rate_min; /* min rate */ | ||
| 601 | __le32 rate_max; /* max rate */ | ||
| 602 | __le32 channels_min; /* min channels */ | ||
| 603 | __le32 channels_max; /* max channels */ | ||
| 604 | __le32 periods_min; /* min number of periods */ | ||
| 605 | __le32 periods_max; /* max number of periods */ | ||
| 606 | __le32 period_size_min; /* min period size bytes */ | ||
| 607 | __le32 period_size_max; /* max period size bytes */ | ||
| 608 | __le32 buffer_size_min; /* min buffer size bytes */ | ||
| 609 | __le32 buffer_size_max; /* max buffer size bytes */ | ||
| 610 | } __packed; | ||
| 611 | |||
| 612 | /* PCM v4 */ | ||
| 613 | struct snd_soc_tplg_pcm_v4 { | ||
| 614 | __le32 size; /* in bytes of this structure */ | ||
| 615 | char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | ||
| 616 | char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; | ||
| 617 | __le32 pcm_id; /* unique ID - used to match with DAI link */ | ||
| 618 | __le32 dai_id; /* unique ID - used to match */ | ||
| 619 | __le32 playback; /* supports playback mode */ | ||
| 620 | __le32 capture; /* supports capture mode */ | ||
| 621 | __le32 compress; /* 1 = compressed; 0 = PCM */ | ||
| 622 | struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* for DAI link */ | ||
| 623 | __le32 num_streams; /* number of streams */ | ||
| 624 | struct snd_soc_tplg_stream_caps_v4 caps[2]; /* playback and capture for DAI */ | ||
| 625 | } __packed; | ||
| 626 | |||
| 627 | /* Physical link config v4 */ | ||
| 628 | struct snd_soc_tplg_link_config_v4 { | ||
| 629 | __le32 size; /* in bytes of this structure */ | ||
| 630 | __le32 id; /* unique ID - used to match */ | ||
| 631 | struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX]; /* supported configs playback and captrure */ | ||
| 632 | __le32 num_streams; /* number of streams */ | ||
| 633 | } __packed; | ||
| 634 | |||
| 635 | #endif | 579 | #endif |
| @@ -165,78 +165,4 @@ enum skl_tuple_type { · 164 unmodified lines | |||
| 165 | SKL_TYPE_DATA | 165 | SKL_TYPE_DATA |
| 166 | }; | 166 | }; |
| 167 | 167 | ||
| 168 | /* v4 configuration data */ | ||
| 169 | |||
| 170 | struct skl_dfw_v4_module_pin { | ||
| 171 | __u16 module_id; | ||
| 172 | __u16 instance_id; | ||
| 173 | } __packed; | ||
| 174 | |||
| 175 | struct skl_dfw_v4_module_fmt { | ||
| 176 | __u32 channels; | ||
| 177 | __u32 freq; | ||
| 178 | __u32 bit_depth; | ||
| 179 | __u32 valid_bit_depth; | ||
| 180 | __u32 ch_cfg; | ||
| 181 | __u32 interleaving_style; | ||
| 182 | __u32 sample_type; | ||
| 183 | __u32 ch_map; | ||
| 184 | } __packed; | ||
| 185 | |||
| 186 | struct skl_dfw_v4_module_caps { | ||
| 187 | __u32 set_params:2; | ||
| 188 | __u32 rsvd:30; | ||
| 189 | __u32 param_id; | ||
| 190 | __u32 caps_size; | ||
| 191 | __u32 caps[HDA_SST_CFG_MAX]; | ||
| 192 | } __packed; | ||
| 193 | |||
| 194 | struct skl_dfw_v4_pipe { | ||
| 195 | __u8 pipe_id; | ||
| 196 | __u8 pipe_priority; | ||
| 197 | __u16 conn_type:4; | ||
| 198 | __u16 rsvd:4; | ||
| 199 | __u16 memory_pages:8; | ||
| 200 | } __packed; | ||
| 201 | |||
| 202 | struct skl_dfw_v4_module { | ||
| 203 | char uuid[SKL_UUID_STR_SZ]; | ||
| 204 | |||
| 205 | __u16 module_id; | ||
| 206 | __u16 instance_id; | ||
| 207 | __u32 max_mcps; | ||
| 208 | __u32 mem_pages; | ||
| 209 | __u32 obs; | ||
| 210 | __u32 ibs; | ||
| 211 | __u32 vbus_id; | ||
| 212 | |||
| 213 | __u32 max_in_queue:8; | ||
| 214 | __u32 max_out_queue:8; | ||
| 215 | __u32 time_slot:8; | ||
| 216 | __u32 core_id:4; | ||
| 217 | __u32 rsvd1:4; | ||
| 218 | |||
| 219 | __u32 module_type:8; | ||
| 220 | __u32 conn_type:4; | ||
| 221 | __u32 dev_type:4; | ||
| 222 | __u32 hw_conn_type:4; | ||
| 223 | __u32 rsvd2:12; | ||
| 224 | |||
| 225 | __u32 params_fixup:8; | ||
| 226 | __u32 converter:8; | ||
| 227 | __u32 input_pin_type:1; | ||
| 228 | __u32 output_pin_type:1; | ||
| 229 | __u32 is_dynamic_in_pin:1; | ||
| 230 | __u32 is_dynamic_out_pin:1; | ||
| 231 | __u32 is_loadable:1; | ||
| 232 | __u32 rsvd3:11; | ||
| 233 | |||
| 234 | struct skl_dfw_v4_pipe pipe; | ||
| 235 | struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE]; | ||
| 236 | struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE]; | ||
| 237 | struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE]; | ||
| 238 | struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE]; | ||
| 239 | struct skl_dfw_v4_module_caps caps; | ||
| 240 | } __packed; | ||
| 241 | |||
| 242 | #endif | 168 | #endif |