10 Replies Latest reply on Mar 10, 2015 4:10 AM by Niise

    Is anyone succeed on running edison with native DSD support?

    Goldenwave

      hello everyone, i need help for the native DSD support on the edison.

      i've following the MPD guide here: Intel Edison mini breakout board w/ MPD

      and using edison for hearing music, it work great, but ALSA and MPD doesn't support native DSD format, with playing DSD file, i can only use " dop 'yes' " option in the mpd.conf.

      it only support music format up to DSD128.

      playing DSD256 or higher need native DSD to work.

      someone set up a git for modify MPD, ALSA and the kernel work with native DSD, it can be found here: https://github.com/lintweaker

      i've already complie the MPD and Alsa-lib following the guide of this git, and with the kernel patch here: xmos-native-dsd/SRPMS/patches/kernel at master · lintweaker/xmos-native-dsd · GitHub

      i also complie the kernel without error, but after i put the kernel into edison, it brick after showing "kernel loading".

      is anyone know how to solve this?

       

      BTW: the new kernel on kernel.org (3.19) already support native DSD, source code can be found here: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/sound/usb/quirks.c?id=refs/tags/v3.19

      "

      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 */
      if (fp->altsetting == 2)
      return SNDRV_PCM_FMTBIT_DSD_U32_BE;
      break;
      /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
      case USB_ID(0x20b1, 0x2009):
      if (fp->altsetting == 3)
      return SNDRV_PCM_FMTBIT_DSD_U32_BE;
      break;
      default:
      break;
      }

      /* Denon/Marantz devices with USB DAC functionality */
      switch (chip->usb_id) {
      case USB_ID(0x154e, 0x3005): /* Marantz HD-DAC1 */
      case USB_ID(0x154e, 0x3006): /* Marantz SA-14S1 */
      if (fp->altsetting == 2)
      return SNDRV_PCM_FMTBIT_DSD_U32_BE;
      break;
      default:
      break;
      }

      return 0;
      }


      don't know why intel use 3.10.17 on edison, is so old, anyone could make some new kernel running?