[alsa-devel] [PATCH] ALSA: usb-audio: Fix Scarlett 6i6 Gen 2 port data

Markus Schroetter project.m.schroetter at gmail.com
Thu Nov 21 09:52:10 CET 2019


> The s6i6_gen2_info.ports[] array had the Mixer and PCM port type
> entries in the wrong place. Use designators to explicitly specify the
> array elements being set.
>
> Fixes: 9e4d5c1be21f ("ALSA: usb-audio: Scarlett Gen 2 mixer interface")
> Signed-off-by: Geoffrey D. Bennett <g at b4.vu <https://mailman.alsa-project.org/mailman/listinfo/alsa-devel>>
> Reported-by: Jonas Berlin <kernel at xkr47.space <https://mailman.alsa-project.org/mailman/listinfo/alsa-devel>>
> Tested-by: Alex Fellows <alex.fellows at gmail.com <https://mailman.alsa-project.org/mailman/listinfo/alsa-devel>>
Tested-by: Markus Schroetter <project.m.schroetter at gmail.com>
> ---
> Hi Takashi,
>
> Is there something special I need to do to mark this as a bug fix and
> request this go into 5.4?
>
> Thanks,
> Geoffrey.
>
>  sound/usb/mixer_scarlett_gen2.c | 36 ++++++++++++++++-----------------
>  1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/sound/usb/mixer_scarlett_gen2.c b/sound/usb/mixer_scarlett_gen2.c
> index 7d460b1f1735..94b903d95afa 100644
> --- a/sound/usb/mixer_scarlett_gen2.c
> +++ b/sound/usb/mixer_scarlett_gen2.c
> @@ -261,34 +261,34 @@ static const struct scarlett2_device_info s6i6_gen2_info = {
>  	},
>  
>  	.ports = {
> -		{
> +		[SCARLETT2_PORT_TYPE_NONE] = {
>  			.id = 0x000,
>  			.num = { 1, 0, 8, 8, 8 },
>  			.src_descr = "Off",
>  			.src_num_offset = 0,
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_ANALOGUE] = {
>  			.id = 0x080,
>  			.num = { 4, 4, 4, 4, 4 },
>  			.src_descr = "Analogue %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "Analogue Output %02d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_SPDIF] = {
>  			.id = 0x180,
>  			.num = { 2, 2, 2, 2, 2 },
>  			.src_descr = "S/PDIF %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "S/PDIF Output %d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_MIX] = {
>  			.id = 0x300,
>  			.num = { 10, 18, 18, 18, 18 },
>  			.src_descr = "Mix %c",
>  			.src_num_offset = 65,
>  			.dst_descr = "Mixer Input %02d Capture"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_PCM] = {
>  			.id = 0x600,
>  			.num = { 6, 6, 6, 6, 6 },
>  			.src_descr = "PCM %d",
> @@ -317,44 +317,44 @@ static const struct scarlett2_device_info s18i8_gen2_info = {
>  	},
>  
>  	.ports = {
> -		{
> +		[SCARLETT2_PORT_TYPE_NONE] = {
>  			.id = 0x000,
>  			.num = { 1, 0, 8, 8, 4 },
>  			.src_descr = "Off",
>  			.src_num_offset = 0,
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_ANALOGUE] = {
>  			.id = 0x080,
>  			.num = { 8, 6, 6, 6, 6 },
>  			.src_descr = "Analogue %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "Analogue Output %02d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_SPDIF] = {
> +			.id = 0x180,
>  			/* S/PDIF outputs aren't available at 192KHz
>  			 * but are included in the USB mux I/O
>  			 * assignment message anyway
>  			 */
> -			.id = 0x180,
>  			.num = { 2, 2, 2, 2, 2 },
>  			.src_descr = "S/PDIF %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "S/PDIF Output %d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_ADAT] = {
>  			.id = 0x200,
>  			.num = { 8, 0, 0, 0, 0 },
>  			.src_descr = "ADAT %d",
>  			.src_num_offset = 1,
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_MIX] = {
>  			.id = 0x300,
>  			.num = { 10, 18, 18, 18, 18 },
>  			.src_descr = "Mix %c",
>  			.src_num_offset = 65,
>  			.dst_descr = "Mixer Input %02d Capture"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_PCM] = {
>  			.id = 0x600,
>  			.num = { 20, 18, 18, 14, 10 },
>  			.src_descr = "PCM %d",
> @@ -387,20 +387,20 @@ static const struct scarlett2_device_info s18i20_gen2_info = {
>  	},
>  
>  	.ports = {
> -		{
> +		[SCARLETT2_PORT_TYPE_NONE] = {
>  			.id = 0x000,
>  			.num = { 1, 0, 8, 8, 6 },
>  			.src_descr = "Off",
>  			.src_num_offset = 0,
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_ANALOGUE] = {
>  			.id = 0x080,
>  			.num = { 8, 10, 10, 10, 10 },
>  			.src_descr = "Analogue %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "Analogue Output %02d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_SPDIF] = {
>  			/* S/PDIF outputs aren't available at 192KHz
>  			 * but are included in the USB mux I/O
>  			 * assignment message anyway
> @@ -411,21 +411,21 @@ static const struct scarlett2_device_info s18i20_gen2_info = {
>  			.src_num_offset = 1,
>  			.dst_descr = "S/PDIF Output %d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_ADAT] = {
>  			.id = 0x200,
>  			.num = { 8, 8, 8, 4, 0 },
>  			.src_descr = "ADAT %d",
>  			.src_num_offset = 1,
>  			.dst_descr = "ADAT Output %d Playback"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_MIX] = {
>  			.id = 0x300,
>  			.num = { 10, 18, 18, 18, 18 },
>  			.src_descr = "Mix %c",
>  			.src_num_offset = 65,
>  			.dst_descr = "Mixer Input %02d Capture"
>  		},
> -		{
> +		[SCARLETT2_PORT_TYPE_PCM] = {
>  			.id = 0x600,
>  			.num = { 20, 18, 18, 14, 10 },
>  			.src_descr = "PCM %d",
> -- 
> 2.20.1



More information about the Alsa-devel mailing list