Pull sound updates from Takashi Iwai: "This was a relatively calm development cycle. Most of changes are rather small device-specific fixes and enhancements. The only significant changes in ALSA core are code refactoring with the recent cleanup infrastructure, which should bring no functionality changes. Some highlights below: Core: - Lots of cleanups in ALSA core code with automatic kfree cleanup and locking guard macros - New ALSA core kunit test ASoC: - SoundWire support for AMD ACP 6.3 systems - Support for reporting version information for AVS firmware - Support DSPless mode for Intel Soundwire systems - Support for configuring CS35L56 amplifiers using EFI calibration data - Log which component is being operated on as part of power management trace events. - Support for Microchip SAM9x7, NXP i.MX95 and Qualcomm WCD939x HD- and USB-audio: - More Cirrus HD-audio codec support - TAS2781 HD-audio codec fixes - Scarlett2 mixer fixes Others: - Enhancement of virtio driver for audio control supports - Cleanups of legacy PM code with new macros - Firewire sound updates" * tag 'sound-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (307 commits) ALSA: usb-audio: Stop parsing channels bits when all channels are found. ALSA: hda/tas2781: remove unnecessary runtime_pm calls ALSA: hda/realtek - ALC236 fix volume mute & mic mute LED on some HP models ALSA: aaci: Delete unused variable in aaci_do_suspend ALSA: scarlett2: Fix Scarlett 4th Gen input gain range again ALSA: scarlett2: Fix Scarlett 4th Gen input gain range ALSA: scarlett2: Fix Scarlett 4th Gen autogain status values ALSA: scarlett2: Fix Scarlett 4th Gen 4i4 low-voltage detection ALSA: hda/tas2781: restore power state after system_resume ALSA: hda/tas2781: do not call pm_runtime_force_* in system_resume/suspend ALSA: hda/tas2781: do not reset cur_* values in runtime_suspend ALSA: hda/tas2781: add lock to system_suspend ALSA: hda/tas2781: use dev_dbg in system_resume ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops platform/x86: serial-multi-instantiate: Add support for CS35L54 and CS35L57 ALSA: hda: cs35l56: Add support for CS35L54 and CS35L57 ASoC: cs35l56: Add support for CS35L54 and CS35L57 ASoC: Intel: catpt: Carefully use PCI bitwise constants ALSA: hda: hda_component: Include sound/hda_codec.h ALSA: hda: hda_component: Add missing #include guards ...
Showing the changes to include/uapi (3 of 344 files). Show all
Unified · Split
| @@ -7,6 +7,14 @@ · 6 unmodified lines | ||
| 7 | 7 | |
| 8 | 8 | #include <linux/virtio_types.h> |
| 9 | 9 | |
| 10 | +/******************************************************************************* | |
| 11 | + * FEATURE BITS | |
| 12 | + */ | |
| 13 | +enum { | |
| 14 | + /* device supports control elements */ | |
| 15 | + VIRTIO_SND_F_CTLS = 0 | |
| 16 | +}; | |
| 17 | + | |
| 10 | 18 | /******************************************************************************* |
| 11 | 19 | * CONFIGURATION SPACE |
| 12 | 20 | */ |
| @@ -17,6 +25,8 @@ struct virtio_snd_config { · 4 unmodified lines | ||
| 17 | 25 | __le32 streams; |
| 18 | 26 | /* # of available channel maps */ |
| 19 | 27 | __le32 chmaps; |
| 28 | + /* # of available control elements */ | |
| 29 | + __le32 controls; | |
| 20 | 30 | }; |
| 21 | 31 | |
| 22 | 32 | enum { |
| @@ -55,6 +65,15 @@ enum { · 32 unmodified lines | ||
| 55 | 65 | /* channel map control request types */ |
| 56 | 66 | VIRTIO_SND_R_CHMAP_INFO = 0x0200, |
| 57 | 67 | |
| 68 | + /* control element request types */ | |
| 69 | + VIRTIO_SND_R_CTL_INFO = 0x0300, | |
| 70 | + VIRTIO_SND_R_CTL_ENUM_ITEMS, | |
| 71 | + VIRTIO_SND_R_CTL_READ, | |
| 72 | + VIRTIO_SND_R_CTL_WRITE, | |
| 73 | + VIRTIO_SND_R_CTL_TLV_READ, | |
| 74 | + VIRTIO_SND_R_CTL_TLV_WRITE, | |
| 75 | + VIRTIO_SND_R_CTL_TLV_COMMAND, | |
| 76 | + | |
| 58 | 77 | /* jack event types */ |
| 59 | 78 | VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000, |
| 60 | 79 | VIRTIO_SND_EVT_JACK_DISCONNECTED, |
| @@ -63,6 +82,9 @@ enum { · 2 unmodified lines | ||
| 63 | 82 | VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100, |
| 64 | 83 | VIRTIO_SND_EVT_PCM_XRUN, |
| 65 | 84 | |
| 85 | + /* control element event types */ | |
| 86 | + VIRTIO_SND_EVT_CTL_NOTIFY = 0x1200, | |
| 87 | + | |
| 66 | 88 | /* common status codes */ |
| 67 | 89 | VIRTIO_SND_S_OK = 0x8000, |
| 68 | 90 | VIRTIO_SND_S_BAD_MSG, |
| @@ -331,4 +353,136 @@ struct virtio_snd_chmap_info { · 262 unmodified lines | ||
| 331 | 353 | __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE]; |
| 332 | 354 | }; |
| 333 | 355 | |
| 356 | +/******************************************************************************* | |
| 357 | + * CONTROL ELEMENTS MESSAGES | |
| 358 | + */ | |
| 359 | +struct virtio_snd_ctl_hdr { | |
| 360 | + /* VIRTIO_SND_R_CTL_XXX */ | |
| 361 | + struct virtio_snd_hdr hdr; | |
| 362 | + /* 0 ... virtio_snd_config::controls - 1 */ | |
| 363 | + __le32 control_id; | |
| 364 | +}; | |
| 365 | + | |
| 366 | +/* supported roles for control elements */ | |
| 367 | +enum { | |
| 368 | + VIRTIO_SND_CTL_ROLE_UNDEFINED = 0, | |
| 369 | + VIRTIO_SND_CTL_ROLE_VOLUME, | |
| 370 | + VIRTIO_SND_CTL_ROLE_MUTE, | |
| 371 | + VIRTIO_SND_CTL_ROLE_GAIN | |
| 372 | +}; | |
| 373 | + | |
| 374 | +/* supported value types for control elements */ | |
| 375 | +enum { | |
| 376 | + VIRTIO_SND_CTL_TYPE_BOOLEAN = 0, | |
| 377 | + VIRTIO_SND_CTL_TYPE_INTEGER, | |
| 378 | + VIRTIO_SND_CTL_TYPE_INTEGER64, | |
| 379 | + VIRTIO_SND_CTL_TYPE_ENUMERATED, | |
| 380 | + VIRTIO_SND_CTL_TYPE_BYTES, | |
| 381 | + VIRTIO_SND_CTL_TYPE_IEC958 | |
| 382 | +}; | |
| 383 | + | |
| 384 | +/* supported access rights for control elements */ | |
| 385 | +enum { | |
| 386 | + VIRTIO_SND_CTL_ACCESS_READ = 0, | |
| 387 | + VIRTIO_SND_CTL_ACCESS_WRITE, | |
| 388 | + VIRTIO_SND_CTL_ACCESS_VOLATILE, | |
| 389 | + VIRTIO_SND_CTL_ACCESS_INACTIVE, | |
| 390 | + VIRTIO_SND_CTL_ACCESS_TLV_READ, | |
| 391 | + VIRTIO_SND_CTL_ACCESS_TLV_WRITE, | |
| 392 | + VIRTIO_SND_CTL_ACCESS_TLV_COMMAND | |
| 393 | +}; | |
| 394 | + | |
| 395 | +struct virtio_snd_ctl_info { | |
| 396 | + /* common header */ | |
| 397 | + struct virtio_snd_info hdr; | |
| 398 | + /* element role (VIRTIO_SND_CTL_ROLE_XXX) */ | |
| 399 | + __le32 role; | |
| 400 | + /* element value type (VIRTIO_SND_CTL_TYPE_XXX) */ | |
| 401 | + __le32 type; | |
| 402 | + /* element access right bit map (1 << VIRTIO_SND_CTL_ACCESS_XXX) */ | |
| 403 | + __le32 access; | |
| 404 | + /* # of members in the element value */ | |
| 405 | + __le32 count; | |
| 406 | + /* index for an element with a non-unique name */ | |
| 407 | + __le32 index; | |
| 408 | + /* name identifier string for the element */ | |
| 409 | + __u8 name[44]; | |
| 410 | + /* additional information about the element's value */ | |
| 411 | + union { | |
| 412 | + /* VIRTIO_SND_CTL_TYPE_INTEGER */ | |
| 413 | + struct { | |
| 414 | + /* minimum supported value */ | |
| 415 | + __le32 min; | |
| 416 | + /* maximum supported value */ | |
| 417 | + __le32 max; | |
| 418 | + /* fixed step size for value (0 = variable size) */ | |
| 419 | + __le32 step; | |
| 420 | + } integer; | |
| 421 | + /* VIRTIO_SND_CTL_TYPE_INTEGER64 */ | |
| 422 | + struct { | |
| 423 | + /* minimum supported value */ | |
| 424 | + __le64 min; | |
| 425 | + /* maximum supported value */ | |
| 426 | + __le64 max; | |
| 427 | + /* fixed step size for value (0 = variable size) */ | |
| 428 | + __le64 step; | |
| 429 | + } integer64; | |
| 430 | + /* VIRTIO_SND_CTL_TYPE_ENUMERATED */ | |
| 431 | + struct { | |
| 432 | + /* # of options supported for value */ | |
| 433 | + __le32 items; | |
| 434 | + } enumerated; | |
| 435 | + } value; | |
| 436 | +}; | |
| 437 | + | |
| 438 | +struct virtio_snd_ctl_enum_item { | |
| 439 | + /* option name */ | |
| 440 | + __u8 item[64]; | |
| 441 | +}; | |
| 442 | + | |
| 443 | +struct virtio_snd_ctl_iec958 { | |
| 444 | + /* AES/IEC958 channel status bits */ | |
| 445 | + __u8 status[24]; | |
| 446 | + /* AES/IEC958 subcode bits */ | |
| 447 | + __u8 subcode[147]; | |
| 448 | + /* nothing */ | |
| 449 | + __u8 pad; | |
| 450 | + /* AES/IEC958 subframe bits */ | |
| 451 | + __u8 dig_subframe[4]; | |
| 452 | +}; | |
| 453 | + | |
| 454 | +struct virtio_snd_ctl_value { | |
| 455 | + union { | |
| 456 | + /* VIRTIO_SND_CTL_TYPE_BOOLEAN|INTEGER value */ | |
| 457 | + __le32 integer[128]; | |
| 458 | + /* VIRTIO_SND_CTL_TYPE_INTEGER64 value */ | |
| 459 | + __le64 integer64[64]; | |
| 460 | + /* VIRTIO_SND_CTL_TYPE_ENUMERATED value (option indexes) */ | |
| 461 | + __le32 enumerated[128]; | |
| 462 | + /* VIRTIO_SND_CTL_TYPE_BYTES value */ | |
| 463 | + __u8 bytes[512]; | |
| 464 | + /* VIRTIO_SND_CTL_TYPE_IEC958 value */ | |
| 465 | + struct virtio_snd_ctl_iec958 iec958; | |
| 466 | + } value; | |
| 467 | +}; | |
| 468 | + | |
| 469 | +/* supported event reason types */ | |
| 470 | +enum { | |
| 471 | + /* element's value has changed */ | |
| 472 | + VIRTIO_SND_CTL_EVT_MASK_VALUE = 0, | |
| 473 | + /* element's information has changed */ | |
| 474 | + VIRTIO_SND_CTL_EVT_MASK_INFO, | |
| 475 | + /* element's metadata has changed */ | |
| 476 | + VIRTIO_SND_CTL_EVT_MASK_TLV | |
| 477 | +}; | |
| 478 | + | |
| 479 | +struct virtio_snd_ctl_event { | |
| 480 | + /* VIRTIO_SND_EVT_CTL_NOTIFY */ | |
| 481 | + struct virtio_snd_hdr hdr; | |
| 482 | + /* 0 ... virtio_snd_config::controls - 1 */ | |
| 483 | + __le16 control_id; | |
| 484 | + /* event reason bit map (1 << VIRTIO_SND_CTL_EVT_MASK_XXX) */ | |
| 485 | + __le16 mask; | |
| 486 | +}; | |
| 487 | + | |
| 334 | 488 | #endif /* VIRTIO_SND_IF_H */ |
| @@ -19,6 +19,8 @@ enum avs_tplg_token { · 18 unmodified lines | ||
| 19 | 19 | AVS_TKN_MANIFEST_NUM_MODCFGS_EXT_U32 = 6, |
| 20 | 20 | AVS_TKN_MANIFEST_NUM_PPLCFGS_U32 = 7, |
| 21 | 21 | AVS_TKN_MANIFEST_NUM_BINDINGS_U32 = 8, |
| 22 | + AVS_TKN_MANIFEST_NUM_CONDPATH_TMPLS_U32 = 9, | |
| 23 | + AVS_TKN_MANIFEST_NUM_INIT_CONFIGS_U32 = 10, | |
| 22 | 24 | |
| 23 | 25 | /* struct avs_tplg_library */ |
| 24 | 26 | AVS_TKN_LIBRARY_ID_U32 = 101, |
| @@ -109,6 +111,8 @@ enum avs_tplg_token { · 84 unmodified lines | ||
| 109 | 111 | AVS_TKN_MOD_PROC_DOMAIN_U8 = 1705, |
| 110 | 112 | AVS_TKN_MOD_MODCFG_EXT_ID_U32 = 1706, |
| 111 | 113 | AVS_TKN_MOD_KCONTROL_ID_U32 = 1707, |
| 114 | + AVS_TKN_MOD_INIT_CONFIG_NUM_IDS_U32 = 1708, | |
| 115 | + AVS_TKN_MOD_INIT_CONFIG_ID_U32 = 1709, | |
| 112 | 116 | |
| 113 | 117 | /* struct avs_tplg_path_template */ |
| 114 | 118 | AVS_TKN_PATH_TMPL_ID_U32 = 1801, |
| @@ -125,6 +129,11 @@ enum avs_tplg_token { · 10 unmodified lines | ||
| 125 | 129 | |
| 126 | 130 | /* struct avs_tplg_kcontrol */ |
| 127 | 131 | AVS_TKN_KCONTROL_ID_U32 = 2301, |
| 132 | + | |
| 133 | + /* struct avs_tplg_init_config */ | |
| 134 | + AVS_TKN_INIT_CONFIG_ID_U32 = 2401, | |
| 135 | + AVS_TKN_INIT_CONFIG_PARAM_U8 = 2402, | |
| 136 | + AVS_TKN_INIT_CONFIG_LENGTH_U32 = 2403, | |
| 128 | 137 | }; |
| 129 | 138 | |
| 130 | 139 | #endif |
| @@ -218,4 +218,8 @@ · 217 unmodified lines | ||
| 218 | 218 | #define SOF_TKN_IMX_MICFIL_RATE 2000 |
| 219 | 219 | #define SOF_TKN_IMX_MICFIL_CH 2001 |
| 220 | 220 | |
| 221 | +/* ACP SDW */ | |
| 222 | +#define SOF_TKN_AMD_ACP_SDW_RATE 2100 | |
| 223 | +#define SOF_TKN_AMD_ACP_SDW_CH 2101 | |
| 224 | + | |
| 221 | 225 | #endif |