v18 LibreELEC Testbuilds for x86_64 (Kodi 18.0)
(2018-07-25, 07:56)Milhouse Wrote:
(2018-07-24, 19:54)J.L.C. Wrote: MPD runs and works fine on the official builds, but due to the older kernel in those builds, DSD files aren't passed to the DAC.

I've uploaded a new version of service.multimedia.mpd to the addons folder - totally untested.     
Working perfectly! Thank you!!!!

What is the best way to submit a change for the kernel?

I'd like to add the following to .../sound/usb/quirks.c to enable a couple of USB DACs, not yet listed in the mainline linux kernel
Code:
/*
 * snd_usb_interface_dsd_format_quirks() is called from format.c to
 * augment the PCM format bit-field for DSD types. The UAC standards
 * don't have a designated bit field to denote DSD-capable interfaces,
 * hence all hardware that is known to support this format has to be
 * listed here.
 */
u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
                    struct audioformat *fp,
                    unsigned int sample_bytes)
{
    /* Playback Designs */
    if (le16_to_cpu(chip->dev->descriptor.idVendor) == 0x23ba) {
        switch (fp->altsetting) {
        case 1:
            fp->dsd_dop = true;
            return SNDRV_PCM_FMTBIT_DSD_U16_LE;
        case 2:
            fp->dsd_bitrev = true;
            return SNDRV_PCM_FMTBIT_DSD_U8;
        case 3:
            fp->dsd_bitrev = true;
            return SNDRV_PCM_FMTBIT_DSD_U16_LE;
        }
    }

    /* XMOS based USB DACs */
    switch (chip->usb_id) {
    case USB_ID(0x20b1, 0x3008): /* iFi Audio micro/nano iDSD */
    case USB_ID(0x20b1, 0x2008): /* Matrix Audio X-Sabre */
    case USB_ID(0x20b1, 0x300a): /* Matrix Audio Mini-i Pro */
    case USB_ID(0x22d9, 0x0416): /* OPPO HA-1 */
    case USB_ID(0x2772, 0x0230): /* Pro-Ject Pre Box S2 Digital */
        if (fp->altsetting == 2)
            return SNDRV_PCM_FMTBIT_DSD_U32_BE;
        break;

    case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U */
    case USB_ID(0x152a, 0x8750): /* Topping DX7s */
    case USB_ID(0x16d0, 0x09dd): /* Encore mDSD */
    case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
    case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */
    case USB_ID(0x20b1, 0x3023): /* Aune X1S 32BIT/384 DSD DAC */
    case USB_ID(0x2616, 0x0106): /* PS Audio NuWave DAC */
        if (fp->altsetting == 3)
            return SNDRV_PCM_FMTBIT_DSD_U32_BE;
        break;
    default:
        break;
    }

    /* Denon/Marantz devices with USB DAC functionality */
    if (is_marantz_denon_dac(chip->usb_id)) {
        if (fp->altsetting == 2)
            return SNDRV_PCM_FMTBIT_DSD_U32_BE;
    }

    return 0;
}


Messages In This Thread
RE: LibreELEC Testbuilds for x86_64 (Kodi 18.0) - by J.L.C. - 2018-07-25, 14:29
Logout Mark Read Team Forum Stats Members Help
LibreELEC Testbuilds for x86_64 (Kodi 18.0)24