Support both DSD LE/BE Amanero firmware versions
diff mbox

Message ID 1482011501-6723-1-git-send-email-jussi@sonarnerd.net
State New
Headers show

Commit Message

Jussi Laako Dec. 17, 2016, 9:51 p.m. UTC
Add DSD support for both little endian (DSD_U32_LE) and big endian
(DSD_U32_BE) version of the Amanero firmware.

Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
---
 sound/usb/quirks.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Takashi Iwai Dec. 28, 2016, 3:07 p.m. UTC | #1
On Sat, 17 Dec 2016 22:51:41 +0100,
Jussi Laako wrote:
> 
> Add DSD support for both little endian (DSD_U32_LE) and big endian
> (DSD_U32_BE) version of the Amanero firmware.
> 
> Signed-off-by: Jussi Laako <jussi@sonarnerd.net>

Applied, thanks.


Takashi


> ---
>  sound/usb/quirks.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index b3fd238..f5c68ea 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1359,6 +1359,21 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
>  		if (fp->altsetting == 3)
>  			return SNDRV_PCM_FMTBIT_DSD_U32_BE;
>  		break;
> +
> +	/* Amanero Combo384 USB interface with native DSD support */
> +	case USB_ID(0x16d0, 0x071a):
> +		if (fp->altsetting == 2) {
> +			switch (chip->dev->descriptor.bcdDevice) {
> +			case 0x199:
> +				return SNDRV_PCM_FMTBIT_DSD_U32_LE;
> +			case 0x19b:
> +				return SNDRV_PCM_FMTBIT_DSD_U32_BE;
> +			default:
> +				break;
> +			}
> +		}
> +		break;
> +
>  	default:
>  		break;
>  	}
> -- 
> 2.7.4
>

Patch
diff mbox

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index b3fd238..f5c68ea 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1359,6 +1359,21 @@  u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
 		if (fp->altsetting == 3)
 			return SNDRV_PCM_FMTBIT_DSD_U32_BE;
 		break;
+
+	/* Amanero Combo384 USB interface with native DSD support */
+	case USB_ID(0x16d0, 0x071a):
+		if (fp->altsetting == 2) {
+			switch (chip->dev->descriptor.bcdDevice) {
+			case 0x199:
+				return SNDRV_PCM_FMTBIT_DSD_U32_LE;
+			case 0x19b:
+				return SNDRV_PCM_FMTBIT_DSD_U32_BE;
+			default:
+				break;
+			}
+		}
+		break;
+
 	default:
 		break;
 	}