{"id":10258,"date":"2025-01-25T22:10:13","date_gmt":"2025-01-25T13:10:13","guid":{"rendered":"https:\/\/y2tech.net\/blog\/?p=10258"},"modified":"2025-10-15T06:47:41","modified_gmt":"2025-10-14T21:47:41","slug":"multi-channel-playback-with-lightmpd-botic-system-vol-1","status":"publish","type":"post","link":"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/multi-channel-playback-with-lightmpd-botic-system-vol-1-10258\/","title":{"rendered":"LightMPD-Botic\u3067PCM\u306eI2S\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b"},"content":{"rendered":"<h3>LightMPD-Botic\u74b0\u5883\u3067\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u6642\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u554f\u984c\u304c\u3088\u3046\u3084\u304f\u89e3\u6c7a<\/h3>\r\n<br>\r\n<div style=\"width: 100%; margin: 0 auto; text-align: center;\">\r\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/Botic-Multi-ch.jpg\" alt=\"LightMPD-Botic 8ch DAC System \" width=\"640\" height=\"424\" class=\"size-full wp-image-10289\" srcset=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/Botic-Multi-ch.jpg 640w, https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/Botic-Multi-ch-320x212.jpg 320w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\r\n<br>\r\n<span>\u81ea\u4f5c\u306eES9038PRO 8ch DAC System\u3067\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u5b9f\u9a13\u4e2d\u306e\u69d8\u5b50<\/span>\r\n<br>\r\n<br>\r\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/ES9038-8ch-DAC.jpg\" alt=\"8ch DAC and BeagleBone Botic Interface Cape\" width=\"640\" height=\"424\" class=\"size-full wp-image-10291\" srcset=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/ES9038-8ch-DAC.jpg 640w, https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/ES9038-8ch-DAC-320x212.jpg 320w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\r\n<br>\r\n<span>ES9038PRO DAC\u30c1\u30c3\u30d7\uff08\u5de6\uff09\u3068Botic\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u57fa\u677f\uff08\u4e2d\u592e\u306e\u8d64\u8272\uff09\u3001DHYINHK\u306e USB 6ch DDI\u57fa\u76e4\uff08\u53f3\u7aef\uff09<\/span>\r\n<br>\r\n<br>\r\n<\/div>\r\n<br>\r\n<p>\u81ea\u4f5c\u306eLightMPD-Botic\u74b0\u5883\u30675.1ch\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30fc\u30bf\u3092I2S\u3067\u518d\u751f\u3059\u308b\u969b\u306b\u3001I2S\u306e\u51fa\u529b\u4fe1\u53f7\u304c\u610f\u56f3\u3057\u305f\u901a\u308a\u306e\u30c1\u30e3\u30cd\u30eb\u5272\u308a\u5f53\u3066\u306b\u306a\u3089\u305a\u3001\u9577\u3044\u9593Botic-I2S\u65b9\u5f0f\u3067\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u304c\u3067\u304d\u305a\u306b\u3044\u305f\u304c\u3001\u5148\u9803\u3088\u3046\u3084\u304f\u3053\u306e\u554f\u984c\u306e\u89e3\u6c7a\u65b9\u6cd5\u3092\u898b\u3064\u3051\u305f\u306e\u3067\u3001\u4eca\u66f4\u306a\u304c\u3089LightMPD-Botic\u74b0\u5883\u3067\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u518d\u751f\u306b\u3064\u3044\u3066\u53d6\u308a\u4e0a\u3052\u308b\u3053\u3068\u306b\u3059\u308b\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u30b5\u30a4\u30c8\u3067LightMPD-Botic\u74b0\u5883\u3067\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u305f\u306e\u306f\u3001\u4eca\u304b\u30896\u5e74\u8fd1\u304f\u3082\u524d\u306e\u3053\u3068\u3067\u3001\u300e<a href=\"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/trying-multi-channel-playback-with-lightmpd-botic-7687\/\" target=\"_blank\">LightMPD-Botic\u3067\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u3092\u8a66\u307f\u308b<\/a>\u300f(2019\u5e744\u670816\u65e5\uff09\u306e\u8a18\u4e8b\u306e\u4e2d\u3067\u3001Botic\u74b0\u5883\u3067\u306f\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u6642\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u304a\u304b\u3057\u306a\u3053\u3068\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u3092\u53d6\u308a\u4e0a\u3052\u305f\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u3082\u66f8\u3044\u3066\u3044\u308b\u3088\u3046\u306b\u3001\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001LightMPD\u3067\u7528\u3044\u3089\u308c\u3066\u3044\u308bMPD\uff08Music Player Daemon) \u3068Linux Kernel\u306e\u30c7\u30d0\u30a4\u30b9\u30c9\u30e9\u30a4\u30d0\u30fc\u7684\u306a\u4f4d\u7f6e\u3065\u3051\u306eBotic\u30e9\u30a4\u30d6\u30e9\u30ea\u30b3\u30fc\u30c9\u306e\u4e2d\u8eab\u3092\u7406\u89e3\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u306e\u3067\u3001\u89e3\u6c7a\u307e\u3067\u304b\u306a\u308a\u6642\u9593\u304c\u304b\u304b\u308b\u3053\u3068\u306f\u60f3\u5b9a\u6e08\u307f\u3060\u3063\u305f\u304c\u3001\u5b9f\u969b\u306b\u89e3\u6c7a\u3059\u308b\u307e\u30676\u5e74\u8fd1\u304f\u3082\u304b\u304b\u308b\u3068\u306f\u601d\u3063\u3066\u3082\u307f\u306a\u304b\u3063\u305f\uff0e<\/p>\r\n<br>\r\n<h4>LightMPD-Botic\u74b0\u5883\u306b\u3064\u3044\u3066\u306e\u304a\u3055\u3089\u3044<\/h4>\r\n<br>\r\n<p>LightMPD\uff08\u6b63\u78ba\u306b\u306f&#8221;lightMPD&#8221;\u304c\u6b63\u3057\u3044\u304c\u3001\u904e\u53bb\u306e\u8a18\u4e8b\u3068\u306e\u95a2\u4fc2\u304c\u3042\u308b\u306e\u3067&#8221;LightMPD&#8221;\u3068\u8a18\u8ff0\u3059\u308b\u3053\u3068\u306b\u3059\u308b\uff09\u3084Botic\u30ab\u30fc\u30cd\u30eb\uff08\u30c9\u30e9\u30a4\u30d0\uff09\u306b\u3064\u3044\u3066\u306f\u3001\u53e4\u304f\u304b\u3089\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u306b\u643a\u308f\u3063\u3066\u304d\u305f\u30b3\u30a2\u306a\u30aa\u30fc\u30c7\u30a3\u30aa\u30de\u30cb\u30a2\u3067\u306a\u3051\u308c\u3070\u3053\u306e\u540d\u524d\u3092\u805e\u3044\u3066\u3082\u30d4\u30f3\u3068\u6765\u306a\u3044\u3068\u306f\u601d\u3046\u304c\u3001\u5f53\u6642\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u754c\u9688\u3067\u306fRaspberry Pi + Volumio + USB DAC\u306e\u7d44\u307f\u5408\u308f\u305b\u304c\u4e00\u822c\u7684\u3067\u3042\u3063\u305f\u4e2d\u3067\u3001BeagleBone\u306eSoC\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u306b\u7d44\u307f\u8fbc\u307e\u308c\u305f\u3001Texas Instruments\u304c\u30c7\u30b8\u30bf\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u5c02\u7528\u306b\u958b\u767a\u3057\u305fMcASP\uff08multichannel audio serial port\uff09\u3068\u3044\u3046\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u7528\u3044\u3066I2S\u3084SPDIF\u4fe1\u53f7\u3092\u51fa\u529b\u3059\u308b\u65b9\u5f0f\u306f\u7279\u7570\u306a\u5b58\u5728\u3060\u3063\u305f\uff0e<\/p>\r\n<br>\r\n<p> McASP\u306b\u95a2\u3057\u3066\u306fTexas Instruments\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8 <a href=\"https:\/\/www.ti.com\/video\/series\/the-multichannel-audio-serial-port--mcasp-primer.html\" target=\"_blank\">&#8220;The multichannel audio serial port (McASP) primer&#8221;<\/a> \u3068\u3044\u3046\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u3042\u308b\u306e\u3067\u3001McASP\u306e\u6982\u8981\u306b\u3064\u3044\u3066\u306f\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u53c2\u7167\u3059\u308b\u3068\u826f\u3044\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<p>LightMPD\u306b\u3064\u3044\u3066\u306f\u3001\u88fd\u4f5c\u8005\u306e\u201d\u30c7\u30b8\u30d5\u30a1\u30a4\u306e\u304a\u3068\u201d\u3055\u3093\u306e<a href=\"https:\/\/sites.google.com\/site\/digififan\/home\" target=\"_blank\">\u30c7\u30b8\u30d5\u30a1\u30a4\u306e\u304a\u3068<\/a>\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u53c2\u7167\u3059\u308b\u3068\u826f\u3044\u3060\u308d\u3046\uff0e\u3053\u306e\u4e2d\u306b\u3001LightMPD\u3092\u7528\u3044\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u74b0\u5883\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u7d39\u4ecb\u3055\u308c\u3066\u3044\u308b\u3002\u5185\u5bb9\u7684\u306b\u306f\u3053\u3053\u6570\u5e74\u66f4\u65b0\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u3060\u304c\u3001LightMPD\u306f\u4eca\u3067\u3082\u611b\u597d\u8005\u304c\u591a\u3044\u306e\u3067\u3001\u3053\u306e\u30da\u30fc\u30b8\u304c\u4eca\u5f8c\u3082\u7dad\u6301\u3055\u308c\u3066\u3044\u304f\u3053\u3068\u3092\u671f\u5f85\u3057\u3066\u3044\u308b\uff0eLightMPD-Botic\u306f\u30c7\u30b8\u30d5\u30a1\u30a4\u306e\u304a\u3068\u3055\u3093\u304c\u3001LightMPD\u3092BeagleBone\u3068Botic\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u7528\u306b\u7279\u5225\u306b\u8a66\u4f5c\u3057\u305f\u3082\u306e\u3060\uff0e<\/p>\r\n<br>\r\n<p>&#8220;Botic&#8221; \u306b\u3064\u3044\u3066\u306f\u3001\u958b\u767a\u8005\u306e &#8220;Miero&#8221;(Miroslav Rudi\u0161in)\u3055\u3093\u304c\u81ea\u5206\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3067\u4f7f\u3044\u65b9\u306b\u95a2\u3059\u308b\u8a73\u3057\u3044\u8a18\u4e8b\u3092\u8f09\u305b\u3066\u3044\u305f\u304c\u3001\u6570\u5e74\u524d\u306b\u3053\u306e\u30b5\u30a4\u30c8\u3092\u9589\u9396\u3057\u3066\u3057\u307e\u3063\u305f\u3088\u3046\u3067\u3001\u73fe\u5728\u306f GitHub\u4e0a\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u6b8b\u9ab8\uff1f\uff08<a href=\"https:\/\/github.com\/miero\/botic-dev\" target=\"_blank\">miero\/botic-dev<\/a>) \u3060\u3051\u304c\u8f9b\u3046\u3058\u3066\u6b8b\u3063\u3066\u3044\u308b\u72b6\u614b\u3060\uff0e\u3068\u308a\u3042\u3048\u305a\u3053\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u6b8b\u9ab8\u304b\u3089\u3001&#8221;Botic&#8221; \u306e\u4e2d\u8eab\u3092\u628a\u63e1\u3057\u3066\u3001\u81ea\u5206\u3067\u7d30\u3005\u3068&#8221;Botic&#8221;\u3082\u3069\u304d\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3066\u884c\u304f\u3057\u304b\u306a\u3044\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<p>\u79c1\u304c\u3053\u308c\u307e\u3067\u306b\u4f7f\u7528\u3057\u3066\u304d\u305f\u5404\u7a2e\u30c7\u30b8\u30bf\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u30b7\u30b9\u30c6\u30e0\u306e\u3046\u3061\u3001\u97f3\u8cea\u7684\u306a\u9762\u3067\u5408\u683c\u70b9\u304c\u5f97\u3089\u308c\u3066\u3044\u308b\u306e\u306f\u5b9f\u306f\u3053\u306eBotic\u74b0\u5883\u7528\u306b\u4f5c\u3089\u308c\u305fLightMPD\u306b\u3088\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u30b7\u30b9\u30c6\u30e0\u3060\u3051\u3060\uff0e\u5e02\u8ca9\u3055\u308c\u3066\u3044\u308bUSB-DAC\u3068\u3057\u3066\u306f\u552f\u4e00\u8cfc\u5165\u3057\u305fDENON USB-300\u3092\u4f7f\u3063\u3066\u306f\u3044\u308b\u304c\u3001\u304b\u306a\u308a\u6539\u9020\u3057\u305f\u72b6\u614b\u3067\u4f7f\u7528\u3057\u3066\u3044\u308b\uff0e\u3053\u306eUSB-300\u306fUSB\u7cfb\u306eDAC\u306e\u63a5\u7d9a\u78ba\u8a8d\u7528\u3068\u3057\u3066\u4f7f\u3063\u3066\u3044\u308b\u7a0b\u5ea6\u3067\u3001\u30e1\u30a4\u30f3\u306fLightMPD\u306b\u3088\u308bI2S\u7cfb\u306eDAC\u30b7\u30b9\u30c6\u30e0\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u4e16\u306e\u4e2d\u306b\u306f\u4f55\u767e\u4e07\u5186\u3082\u3059\u308b\u3088\u3046\u306a\u8d85\u9ad8\u7d1a\u30c7\u30b8\u30bf\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u30b7\u30b9\u30c6\u30e0\u304c\u51fa\u56de\u3063\u3066\u3044\u308b\u304c\u3001\u305d\u306e\u3088\u3046\u306a\u5225\u4e16\u754c\u3068\u306f\u7121\u7e01\u306a\u306e\u3067\u3001\u3053\u308c\u3089\u306e\u9ad8\u7d1a\u6a5f\u306e\u97f3\u8cea\u3068\u8f03\u3079\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u304c\u3001Botic\u74b0\u5883\u7528\u306b\u4f5c\u3089\u308c\u305fLightMPD\u306b\u3088\u308b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u30b7\u30b9\u30c6\u30e0\u306f\u304b\u306a\u308a\u826f\u3044\u7dda\u3092\u3044\u3063\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u601d\u3046\uff0e<\/p>\r\n<br>\r\n<p>\u30a2\u30ca\u30ed\u30b0\u30aa\u30fc\u30c7\u30a3\u30aa\u5168\u76db\u6642\u4ee3\u306b\u8cbb\u7528\u3092\u3042\u307e\u308a\u639b\u3051\u305a\u306b\u3061\u3087\u3063\u3068\u3057\u305f\u30c6\u30af\u30cb\u30c3\u30af\u3067\u97f3\u8cea\u5411\u4e0a\u3092\u76ee\u6307\u3057\u305f\u697d\u3057\u304b\u3063\u305f\u6642\u4ee3\u3092\u7d4c\u9a13\u3057\u3066\u3044\u308b\u4e16\u4ee3\u3068\u3057\u3066\u306f\u3001\u8d85\u9ad8\u7d1a\u54c1\u304b\u30ed\u30fc\u30a8\u30f3\u30c9\u306e\u5927\u91cf\u751f\u7523\u54c1\u3057\u304b\u9078\u629e\u80a2\u304c\u7121\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u72b6\u6cc1\u306f\u6b8b\u5ff5\u3060\uff0e\u552f\u4e00\u306e\u6551\u3044\u306f\u30a2\u30ca\u30ed\u30b0\u30ec\u30b3\u30fc\u30c9\u306e\u5fa9\u6d3b\u304f\u3089\u3044\u3060\u308d\u3046\u304b\uff0e<\/p>\r\n<br>\r\n<p>\u672c\u984c\u3067\u3042\u308b\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306ePCM(DSD)\u97f3\u6e90\u306e\u518d\u751f\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u3068\u3044\u3046\u8a71\u3067\u3042\u308b\u304c\u3001\u809d\u5fc3\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u97f3\u6e90\u3068\u3044\u3046\u7269\u304c\u4e16\u306e\u4e2d\u306b\u6b86\u3069\u51fa\u56de\u3063\u3066\u304a\u3089\u305a\u3001\u5b9f\u9a13\u7684\u306a\u53d6\u308a\u7d44\u307f\u3067\u53ce\u9332\u3055\u308c\u305f\u3082\u306e\u304c\u3001\u4e00\u90e8\u30b3\u30de\u30fc\u30b7\u30e3\u30eb\u30d9\u30fc\u30b9\u3067\u51fa\u56de\u3063\u3066\u3044\u308b\u7a0b\u5ea6\u3060\uff0e<\/p>\r\n<br>\r\n<p>DVD\u3084BlueRay\u30c7\u30a3\u30b9\u30af\u306a\u3069\u306e\u6620\u50cf\u30b3\u30f3\u30c6\u30f3\u30c4\u3068\u3057\u3066\u30b3\u30f3\u30b5\u30fc\u30c8\u306a\u3069\u3092\u53ce\u9332\u3057\u305f\u7269\u306b\u306f5.1ch\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u97f3\u6e90\u304c\u8a18\u9332\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u3044\u304c\u3001\u97f3\u6e90\u305d\u306e\u3082\u306e\u306f\u6620\u50cf\u306e\u304a\u307e\u3051\u7684\u306a\u4f4d\u7f6e\u3065\u3051\u306a\u306e\u3067\u3001Dolby\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f\u97f3\u58f0\u30c7\u30fc\u30bf\u3067\u3001\u7d14\u7c8b\u306a\u30d4\u30e5\u30a2\u30aa\u30fc\u30c7\u30a3\u30aa\u7cfb\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u97f3\u6e90\u30c7\u30fc\u30bf\u3067\u306f\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>\u518d\u751f\u74b0\u5883\u3082\u4e00\u822c\u7684\u306aDVD(BlueRay)\u30d7\u30ec\u30fc\u30e4\u30fc\u3068AV\u30a2\u30f3\u30d7\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u3001\u30db\u30fc\u30e0\u30b7\u30a2\u30bf\u30fc\u306e\u304a\u307e\u3051\u7684\u306a\u518d\u751f\u74b0\u5883\u306a\u306e\u3067\u3001\u30d4\u30e5\u30a2\u30aa\u30fc\u30c7\u30a3\u30aa\u306e\u518d\u751f\u74b0\u5883\u3068\u3057\u3066\u306f\u52a3\u60aa\u306a\u72b6\u6cc1\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u305d\u3093\u306a\u4e2d\u3067\u3001\u4ee5\u524d<a href=\"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/multi-channel-pcm-sound-data-8561\/\" target=\"_blank\">\u300e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30c7\u30b8\u30bf\u30eb\u97f3\u6e90\u3092\u5165\u624b\u300f<\/a>\u306e\u8a18\u4e8b\u3067\u7d39\u4ecb\u3057\u305f\u30012L\u30ec\u30fc\u30d9\u30eb\u304c\u51fa\u3057\u3066\u3044\u308b<a href=\"http:\/\/www.2l.no\/pages\/album\/145.html\" target=\"_blank\">\u201cPOLARITY \u2013 an acoustic jazz project \uff1a Hoff Ensemble\u201d (2L-145-SABD)<\/a>\u306a\u3069\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u3042\u308b\u304f\u3089\u3044\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u201cPOLARITY \u2013 an acoustic jazz project \uff1a Hoff Ensemble\u201d \u306e\u97f3\u6e90\u3092\u5165\u624b\u3057\u3066\u4ee5\u6765\u3001\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306e\u9b45\u529b\u306b\u53d6\u308a\u6191\u304b\u308c\u3066\u3057\u307e\u3063\u305f\uff0e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u74b0\u5883\u3092\u81ea\u5b85\u3067\u6574\u3048\u308b\u306e\u306f\u7d50\u69cb\u9762\u5012\u3067\u624b\u9593\u3068\u8cbb\u7528\u304c\u639b\u304b\u308b\u304c\u3001\u901a\u5e38\u306e\u30b9\u30c6\u30ec\u30aa\u518d\u751f\u3067\u306f\u6c7a\u3057\u3066\u5f97\u3089\u308c\u306a\u3044\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306a\u3089\u3067\u306f\u306e\u81e8\u5834\u611f\u306b\u5727\u5012\u3055\u308c\u308b\uff0e\u3053\u3053\u6570\u5e74\u3001\u30a4\u30de\u30fc\u30b7\u30d6\u97f3\u6e90\u518d\u751f\u304c\u5df7\u3067\u8a71\u984c\u306b\u306a\u3063\u3066\u3044\u308b\u304c\u3001\u3053\u306e\u30a4\u30de\u30fc\u30b7\u30d6\u30b5\u30a6\u30f3\u30c9\u3092\u4e00\u5ea6\u4f53\u9a13\u3057\u305f\u3089\u75c5\u307f\u3064\u304d\u306b\u306a\u308b\u306e\u306f\u9593\u9055\u3044\u306a\u3057\u3060\uff0e\u901a\u5e38\u306eStereo\u97f3\u697d\u518d\u751f\u3068\u306f\u5b8c\u5168\u306b\u7570\u306a\u308b\u7570\u6b21\u5143\u306e\u4e16\u754c\u306e\u3082\u306e\u3067\u3001\u540c\u3058\u571f\u4ff5\u306e\u4e0a\u3067\u6bd4\u8f03\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>\u73fe\u72b6\u3001\u79c1\u306e\u3088\u3046\u306a\u8ca7\u4e4f\u4eba\u304c\u6700\u9ad8\u97f3\u8cea\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u3092\u697d\u3057\u3080\u306b\u306f\u3001LightMPD-Botic\u306b\u3088\u308b\u81ea\u4f5c\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u3057\u304b\u8853\u304c\u306a\u3044\u306e\u3060\uff0e\u3053\u308c\u304c\u9577\u5e74\u79c1\u304cLightMPD-Botic\u306b\u3088\u308b\u81ea\u4f5c\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30b7\u30b9\u30c6\u30e0\u306b\u62d8\u3063\u3066\u304d\u305f\u4e00\u756a\u306e\u7406\u7531\u3060\uff0e<\/p>\r\n<br>\r\n\r\n<p>&#8220;Botic&#8221; \u304c\u5b9f\u969b\u306b\u3069\u306e\u3088\u3046\u306b\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u306b\u3064\u3044\u3066\u306f\u904e\u53bb\u306e\u8a18\u4e8b\u3001<br>\r\n<br>\r\n\u3000\u30fb\u300e<a href=\"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/mastering-linux-rt-kernel-configuration-for-beaglebone-7945\/\" target=\"_blank\">BeagleBone\u7528I2S\u74b0\u5883\u306e\u518d\u69cb\u7bc9\uff08\u30ab\u30fc\u30cd\u30eb\u69cb\u7bc9\u7df4\u7fd2\u7de8\uff09<\/a>\u300f<br>\r\n\u3000\u30fb\u300e<a href=\"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/beaglebone-botic7-reconfiguration-procedures-vol-1-8017\/\" target=\"_blank\">BeagleBone Botic7\u74b0\u5883\u3092\u81ea\u5206\u3067\u518d\u69cb\u7bc9\u3057\u3066\u307f\u308b\uff08\u305d\u306e\uff11\uff09<\/a>\u300f<br>\r\n\u3000\u30fb\u300e<a href=\"https:\/\/y2tech.net\/blog\/audio\/digital-audio\/beaglebone-botic7-reconfiguration-procedures-vol-2-8054\/\" target=\"_blank\">BeagleBone Botic7\u74b0\u5883\u3092\u81ea\u5206\u3067\u518d\u69cb\u7bc9\u3057\u3066\u307f\u308b\uff08\u305d\u306e\uff12<\/a>\uff09\u300f<br>\r\n<br>\r\n\u3092\u53c2\u8003\u306b\u3059\u308b\u3068\u826f\u3044\u3060\u308d\u3046\uff0e\u3042\u308b\u7a0b\u5ea6\u306eLinux\u30b9\u30ad\u30eb\u304c\u3042\u308c\u3070\u81ea\u5206\u3067Botic\u74b0\u5883\u3092\u7d44\u307f\u8fbc\u3093\u3060Linux\u30ab\u30fc\u30cd\u30eb\u306e\u518d\u69cb\u7bc9\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u8a18\u4e8b\u3092\u66f8\u3044\u305f\u5f53\u6642\u306eLinux\u30ab\u30fc\u30cd\u30eb\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306fV4.8, V4.9\u3067\u3001\u73fe\u5728\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3V6.10\u3068\u306f\u5927\u304d\u304f\u304b\u3051\u96e2\u308c\u3066\u3044\u308b\u304c\u3001\u30aa\u30fc\u30c7\u30a3\u30aa\u7528\u306e\u5c0f\u578b\u30dc\u30fc\u30c9\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u8f09\u305b\u308bLinux\u30ab\u30fc\u30cd\u30eb\u306f\u3053\u306e\u5f53\u6642\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u7279\u306b\u554f\u984c\u306f\u306a\u3044\u7b48\u3060\uff0e\u6700\u65b0\u30ab\u30fc\u30cd\u30eb\u306f\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u3068\u3044\u3046\u30e1\u30ea\u30c3\u30c8\u306f\u3042\u308a\u305d\u3046\u3060\u304c\u3001V4.9\u3042\u305f\u308a\u3067\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30d1\u30c3\u30c1\u3092\u9069\u7528\u3059\u308b\u65b9\u304c\u5c0f\u578b\u30dc\u30fc\u30c9\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u306f\u5411\u3044\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u601d\u3046\uff0e<\/p>\r\n<br>\r\n<p> LightMPD-Botic\u74b0\u5883\u3067\u306f\u3001R. C. Nelson\u7248\u306eBeagleBone\u7528Linux\u30ab\u30fc\u30cd\u30eb\u306b &#8220;Miero&#8221;\u3055\u3093\u306e&#8221;Botic&#8221;\u30d1\u30c3\u30c1\u3068\u30c7\u30d0\u30a4\u30b9\u30c9\u30e9\u30a4\u30d0\u30b3\u30fc\u30c9\u3001\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb(DTB)\u3092\u7d44\u307f\u8fbc\u3093\u3060\u7269\u306b\u3001LightMPD\u5c02\u7528\u306eLinux\u30eb\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\uff0e\u5f53\u7136\u306a\u304c\u3089&#8221;Miero&#8221;\u3055\u3093\u306e&#8221;Botic&#8221;\u30d1\u30c3\u30c1\u306f\u5f53\u6642\u306eLinux\u30ab\u30fc\u30cd\u30eb\u3067\u3042\u308b V4.8.13 \u7248\u3092\u524d\u63d0\u306b\u4f5c\u3089\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u305d\u308c\u4ee5\u964d\u306eLinux\u30ab\u30fc\u30cd\u30eb\u7248\u3067\u306f\u3001\u5927\u90e8\u5206\u306e\u30d1\u30c3\u30c1\u306f\u305d\u306e\u307e\u307e\u9069\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f&#8221;Botic&#8221;\u30d1\u30c3\u30c1\u306e\u4e2d\u8eab\u3092\u78ba\u8a8d\u3057\u3001\u305d\u306e\u30d1\u30c3\u30c1\u306e\u5185\u5bb9\u3092\u65b0\u3057\u3044\u30ab\u30fc\u30cd\u30eb\u30b3\u30fc\u30c9\u306b\u5bfe\u3057\u3066\u624b\u52d5\u3067\u9069\u7528\uff08\u30b3\u30fc\u30c9\u3092\u4fee\u6b63\uff09\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\uff0e\u30ab\u30fc\u30cd\u30eb\u30b3\u30fc\u30c9\u306e\u5185\u5bb9\u306f\u65b0\u3057\u3044\u30ab\u30fc\u30cd\u30eb\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u5927\u5e45\u306b\u5909\u66f4\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u304f\u3001\u30d1\u30c3\u30c1\u306e\u4fee\u6b63\u5185\u5bb9\u3092\u65b0\u3057\u3044\u30b3\u30fc\u30c9\u306b\u9069\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u308a\u3001\u30d1\u30c3\u30c1\u306e\u5185\u5bb9\u305d\u306e\u3082\u306e\u304c\u5168\u304f\u610f\u5473\u3092\u306a\u3055\u306a\u304f\u306a\u3063\u3066\u3044\u308b\u5834\u5408\u3082\u3042\u308b\uff0e<\/p>\r\n<br>\r\n<p>\u3068\u308a\u3042\u3048\u305a\u3001V4.8\u7528\u306b\u4f5c\u3089\u308c\u305f&#8221;Botic&#8221;\u30d1\u30c3\u30c1\u3092V4.9\u7cfb\u5217\u306e\u30b3\u30fc\u30c9\u306b\u4f55\u3068\u304b\u9069\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u305f\u304c\u3001\u540c\u3058V4.9\u7cfb\u5217\u3067\u3082\u30de\u30a4\u30ca\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u4e0a\u304c\u308b\u3068Linux\u306e\u30b5\u30a6\u30f3\u30c9\u95a2\u9023\u306e\u30b3\u30fc\u30c9\u304c\u5927\u304d\u304f\u4fee\u6b63\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u306e\u5ea6\u306b\u30de\u30cb\u30e5\u30a2\u30eb\u3067\u30d1\u30c3\u30c1\u3092\u5f53\u3066\u308b\u306e\u306f\u7d50\u69cb\u9aa8\u306e\u6298\u308c\u308b\u4f5c\u696d\u3060\uff0e<\/p>\r\n<br>\r\n<h4>Botic\u74b0\u5883\u3067\u306e\u30b5\u30a6\u30f3\u30c9\u518d\u751f\u306e\u6d41\u308c\u3092\u78ba\u304b\u3081\u308b<\/h4>\r\n<br>\r\n<p>Botic\u74b0\u5883\u306f Linux\u306e\u30b5\u30a6\u30f3\u30c9\u30e9\u30a4\u30d6\u30e9\u30ea ALSA(Advanced Linux Sound Architecture)\u306b\u624b\u3092\u52a0\u3048\u3066\u3044\u308b\u304c\u3001\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u51fa\u529b\u6642\u306e\u30c1\u30e3\u30cd\u30eb\u30a2\u30b5\u30a4\u30f3\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3068BeagleBone\u306eSoC\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b &#8220;McASP&#8221; \u306b\u95a2\u9023\u3057\u305f\u30b3\u30fc\u30c9\u306e\u4e2d\u8eab\u3092\u628a\u63e1\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>ALSA\u30b5\u30a6\u30f3\u30c9\u30e9\u30a4\u30d6\u30e9\u30ea\u95a2\u9023\u306e\u30b3\u30fc\u30c9\u306f\u3042\u307e\u308a\u306b\u3082\u81a8\u5927\u3067\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u3061\u3087\u3063\u3068\u3084\u305d\u3063\u3068\u773a\u3081\u305f\u3060\u3051\u3067\u306f\u5168\u4f53\u7684\u306a\u51e6\u7406\u306e\u6d41\u308c\u304c\u5168\u304f\u7406\u89e3\u3067\u304d\u306a\u304b\u3063\u305f\uff0e\u540c\u3058\u3088\u3046\u306a\u540d\u524d\u306e\u95a2\u6570\u304c\u5404\u968e\u5c64\u6bce\u306b\u305f\u304f\u3055\u3093\u3042\u308a\u3001\u540c\u3058\u3088\u3046\u306a\u540d\u524d\u306e\u95a2\u6570\u304c\u30e9\u30c3\u30d1\u30fc\u306b\u306a\u3063\u3066\u3044\u3066\u3001\u4f55\u91cd\u306b\u3082\u30cd\u30b9\u30c8\u3055\u308c\u3066\u3044\u3066\u51e6\u7406\u306e\u6d41\u308c\u304c\u5168\u304f\u63b4\u3081\u306a\u304b\u3063\u305f\uff0e\u30c9\u30e9\u30a4\u30d0\u306e\u968e\u5c64\u69cb\u9020\u304c\u5b8c\u5168\u306b\u7406\u89e3\u3067\u304d\u3066\u3044\u306a\u3044\u3068\u3001\u3069\u306e\u3088\u3046\u306a\u9806\u756a\u3067\u51e6\u7406\u3055\u308c\u3066\u884c\u304f\u306e\u304b\u304c\u5168\u304f\u89e3\u3089\u306a\u3044\uff0e\u4e00\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u6570\u5343\u884c\u3082\u3042\u308a\u3001\u305d\u306e\u5185\u5bb9\u3092\u628a\u63e1\u3059\u308b\u306e\u306f\u81f3\u96e3\u306e\u696d\u3060\uff0e<\/p>\r\n<br>\u3001\r\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u773a\u3081\u3066\u3044\u3066\u3082\u57d2\u304c\u958b\u304b\u306a\u3044\u306e\u3067\u3001\u6700\u5f8c\u306e\u624b\u6bb5\u3068\u3057\u3066&#8221;Botic&#8221;\u30d1\u30c3\u30c1\u306e\u4e3b\u8981\u30b3\u30fc\u30c9\u3068ALSA\u30b5\u30a6\u30f3\u30c9\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u91cd\u8981\u305d\u3046\u306a\u90e8\u5206\u306b\u30c7\u30d0\u30c3\u30b0\u51fa\u529b\u30b3\u30fc\u30c9\u3092\u57cb\u3081\u8fbc\u3093\u3067\u3001\u30b5\u30a6\u30f3\u30c9\u518d\u751f\u5b9f\u884c\u6642\u306e\u51e6\u7406\u306e\u6d41\u308c\u3092\u8ffd\u3046\u3053\u3068\u306b\u3057\u305f\uff0e\u30ab\u30fc\u30cd\u30eb\u306e\u30b3\u30fc\u30c9\u3092\u76f4\u63a5\u7de8\u96c6\u3059\u308b\u3068\u5207\u308a\u623b\u3057\u304c\u96e3\u3057\u304f\u306a\u308b\u306e\u3067\u3001\u95a2\u4fc2\u3057\u305d\u3046\u306a\u30b3\u30fc\u30c9\u3060\u3051\u3092\u30ab\u30fc\u30cd\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5916\u306b\u7f6e\u3044\u3066\u3001\u3053\u3061\u3089\u306e\u30b3\u30fc\u30c9\u3092\u4fee\u6b63\u3057\u305f\u3082\u306e\u3092\u6700\u7d42\u7684\u306b\u30ab\u30fc\u30cd\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u3092\u5f35\u3063\u3066\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u65b9\u6cd5\u3092\u63a1\u3063\u305f\uff0e<\/p>\r\n<br>\r\n<div style=\"width:100%; margin: 0 auto; text-align: center;\">\r\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/BoticSoundCodes.png\" alt=\"Botic Source Code Tree\" width=\"480\" height=\"913\" class=\"size-full wp-image-10274\" srcset=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/BoticSoundCodes.png 480w, https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/BoticSoundCodes-336x640.png 336w, https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/BoticSoundCodes-168x320.png 168w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/>\r\n<br>\r\n<span>Botic\u95a2\u9023\u306e\u30b3\u30fc\u30c9\u3092\u30c7\u30d0\u30c3\u30b0\u7528\u306e\u30b3\u30fc\u30c9\u30c4\u30ea\u30fc\u914d\u4e0b\u306b\u7f6e\u304f<\/span>\r\n<br>\r\n<\/div>\r\n<br>\r\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u30c4\u30ea\u30fc\u914d\u4e0b\u306b\u7f6e\u304b\u308c\u3066\u3044\u308b\u5404\u30b3\u30fc\u30c9\u306e\u5185\u3001\u672b\u5c3e\u304c &#8220;-dbg.c&#8221; \u3068\u306a\u3063\u3066\u3044\u308b\u7269\u304c\u30c7\u30d0\u30c3\u30b0\u7528\u306e\u30ab\u30fc\u30cd\u30eb\u30d7\u30ea\u30f3\u30c8 &#8220;printk()&#8221; \u3092\u57cb\u3081\u8fbc\u3093\u3067\u3042\u308b\u3082\u306e\u3067\u3001&#8221;-dbg&#8221;\u304c\u3064\u3044\u3066\u3044\u306a\u3044\u7269\u304c &#8220;Botic&#8221; \u30d1\u30c3\u30c1\u304c\u5f53\u3066\u305f\u3060\u3051\u306e\u30b3\u30fc\u30c9\u3068\u306a\u3063\u3066\u3044\u308b\uff0e&#8221;printk()&#8221;\u306e\u51fa\u529b\u30e1\u30c3\u30bb\u30fc\u30b8\u5185\u306b\u306f\u3001\u8a72\u5f53\u306e\u95a2\u6570\u540d\uff08\u30d5\u30a1\u30a4\u30eb\u540d\uff09\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306e\u884c\u756a\u53f7\u304c\u4e00\u7dd2\u306b\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u3066\u3042\u308a\u3001\u30c7\u30d0\u30c3\u30b0\u51fa\u529b\u304b\u3089\u5404\u95a2\u6570\u304c\u3069\u306e\u3088\u3046\u306a\u6d41\u308c\u3067\u5b9f\u6e2c\u3055\u308c\u305f\u306e\u304b\u304c\u3042\u308b\u7a0b\u5ea6\u628a\u63e1\u53ef\u80fd\u3060\uff0e\u3082\u3061\u308d\u3093\u5168\u3066\u306e\u95a2\u6570\u306b\u30c7\u30d0\u30c3\u30b0\u30b3\u30fc\u30c9\u3092\u57cb\u3081\u8fbc\u3080\u8a33\u306b\u3082\u3044\u304b\u306a\u3044\u306e\u3067\u3001\u3053\u3053\u3067\u78ba\u8a8d\u3067\u304d\u308b\u306e\u306f\u5168\u4f53\u306e\u3054\u304f\u4e00\u90e8\u306e\u6d41\u308c\u3067\u3057\u304b\u306a\u3044\uff0e\u5f53\u7136\u306a\u304c\u3089\u30c7\u30d0\u30c3\u30b0\u30b3\u30fc\u30c9\u5206\u306e\u884c\u6570\u304c\u5897\u3048\u3066\u3044\u308b\u306e\u3067\u3001\u51fa\u529b\u3055\u308c\u308b\u884c\u756a\u53f7\u306f\u5143\u306e\u30b3\u30fc\u30c9\u3068\u306f\u4e00\u81f4\u3057\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>\u4e0b\u8a18\u306e\u30ed\u30b0\u306f LigtMPD-Botic7 Kernel V4.8.13 \u3067\u306e\u3001BeagleBone Black \u8d77\u52d5\u6642\u306e\u3082\u306e\u3067\u3001&#8221;Starting kernel &#8230;&#8221; \u4ee5\u964d\u306e\u30ab\u30ae\u62ec\u5f27&#8221;[]&#8221;\u3067\u56f2\u307e\u308c\u305f\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u306e\u5f8c\u306b\u30ab\u30ae\u62ec\u5f27\u3067\u56f2\u307e\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u304c\u51fa\u529b\u3055\u308c\u305f\u30c7\u30d0\u30c3\u30b0\u30e1\u30c3\u30bb\u30fc\u30b8\u3060\uff0e<\/p>\r\n<br>\r\n<br>\r\n<pre style=\"height: 500px;\">\r\n<code class=\"language-Markup\">\r\nU-Boot 2022.04-00038-gbaca7b46 (Aug 30 2024 - 21:34:10 +0900)\r\n\r\nCPU  : AM335X-GP rev 2.1\r\nModel: TI AM335x BeagleBone Black\r\nDRAM:  512 MiB\r\nReset Source: Global external warm reset has occurred.\r\nReset Source: Power-on reset has occurred.\r\nRTC 32KCLK Source: External.\r\nCore:  150 devices, 14 uclasses, devicetree: separate\r\nWDT:   Started wdt@44e35000 with servicing (60s timeout)\r\nMMC:   OMAP SD\/MMC: 0, OMAP SD\/MMC: 1\r\nLoading Environment from EXT4... \r\n** Unable to use mmc 0:1 for loading the env **\r\nBoard: BeagleBone Black\r\n<ethaddr> not set. Validating first E-fuse MAC\r\nBeagleBone Black:\r\nBeagleBone Cape EEPROM: no EEPROM at address: 0x54\r\nBeagleBone Cape EEPROM: no EEPROM at address: 0x55\r\nBeagleBone Cape EEPROM: no EEPROM at address: 0x56\r\nBeagleBone Cape EEPROM: no EEPROM at address: 0x57\r\nNet:   eth2: ethernet@4a100000, eth3: usb_ether\r\nPress SPACE to abort autoboot in 0 seconds\r\nboard_name=[A335BNLT] ...\r\nboard_rev=[00C0] ...\r\nswitch to partitions #0, OK\r\nmmc0 is current device\r\nSD\/MMC found on device 0\r\nCouldn't find partition 0:2 0x82000000\r\nCan't set block device\r\nCouldn't find partition 0:2 0x82000000\r\nCan't set block device\r\nswitch to partitions #0, OK\r\nmmc0 is current device\r\nScanning mmc 0:1...\r\n \r\n ... \uff08\u7701\u7565\uff09\r\n\r\nBooting from ramdisk ...\r\nKernel image @ 0x82000000 [ 0x000000 - 0x313cc0 ]\r\n## Loading init Ramdisk from Legacy Image at 88080000 ...\r\n   Image Name:   lightMPD@bbb-v1.0.3 romfs\r\n   Created:      2017-01-25   2:22:11 UTC\r\n   Image Type:   ARM Linux RAMDisk Image (gzip compressed)\r\n   Data Size:    22743221 Bytes = 21.7 MiB\r\n   Load Address: 00000000\r\n   Entry Point:  00000000\r\n## Flattened Device Tree blob at 88000000\r\n   Booting using the fdt blob at 0x88000000\r\n   Loading Ramdisk to 8ea4f000, end 8ffff8b5 ... OK\r\n   Loading Device Tree to 8ea43000, end 8ea4e1b7 ... OK\r\n\r\nStarting kernel ...\r\n\r\n[    0.000000] Booting Linux on physical CPU 0x0\r\n[    0.000000] Linux version 4.8.13-LMPDB7dbg (yasuaki@buntu18srv) (gcc version 11.3.0 (GCC) ) #13 PREEMPT Wed Jan 1 20:54:59 JST 2025\r\n[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d\r\n[    0.000000] CPU: PIPT \/ VIPT nonaliasing data cache, VIPT aliasing instruction cache\r\n[    0.000000] OF: fdt:Machine model: TI AM335x BeagleBone Black\r\n[    0.000000] Memory policy: Data cache writeback\r\n[    0.000000] CPU: All CPU(s) started in SVC mode.\r\n[    0.000000] AM335X ES2.1 (sgx neon )\r\n[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129408\r\n[    0.000000] Kernel command line: console=ttyO0,115200n8 snd_soc_botic.ext_masterclk=3 snd_soc_botic.serconfig=MMII snd_soc_botic.dsd_format_switch=1 snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000 lightmpd.systype=beaglebone lightmpd.bootdev=\/dev\/mmcblk0p1 root=\/dev\/ram0 rw ramdisk_size=65536 rootfstype=romfs\r\n[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)\r\n[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)\r\n[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)\r\n[    0.000000] Memory: 485984K\/522240K available (5120K kernel code, 317K rwdata, 1104K rodata, 1024K init, 265K bss, 36256K reserved, 0K cma-reserved, 0K highmem)\r\n[    0.000000] Virtual kernel memory layout:\r\n\r\n\u3000... \uff08\u7701\u7565\uff09\r\n\r\n[    1.329085] sdhci-pltfm: SDHCI platform and OF driver helper\r\n[    1.330555] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2\r\n[    1.343656] omap-aes 53500000.aes: will run requests pump with realtime priority\r\n[    1.344091] omap-sham 53100000.sham: hw accel on OMAP rev 4.3\r\n[    1.344108] omap-sham 53100000.sham: initialization failed.\r\n[    1.344155] omap-sham: probe of 53100000.sham failed with error -22\r\n[    1.344744] usbcore: registered new interface driver snd-usb-audio\r\n[    1.344801] usbcore: registered new interface driver snd-usb-hiface\r\n[    1.345040] [ 'soc-core.c', #3696 : ==> Entering the function 'snd_soc_register_codec()';  ]\r\n[    1.345045] [ INFO: 'snd_soc_register_codec()', #3704 : \/*  Registering CODEC : 'snd-soc-dummy'  *\/ ]\r\n[    1.345049] [ INFO: 'snd_soc_register_codec()', #3714 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.345053] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.345062] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.345069] [ INFO: 'snd_soc_register_codec()', #3770 : \/*   Invoke : 'snd_soc_register_dais()'  *\/ ]\r\n[    1.345072] [ 'soc-core.c', #3140 : ==> Entering the function 'snd_soc_register_dais()';  ]\r\n[    1.345075] [ INFO: 'snd_soc_register_dais()', #3153 : \/*   Invoke : 'soc_add_dai()'  *\/ ]\r\n[    1.345078] [ 'soc-core.c', #3074 : ==> Entering the function 'soc_add_dai()';  ]\r\n[    1.345084] [ 'soc-core.c', #3122 : <== Exiting the function 'soc_add_dai()' : return ( dai ) ]\r\n[    1.345087] [ 'soc-core.c', #3164 : <== Exiting the function 'snd_soc_register_dais()' : return ( 0 ) ]\r\n[    1.345093] [ 'soc-core.c', #3789 : <== Exiting the function 'snd_soc_register_codec()' : return ( 0 ) ]\r\n[    1.345096] [ 'soc-core.c', #3524 : ==> Entering the function 'snd_soc_register_platform()';  ]\r\n[    1.345100] [ INFO: 'snd_soc_register_platform()', #3530 : \/*  platform register  'snd-soc-dummy'   *\/ ]\r\n[    1.345103] [ INFO: 'snd_soc_register_platform()', #3539 : \/*   Invoke : 'snd_soc_add_platform()'  *\/ ]\r\n[    1.345106] [ 'soc-core.c', #3473 : ==> Entering the function 'snd_soc_add_platform()';  ]\r\n[    1.345109] [ INFO: 'snd_soc_add_platform()', #3477 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.345112] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.345117] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.345120] [ INFO: 'snd_soc_add_platform()', #3507 : \/*  Registered platform 'snd-soc-dummy'   *\/ ]\r\n[    1.345123] [ 'soc-core.c', #3509 : <== Exiting the function 'snd_soc_add_platform()' : return ( 0 ) ]\r\n[    1.345127] [ 'soc-core.c', #3547 : <== Exiting the function 'snd_soc_register_platform()' : return ( ret ==> 0 ) ]\r\n[    1.345281] [ 'soc-core.c', #3696 : ==> Entering the function 'snd_soc_register_codec()';  ]\r\n[    1.345284] [ INFO: 'snd_soc_register_codec()', #3704 : \/*  Registering CODEC : 'botic_codec'  *\/ ]\r\n[    1.345288] [ INFO: 'snd_soc_register_codec()', #3714 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.345291] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.345301] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.345306] [ INFO: 'snd_soc_register_codec()', #3770 : \/*   Invoke : 'snd_soc_register_dais()'  *\/ ]\r\n[    1.345309] [ 'soc-core.c', #3140 : ==> Entering the function 'snd_soc_register_dais()';  ]\r\n[    1.345311] [ INFO: 'snd_soc_register_dais()', #3153 : \/*   Invoke : 'soc_add_dai()'  *\/ ]\r\n[    1.345314] [ 'soc-core.c', #3074 : ==> Entering the function 'soc_add_dai()';  ]\r\n[    1.345318] [ 'soc-core.c', #3122 : <== Exiting the function 'soc_add_dai()' : return ( dai ) ]\r\n[    1.345321] [ 'soc-core.c', #3164 : <== Exiting the function 'snd_soc_register_dais()' : return ( 0 ) ]\r\n[    1.345324] [ 'soc-core.c', #3789 : <== Exiting the function 'snd_soc_register_codec()' : return ( 0 ) ]\r\n[    1.345592] [ 'botic-card.c', #449 : ==> Entering the function 'asoc_botic_card_probe()'; ]\r\n[    1.345611] [ INFO: 'asoc_botic_card_probe()' : #477 :  \/* Using Pinconfig Mode :'default' *\/ ] \r\n[    1.345655] [ INFO: 'botic_hw_params()', #574 : \/* Registering the 'Botic card' : Invoke 'snd_soc_register_card( &botic_card );' *\/ ]\r\n[    1.345659] [ 'soc-core.c', #2896 : ==> Entering the function 'snd_soc_register_card()';  ]\r\n[    1.345662] [ INFO: 'snd_soc_register_card()', #2912 : \/*   Invoke : 'soc_init_dai_link()'  *\/ ]\r\n[    1.345666] [ 'soc-core.c', #1266 : ==> Entering the function 'soc_init_dai_link()';  ]\r\n[    1.345668] [ INFO: 'soc_init_dai_link()', #1270 : \/* Invoke : 'snd_soc_init_multicodec()'  *\/ ]\r\n[    1.345671] [ 'soc-core.c', #1232 : ==> Entering the function 'snd_soc_init_multicodec()';  ]\r\n[    1.345675] [ 'soc-core.c', #1258 : <== Exiting the function 'snd_soc_init_multicodec()' : return ( 0 ) ]\r\n[    1.345679] [ 'soc-core.c', #1332 : <== Exiting the function 'soc_init_dai_link()' : return ( 0 ) ]\r\n[    1.345682] [ INFO: 'snd_soc_register_card()', #2928 : \/*   Invoke : 'snd_soc_initialize_card_lists( card )'  *\/ ]\r\n[    1.345686] [ INFO: 'snd_soc_register_card()', #2944 : \/*   Invoke : 'snd_soc_instantiate_card( card )'  *\/ ]\r\n[    1.345689] [ 'soc-core.c', #1996 : ==> Entering the function 'snd_soc_instantiate_card()';  ]\r\n[    1.345692] [ INFO: 'snd_soc_instantiate_card()', #2009 : \/*      Invoke : 'soc_bind_dai_link()'  *\/ ]\r\n[    1.345695] [ 'soc-core.c', #1016 : ==> Entering the function 'soc_bind_dai_link()';  ]\r\n[    1.345698] [ INFO: 'soc_bind_dai_link()', #1028 : \/* ASoC: binding 'ExtDAC' *\/ ]\r\n[    1.345702] [ INFO: 'soc_bind_dai_link()', #1039 : \/* Invoke : 'soc_new_pcm_runtime()'  *\/ ]\r\n[    1.345708] [ INFO: 'soc_bind_dai_link()', #1051 : \/* Invoke : 'snd_soc_find_dai()'  *\/ ]\r\n[    1.345711] [ 'soc-core.c', #966 : ==> Entering the function 'snd_soc_find_dai()';  ]\r\n[    1.345715] [ 'soc-core.c', #994 : <== Exiting the function 'snd_soc_find_dai()' : return ( NULL )]\r\n[    1.345718] [ ERROR: 'soc_bind_dai_link()', #1057 : \/* ASoC: CPU DAI '(null)' not registered *\/ ]\r\n[    1.345723] [ 'soc-core.c', #1116 : <== Exiting the function 'soc_bind_dai_link()' : return ( -EPROBE_DEFER ) ]\r\n[    1.345727] [ 'soc-core.c', #2237 : <== Exiting the function 'snd_soc_instantiate_card()' : return ( ret ==> -517 ) ]\r\n[    1.345731] [ 'soc-core.c', #2947 : <== Exiting the function 'snd_soc_register_card()' : return ( ret ==> -517 ) ]\r\n[    1.345734] [ ERROR: 'botic_hw_params()', #580 : snd_soc_register_card failed  (-517): ]\r\n[    1.345748] [ 'botic-card.c', #640 : <== Exiting the function 'asoc_botic_card_probe()' ( ret ==> -517 ) ]\r\n[    1.345939] [ 'davinci-mcasp.c', #2623 : ==> Entering the function 'davinci_mcasp_probe()' ]\r\n[    1.345976] [  INFO: 'davinci_mcasp_probe()' : #2700 :  \/*  mcasp->version  ==> 2, mcasp->txnumevt ==> 16  \/*   ] \r\n[    1.345980] [  INFO: 'davinci_mcasp_probe()' : #2701 :  \/*  mcasp->tdm_slots ==> 2, mcasp->num_serializer ==> 4  \/*   ] \r\n[    1.346290] [  INFO: 'davinci_mcasp_probe()' : #2762 :  \/*  dma_data->addr ==> 1174405120 (0x46000000) \/*   ] \r\n[    1.346297] [  INFO: 'davinci_mcasp_probe()' : #2813 :  \/*  mcasp->fifo_base ==> 4096 (0x1000) \/*   ] \r\n[    1.346302] [  INFO: 'davinci_mcasp_probe()' : #2840 :  \/*  Invoke  'davinci_mcasp_set_ch_constraints( mcasp )'  \/*   ] \r\n[    1.346305] [ 'davinci-mcasp.c', #826 : ==> Entering the function 'davinci_mcasp_set_ch_constraints()' ]\r\n[    1.346310] [  INFO: davinci_mcasp_set_ch_constraints() : #836 :  Invoke  davinci_mcasp_ch_constraint( ,SNDRV_PCM_STREAM_PLAYBACK, tx_serializers )  ]  :  tx_serializers ==> 4 \r\n[    1.346314] [ 'davinci-mcasp.c', #782 : ==> Entering the function 'davinci_mcasp_ch_constraint()' ]\r\n[    1.346317] [ 'davinci-mcasp.c', #783 :       args( int stream ==> 0, int serializers ==> 4 ) ]\r\n[    1.346320] [  INFO: davinci_mcasp_ch_constraint() : #790 :   int slots = mcasp->tdm_slots ==> 2 ] \r\n[    1.346323] [  INFO: davinci_mcasp_ch_constraint() : #792 :   mcasp->tdm_mask[stream] ==> 0 ] \r\n[    1.346327] [  INFO: davinci_mcasp_ch_constraint() : #810 :    cl->count = count ==> 4 ] \r\n[    1.346330] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[0] ==> 2 ] \r\n[    1.346332] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[1] ==> 4 ] \r\n[    1.346335] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[2] ==> 6 ] \r\n[    1.346338] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[3] ==> 8 ] \r\n[    1.346341] [ 'davinci-mcasp.c', #816 : <== Exitting the function 'davinci_mcasp_ch_constraint()'  : return( 0 ) ]\r\n[    1.346345] [  INFO: davinci_mcasp_set_ch_constraints() : #844 :  Invoke  davinci_mcasp_ch_constraint( ,SNDRV_PCM_STREAM_CAPTURE, rx_serializers )  ]  :  rx_serializers ==> 0 \r\n[    1.346348] [ 'davinci-mcasp.c', #782 : ==> Entering the function 'davinci_mcasp_ch_constraint()' ]\r\n[    1.346351] [ 'davinci-mcasp.c', #783 :       args( int stream ==> 1, int serializers ==> 0 ) ]\r\n[    1.346353] [  INFO: davinci_mcasp_ch_constraint() : #790 :   int slots = mcasp->tdm_slots ==> 2 ] \r\n[    1.346356] [  INFO: davinci_mcasp_ch_constraint() : #792 :   mcasp->tdm_mask[stream] ==> 0 ] \r\n[    1.346358] [  INFO: davinci_mcasp_ch_constraint() : #810 :    cl->count = count ==> 1 ] \r\n[    1.346361] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[0] ==> 2 ] \r\n[    1.346364] [ 'davinci-mcasp.c', #816 : <== Exitting the function 'davinci_mcasp_ch_constraint()'  : return( 0 ) ]\r\n[    1.346367] [ 'davinci-mcasp.c', #848 : <== Exitting the function 'davinci_mcasp_set_ch_constraints()'  : return( ret ==> 0 ) ]\r\n[    1.346370] [ 'davinci-mcasp.c', #2354 : ==> Entering the function 'mcasp_reparent_fck()' ]\r\n[    1.346374] [ 'davinci-mcasp.c', #2368 : <== Exitting the function 'mcasp_reparent_fck()'  : return( 0 ) ]\r\n[    1.346378] [  INFO: 'davinci_mcasp_probe()' : #2851 :  \/*  Invoke  'devm_snd_soc_register_component( )'  \/*   ] \r\n[    1.346382] [ 'soc-core.c', #3374 : ==> Entering the function 'snd_soc_register_component()';  ]\r\n[    1.346386] [ INFO: 'snd_soc_register_component()', #3386 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.346390] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.346399] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.346402] [ INFO: 'snd_soc_register_component()', #3396 : \/*   Invoke : 'snd_soc_register_dais()'  *\/ ]\r\n[    1.346405] [ 'soc-core.c', #3140 : ==> Entering the function 'snd_soc_register_dais()';  ]\r\n[    1.346408] [ INFO: 'snd_soc_register_dais()', #3153 : \/*   Invoke : 'soc_add_dai()'  *\/ ]\r\n[    1.346410] [ 'soc-core.c', #3074 : ==> Entering the function 'soc_add_dai()';  ]\r\n[    1.346417] [ 'soc-core.c', #3122 : <== Exiting the function 'soc_add_dai()' : return ( dai ) ]\r\n[    1.346420] [ 'soc-core.c', #3164 : <== Exiting the function 'snd_soc_register_dais()' : return ( 0 ) ]\r\n[    1.346423] [ INFO: 'snd_soc_register_component()', #3404 : \/*   Invoke : 'snd_soc_component_add()'  *\/ ]\r\n[    1.346427] [ 'soc-core.c', #3408 : <== Exiting the function 'snd_soc_register_component()' : return ( 0 ) ]\r\n[    1.346454] [  INFO: 'davinci_mcasp_probe()' : #2867 :  \/*   davinci_mcasp_get_dma_type( mcasp ) ==> 'PCM_EDMA'  \/*   ] \r\n[    1.346458] [ 'edma-pcm.c', #68 : ==> Entering the function edma_pcm_platform_register(); ]\r\n[    1.346461] [ 'edma-pcm.c', #70 : ==> Entering the function edma_pcm_platform_register(); return( 'devm_snd_dmaengine_pcm_register() ' )  ]\r\n[    1.346466] [ 'soc-generic-dmaengine-pcm.c', #490 : ==> Entering the function 'snd_dmaengine_pcm_register()' ]\r\n[    1.346470] [ INFO: 'snd_dmaengine_pcm_register()', #502 : \/* Invoke 'dmaengine_pcm_request_chan_of( pcm, dev, config )' *\/  ]\r\n[    1.346484] [ INFO: 'snd_dmaengine_pcm_register()', #508 : \/* Invoke 'snd_soc_add_platform( dev, &pcm->platform, &dmaengine_pcm_platform )' *\/  ]\r\n[    1.346487] [ 'soc-core.c', #3473 : ==> Entering the function 'snd_soc_add_platform()';  ]\r\n[    1.346490] [ INFO: 'snd_soc_add_platform()', #3477 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.346493] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.346498] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.346502] [ INFO: 'snd_soc_add_platform()', #3507 : \/*  Registered platform '48038000.mcasp'   *\/ ]\r\n[    1.346504] [ 'soc-core.c', #3509 : <== Exiting the function 'snd_soc_add_platform()' : return ( 0 ) ]\r\n[    1.346508] [ 'soc-generic-dmaengine-pcm.c', #514 : <== Exitting the function 'snd_dmaengine_pcm_register()' : return( 0 )  ]\r\n[    1.346542] [  INFO: 'davinci_mcasp_probe()' : #2922 :  \/*   Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0, and LSB first *\/  ] \r\n[    1.346545] [  INFO: 'davinci_mcasp_probe()' : #2923 :  \/*   'mcasp_set_bits( mcasp, DAVINCI_MCASP_TXFMT_REG, TXROT(6) | TXSSZ(15) );' *\/ ] \r\n[    1.346549] [  INFO: 'davinci_mcasp_probe()' : #2929 :  \/*   Only 44100 and 48000 are valid, both have the same setting  *\/ ] \r\n[    1.346551] [  INFO: 'davinci_mcasp_probe()' : #2930 :  \/*   'mcasp_set_bits( mcasp, DAVINCI_MCASP_AHCLKXCTL_REG, AHCLKXDIV(3) );' *\/ ] \r\n[    1.346560] [ 'davinci-mcasp.c', #2936 : <== Exitting the function 'davinci_mcasp_probe()'  : return( 0 ) ]\r\n[    1.346605] [ 'davinci-mcasp.c', #2623 : ==> Entering the function 'davinci_mcasp_probe()' ]\r\n[    1.346633] davinci-mcasp 4803c000.mcasp: invalid tdm slots: 0\r\n[    1.346638] [  INFO: 'davinci_mcasp_probe()' : #2700 :  \/*  mcasp->version  ==> 2, mcasp->txnumevt ==> 0  \/*   ] \r\n[    1.346641] [  INFO: 'davinci_mcasp_probe()' : #2701 :  \/*  mcasp->tdm_slots ==> 2, mcasp->num_serializer ==> 0  \/*   ] \r\n[    1.346855] [  INFO: 'davinci_mcasp_probe()' : #2762 :  \/*  dma_data->addr ==> 1178599424 (0x46400000) \/*   ] \r\n[    1.346860] [  INFO: 'davinci_mcasp_probe()' : #2813 :  \/*  mcasp->fifo_base ==> 4096 (0x1000) \/*   ] \r\n[    1.346863] [  INFO: 'davinci_mcasp_probe()' : #2840 :  \/*  Invoke  'davinci_mcasp_set_ch_constraints( mcasp )'  \/*   ] \r\n[    1.346866] [ 'davinci-mcasp.c', #826 : ==> Entering the function 'davinci_mcasp_set_ch_constraints()' ]\r\n[    1.346870] [  INFO: davinci_mcasp_set_ch_constraints() : #836 :  Invoke  davinci_mcasp_ch_constraint( ,SNDRV_PCM_STREAM_PLAYBACK, tx_serializers )  ]  :  tx_serializers ==> 0 \r\n[    1.346873] [ 'davinci-mcasp.c', #782 : ==> Entering the function 'davinci_mcasp_ch_constraint()' ]\r\n[    1.346876] [ 'davinci-mcasp.c', #783 :       args( int stream ==> 0, int serializers ==> 0 ) ]\r\n[    1.346879] [  INFO: davinci_mcasp_ch_constraint() : #790 :   int slots = mcasp->tdm_slots ==> 2 ] \r\n[    1.346881] [  INFO: davinci_mcasp_ch_constraint() : #792 :   mcasp->tdm_mask[stream] ==> 0 ] \r\n[    1.346884] [  INFO: davinci_mcasp_ch_constraint() : #810 :    cl->count = count ==> 1 ] \r\n[    1.346887] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[0] ==> 2 ] \r\n[    1.346890] [ 'davinci-mcasp.c', #816 : <== Exitting the function 'davinci_mcasp_ch_constraint()'  : return( 0 ) ]\r\n[    1.346893] [  INFO: davinci_mcasp_set_ch_constraints() : #844 :  Invoke  davinci_mcasp_ch_constraint( ,SNDRV_PCM_STREAM_CAPTURE, rx_serializers )  ]  :  rx_serializers ==> 0 \r\n[    1.346896] [ 'davinci-mcasp.c', #782 : ==> Entering the function 'davinci_mcasp_ch_constraint()' ]\r\n[    1.346899] [ 'davinci-mcasp.c', #783 :       args( int stream ==> 1, int serializers ==> 0 ) ]\r\n[    1.346901] [  INFO: davinci_mcasp_ch_constraint() : #790 :   int slots = mcasp->tdm_slots ==> 2 ] \r\n[    1.346904] [  INFO: davinci_mcasp_ch_constraint() : #792 :   mcasp->tdm_mask[stream] ==> 0 ] \r\n[    1.346906] [  INFO: davinci_mcasp_ch_constraint() : #810 :    cl->count = count ==> 1 ] \r\n[    1.346909] [  INFO: davinci_mcasp_ch_constraint() : #813 :    list[0] ==> 2 ] \r\n[    1.346912] [ 'davinci-mcasp.c', #816 : <== Exitting the function 'davinci_mcasp_ch_constraint()'  : return( 0 ) ]\r\n[    1.346915] [ 'davinci-mcasp.c', #848 : <== Exitting the function 'davinci_mcasp_set_ch_constraints()'  : return( ret ==> 0 ) ]\r\n[    1.346918] [ 'davinci-mcasp.c', #2354 : ==> Entering the function 'mcasp_reparent_fck()' ]\r\n[    1.346922] [ 'davinci-mcasp.c', #2368 : <== Exitting the function 'mcasp_reparent_fck()'  : return( 0 ) ]\r\n[    1.346925] [  INFO: 'davinci_mcasp_probe()' : #2851 :  \/*  Invoke  'devm_snd_soc_register_component( )'  \/*   ] \r\n[    1.346929] [ 'soc-core.c', #3374 : ==> Entering the function 'snd_soc_register_component()';  ]\r\n[    1.346932] [ INFO: 'snd_soc_register_component()', #3386 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.346934] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.346942] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.346944] [ INFO: 'snd_soc_register_component()', #3396 : \/*   Invoke : 'snd_soc_register_dais()'  *\/ ]\r\n[    1.346947] [ 'soc-core.c', #3140 : ==> Entering the function 'snd_soc_register_dais()';  ]\r\n[    1.346949] [ INFO: 'snd_soc_register_dais()', #3153 : \/*   Invoke : 'soc_add_dai()'  *\/ ]\r\n[    1.346952] [ 'soc-core.c', #3074 : ==> Entering the function 'soc_add_dai()';  ]\r\n[    1.346957] [ 'soc-core.c', #3122 : <== Exiting the function 'soc_add_dai()' : return ( dai ) ]\r\n[    1.346959] [ 'soc-core.c', #3164 : <== Exiting the function 'snd_soc_register_dais()' : return ( 0 ) ]\r\n[    1.346962] [ INFO: 'snd_soc_register_component()', #3404 : \/*   Invoke : 'snd_soc_component_add()'  *\/ ]\r\n[    1.346965] [ 'soc-core.c', #3408 : <== Exiting the function 'snd_soc_register_component()' : return ( 0 ) ]\r\n[    1.346986] [  INFO: 'davinci_mcasp_probe()' : #2867 :  \/*   davinci_mcasp_get_dma_type( mcasp ) ==> 'PCM_EDMA'  \/*   ] \r\n[    1.346988] [ 'edma-pcm.c', #68 : ==> Entering the function edma_pcm_platform_register(); ]\r\n[    1.346992] [ 'edma-pcm.c', #70 : ==> Entering the function edma_pcm_platform_register(); return( 'devm_snd_dmaengine_pcm_register() ' )  ]\r\n[    1.346996] [ 'soc-generic-dmaengine-pcm.c', #490 : ==> Entering the function 'snd_dmaengine_pcm_register()' ]\r\n[    1.346999] [ INFO: 'snd_dmaengine_pcm_register()', #502 : \/* Invoke 'dmaengine_pcm_request_chan_of( pcm, dev, config )' *\/  ]\r\n[    1.347012] [ INFO: 'snd_dmaengine_pcm_register()', #508 : \/* Invoke 'snd_soc_add_platform( dev, &pcm->platform, &dmaengine_pcm_platform )' *\/  ]\r\n[    1.347015] [ 'soc-core.c', #3473 : ==> Entering the function 'snd_soc_add_platform()';  ]\r\n[    1.347017] [ INFO: 'snd_soc_add_platform()', #3477 : \/*   Invoke : 'snd_soc_component_initialize()'  *\/ ]\r\n[    1.347020] [ 'soc-core.c', #3248 : ==> Entering the function 'snd_soc_component_initialize()';  ]\r\n[    1.347025] [ 'soc-core.c', #3285 : <== Exiting the function 'snd_soc_component_initialize()' : return ( 0 ) ]\r\n[    1.347029] [ INFO: 'snd_soc_add_platform()', #3507 : \/*  Registered platform '4803c000.mcasp'   *\/ ]\r\n[    1.347031] [ 'soc-core.c', #3509 : <== Exiting the function 'snd_soc_add_platform()' : return ( 0 ) ]\r\n[    1.347034] [ 'soc-generic-dmaengine-pcm.c', #514 : <== Exitting the function 'snd_dmaengine_pcm_register()' : return( 0 )  ]\r\n[    1.347055] [  INFO: 'davinci_mcasp_probe()' : #2922 :  \/*   Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0, and LSB first *\/  ] \r\n[    1.347058] [  INFO: 'davinci_mcasp_probe()' : #2923 :  \/*   'mcasp_set_bits( mcasp, DAVINCI_MCASP_TXFMT_REG, TXROT(6) | TXSSZ(15) );' *\/ ] \r\n[    1.347060] [  INFO: 'davinci_mcasp_probe()' : #2929 :  \/*   Only 44100 and 48000 are valid, both have the same setting  *\/ ] \r\n[    1.347063] [  INFO: 'davinci_mcasp_probe()' : #2930 :  \/*   'mcasp_set_bits( mcasp, DAVINCI_MCASP_AHCLKXCTL_REG, AHCLKXDIV(3) );' *\/ ] \r\n[    1.347069] [ 'davinci-mcasp.c', #2936 : <== Exitting the function 'davinci_mcasp_probe()'  : return( 0 ) ]\r\n[    1.347355] Initializing XFRM netlink socket\r\n[    1.347378] NET: Registered protocol family 17\r\n[    1.347511] sctp: Hash tables configured (bind 1024\/1024)\r\n[    1.347818] Key type dns_resolver registered\r\n[    1.347959] omap_voltage_late_init: Voltage driver support not added\r\n[    1.348087] ThumbEE CPU extension supported.\r\n[    1.348100] Registering SWP\/SWPB emulation handler\r\n[    1.349966] input: tps65217_pwr_but as \/devices\/platform\/ocp\/44e0b000.i2c\/i2c-0\/0-0024\/input\/input0\r\n[    1.445412] tps65217 0-0024: TPS65217 ID 0xe version 1.2\r\n[    1.445676] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes\/write\r\n[    1.445704] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz\r\n[    1.456732] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz\r\n[    1.457010] [ 'botic-card.c', #449 : ==> Entering the function 'asoc_botic_card_probe()'; ]\r\n[    1.457030] [ INFO: 'asoc_botic_card_probe()' : #477 :  \/* Using Pinconfig Mode :'default' *\/ ] \r\n[    1.457072] [ INFO: 'botic_hw_params()', #574 : \/* Registering the 'Botic card' : Invoke 'snd_soc_register_card( &botic_card );' *\/ ]\r\n[    1.457077] [ 'soc-core.c', #2896 : ==> Entering the function 'snd_soc_register_card()';  ]\r\n[    1.457080] [ INFO: 'snd_soc_register_card()', #2912 : \/*   Invoke : 'soc_init_dai_link()'  *\/ ]\r\n[    1.457083] [ 'soc-core.c', #1266 : ==> Entering the function 'soc_init_dai_link()';  ]\r\n[    1.457086] [ INFO: 'soc_init_dai_link()', #1270 : \/* Invoke : 'snd_soc_init_multicodec()'  *\/ ]\r\n[    1.457089] [ 'soc-core.c', #1232 : ==> Entering the function 'snd_soc_init_multicodec()';  ]\r\n[    1.457094] [ 'soc-core.c', #1258 : <== Exiting the function 'snd_soc_init_multicodec()' : return ( 0 ) ]\r\n[    1.457097] [ 'soc-core.c', #1332 : <== Exiting the function 'soc_init_dai_link()' : return ( 0 ) ]\r\n[    1.457101] [ INFO: 'snd_soc_register_card()', #2928 : \/*   Invoke : 'snd_soc_initialize_card_lists( card )'  *\/ ]\r\n[    1.457105] [ INFO: 'snd_soc_register_card()', #2944 : \/*   Invoke : 'snd_soc_instantiate_card( card )'  *\/ ]\r\n[    1.457108] [ 'soc-core.c', #1996 : ==> Entering the function 'snd_soc_instantiate_card()';  ]\r\n[    1.457110] [ INFO: 'snd_soc_instantiate_card()', #2009 : \/*      Invoke : 'soc_bind_dai_link()'  *\/ ]\r\n[    1.457114] [ 'soc-core.c', #1016 : ==> Entering the function 'soc_bind_dai_link()';  ]\r\n[    1.457117] [ INFO: 'soc_bind_dai_link()', #1028 : \/* ASoC: binding 'ExtDAC' *\/ ]\r\n[    1.457120] [ INFO: 'soc_bind_dai_link()', #1039 : \/* Invoke : 'soc_new_pcm_runtime()'  *\/ ]\r\n[    1.457127] [ INFO: 'soc_bind_dai_link()', #1051 : \/* Invoke : 'snd_soc_find_dai()'  *\/ ]\r\n[    1.457130] [ 'soc-core.c', #966 : ==> Entering the function 'snd_soc_find_dai()';  ]\r\n[    1.457136] [ 'soc-core.c', #988 : <== Exiting the function 'snd_soc_find_dai()' : return ( dai )]\r\n[    1.457139] [ 'soc-core.c', #966 : ==> Entering the function 'snd_soc_find_dai()';  ]\r\n[    1.457143] [ 'soc-core.c', #988 : <== Exiting the function 'snd_soc_find_dai()' : return ( dai )]\r\n[    1.457147] [ INFO: 'soc_bind_dai_link()', #1105 : \/* Invoke : 'soc_add_pcm_runtime()'  *\/ ]\r\n[    1.457150] [ 'soc-core.c', #1109 : <== Exiting the function 'soc_bind_dai_link()' : return ( 0 ) ]\r\n[    1.457154] [ INFO: 'snd_soc_instantiate_card()', #2026 : \/*      Invoke : 'snd_soc_add_dai_link()'  *\/ ]\r\n[    1.457157] [ 'soc-core.c', #1351 : ==> Entering the function 'snd_soc_add_dai_link()';  ]\r\n[    1.457161] [ 'soc-core.c', #1371 : <== Exiting the function 'snd_soc_add_dai_link()' : return ( 0 ) ]\r\n[    1.457164] [ INFO: 'snd_soc_instantiate_card()', #2036 : \/*      Invoke : 'snd_soc_init_codec_cache( codec )'  *\/ ]\r\n[    1.457167] [ 'soc-core.c', #1887 : ==> Entering the function 'snd_soc_init_codec_cache()';  ]\r\n[    1.457171] [ 'soc-core.c', #1907 : <== Exiting the function 'snd_soc_init_codec_cache()' : return ( 0 ) ]\r\n[    1.457174] [ INFO: 'snd_soc_instantiate_card()', #2036 : \/*      Invoke : 'snd_soc_init_codec_cache( codec )'  *\/ ]\r\n[    1.457176] [ 'soc-core.c', #1887 : ==> Entering the function 'snd_soc_init_codec_cache()';  ]\r\n[    1.457179] [ 'soc-core.c', #1907 : <== Exiting the function 'snd_soc_init_codec_cache()' : return ( 0 ) ]\r\n[    1.457183] [ INFO: 'snd_soc_instantiate_card()', #2045 : \/*  card bind complete so register a sound card  :  Invoke : 'snd_card_new()'  *\/ ]\r\n[    1.457218] [ INFO: 'snd_soc_instantiate_card()', #2057 : \/*   Invoke : 'soc_init_card_debugfs()'  *\/ ]\r\n[    1.457221] [ 'soc-core.c', #456 : ==> Entering the function 'soc_init_card_debugfs()' ]\r\n[    1.457262] [ 'soc-core.c', #476 : <== Exitting the function 'soc_init_card_debugfs()' : return( void ) ]\r\n[    1.457274] [ INFO: 'snd_soc_instantiate_card()', #2096 : \/*   Invoke : 'soc_probe_link_components()'  *\/ ]\r\n[    1.457277] [ 'soc-core.c', #1593 : ==> Entering the function 'soc_probe_link_components()';  ]\r\n[    1.457282] [ 'soc-core.c', #1624 : <== Exiting the function 'soc_probe_link_components()' : return ( 0 ) ]\r\n[    1.457285] [ INFO: 'snd_soc_instantiate_card()', #2096 : \/*   Invoke : 'soc_probe_link_components()'  *\/ ]\r\n[    1.457287] [ 'soc-core.c', #1593 : ==> Entering the function 'soc_probe_link_components()';  ]\r\n[    1.457290] [ 'soc-core.c', #1624 : <== Exiting the function 'soc_probe_link_components()' : return ( 0 ) ]\r\n[    1.457293] [ INFO: 'snd_soc_instantiate_card()', #2096 : \/*   Invoke : 'soc_probe_link_components()'  *\/ ]\r\n[    1.457295] [ 'soc-core.c', #1593 : ==> Entering the function 'soc_probe_link_components()';  ]\r\n[    1.457298] [ 'soc-core.c', #1438 : ==> Entering the function 'soc_probe_component()';  ]\r\n[    1.457303] [ INFO: 'soc_probe_component()', #1471 : \/* Invoke : 'soc_init_component_debugfs()'  *\/ ]\r\n[    1.457322] [ 'soc-core.c', #1532 : <== Exiting the function 'soc_probe_component()' : return ( 0 ) ]\r\n[    1.457325] [ 'soc-core.c', #1438 : ==> Entering the function 'soc_probe_component()';  ]\r\n[    1.457328] [ INFO: 'soc_probe_component()', #1471 : \/* Invoke : 'soc_init_component_debugfs()'  *\/ ]\r\n[    1.457373] [ 'soc-core.c', #1532 : <== Exiting the function 'soc_probe_component()' : return ( 0 ) ]\r\n[    1.457376] [ 'soc-core.c', #1624 : <== Exiting the function 'soc_probe_link_components()' : return ( 0 ) ]\r\n[    1.457379] [ INFO: 'snd_soc_instantiate_card()', #2096 : \/*   Invoke : 'soc_probe_link_components()'  *\/ ]\r\n[    1.457382] [ 'soc-core.c', #1593 : ==> Entering the function 'soc_probe_link_components()';  ]\r\n[    1.457384] [ 'soc-core.c', #1438 : ==> Entering the function 'soc_probe_component()';  ]\r\n[    1.457387] [ INFO: 'soc_probe_component()', #1471 : \/* Invoke : 'soc_init_component_debugfs()'  *\/ ]\r\n[    1.457408] [ 'soc-core.c', #1532 : <== Exiting the function 'soc_probe_component()' : return ( 0 ) ]\r\n[    1.457412] [ 'soc-core.c', #1624 : <== Exiting the function 'soc_probe_link_components()' : return ( 0 ) ]\r\n[    1.457414] [ INFO: 'snd_soc_instantiate_card()', #2096 : \/*   Invoke : 'soc_probe_link_components()'  *\/ ]\r\n[    1.457417] [ 'soc-core.c', #1593 : ==> Entering the function 'soc_probe_link_components()';  ]\r\n[    1.457420] [ 'soc-core.c', #1624 : <== Exiting the function 'soc_probe_link_components()' : return ( 0 ) ]\r\n[    1.457424] [ INFO: 'snd_soc_instantiate_card()', #2137 : \/*   Invoke : 'soc_probe_link_dais()'  *\/ ]\r\n[    1.457427] [ 'soc-core.c', #1699 : ==> Entering the function 'soc_probe_link_dais()';  ]\r\n[    1.457430] [ INFO: 'soc_probe_link_dais()', #1711 : \/* Invoke : 'soc_probe_dai()' CPU DAI  *\/ ]\r\n[    1.457433] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457436] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457440] [ INFO: 'soc_probe_link_dais()', #1722 : \/* Invoke : 'soc_probe_dai()' CODEC DAI  *\/ ]\r\n[    1.457442] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457445] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457448] [ 'soc-core.c', #1734 : <== Exiting the function 'soc_probe_link_dais()' : return ( 0 ) ]\r\n[    1.457451] [ INFO: 'snd_soc_instantiate_card()', #2137 : \/*   Invoke : 'soc_probe_link_dais()'  *\/ ]\r\n[    1.457453] [ 'soc-core.c', #1699 : ==> Entering the function 'soc_probe_link_dais()';  ]\r\n[    1.457456] [ INFO: 'soc_probe_link_dais()', #1711 : \/* Invoke : 'soc_probe_dai()' CPU DAI  *\/ ]\r\n[    1.457458] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457461] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457463] [ INFO: 'soc_probe_link_dais()', #1722 : \/* Invoke : 'soc_probe_dai()' CODEC DAI  *\/ ]\r\n[    1.457465] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457468] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457471] [ 'soc-core.c', #1734 : <== Exiting the function 'soc_probe_link_dais()' : return ( 0 ) ]\r\n[    1.457473] [ INFO: 'snd_soc_instantiate_card()', #2137 : \/*   Invoke : 'soc_probe_link_dais()'  *\/ ]\r\n[    1.457475] [ 'soc-core.c', #1699 : ==> Entering the function 'soc_probe_link_dais()';  ]\r\n[    1.457478] [ INFO: 'soc_probe_link_dais()', #1711 : \/* Invoke : 'soc_probe_dai()' CPU DAI  *\/ ]\r\n[    1.457480] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457484] [ 'davinci-mcasp.c', #2140 : ==> Entering the function 'davinci_mcasp_dai_probe()' ]\r\n[    1.457487] [ 'davinci-mcasp.c', #2167 : <== Exitting the function 'davinci_mcasp_dai_probe()'  : return( 0 ) ]\r\n[    1.457489] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457492] [ INFO: 'soc_probe_link_dais()', #1722 : \/* Invoke : 'soc_probe_dai()' CODEC DAI  *\/ ]\r\n[    1.457494] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457497] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457500] [ 'soc-core.c', #1734 : <== Exiting the function 'soc_probe_link_dais()' : return ( 0 ) ]\r\n[    1.457502] [ INFO: 'snd_soc_instantiate_card()', #2137 : \/*   Invoke : 'soc_probe_link_dais()'  *\/ ]\r\n[    1.457505] [ 'soc-core.c', #1699 : ==> Entering the function 'soc_probe_link_dais()';  ]\r\n[    1.457507] [ INFO: 'soc_probe_link_dais()', #1711 : \/* Invoke : 'soc_probe_dai()' CPU DAI  *\/ ]\r\n[    1.457509] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457512] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457514] [ INFO: 'soc_probe_link_dais()', #1722 : \/* Invoke : 'soc_probe_dai()' CODEC DAI  *\/ ]\r\n[    1.457517] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457519] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457522] [ 'soc-core.c', #1734 : <== Exiting the function 'soc_probe_link_dais()' : return ( 0 ) ]\r\n[    1.457524] [ INFO: 'snd_soc_instantiate_card()', #2137 : \/*   Invoke : 'soc_probe_link_dais()'  *\/ ]\r\n[    1.457527] [ 'soc-core.c', #1699 : ==> Entering the function 'soc_probe_link_dais()';  ]\r\n[    1.457529] [ INFO: 'soc_probe_link_dais()', #1711 : \/* Invoke : 'soc_probe_dai()' CPU DAI  *\/ ]\r\n[    1.457531] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457534] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457536] [ INFO: 'soc_probe_link_dais()', #1722 : \/* Invoke : 'soc_probe_dai()' CODEC DAI  *\/ ]\r\n[    1.457539] [ 'soc-core.c', #1631 : ==> Entering the function 'soc_probe_dai()';  ]\r\n[    1.457541] [ 'soc-core.c', #1649 : <== Exiting the function 'soc_probe_dai()' : return ( 0 ) ]\r\n[    1.457545] [ INFO: 'soc_probe_link_dais()', #1755 : \/* Invoke : 'soc_post_component_init()'  *\/ ]\r\n[    1.457547] [ 'soc-core.c', #1554 : ==> Entering the function 'soc_post_component_init()';  ]\r\n[    1.457612] [ 'soc-core.c', #1584 : <== Exiting the function 'soc_post_component_init()' : return ( 0 ) ]\r\n[    1.457616] [ INFO: 'soc_probe_link_dais()', #1781 : \/*  create the pcm :  Invoke : 'soc_new_pcm()'  *\/ ]\r\n[    1.457620] [ 'soc-pcm.c', #2758 : ==> Entering the function 'soc_new_pcm()' ]\r\n[    1.457702] [ INFO: 'soc_new_pcm', #2822 : ASoC: registered pcm #0  'external botic-hifi-0'  ]\r\n[    1.457706] [ INFO: 'soc_new_pcm', #2839 : ASoC: PCM operations ==>  'Not Dynamic'  ]\r\n[    1.457713] [ 'soc-generic-dmaengine-pcm.c', #313 : ==> Entering the function 'dmaengine_pcm_new()' ]\r\n[    1.457717] [ INFO: 'dmaengine_pcm_new()', #339 : \/* Invoke 'snd_soc_dai_get_dma_data( rtd->cpu_dai, substream )' *\/  ]\r\n[    1.462927] [ INFO: 'dmaengine_pcm_new()', #339 : \/* Invoke 'snd_soc_dai_get_dma_data( rtd->cpu_dai, substream )' *\/  ]\r\n[    1.468033] [ 'soc-generic-dmaengine-pcm.c', #374 : <== Exitting the function 'dmaengine_pcm_new()' : return( 0 )  ]\r\n[    1.468046] asoc-botic-card botic: botic-hifi <-> 48038000.mcasp mapping ok\r\n[    1.468051] [ INFO: 'soc_new_pcm', #2896 : ASoC:  codec 'botic-hifi' <-----> dai '48038000.mcasp'  ==> mapping ok  ]\r\n[    1.468055] [ 'soc-pcm.c', #2899 : <== Exitting the function 'soc_new_pcm()' : return( ret ==> 0 )  ]\r\n[    1.468058] [ 'soc-core.c', #1801 : <== Exiting the function 'soc_probe_link_dais()' : return ( 0 ) ]\r\n[    1.468062] [ INFO: 'snd_soc_instantiate_card()', #2148 : \/*   Invoke : 'snd_soc_dapm_link_dai_widgets()'  *\/ ]\r\n[    1.468066] [ INFO: 'snd_soc_instantiate_card()', #2152 : \/*   Invoke : 'snd_soc_dapm_connect_dai_link_widgets()'  *\/ ]\r\n[    1.468073] [ INFO: 'snd_soc_instantiate_card()', #2196 : \/*   Invoke : 'snd_soc_dapm_new_widgets()'  *\/ ]\r\n[    1.477954] [ INFO: 'snd_soc_instantiate_card()', #2199 : \/*   Invoke : 'snd_card_register()'  *\/ ]\r\n[    1.478568] [ 'soc-core.c', #2214 : <== Exiting the function 'snd_soc_instantiate_card()' : return ( 0 ) ]\r\n[    1.478575] [ 'soc-core.c', #2966 : <== Exiting the function 'snd_soc_register_card()' : return ( ret ==> 0 ) ]\r\n[    1.478581] [ INFO: 'asoc_botic_card_probe()', #611 :  Clock : 48k ==> 'external', 44.1k ==> 'external' : DSD format SW ==> 'use' ] \r\n[    1.478584] [ INFO: 'asoc_botic_card_probe()', #619 : \/*  'Botic card' power SW ==> 'ON' : Invoke 'gpio_set_value( gpio_card_power_switch, 1 );'\t*\/ ]\r\n[    1.478593] [ 'botic-card.c', #640 : <== Exiting the function 'asoc_botic_card_probe()' ( ret ==> 0 ) ]\r\n[    1.478975] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-07 12:51:19 UTC (947249479)\r\n[    1.481793] platform 53100000.sham: omap_device_late_idle: enabled but no driver.  Idling\r\n[    1.481901] ALSA device list:\r\n[    1.481908]   #0: Botic\r\n[    2.286135] random: fast init done\r\n[    4.520733] RAMDISK: gzip image found at block 0\r\n[    4.529519] mmcblk0: mmc0:0007 SD4GB 3.71 GiB \r\n[    4.535620]  mmcblk0: p1\r\n[    4.616734] mmc1: new high speed MMC card at address 0001\r\n[    4.629465] mmcblk1: mmc1:0001 MMC04G 3.66 GiB \r\n[    4.639082] mmcblk1boot0: mmc1:0001 MMC04G partition 1 1.00 MiB\r\n[    4.659184] mmcblk1boot1: mmc1:0001 MMC04G partition 2 1.00 MiB\r\n[    4.667329]  mmcblk1: p1\r\n[    6.256998] VFS: Mounted root (romfs filesystem) readonly on device 1:0.\r\n[    6.264335] devtmpfs: mounted\r\n[    6.268957] Freeing unused kernel memory: 1024K (c0800000 - c0900000)\r\nlightMPD initializer start SYSTYPE=beaglebone BOOTDEV=\/dev\/mmcblk0p1\r\nsetup \/var  OK\r\n[    6.741268] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.\r\ncopy script file   OK\r\ncopy conf file lightmpd.conf mpd.conf sysctl.conf   OK\r\nOK\r\nconfig musb-hdrc.1.auto: illegal irqname\r\nOK\r\nsysctl vm.swappiness = 0\r\nkernel.sched_rt_runtime_us = -1\r\nkernel.sched_rt_period_us = 10000\r\nkernel.printk = 4 4 1 4\r\nOK\r\nStarting logging: OK\r\nread-only file system detected...done\r\nStarting rpcbind: OK\r\nStarting network...\r\nwaiting eth0 link up ..linked up\r\nGetting initial time via ntp.\r\nStarting telnetd: OK\r\nNAS mount OK\r\nset affinity 0 1 1 ((musb-hdrc.1.auto FIFO:99))OK\r\n thttpdStarting mpd affinity mask 0: OK\r\n webconsole started\r\n\/usr\/bin\/ntpq: read: Connection refused\r\n\r\n\r\nWelcome to lightMPD\r\n\r\nlightmpd login:\r\n<\/code><\/pre>\r\n<br>\r\n<br>\r\n<p>\u3053\u306e\u30ed\u30b0\u306e\u5185\u5bb9\u304b\u3089\u3001&#8221;Botic&#8221;\u95a2\u9023\u306e\u30c9\u30e9\u30a4\u30d0\u306a\u3069\u304cLinux\u8d77\u52d5\u6642\u306bALSA\u306e\u4e00\u9023\u306e\u51e6\u7406\u624b\u9806\u306b\u3088\u3063\u3066\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u306e\u304c\u89e3\u308b\u3060\u308d\u3046\u3002\u3053\u306e\u30ed\u30b0\u306e\u5185\u5bb9\u304b\u3089\u306f\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306e\u30c1\u30e3\u30cd\u30eb\u30a2\u30b5\u30a4\u30f3\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u3088\u3046\u306a\u6709\u76ca\u306a\u60c5\u5831\u306f\u5f97\u3089\u308c\u306a\u304b\u3063\u305f\u304c\u3001ALSA\u3067\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u767b\u9332\u306e\u4ed5\u7d44\u307f\u3084\u624b\u9806\u306f\u3042\u308b\u7a0b\u5ea6\u628a\u63e1\u3067\u304d\u308b\u3060\u308d\u3046\u3002<\/p>\r\n<br>\r\n<p>\u6b21\u306b\u3001PCM 2ch (Stereo) \u518d\u751f\u6642\u306e\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u3092\u8ffd\u3063\u3066\u307f\u308b\u3053\u3068\u306b\u3059\u308b\u3002\u3082\u3061\u308d\u3093\u3053\u306e\u5834\u5408\u306f\u3001\u30c1\u30e3\u30cd\u30eb\u306e\u30a2\u30b5\u30a4\u30f3\u554f\u984c\u306f\u751f\u3058\u305a\u3001\u304d\u3061\u3093\u3068\u901a\u5e38\u306eL,R\u306e\u9806\u756a\u3067\u518d\u751f\u3055\u308c\u308b\u3002<\/p>\r\n<br>\r\n<br>\r\n<pre style=\"height: 500px;\">\r\n<code class=\"language-Markup\">\r\n\r\n======  PCM 2ch Stereo 24bit 96KHz  [FLAC File] =====\r\n\r\n[ 2326.788159] [ 'pcm_native.c', #2522 : ==> Entering the function 'snd_pcm_playback_open()' ]\r\n[ 2326.797156] [  INFO: 'snd_pcm_playback_open()' : #2526 : \/*  Invoke 'nonseekable_open( inode, file );'  *\/ ]\r\n[ 2326.807514] [  INFO: 'snd_pcm_playback_open()' : #2535 : \/*  Invoke 'snd_lookup_minor_data( inode, file );'  *\/ ]\r\n[ 2326.818297] [  INFO: 'snd_pcm_playback_open()' : #2539 : \/*  Invoke 'snd_pcm_open( inode, file );'  *\/ ]\r\n[ 2326.828332] [ 'pcm_native.c' #2567 : ==> Entering the function snd_pcm_open(); ]\r\n[ 2326.837162] [  INFO: 'snd_pcm_open()' : #2577 : \/*  Invoke 'snd_card_file_add( pcm->card, file );'  *\/ ]\r\n[ 2326.848043] [  INFO: 'snd_pcm_open()' : #2597 : \/*  Invoke 'snd_pcm_open_file( file, pcm, stream );'  *\/ ]\r\n[ 2326.858221] [ 'pcm_native.c', #2488 : ==> Entering the function 'snd_pcm_open_file()' ]\r\n[ 2326.866661] [  INFO: 'snd_pcm_open_file()' : #2494 : \/*  Invoke 'snd_pcm_open_substream( pcm, stream, file, &substream );'  *\/ ]\r\n[ 2326.879914] [ 'pcm_native.c', #2428 : ==> Entering the function 'snd_pcm_open_substream()' ]\r\n[ 2326.889674] [  INFO: 'snd_pcm_open_substream()' : #2433 : \/*  Invoke 'snd_pcm_attach_substream( pcm, stream, file, &substream );'  *\/ ]\r\n[ 2326.902536] [  INFO: 'snd_pcm_open_substream()' : #2448 : \/*  Invoke 'snd_pcm_hw_constraints_init( substream );'  *\/ ]\r\n[ 2326.913891] [ 'soc-pcm.c', #454 : ==> Entering the function 'soc_pcm_open()' ]\r\n[ 2326.922565] [ 'davinci-mcasp.c', #1930 : ==> Entering the function 'davinci_mcasp_startup()' ]\r\n[ 2326.932245] [  INFO: 'davinci_mcasp_startup()', #1950 :   \/* tdm_slots = mcasp->tdm_slots ==> 2 *\/   ]\r\n[ 2326.942055] [  INFO: 'davinci_mcasp_startup()', #1977 :   \/* ruledata->serializers ==> 4,  max_channels ==> 8  *\/   ]\r\n[ 2326.953197] [  INFO: 'davinci_mcasp_startup()', #1999 :   \/* max_channels ==> 8  *\/   ]\r\n[ 2326.961717] [  INFO: 'davinci_mcasp_startup()', #2002 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_CHANNELS, 2, max_channels );'  *\/   ]\r\n[ 2326.977145] [  INFO: 'davinci_mcasp_startup()', #2008 :   \/* Invoke  'snd_pcm_hw_constraint_list( 0, SNDRV_PCM_HW_PARAM_CHANNELS,  &mcasp->chconstr[substream->stream] );'  *\/   ]\r\n[ 2326.993832] [ 'davinci-mcasp.c', #2059 : <== Exitting the function 'davinci_mcasp_startup()'  : return( 0 ) ]\r\n[ 2327.004162] [ 'soc-generic-dmaengine-pcm.c', #248 : ==> Entering the function 'dmaengine_pcm_open()' ]\r\n[ 2327.013854] [ INFO: 'dmaengine_pcm_open()', #255 : \/* Invoke 'dmaengine_pcm_set_runtime_hwparams( substream )' *\/  ]\r\n[ 2327.024885] [ 'soc-generic-dmaengine-pcm.c', #132 : ==> Entering the function 'dmaengine_pcm_set_runtime_hwparams()' ]\r\n[ 2327.036046] [ 'soc-generic-dmaengine-pcm.c', #149 : <== Exitting the function 'dmaengine_pcm_set_runtime_hwparams()' : return( 'snd_soc_set_runtime_hwparams( substream, pcm->config->pcm_hardware );' )  ]\r\n[ 2327.054887] [ 'soc-generic-dmaengine-pcm.c', #263 : <== Exitting the function 'dmaengine_pcm_open()' : return( 'snd_dmaengine_pcm_open( substream, chan );' )  ]\r\n[ 2327.069837] [ INFO: 'soc_pcm_open()', #543 :  soc_pcm_has_symmetry( substream ) ==> 'TRUE'   ]\r\n[ 2327.078815] [ INFO: 'soc_pcm_open()', #566 :  Invoke 'soc_pcm_apply_msb( substream )'  ]\r\n[ 2327.087236] [ INFO: 'soc_pcm_open()', #588 :  ASoC:  codec dai name: 'botic-hifi' <---->  cpu dai name:'48038000.mcasp'  ]\r\n[ 2327.098735] [ INFO: 'soc_pcm_open()', #591 :  ASoC:  rate mask 0x40000000  ]\r\n[ 2327.106068] [ INFO: 'soc_pcm_open()', #594 :  ASoC:  min ch 2,  max ch 8  ]\r\n[ 2327.113316] [ INFO: 'soc_pcm_open()', #597 :  ASoC:  min rate 11025,  max rate 768000  ]\r\n[ 2327.121741] [ INFO: 'soc_pcm_open()', #601 :  Invoke 'snd_soc_runtime_activate( rtd, substream->stream  )'  ]\r\n[ 2327.132070] [ 'soc-pcm.c', #607 : <== Exitting the function 'soc_pcm_open()' : return( 0 )  ]\r\n[ 2327.140947] [  INFO: 'snd_pcm_open_substream()' : #2461 : \/*  Invoke 'snd_pcm_hw_constraints_complete( substream );'  *\/ ]\r\n[ 2327.152543] [ 'pcm_native.c', #2470 : <== Exitting the function 'snd_pcm_open_substream()' : return( 0 ) ]\r\n[ 2327.162598] [ 'pcm_native.c', #2515 : <== Exitting the function 'snd_pcm_open_file()' : return( 0 )  ]\r\n[ 2327.172293] [ 'pcm_native.c' #2636 : ===> Exiting the function 'snd_pcm_open()' : return( err ==> 0 )  ]\r\n[ 2327.182168] [ 'pcm_native.c', #2545 : <== Exitting the function 'snd_pcm_playback_open()' : return( err ==> 0 ) ]\r\n[ 2327.193872] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.202190] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[ 2327.210983] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[ 2327.223747] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[ 2327.232991] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[ 2327.247859] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[ 2327.256783] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[ 2327.269572] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.279130] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.287370] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.296844] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.305095] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[ 2327.314342] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[ 2327.329195] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[ 2327.337976] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[ 2327.350746] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.360496] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.368793] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.378325] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.386597] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.396063] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.404324] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.413756] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.422006] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.431686] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.439958] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.449394] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.457644] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.467096] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.475353] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.484913] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.493184] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.502665] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.510919] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.520481] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.528756] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.538179] [ 'pcm_native.c', #534 : ==> Entering the function 'snd_pcm_hw_params()' ]\r\n[ 2327.546428] [ INFO: 'snd_pcm_hw_params()', $574 :  Invoke snd_pcm_hw_refine( substream, params ); ]\r\n[ 2327.555850] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[ 2327.564095] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[ 2327.572922] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[ 2327.585695] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[ 2327.594939] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[ 2327.609801] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[ 2327.619223] [ INFO: 'snd_pcm_hw_params()', $581 :  Invoke snd_pcm_hw_params_choose( substream, params ); ]\r\n[ 2327.629287] [ 'soc-pcm.c', #907 : ==> Entering the function 'soc_pcm_hw_params()' ]\r\n[ 2327.637251] [ INFO: 'soc_pcm_hw_params()', #916 :  Invoke 'soc_pcm_params_symmetry( substream, params )'  ]\r\n[ 2327.647400] [ 'botic-card.c', #189 : ==> Entering the function 'botic_hw_params()'; ]\r\n[ 2327.655553] [ INFO: 'botic_hw_params()', #201 : \/* format ==> SNDRV_PCM_FORMAT_S24_LE : (6)  *\/   ]\r\n[ 2327.664973] [ INFO: 'botic_hw_params()', #203 : \/* rate ==> 192000 *\/ ]\r\n[ 2327.671861] [ INFO: 'botic_hw_params()', #206 : \/* Invoke the function 'botic_setup_serializers( cpu_dai, format, &ser_setup )'  *\/ ]\r\n[ 2327.684357] [ 'botic-card.c', #94 : ==> Entering the function 'botic_setup_serializers()'; ]\r\n[ 2327.693160] [ 'botic-card.c', #95 :       ( args : snd_pcm_format_t format ==> SNDRV_PCM_FORMAT_S24_LE : (6) ) ]\r\n[ 2327.703755] [ INFO: 'botic_setup_serializers()', #103 : \/* User's Botic Serializer Setting ==> 'MMII' *\/ ]\r\n[ 2327.713810] [ INFO: 'botic_setup_serializers()', #155 : \/* Invoke the function 'snd_soc_dai_set_channel_map()' *\/ ]\r\n[ 2327.724676] [ 'soc-core.c', #2813 : ==> Entering the function 'snd_soc_dai_set_channel_map()';  ]\r\n[ 2327.733918] [ 'soc-core.c', #2817 : <== Exiting the function 'snd_soc_dai_set_channel_map()'  and  Return(  'dai->driver->ops->set_channel_map( dai,\r\ntx_num, tx_slot, rx_num, rx_slot )'  );  ]\r\n[ 2327.751659] [ 'davinci-mcasp.c', #1841 : ==> Entering the function 'davinci_mcasp_set_channel_map()' ]\r\n[ 2327.761351] [ 'davinci-mcasp.c', #1842 :     ( args : unsigned int tx_num ==> 4 , unsigned int rx_num ==> 0 ) ]\r\n[ 2327.771852] [  INFO: 'davinci_mcasp_set_channel_map()', #1850 :   \/* unsigned int *tx_slot  *\/]\r\n[ 2327.780916] [  INFO: 'davinci_mcasp_set_channel_map()', #1851 :   \/* tx_slot[0] ==> 0   *\/]\r\n[ 2327.789609] [  INFO: 'davinci_mcasp_set_channel_map()', #1852 :   \/* tx_slot[1] ==> 1   *\/]\r\n[ 2327.798297] [  INFO: 'davinci_mcasp_set_channel_map()', #1853 :   \/* tx_slot[2] ==> 2   *\/]\r\n[ 2327.806996] [  INFO: 'davinci_mcasp_set_channel_map()', #1854 :   \/* tx_slot[3] ==> 3   *\/]\r\n[ 2327.815692] [  INFO: davinci_mcasp_set_channel_map() : #1893 :   for ( slot = 0; slot < mcasp->num_serializer; slot++ ) : mcasp->num_serializer ==> 4  ]\r\n[ 2327.829991] [  INFO: davinci_mcasp_set_channel_map() : #1899 :  \/* for ( chan = 0; chan < tx_num; chan++ ) *\/  tx_num ==> 4  ]\r\n[ 2327.841943] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 0, slot ==> 0  ]\r\n[ 2327.853173] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[ 2327.867746] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 1, slot ==> 1  ]\r\n[ 2327.878975] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[ 2327.893545] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 2, slot ==> 2  ]\r\n[ 2327.904770] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[ 2327.919343] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 3, slot ==> 3  ]\r\n[ 2327.930574] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[ 2327.945186] [ 'davinci-mcasp.c', #1919 : <== Exitting the function 'davinci_mcasp_set_channel_map()'  : return( 0 ) ]\r\n[ 2327.956239] [ 'botic-card.c', $178 : ==> Exiting the function 'botic_setup_serializers()' : Return ( 0 ) ]\r\n[ 2327.966292] [ INFO: 'botic_hw_params()', #214 : \/* Invoke the function 'snd_soc_dai_set_fmt( codec_dai, ser_setup.dai_fmt )' : set CODEC DAI configs\r\n*\/ ]\r\n[ 2327.980595] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[ 2327.989114] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[ 2327.996811] [ 'soc-core.c', #2709 : <== Exiting the function 'snd_soc_dai_set_fmt()' : return ( -ENOTSUPP )  ]\r\n[ 2328.007228] [ INFO: 'botic_hw_params()', #222 : \/* Invoke the function 'snd_soc_dai_set_fmt()' : set CPU DAI configs *\/ ]\r\n[ 2328.018638] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[ 2328.027158] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[ 2328.034858] [ 'soc-core.c', #2713 : <== Exiting the function 'snd_soc_dai_set_fmt()'  and  Return(  'dai->driver->ops->set_fmt( dai, fmt )'  );  ]\r\n[ 2328.048528] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[ 2328.057773] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[ 2328.065659] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ]\r\n[ 2328.076346] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ]\r\n[ 2328.084952] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ]\r\n[ 2328.095996] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ]\r\n[ 2328.108533] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ]\r\n[ 2328.118953] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ]\r\n[ 2328.130362] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ]\r\n[ 2328.141049] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[ 2328.152097] [ INFO: 'botic_hw_params()', #246 : \/* sampling rates ==> '48k series' *\/ ]\r\n[ 2328.160431] [ INFO: 'botic_hw_params()', #249 : \/* External Master Clock SW is 'ON' ==> set 48k SW to 'HIGH'  *\/ ]\r\n[ 2328.171212] [ INFO: 'botic_hw_params()', #283 : \/* DSD Playback Mode is 'OFF' (PCM Playback Mode is 'ON')  *\/ ]\r\n[ 2328.181718] [ INFO: 'botic_hw_params()', #289 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :   set CODEC system clock  *\/ ]\r\n[ 2328.193856] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[ 2328.202643] [ 'soc-core.c', #2565 : <== Exiting the function 'snd_soc_dai_set_sysclk()' : return ( -ENOTSUPP )  ]\r\n[ 2328.213329] [ INFO: 'botic_hw_params()', #297 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :   set CPU system clock  *\/ ]\r\n[ 2328.225277] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[ 2328.234062] [ 'soc-core.c', #2554 : <== Exiting the function 'snd_soc_dai_set_sysclk()'  and  Return(  dai->driver->ops->set_sysclk( dai, clk_id, freq, dir ); );  ]\r\n[ 2328.249362] [ 'davinci-mcasp.c', #751 : ==> Entering the function 'davinci_mcasp_set_sysclk()' ]\r\n[ 2328.258502] [ 'davinci-mcasp.c', #771 : <== Exitting the function 'davinci_mcasp_set_sysclk()'  : return( 0 ) ]\r\n[ 2328.269011] [ INFO: 'botic_hw_params()', #305 : \/* Invoke the function 'snd_soc_dai_set_clkdiv( cpu_dai, 0, 1 )'  *\/ ]\r\n[ 2328.280146] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[ 2328.288935] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[ 2328.303419] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[ 2328.312752] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 0, div ==> 1, bool explicit ==> 1 ) ]\r\n[ 2328.322264] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>0) ]\r\n[ 2328.330510] [  INFO: __davinci_mcasp_set_clkdiv() : #660 :   ==> case MCASP_CLKDIV_AUXCLK \/* MCLK divider *\/ ]\r\n[ 2328.341022] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[ 2328.352430] [ INFO: 'botic_hw_params()', #352 : \/* Format ==> 'PCM : SNDRV_PCM_FORMAT_S24_LE : (6) ' :  Invoke  'snd_soc_dai_set_clkdiv( cpu_dai, 2,\r\nblr_ratio );'   blr_ratio ==> 64 *\/ ]\r\n[ 2328.369715] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[ 2328.378496] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[ 2328.392978] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[ 2328.402311] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 2, div ==> 64, bool explicit ==> 1 ) ]\r\n[ 2328.411909] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>2) ]\r\n[ 2328.420154] [  INFO: __davinci_mcasp_set_clkdiv() : #690 :   ==> case MCASP_CLKDIV_BCLK_FS_RATIO \/* BCLK\/LRCLK ratio  *\/ ]\r\n[ 2328.431751] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[ 2328.443159] [ INFO: 'botic_hw_params()', #359 : \/* BCLK rate ==> 12288000   *\/ ]\r\n[ 2328.450864] [ INFO: 'botic_hw_params()', #371 : \/*   divisor = ( sysclk + (bclk \/ 2) ) \/ bclk; ==> 4 :       Invoke  'snd_soc_dai_set_clkdiv( cpu_dai, 1, divisor );'  *\/ ]\r\n[ 2328.465982] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[ 2328.474770] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[ 2328.489253] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[ 2328.498578] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 1, div ==> 4, bool explicit ==> 1 ) ]\r\n[ 2328.508090] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>1) ]\r\n[ 2328.516332] [  INFO: __davinci_mcasp_set_clkdiv() : #668 :   ==> case MCASP_CLKDIV_BCLK \/* BCLK divider *\/ ]\r\n[ 2328.526657] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[ 2328.538117] [ 'botic-card.c', #383 : ===> Exiting the function 'botic_hw_params()' : ( Return : 0 ) ]\r\n[ 2328.547720] [ INFO: 'soc_pcm_hw_params()', #962 :  Invoke 'soc_dai_hw_params( substream, &codec_params, codec_dai )'  ]\r\n[ 2328.558951] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[ 2328.566918] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[ 2328.576248] [ INFO: 'soc_pcm_hw_params()', #972 :  codec_dai->rate = params_rate( &codec_params ); ==> 192000   ]\r\n[ 2328.586939] [ INFO: 'soc_pcm_hw_params()', #973 :  codec_dai->channels = params_channels( &codec_params ); ==> 6   ]\r\n[ 2328.597897] [ INFO: 'soc_pcm_hw_params()', #974 :  codec_dai->sample_bits = snd_pcm_format_physical_width( params_format(&codec_params) ); ==> 32   ]\r\n[ 2328.611840] [ INFO: 'soc_pcm_hw_params()', #979 :  Invoke 'soc_dai_hw_params( substream, params, cpu_dai )'  ]\r\n[ 2328.622252] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[ 2328.630227] [ 'davinci-mcasp.c', #1555 : ==> Entering the function 'davinci_mcasp_hw_params()' ]\r\n[ 2328.639380] [  INFO: davinci_mcasp_hw_params() : #1570 :   \/* channels = params_channels( params ); ==> 6, *\/   ]\r\n[ 2328.650159] [  INFO: davinci_mcasp_hw_params() : #1571 :   \/* period_size = params_period_size( params ); ==> 7200, *\/   ]\r\n[ 2328.661752] [  INFO: davinci_mcasp_hw_params() : #1582 :   \/* Invoke  'davinci_mcasp_set_dai_fmt( cpu_dai, mcasp->dai_fmt )' *\/  mcasp->dai_fmt ==> (16385)  ]\r\n[ 2328.676592] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[ 2328.685834] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[ 2328.693717] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ]\r\n[ 2328.704402] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ]\r\n[ 2328.713008] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ]\r\n[ 2328.724054] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ]\r\n[ 2328.736551] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ]\r\n[ 2328.746965] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ]\r\n[ 2328.758374] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ]\r\n[ 2328.769061] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[ 2328.780110] [  INFO: davinci_mcasp_hw_params() : #1612 :   \/* Invoke  'mcasp_common_hw_param( mcasp, substream->stream, period_size * channels, channels, dsd_mode )' *\/   ]\r\n[ 2328.796219] [ 'davinci-mcasp.c', #1016 : ==> Entering the function 'mcasp_common_hw_param()' ]\r\n[ 2328.805188] [ 'davinci-mcasp.c', #1018 :       args( int period_words ==> 43200, int channels ==> 6, bool dsd_mode ==> 0 ) ]\r\n[ 2328.816867] [  INFO: 'mcasp_common_hw_param()', #1025 : ================================================================================ ]\r\n[ 2328.829818] [  INFO: 'mcasp_common_hw_param()', #1026 :    Sound Playback Channels : PCM  6 channel                                      ]\r\n[ 2328.842766] [  INFO: 'mcasp_common_hw_param()', #1028 : ================================================================================ ]\r\n[ 2328.855713] [  INFO: mcasp_common_hw_param() : #1041 :  max_active_serializers ==> 3  ]\r\n[ 2328.864141] [  INFO: mcasp_common_hw_param() : #1069 :    disable_pins ==> 0 ]\r\n[ 2328.871820] [  INFO: 'mcasp_common_hw_param()', #1091 : \/* for ( i = 0; i < mcasp->num_serializer; i++ );   mcasp->num_serializer ==> 4  ]\r\n[ 2328.884785] [  INFO: 'mcasp_common_hw_param()', #1138 :  \/*  =====   if ( stream == SNDRV_PCM_STREAM_PLAYBACK )  ==> TRUE  ===== *\/  ]\r\n[ 2328.897374] [  INFO: 'mcasp_common_hw_param()', #1144 :  \/*  =====   active_serializers = tx_ser  ==>  3   =====  *\/  ]\r\n[ 2328.908604] [  INFO: 'mcasp_common_hw_param()', #1145 :  \/*  =====   numevt = mcasp->txnumevt;  ==>  16   =====  *\/  ]\r\n[ 2328.919744] [  INFO: 'mcasp_common_hw_param()', #1146 :  \/*  =====   reg = mcasp->fifo_base + MCASP_WFIFOCTL_OFFSET; ==>  4096 (0x1000)    =====  *\/\r\n ]\r\n[ 2328.933869] [  INFO: 'mcasp_common_hw_param()', #1214 :  \/*  =====   numevt = (numevt \/ active_serializers) * active_serializers; ==>  15    =====  *\/  ]\r\n[ 2328.948176] [  INFO: 'mcasp_common_hw_param()', #1215 :  \/*  =====   period_words; ==>  43200    =====  *\/  ]\r\n[ 2328.958508] [  INFO: 'mcasp_common_hw_param()', #1227 :  \/*  =====  OUT while () loop   =====   numevt ==>  15    =====  *\/  ]\r\n[ 2328.970374] [  INFO: 'mcasp_common_hw_param()', #1239 :  \/*  =====  dma_data->maxburst = numevt; ==>  15    =====  *\/  ]\r\n[ 2328.981692] [ 'davinci-mcasp.c', #1241 : <== Exitting the function 'mcasp_common_hw_param()'  : return( 0 ) ]\r\n[ 2328.992015] [  INFO: davinci_mcasp_hw_params() : #1625 :   \/* Invoke  'mcasp_i2s_hw_param( mcasp, substream->stream, channels, dsd_mode )' *\/   ]\r\n[ 2329.005684] [ 'davinci-mcasp.c', #1258 : ==> Entering the function 'mcasp_i2s_hw_param()' ]\r\n[ 2329.014381] [ 'davinci-mcasp.c', #1260 :       args( int channels ==> 6, bool dsd_mode ==> 0 ) ]\r\n[ 2329.023532] [  INFO: mcasp_i2s_hw_param() : #1275 :   total_slots = mcasp->tdm_slots ==> 2 ]\r\n[ 2329.032409] [  INFO: mcasp_i2s_hw_param() : #1305 :   \/* if ( mcasp->tdm_mask[stream] )  ==> FALSE *\/            ]\r\n[ 2329.043276] [  INFO: mcasp_i2s_hw_param() : #1309 :      active_serializers = (channels + total_slots - 1) \/ total_slots ==> 3  ]\r\n[ 2329.055502] [  INFO: mcasp_i2s_hw_param() : #1321 :   \/* if ( active_serializers == 1 ) ==> FALSE :  active_slots = total_slots; ==> 2 *\/   ]\r\n[ 2329.068813] [  INFO: mcasp_i2s_hw_param() : #1329 :   \/*  mask ==> 3 (0x3) *\/   ]\r\n[ 2329.076690] [ 'davinci-mcasp.c', #1378 : <== Exitting the function 'mcasp_i2s_hw_param()'  : return( 0 ) ]\r\n[ 2329.086747] [  INFO: davinci_mcasp_hw_params() : #1634 :   \/*  params_format(params) ==>  'SNDRV_PCM_FORMAT_S24_LE : (6)' ,  *\/   ]\r\n[ 2329.099158] [  INFO: davinci_mcasp_hw_params() : #1684 :   \/* Invoke  'davinci_config_channel_size( mcasp, word_length );'  word_length ==> 24 *\/   ]\r\n[ 2329.113188] [ 'davinci-mcasp.c', #915 : ==> Entering the function 'davinci_config_channel_size()' ]\r\n[ 2329.122611] [ 'davinci-mcasp.c', #916 :      args( int sample_width ==> 24 ) ]\r\n[ 2329.130136] [  INFO: davinci_config_channel_size() : #923 :   tx_rotate = (sample_width \/ 4) & 0x7;  ==> 6 ]\r\n[ 2329.140460] [  INFO: davinci_config_channel_size() : #924 :   mask = (1ULL << sample_width) - 1;  ==> 16777215 ]\r\n[ 2329.151144] [  INFO: davinci_config_channel_size() : #925 :   slot_width = sample_width;  ==> 24 ]\r\n[ 2329.160568] [  INFO: davinci_config_channel_size() : #957 :   lot_width = sample_width;1;  ==> 24 ]\r\n[ 2329.170077] [  INFO: davinci_config_channel_size() : #961 :  \/*  if ( mcasp->slot_width ) ==> TRUE     mcasp->slot_width ==> 32  *\/ ]\r\n[ 2329.182663] [  INFO: davinci_config_channel_size() : #971 :  \/*  slot_width = mcasp->slot_width;  ==> 32  *\/ ]\r\n[ 2329.193166] [  INFO: davinci_config_channel_size() : #972 :  \/*  rx_rotate = (slot_width - sample_width) \/ 4;  ==> 2  *\/ ]\r\n[ 2329.204754] [  INFO: davinci_config_channel_size() : #979 :  \/*  mapping of the XSSZ bit-field  : fmt = ( slot_width >> 1 ) - 1;  ==> 15  *\/ ]\r\n[ 2329.218157] [  INFO: davinci_config_channel_size() : #991 :    tx_rotate ==> 6 ]\r\n[ 2329.225953] [ 'davinci-mcasp.c', #1001 : <== Exitting the function 'davinci_config_channel_size()'  : return( 0 ) ]\r\n[ 2329.236821] [  INFO: davinci_mcasp_hw_params() : #1691 :   \/* mcasp->channels = channels ==> 6 *\/   ]\r\n[ 2329.246517] [ 'davinci-mcasp.c', #1693 : <== Exitting the function 'davinci_mcasp_hw_params()'  : return( 0 ) ]\r\n[ 2329.257020] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[ 2329.266350] [ 'soc-generic-dmaengine-pcm.c', #95 : ==> Entering the function 'dmaengine_pcm_hw_params()' ]\r\n[ 2329.276406] [ 'soc-generic-dmaengine-pcm.c', #123 : <== Exitting the function 'dmaengine_pcm_hw_params()' : return( 'snd_pcm_lib_malloc_pages( substream, params_buffer_bytes(params) );' )  ]\r\n[ 2329.294059] [ INFO: 'soc_pcm_hw_params()', #998 :  cpu_dai->rate = params_rate( params ); ==> 192000   ]\r\n[ 2329.303937] [ INFO: 'soc_pcm_hw_params()', #999 :  cpu_dai->channels = params_channels( params ); ==> 6   ]\r\n[ 2329.314079] [ INFO: 'soc_pcm_hw_params()', #1000 :  cpu_dai->sample_bits = snd_pcm_format_physical_width( params_format(params) ); ==> 32   ]\r\n[ 2329.327298] [ 'soc-pcm.c', #1005 : <== Exitting the function 'soc_pcm_hw_params()' : return( ret ==> 1 )  ]\r\n[ 2329.337444] [  INFO: 'snd_pcm_hw_params()', #610 : \/* runtime->format ==> 6, runtime->subformat ==> 0  ]\r\n[ 2329.347407] [  INFO: 'snd_pcm_hw_params()', #611 : \/* runtime->channels ==> 6, runtime->rate ==> 192000  ]\r\n[ 2329.357556] [  INFO: 'snd_pcm_hw_params()', #612 : \/* runtime->period_size ==> 7200, runtime->periods ==> 4  ]\r\n[ 2329.368059] [  INFO: 'snd_pcm_hw_params()', #613 : \/* runtime->buffer_size ==> 28800  ]\r\n[ 2329.376483] [  INFO: 'snd_pcm_hw_params()', #617 : \/* bits = snd_pcm_format_physical_width( runtime->format ); ==> 32  ]\r\n[ 2329.387890] [  INFO: 'snd_pcm_hw_params()', #619 : \/* ENDIAN :  ==> 'Little Endian'  ]\r\n[ 2329.396226] [  INFO: 'snd_pcm_hw_params()', #620 : \/* SIGNED\/UNSIGNED :  ==> 'Signed'  ]\r\n[ 2329.404742] [  INFO: 'snd_pcm_hw_params()', #634 : \/* runtime->byte_align ==> 24, runtime->min_align ==> 1  ]\r\n[ 2329.415175] [ 'pcm_native.c', #662 : <== Exitting the function 'snd_pcm_hw_params()' : return( 0 )  ]\r\n[ 2329.425157] [ 'pcm_native.c', #1643 : ==> Entering the function 'snd_pcm_prepare()' ]\r\n[ 2329.433339] [ 'soc-pcm.c', #786 : ==> Entering the function 'soc_pcm_prepare()' ]\r\n[ 2329.441139] [ INFO: 'soc_pcm_prepare()', #844 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[ 2329.455341] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[ 2329.464401] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[ 2329.475277] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[ 2329.484249] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[ 2329.499827] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[ 2329.509159] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 0, int stream ==> 0 ) ]\r\n[ 2329.517935] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ]\r\n[ 2329.526496] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[ 2329.537199] [ 'soc-pcm.c', #857 : <== Exitting the function 'soc_pcm_prepare()' : return( ret ==> 0 )  ]\r\n[ 2329.547086] [ 'pcm_native.c', #1662 : <== Exitting the function 'snd_pcm_prepare()' :  return ( res ==> 0 ) ]\r\n[ 2329.567423] [ 'pcm_native.c', #1168 : ==> Entering the function 'snd_pcm_start()' ]\r\n[ 2329.575413] [ 'pcm_native.c', #1170 : ===> Exiting the function snd_pcm_start() : Return : 'snd_pcm_action( &snd_pcm_action_start, substream, SNDRV_PCM_STATE_RUNNING );' ' ]\r\n[ 2329.591521] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[ 2329.599426] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[ 2329.608388] [ 'davinci-mcasp.c', #227 : ==> Entering the function mcasp_start_tx(); ]\r\n[ 2329.616537] [  INFO: mcasp_start_tx() : #231 :    mcasp->txnumevt  ==> 16  ]\r\n[ 2329.623963] [ 'davinci-mcasp.c', #262 : <== Exiting the function mcasp_start_tx(); return ( VOID ) ]\r\n[ 2329.633464] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[ 2329.644327] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n   \uff08\u3053\u3053\u304b\u3089\u5b9f\u969b\u306e\u66f2\u306e\u518d\u751f\u304c\u59cb\u307e\u308b\uff09\r\n\u3000\u3000\u3000 ... \r\n   \uff08\u518d\u751f\u7d42\u4e86\uff09\r\n[ 2349.612503] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[ 2349.620678] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[ 2349.628564] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[ 2349.637524] [ 'davinci-mcasp.c', #303 : ==> Entering the function 'mcasp_stop_tx()' ]\r\n[ 2349.645671] [ 'davinci-mcasp.c', #324 : <== Exiting the function mcasp_stop_tx(); return( VOID ) ]\r\n[ 2349.654995] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[ 2349.665854] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n[ 2349.675083] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[ 2349.684967] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[ 2349.693120] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[ 2349.702564] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[ 2349.710714] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[ 2349.720095] [ 'soc-pcm.c', #1041 : ==> Entering the function 'soc_pcm_hw_free()' ]\r\n[ 2349.727973] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[ 2349.736946] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[ 2349.747820] [ 'soc-pcm.c', #1096 : <== Exitting the function 'soc_pcm_hw_free()' : return( 0 )  ]\r\n[ 2349.757085] [ 'pcm_native.c' #2653 : ==> Entering the function snd_pcm_release(); ]\r\n[ 2349.765062] [ 'soc-pcm.c', #693 : ==> Entering the function 'soc_pcm_close()' ]\r\n[ 2349.772678] [ INFO: 'soc_pcm_open()', #715 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[ 2349.783550] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[ 2349.792517] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[ 2349.808094] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[ 2349.817550] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 1, int stream ==> 0 ) ]\r\n[ 2349.826073] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ]\r\n[ 2349.834503] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[ 2349.845190] [ 'davinci-mcasp.c', #2069 : ==> Entering the function 'davinci_mcasp_shutdown()' ]\r\n[ 2349.854250] [ 'davinci-mcasp.c', #2083 : <== Exitting the function 'davinci_mcasp_shutdown()'  : return( VOID ) ]\r\n[ 2349.865039] [ 'soc-pcm.c', #772 : <== Exitting the function 'soc_pcm_close()' : return( 0 )  ]\r\n[ 2349.874018] [ 'pcm_native.c', #1995 : ==> Entering the function 'snd_pcm_unlink()' ]\r\n[ 2349.882086] [ 'pcm_native.c', #2020 : <== Exitting the function 'snd_pcm_unlink()': return ( res ==> -114 ) ]\r\n[ 2349.892427] [ 'pcm_native.c' #2672 : ===> Exiting the function snd_pcm_release() : Return( 0 ) ]\r\n\r\n\r\n<\/code><\/pre>\r\n<br>\r\n<br>\r\n<p>\u6b21\u306b\u3001\u554f\u984c\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM 5.1ch (6ch) \u518d\u751f\u6642\u306e\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u3092\u63d0\u793a\u3059\u308b\u3002\u3053\u306e\u5834\u5408\u3001\u5b9f\u969b\u306b\u51fa\u529b\u3055\u308c\u308b\u30c1\u30e3\u30cd\u30eb\u306e\u30a2\u30b5\u30a4\u30f3\u306f\u60f3\u5b9a\u3068\u306f\u7570\u306a\u308b\u7269\u3068\u306a\u3063\u3066\u3044\u308b<\/p>\r\n<br>\r\n<p>\u60f3\u5b9a\u3059\u308bMcASP\u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u30fc\u3068I2S\u51fa\u529b\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u306f\u3001<br>\r\n<br>\r\n\u3000\u3000Serializer #0 : [ Front Left    (ch:0) &#8211;  Front Right    (ch:1) ]  <br>\r\n\u3000\u3000Serializer #1 : [ Front Center  (ch:2) &#8211;  Low Freq.      (ch:3) ]  <br>\r\n\u3000\u3000Serializer #2 : [ Surround Left (ch:4) &#8211;  Surround Right (ch:5) ] <br>\r\n<br>\r\n\u306a\u306e\u3060\u304c\u3001\u5b9f\u969b\u306b\u51fa\u529b\u3055\u308c\u308b\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u306f\u3001<br>\r\n\u3000\u3000Serializer #0 : [ Front Left   (ch:0) &#8211;  Low Freq.     \u3000(ch:3) ]  <br>\r\n\u3000\u3000Serializer #1 : [ Front Right  (ch:1) &#8211;  Surround Left   (ch:4) ]  <br>\r\n\u3000\u3000Serializer #2 : [ Front Center (ch:2) &#8211;  Surround Right  (ch:5) ] <br>\r\n<br>\r\n\u3068\u306a\u3063\u3066\u3057\u307e\u3046\u3002 \r\n<br>\r\n\r\n<pre style=\"height: 500px;\">\r\n<code class=\"language-Markup\">\r\n\r\n======  PCM 5.1ch (6ch) 16bit 44.1KHz  [FLAC File] =====\r\n\r\n[   94.534547] [ 'pcm_native.c', #2522 : ==> Entering the function 'snd_pcm_playback_open()' ]\r\n[   94.543523] [  INFO: 'snd_pcm_playback_open()' : #2526 : \/*  Invoke 'nonseekable_open( inode, file );'  *\/ ]\r\n[   94.555622] [  INFO: 'snd_pcm_playback_open()' : #2535 : \/*  Invoke 'snd_lookup_minor_data( inode, file );'  *\/ ]\r\n[   94.566682] [  INFO: 'snd_pcm_playback_open()' : #2539 : \/*  Invoke 'snd_pcm_open( inode, file );'  *\/ ]\r\n[   94.576695] [ 'pcm_native.c' #2567 : ==> Entering the function snd_pcm_open(); ]\r\n[   94.584402] [  INFO: 'snd_pcm_open()' : #2577 : \/*  Invoke 'snd_card_file_add( pcm->card, file );'  *\/ ]\r\n[   94.594371] [  INFO: 'snd_pcm_open()' : #2597 : \/*  Invoke 'snd_pcm_open_file( file, pcm, stream );'  *\/ ]\r\n[   94.604581] [ 'pcm_native.c', #2488 : ==> Entering the function 'snd_pcm_open_file()' ]\r\n[   94.614029] [  INFO: 'snd_pcm_open_file()' : #2494 : \/*  Invoke 'snd_pcm_open_substream( pcm, stream, file, &substream );'  *\/ ]\r\n[   94.626974] [ 'pcm_native.c', #2428 : ==> Entering the function 'snd_pcm_open_substream()' ]\r\n[   94.635790] [  INFO: 'snd_pcm_open_substream()' : #2433 : \/*  Invoke 'snd_pcm_attach_substream( pcm, stream, file, &substream );'  *\/ ]\r\n[   94.648681] [  INFO: 'snd_pcm_open_substream()' : #2448 : \/*  Invoke 'snd_pcm_hw_constraints_init( substream );'  *\/ ]\r\n[   94.661028] [ 'soc-pcm.c', #454 : ==> Entering the function 'soc_pcm_open()' ]\r\n[   94.668594] [ 'davinci-mcasp.c', #1930 : ==> Entering the function 'davinci_mcasp_startup()' ]\r\n[   94.678397] [  INFO: 'davinci_mcasp_startup()', #1950 :   \/* tdm_slots = mcasp->tdm_slots ==> 2 *\/   ]\r\n[   94.688210] [  INFO: 'davinci_mcasp_startup()', #1977 :   \/* ruledata->serializers ==> 4,  max_channels ==> 8  *\/   ]\r\n[   94.699358] [  INFO: 'davinci_mcasp_startup()', #1999 :   \/* max_channels ==> 8  *\/   ]\r\n[   94.707866] [  INFO: 'davinci_mcasp_startup()', #2002 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_CHANNELS, 2, max_channels );'  *\/   ]\r\n[   94.723727] [  INFO: 'davinci_mcasp_startup()', #2008 :   \/* Invoke  'snd_pcm_hw_constraint_list( 0, SNDRV_PCM_HW_PARAM_CHANNELS,  &mcasp->chconstr[substream->stream] );'  *\/   ]\r\n[   94.741221] [  INFO: 'davinci_mcasp_startup()', #2016 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_SAMPLE_BITS, 8, mcasp->slot_width );'  mcasp->slot_width ==> 32 *\/   ]\r\n[   94.758992] [ 'davinci-mcasp.c', #2059 : <== Exitting the function 'davinci_mcasp_startup()'  : return( 0 ) ]\r\n[   94.769392] [ 'soc-generic-dmaengine-pcm.c', #248 : ==> Entering the function 'dmaengine_pcm_open()' ]\r\n[   94.780206] [ INFO: 'dmaengine_pcm_open()', #255 : \/* Invoke 'dmaengine_pcm_set_runtime_hwparams( substream )' *\/  ]\r\n[   94.792000] [ 'soc-generic-dmaengine-pcm.c', #132 : ==> Entering the function 'dmaengine_pcm_set_runtime_hwparams()' ]\r\n[   94.803168] [ 'soc-generic-dmaengine-pcm.c', #149 : <== Exitting the function 'dmaengine_pcm_set_runtime_hwparams()' : return( 'snd_soc_set_runtime_hwparams( substream, pcm->config->pcm_hardware );' )  ]\r\n[   94.822008] [ 'soc-generic-dmaengine-pcm.c', #263 : <== Exitting the function 'dmaengine_pcm_open()' : return( 'snd_dmaengine_pcm_open( substream, chan );' )  ]\r\n[   94.837018] [ INFO: 'soc_pcm_open()', #543 :  soc_pcm_has_symmetry( substream ) ==> 'TRUE'   ]\r\n[   94.847100] [ INFO: 'soc_pcm_open()', #566 :  Invoke 'soc_pcm_apply_msb( substream )'  ]\r\n[   94.856389] [ INFO: 'soc_pcm_open()', #588 :  ASoC:  codec dai name: 'botic-hifi' <---->  cpu dai name:'48038000.mcasp'  ]\r\n[   94.867916] [ INFO: 'soc_pcm_open()', #591 :  ASoC:  rate mask 0x40000000  ]\r\n[   94.875264] [ INFO: 'soc_pcm_open()', #594 :  ASoC:  min ch 2,  max ch 8  ]\r\n[   94.882514] [ INFO: 'soc_pcm_open()', #597 :  ASoC:  min rate 11025,  max rate 768000  ]\r\n[   94.890998] [ INFO: 'soc_pcm_open()', #601 :  Invoke 'snd_soc_runtime_activate( rtd, substream->stream  )'  ]\r\n[   94.902443] [ 'soc-pcm.c', #607 : <== Exitting the function 'soc_pcm_open()' : return( 0 )  ]\r\n[   94.912181] [  INFO: 'snd_pcm_open_substream()' : #2461 : \/*  Invoke 'snd_pcm_hw_constraints_complete( substream );'  *\/ ]\r\n[   94.923816] [ 'pcm_native.c', #2470 : <== Exitting the function 'snd_pcm_open_substream()' : return( 0 ) ]\r\n[   94.933879] [ 'pcm_native.c', #2515 : <== Exitting the function 'snd_pcm_open_file()' : return( 0 )  ]\r\n[   94.943575] [ 'pcm_native.c' #2636 : ===> Exiting the function 'snd_pcm_open()' : return( err ==> 0 )  ]\r\n[   94.953511] [ 'pcm_native.c', #2545 : <== Exitting the function 'snd_pcm_playback_open()' : return( err ==> 0 ) ]\r\n[   94.965616] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   94.974785] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[   94.983606] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[   94.996379] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[   95.005621] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[   95.020559] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.031150] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.040268] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.049748] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.057988] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[   95.067236] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[   95.082153] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[   95.092065] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[   95.105732] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.115258] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.123533] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.132968] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.141300] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.150817] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.159082] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.168501] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.176757] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.186213] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.194473] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.203933] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.212221] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.221662] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.229920] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.239349] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.247588] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.257018] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.265266] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.274751] [ 'pcm_native.c', #534 : ==> Entering the function 'snd_pcm_hw_params()' ]\r\n[   95.283006] [ INFO: 'snd_pcm_hw_params()', $574 :  Invoke snd_pcm_hw_refine( substream, params ); ]\r\n[   95.292436] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[   95.300688] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[   95.309480] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[   95.322269] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[   95.331514] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var),\r\n&t );' ) ]\r\n[   95.346373] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[   95.355800] [ INFO: 'snd_pcm_hw_params()', $581 :  Invoke snd_pcm_hw_params_choose( substream, params ); ]\r\n[   95.365861] [ 'soc-pcm.c', #907 : ==> Entering the function 'soc_pcm_hw_params()' ]\r\n[   95.373840] [ INFO: 'soc_pcm_hw_params()', #916 :  Invoke 'soc_pcm_params_symmetry( substream, params )'  ]\r\n[   95.383995] [ 'botic-card.c', #189 : ==> Entering the function 'botic_hw_params()'; ]\r\n[   95.392152] [ INFO: 'botic_hw_params()', #201 : \/* format ==> SNDRV_PCM_FORMAT_S16_LE : (2)  *\/   ]\r\n[   95.401575] [ INFO: 'botic_hw_params()', #203 : \/* rate ==> 44100 *\/ ]\r\n[   95.408369] [ INFO: 'botic_hw_params()', #206 : \/* Invoke the function 'botic_setup_serializers( cpu_dai, format, &ser_setup )'  *\/ ]\r\n[   95.420863] [ 'botic-card.c', #94 : ==> Entering the function 'botic_setup_serializers()'; ]\r\n[   95.429652] [ 'botic-card.c', #95 :       ( args : snd_pcm_format_t format ==> SNDRV_PCM_FORMAT_S16_LE : (2) ) ]\r\n[   95.440250] [ INFO: 'botic_setup_serializers()', #103 : \/* User's Botic Serializer Setting ==> 'MMII' *\/ ]\r\n[   95.450324] [ INFO: 'botic_setup_serializers()', #155 : \/* Invoke the function 'snd_soc_dai_set_channel_map()' *\/ ]\r\n[   95.461199] [ 'soc-core.c', #2813 : ==> Entering the function 'snd_soc_dai_set_channel_map()';  ]\r\n[   95.470442] [ 'soc-core.c', #2817 : <== Exiting the function 'snd_soc_dai_set_channel_map()'  and  Return(  'dai->driver->ops->set_channel_map( dai,\r\ntx_num, tx_slot, rx_num, rx_slot )'  );  ]\r\n[   95.488188] [ 'davinci-mcasp.c', #1841 : ==> Entering the function 'davinci_mcasp_set_channel_map()' ]\r\n[   95.497880] [ 'davinci-mcasp.c', #1842 :     ( args : unsigned int tx_num ==> 4 , unsigned int rx_num ==> 0 ) ]\r\n[   95.508391] [  INFO: 'davinci_mcasp_set_channel_map()', #1850 :   \/* unsigned int *tx_slot  *\/]\r\n[   95.517453] [  INFO: 'davinci_mcasp_set_channel_map()', #1851 :   \/* tx_slot[0] ==> 0   *\/]\r\n[   95.526150] [  INFO: 'davinci_mcasp_set_channel_map()', #1852 :   \/* tx_slot[1] ==> 1   *\/]\r\n[   95.534845] [  INFO: 'davinci_mcasp_set_channel_map()', #1853 :   \/* tx_slot[2] ==> 2   *\/]\r\n[   95.543541] [  INFO: 'davinci_mcasp_set_channel_map()', #1854 :   \/* tx_slot[3] ==> 3   *\/]\r\n[   95.552242] [  INFO: davinci_mcasp_set_channel_map() : #1893 :   for ( slot = 0; slot < mcasp->num_serializer; slot++ ) : mcasp->num_serializer ==> 4  ]\r\n[   95.566552] [  INFO: davinci_mcasp_set_channel_map() : #1899 :  \/* for ( chan = 0; chan < tx_num; chan++ ) *\/  tx_num ==> 4  ]\r\n[   95.578504] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 0, slot ==> 0  ]\r\n[   95.589738] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[   95.604314] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 1, slot ==> 1  ]\r\n[   95.615548] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[   95.630125] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 2, slot ==> 2  ]\r\n[   95.641354] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[   95.655928] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 3, slot ==> 3  ]\r\n[   95.667160] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ]\r\n[   95.681741] [ 'davinci-mcasp.c', #1919 : <== Exitting the function 'davinci_mcasp_set_channel_map()'  : return( 0 ) ]\r\n[   95.692789] [ 'botic-card.c', $178 : ==> Exiting the function 'botic_setup_serializers()' : Return ( 0 ) ]\r\n[   95.702843] [ INFO: 'botic_hw_params()', #214 : \/* Invoke the function 'snd_soc_dai_set_fmt( codec_dai, ser_setup.dai_fmt )' : set CODEC DAI configs\r\n*\/ ]\r\n[   95.717145] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[   95.725662] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[   95.733366] [ 'soc-core.c', #2709 : <== Exiting the function 'snd_soc_dai_set_fmt()' : return ( -ENOTSUPP )  ]\r\n[   95.743782] [ INFO: 'botic_hw_params()', #222 : \/* Invoke the function 'snd_soc_dai_set_fmt()' : set CPU DAI configs *\/ ]\r\n[   95.755193] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[   95.763708] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[   95.771410] [ 'soc-core.c', #2713 : <== Exiting the function 'snd_soc_dai_set_fmt()'  and  Return(  'dai->driver->ops->set_fmt( dai, fmt )'  );  ]\r\n[   95.785080] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[   95.794320] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[   95.802204] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ]\r\n[   95.812891] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ]\r\n[   95.821502] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ]\r\n[   95.832553] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ]\r\n[   95.845052] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ]\r\n[   95.855466] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ]\r\n[   95.866879] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ]\r\n[   95.877571] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[   95.888617] [ INFO: 'botic_hw_params()', #232 : \/* sampling rates ==> '44k1 series' *\/ ]\r\n[   95.897043] [ INFO: 'botic_hw_params()', #235 : \/* 'gpio_set_value( gpio_int_masterclk_enable, 0 )' : set Internal Master Clock 'DISABLE' *\/ ]\r\n[   95.910361] [ INFO: 'botic_hw_params()', #240 : \/* External Master Clock SW is 'ON' ==> set 44k1 SW to 'LOW'  *\/ ]\r\n[   95.921141] [ INFO: 'botic_hw_params()', #283 : \/* DSD Playback Mode is 'OFF' (PCM Playback Mode is 'ON')  *\/ ]\r\n[   95.931648] [ INFO: 'botic_hw_params()', #289 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :   set CODEC system clock  *\/ ]\r\n[   95.943782] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[   95.952570] [ 'soc-core.c', #2565 : <== Exiting the function 'snd_soc_dai_set_sysclk()' : return ( -ENOTSUPP )  ]\r\n[   95.963261] [ INFO: 'botic_hw_params()', #297 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :   set CPU system clock  *\/ ]\r\n[   95.975216] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[   95.984008] [ 'soc-core.c', #2554 : <== Exiting the function 'snd_soc_dai_set_sysclk()'  and  Return(  dai->driver->ops->set_sysclk( dai, clk_id, freq, dir ); );  ]\r\n[   95.999306] [ 'davinci-mcasp.c', #751 : ==> Entering the function 'davinci_mcasp_set_sysclk()' ]\r\n[   96.008449] [ 'davinci-mcasp.c', #771 : <== Exitting the function 'davinci_mcasp_set_sysclk()'  : return( 0 ) ]\r\n[   96.018955] [ INFO: 'botic_hw_params()', #305 : \/* Invoke the function 'snd_soc_dai_set_clkdiv( cpu_dai, 0, 1 )'  *\/ ]\r\n[   96.030095] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[   96.038883] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[   96.053368] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[   96.062700] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 0, div ==> 1, bool explicit ==> 1 ) ]\r\n[   96.072212] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>0) ]\r\n[   96.080456] [  INFO: __davinci_mcasp_set_clkdiv() : #660 :   ==> case MCASP_CLKDIV_AUXCLK \/* MCLK divider *\/ ]\r\n[   96.090962] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[   96.102420] [ INFO: 'botic_hw_params()', #352 : \/* Format ==> 'PCM : SNDRV_PCM_FORMAT_S16_LE : (2) ' :  Invoke  'snd_soc_dai_set_clkdiv( cpu_dai, 2,\r\nblr_ratio );'   blr_ratio ==> 64 *\/ ]\r\n[   96.119716] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[   96.128494] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[   96.142983] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[   96.152313] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 2, div ==> 64, bool explicit ==> 1 ) ]\r\n[   96.161915] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>2) ]\r\n[   96.170160] [  INFO: __davinci_mcasp_set_clkdiv() : #690 :   ==> case MCASP_CLKDIV_BCLK_FS_RATIO \/* BCLK\/LRCLK ratio  *\/ ]\r\n[   96.181752] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[   96.193161] [ INFO: 'botic_hw_params()', #359 : \/* BCLK rate ==> 2822400   *\/ ]\r\n[   96.200778] [ INFO: 'botic_hw_params()', #371 : \/*   divisor = ( sysclk + (bclk \/ 2) ) \/ bclk; ==> 16 :      Invoke  'snd_soc_dai_set_clkdiv( cpu_dai, 1, divisor );'  *\/ ]\r\n[   96.215987] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[   96.224776] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[   96.239266] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[   96.248588] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 1, div ==> 16, bool explicit ==> 1 ) ]\r\n[   96.258189] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>1) ]\r\n[   96.266435] [  INFO: __davinci_mcasp_set_clkdiv() : #668 :   ==> case MCASP_CLKDIV_BCLK \/* BCLK divider *\/ ]\r\n[   96.276764] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[   96.288285] [ 'botic-card.c', #383 : ===> Exiting the function 'botic_hw_params()' : ( Return : 0 ) ]\r\n[   96.297895] [ INFO: 'soc_pcm_hw_params()', #962 :  Invoke 'soc_dai_hw_params( substream, &codec_params, codec_dai )'  ]\r\n[   96.309127] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[   96.317094] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[   96.326424] [ INFO: 'soc_pcm_hw_params()', #972 :  codec_dai->rate = params_rate( &codec_params ); ==> 44100   ]\r\n[   96.337019] [ INFO: 'soc_pcm_hw_params()', #973 :  codec_dai->channels = params_channels( &codec_params ); ==> 6   ]\r\n[   96.347977] [ INFO: 'soc_pcm_hw_params()', #974 :  codec_dai->sample_bits = snd_pcm_format_physical_width( params_format(&codec_params) ); ==> 16   ]\r\n[   96.361920] [ INFO: 'soc_pcm_hw_params()', #979 :  Invoke 'soc_dai_hw_params( substream, params, cpu_dai )'  ]\r\n[   96.372335] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[   96.380309] [ 'davinci-mcasp.c', #1555 : ==> Entering the function 'davinci_mcasp_hw_params()' ]\r\n[   96.389457] [  INFO: davinci_mcasp_hw_params() : #1570 :   \/* channels = params_channels( params ); ==> 6, *\/   ]\r\n[   96.400235] [  INFO: davinci_mcasp_hw_params() : #1571 :   \/* period_size = params_period_size( params ); ==> 2205, *\/   ]\r\n[   96.411830] [  INFO: davinci_mcasp_hw_params() : #1582 :   \/* Invoke  'davinci_mcasp_set_dai_fmt( cpu_dai, mcasp->dai_fmt )' *\/  mcasp->dai_fmt ==> (16385)  ]\r\n[   96.426678] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[   96.435917] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[   96.443800] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ]\r\n[   96.454483] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ]\r\n[   96.463094] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ]\r\n[   96.474142] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ]\r\n[   96.486642] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ]\r\n[   96.497063] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ]\r\n[   96.508474] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ]\r\n[   96.519163] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[   96.530215] [  INFO: davinci_mcasp_hw_params() : #1612 :   \/* Invoke  'mcasp_common_hw_param( mcasp, substream->stream, period_size * channels, channels, dsd_mode )' *\/   ]\r\n[   96.546325] [ 'davinci-mcasp.c', #1016 : ==> Entering the function 'mcasp_common_hw_param()' ]\r\n[   96.555296] [ 'davinci-mcasp.c', #1018 :       args( int period_words ==> 13230, int channels ==> 6, bool dsd_mode ==> 0 ) ]\r\n[   96.566979] [  INFO: 'mcasp_common_hw_param()', #1025 : ================================================================================ ]\r\n[   96.579930] [  INFO: 'mcasp_common_hw_param()', #1026 :    Sound Playback Channels : PCM  6 channel                                      ]\r\n[   96.592881] [  INFO: 'mcasp_common_hw_param()', #1028 : ================================================================================ ]\r\n[   96.605827] [  INFO: mcasp_common_hw_param() : #1041 :  max_active_serializers ==> 3  ]\r\n[   96.614252] [  INFO: mcasp_common_hw_param() : #1069 :    disable_pins ==> 0 ]\r\n[   96.621867] [  INFO: 'mcasp_common_hw_param()', #1091 : \/* for ( i = 0; i < mcasp->num_serializer; i++ );   mcasp->num_serializer ==> 4  ]\r\n[   96.634821] [  INFO: 'mcasp_common_hw_param()', #1138 :  \/*  =====   if ( stream == SNDRV_PCM_STREAM_PLAYBACK )  ==> TRUE  ===== *\/  ]\r\n[   96.647408] [  INFO: 'mcasp_common_hw_param()', #1144 :  \/*  =====   active_serializers = tx_ser  ==>  3   =====  *\/  ]\r\n[   96.658638] [  INFO: 'mcasp_common_hw_param()', #1145 :  \/*  =====   numevt = mcasp->txnumevt;  ==>  16   =====  *\/  ]\r\n[   96.669783] [  INFO: 'mcasp_common_hw_param()', #1146 :  \/*  =====   reg = mcasp->fifo_base + MCASP_WFIFOCTL_OFFSET; ==>  4096 (0x1000)    =====  *\/\r\n ]\r\n[   96.683906] [  INFO: 'mcasp_common_hw_param()', #1214 :  \/*  =====   numevt = (numevt \/ active_serializers) * active_serializers; ==>  15    =====  *\/  ]\r\n[   96.698214] [  INFO: 'mcasp_common_hw_param()', #1215 :  \/*  =====   period_words; ==>  13230    =====  *\/  ]\r\n[   96.708540] [  INFO: 'mcasp_common_hw_param()', #1227 :  \/*  =====  OUT while () loop   =====   numevt ==>  15    =====  *\/  ]\r\n[   96.720408] [  INFO: 'mcasp_common_hw_param()', #1239 :  \/*  =====  dma_data->maxburst = numevt; ==>  15    =====  *\/  ]\r\n[   96.731726] [ 'davinci-mcasp.c', #1241 : <== Exitting the function 'mcasp_common_hw_param()'  : return( 0 ) ]\r\n[   96.742055] [  INFO: davinci_mcasp_hw_params() : #1625 :   \/* Invoke  'mcasp_i2s_hw_param( mcasp, substream->stream, channels, dsd_mode )' *\/   ]\r\n[   96.755730] [ 'davinci-mcasp.c', #1258 : ==> Entering the function 'mcasp_i2s_hw_param()' ]\r\n[   96.764429] [ 'davinci-mcasp.c', #1260 :       args( int channels ==> 6, bool dsd_mode ==> 0 ) ]\r\n[   96.773579] [  INFO: mcasp_i2s_hw_param() : #1275 :   total_slots = mcasp->tdm_slots ==> 2 ]\r\n[   96.782455] [  INFO: mcasp_i2s_hw_param() : #1305 :   \/* if ( mcasp->tdm_mask[stream] )  ==> FALSE *\/            ]\r\n[   96.793321] [  INFO: mcasp_i2s_hw_param() : #1309 :      active_serializers = (channels + total_slots - 1) \/ total_slots ==> 3  ]\r\n[   96.805546] [  INFO: mcasp_i2s_hw_param() : #1321 :   \/* if ( active_serializers == 1 ) ==> FALSE :  active_slots = total_slots; ==> 2 *\/   ]\r\n[   96.818855] [  INFO: mcasp_i2s_hw_param() : #1329 :   \/*  mask ==> 3 (0x3) *\/   ]\r\n[   96.826735] [ 'davinci-mcasp.c', #1378 : <== Exitting the function 'mcasp_i2s_hw_param()'  : return( 0 ) ]\r\n[   96.836793] [  INFO: davinci_mcasp_hw_params() : #1634 :   \/*  params_format(params) ==>  'SNDRV_PCM_FORMAT_S16_LE : (2)' ,  *\/   ]\r\n[   96.849199] [  INFO: davinci_mcasp_hw_params() : #1684 :   \/* Invoke  'davinci_config_channel_size( mcasp, word_length );'  word_length ==> 16 *\/   ]\r\n[   96.863232] [ 'davinci-mcasp.c', #915 : ==> Entering the function 'davinci_config_channel_size()' ]\r\n[   96.872655] [ 'davinci-mcasp.c', #916 :      args( int sample_width ==> 16 ) ]\r\n[   96.880177] [  INFO: davinci_config_channel_size() : #923 :   tx_rotate = (sample_width \/ 4) & 0x7;  ==> 4 ]\r\n[   96.890503] [  INFO: davinci_config_channel_size() : #924 :   mask = (1ULL << sample_width) - 1;  ==> 65535 ]\r\n[   96.900916] [  INFO: davinci_config_channel_size() : #925 :   slot_width = sample_width;  ==> 16 ]\r\n[   96.910336] [  INFO: davinci_config_channel_size() : #957 :   lot_width = sample_width;1;  ==> 16 ]\r\n[   96.919845] [  INFO: davinci_config_channel_size() : #961 :  \/*  if ( mcasp->slot_width ) ==> TRUE     mcasp->slot_width ==> 32  *\/ ]\r\n[   96.932433] [  INFO: davinci_config_channel_size() : #971 :  \/*  slot_width = mcasp->slot_width;  ==> 32  *\/ ]\r\n[   96.942943] [  INFO: davinci_config_channel_size() : #972 :  \/*  rx_rotate = (slot_width - sample_width) \/ 4;  ==> 4  *\/ ]\r\n[   96.954535] [  INFO: davinci_config_channel_size() : #979 :  \/*  mapping of the XSSZ bit-field  : fmt = ( slot_width >> 1 ) - 1;  ==> 15  *\/ ]\r\n[   96.967936] [  INFO: davinci_config_channel_size() : #991 :    tx_rotate ==> 4 ]\r\n[   96.975728] [ 'davinci-mcasp.c', #1001 : <== Exitting the function 'davinci_config_channel_size()'  : return( 0 ) ]\r\n[   96.986599] [  INFO: davinci_mcasp_hw_params() : #1691 :   \/* mcasp->channels = channels ==> 6 *\/   ]\r\n[   96.996292] [ 'davinci-mcasp.c', #1693 : <== Exitting the function 'davinci_mcasp_hw_params()'  : return( 0 ) ]\r\n[   97.006797] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[   97.016128] [ 'soc-generic-dmaengine-pcm.c', #95 : ==> Entering the function 'dmaengine_pcm_hw_params()' ]\r\n[   97.026186] [ 'soc-generic-dmaengine-pcm.c', #123 : <== Exitting the function 'dmaengine_pcm_hw_params()' : return( 'snd_pcm_lib_malloc_pages( substream, params_buffer_bytes(params) );' )  ]\r\n[   97.043846] [ INFO: 'soc_pcm_hw_params()', #998 :  cpu_dai->rate = params_rate( params ); ==> 44100   ]\r\n[   97.053627] [ INFO: 'soc_pcm_hw_params()', #999 :  cpu_dai->channels = params_channels( params ); ==> 6   ]\r\n[   97.063774] [ INFO: 'soc_pcm_hw_params()', #1000 :  cpu_dai->sample_bits = snd_pcm_format_physical_width( params_format(params) ); ==> 16   ]\r\n[   97.076997] [ 'soc-pcm.c', #1005 : <== Exitting the function 'soc_pcm_hw_params()' : return( ret ==> 1 )  ]\r\n[   97.087147] [  INFO: 'snd_pcm_hw_params()', #610 : \/* runtime->format ==> 2, runtime->subformat ==> 0  ]\r\n[   97.097111] [  INFO: 'snd_pcm_hw_params()', #611 : \/* runtime->channels ==> 6, runtime->rate ==> 44100  ]\r\n[   97.107166] [  INFO: 'snd_pcm_hw_params()', #612 : \/* runtime->period_size ==> 2205, runtime->periods ==> 3  ]\r\n[   97.117680] [  INFO: 'snd_pcm_hw_params()', #613 : \/* runtime->buffer_size ==> 6615  ]\r\n[   97.126013] [  INFO: 'snd_pcm_hw_params()', #617 : \/* bits = snd_pcm_format_physical_width( runtime->format ); ==> 16  ]\r\n[   97.137437] [  INFO: 'snd_pcm_hw_params()', #619 : \/* ENDIAN :  ==> 'Little Endian'  ]\r\n[   97.145775] [  INFO: 'snd_pcm_hw_params()', #620 : \/* SIGNED\/UNSIGNED :  ==> 'Signed'  ]\r\n[   97.154292] [  INFO: 'snd_pcm_hw_params()', #634 : \/* runtime->byte_align ==> 12, runtime->min_align ==> 1  ]\r\n[   97.164718] [ 'pcm_native.c', #662 : <== Exitting the function 'snd_pcm_hw_params()' : return( 0 )  ]\r\n[   97.174373] [ 'pcm_native.c', #1643 : ==> Entering the function 'snd_pcm_prepare()' ]\r\n[   97.182543] [ 'soc-pcm.c', #786 : ==> Entering the function 'soc_pcm_prepare()' ]\r\n[   97.190339] [ INFO: 'soc_pcm_prepare()', #844 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[   97.203486] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[   97.212516] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[   97.223393] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[   97.232367] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[   97.247942] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[   97.257274] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 0, int stream ==> 0 ) ]\r\n[   97.265792] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ]\r\n[   97.274218] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[   97.285146] [ 'soc-pcm.c', #857 : <== Exitting the function 'soc_pcm_prepare()' : return( ret ==> 0 )  ]\r\n[   97.295144] [ 'pcm_native.c', #1662 : <== Exitting the function 'snd_pcm_prepare()' :  return ( res ==> 0 ) ]\r\n[   97.307447] [ 'pcm_native.c', #1168 : ==> Entering the function 'snd_pcm_start()' ]\r\n[   97.315426] [ 'pcm_native.c', #1170 : ===> Exiting the function snd_pcm_start() : Return : 'snd_pcm_action( &snd_pcm_action_start, substream, SNDRV_PCM_STATE_RUNNING );' ' ]\r\n[   97.331534] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[   97.339431] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[   97.348390] [ 'davinci-mcasp.c', #227 : ==> Entering the function mcasp_start_tx(); ]\r\n[   97.356536] [  INFO: mcasp_start_tx() : #231 :    mcasp->txnumevt  ==> 16  ]\r\n[   97.363963] [ 'davinci-mcasp.c', #262 : <== Exiting the function mcasp_start_tx(); return ( VOID ) ]\r\n[   97.373465] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[   97.384326] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n   \uff08\u3053\u3053\u304b\u3089\u5b9f\u969b\u306e\u66f2\u306e\u518d\u751f\u304c\u59cb\u307e\u308b\uff09\r\n\u3000\u3000\u3000 ... \r\n   \uff08\u518d\u751f\u7d42\u4e86\uff09\r\n[  143.916145] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  143.924319] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[  143.932201] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[  143.941163] [ 'davinci-mcasp.c', #303 : ==> Entering the function 'mcasp_stop_tx()' ]\r\n[  143.949313] [ 'davinci-mcasp.c', #324 : <== Exiting the function mcasp_stop_tx(); return( VOID ) ]\r\n[  143.958638] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[  143.969503] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n[  143.978736] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  143.989485] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  143.997646] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  144.007024] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  144.015173] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  144.024526] [ 'soc-pcm.c', #1041 : ==> Entering the function 'soc_pcm_hw_free()' ]\r\n[  144.032414] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  144.041386] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[  144.052265] [ 'soc-pcm.c', #1096 : <== Exitting the function 'soc_pcm_hw_free()' : return( 0 )  ]\r\n[  144.061527] [ 'pcm_native.c' #2653 : ==> Entering the function snd_pcm_release(); ]\r\n[  144.069508] [ 'soc-pcm.c', #693 : ==> Entering the function 'soc_pcm_close()' ]\r\n[  144.077114] [ INFO: 'soc_pcm_open()', #715 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[  144.087986] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  144.096955] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[  144.112547] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[  144.121881] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 1, int stream ==> 0 ) ]\r\n[  144.130400] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ]\r\n[  144.138833] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[  144.149517] [ 'davinci-mcasp.c', #2069 : ==> Entering the function 'davinci_mcasp_shutdown()' ]\r\n[  144.158570] [ 'davinci-mcasp.c', #2083 : <== Exitting the function 'davinci_mcasp_shutdown()'  : return( VOID ) ]\r\n[  144.169272] [ 'soc-pcm.c', #772 : <== Exitting the function 'soc_pcm_close()' : return( 0 )  ]\r\n[  144.178238] [ 'pcm_native.c', #1995 : ==> Entering the function 'snd_pcm_unlink()' ]\r\n[  144.186304] [ 'pcm_native.c', #2020 : <== Exitting the function 'snd_pcm_unlink()': return ( res ==> -114 ) ]\r\n[  144.196639] [ 'pcm_native.c' #2672 : ===> Exiting the function snd_pcm_release() : Return( 0 ) ]\r\n\r\n<\/code><\/pre>\r\n<br>\r\n<br>\r\n<p>\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306ePCM\u30d5\u30a1\u30a4\u30eb\u518d\u751f\u6642\u306b\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u60f3\u5b9a\u3068\u306f\u7570\u306a\u308b\u539f\u56e0\u3092\u7a81\u304d\u6b62\u3081\u308b\u305f\u3081\u3001\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u7768\u3081\u3063\u3053\u3092\u5ef6\u3005\u3068\u7e70\u308a\u8fd4\u3057\u3066\u3044\u305f\u304c\u3001\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u65b9\u6cd5\u304c\u826f\u304f\u308f\u304b\u3089\u306a\u304b\u3063\u305f\uff0e\u30c1\u30e3\u30cd\u30eb\u95a2\u4fc2\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u884c\u3063\u3066\u305d\u3046\u306a\u95a2\u6570\u540d\u306f &#8220;davinci-mcasp.c&#8221; \u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u306b\u3001&#8221;davinci_mcasp_ch_constraint() &#8220;\u3084&#8221;davinci_mcasp_set_tdm_slot&#8221; \u306a\u3069\u306e\u95a2\u6570\u304c\u3042\u308b\u306e\u3067\u3001\u305d\u306e\u3042\u305f\u308a\u306e\u30b3\u30fc\u30c9\u3092\u3061\u3087\u3053\u3061\u3087\u3053\u5f04\u3063\u3066\u307f\u305f\u304c\u3001\u30c1\u30e3\u30cd\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u304b\u3063\u305f\uff0e<\/p>\r\n<br>\r\n<p>\u30c1\u30e3\u30cd\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u5f71\u97ff\u3057\u305d\u3046\u306a\u90e8\u5206\u3068\u3057\u3066\u3001\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u30c7\u30fc\u30bf\u306e\u30d6\u30ed\u30c3\u30af\u3092&#8221;McASP&#8221; \u306e\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u5165\u308c\u66ff\u3048\u308b\u3053\u3068\u3092\u691c\u8a0e\u3057\u305f\u304c\u3001&#8221;McASP&#8221; \u306e\u5404\u7a2e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3082\u3069\u3053\u304b\u3089\u624b\u3092\u3064\u3051\u3066\u826f\u3044\u306e\u304b\u5168\u304f\u89e3\u3089\u306a\u304b\u3063\u305f\uff0e\u30db\u30b9\u30c8\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u5074\u304b\u3089DMA\u30c1\u30e3\u30cd\u30eb\u3092\u901a\u3058\u3066PCM\u306e\u30d6\u30ed\u30c3\u30af\u30c7\u30fc\u30bf\u306e\u9806\u756a\u3092\u5165\u308c\u66ff\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u308c\u3070\u826f\u3044\u306e\u3060\u304c\u3001\u305d\u3093\u306a\u9ad8\u5ea6\u306aDMA\u30c7\u30fc\u30bf\u8ee2\u9001\u30c6\u30af\u30cb\u30c3\u30af\u306f\u3068\u3066\u3082\u3058\u3083\u306a\u3044\u3051\u3069\u3001\u79c1\u306e\u8ca7\u5f31\u306aIoT\u30c7\u30d0\u30a4\u30b9\u306e\u77e5\u8b58\u3067\u306f\u4e0d\u53ef\u80fd\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u3088\u3046\u306a\u8a33\u3067\u3001ALSA\u3092\u542b\u3081\u305f&#8221;Botic&#8221;\u30b3\u30fc\u30c9\u307e\u308f\u308a\u3067\u30b3\u30fc\u30c9\u3092\u4fee\u6b63\u3057\u3066\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3067\u3044\u305f\uff0eLightMPD-Botic\u74b0\u5883\u3067\u306eI2S\u65b9\u5f0f\u306b\u3088\u308bPCM\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306f\u9577\u3044\u9593\u8ae6\u3081\u3066\u653e\u7f6e\u3057\u3066\u3044\u305f\uff0e<\/p>\r\n<br>\r\n<p>\u6700\u8fd1\u3001\u81ea\u5b85\u306e\u8377\u7269\u306e\u6574\u7406\u3092\u3057\u3066\u3044\u305f\u3089\u904e\u53bb\u306b\u5236\u4f5c\u3057\u305f\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebDAC\u30b7\u30b9\u30c6\u30e0\u304c\u51fa\u3066\u304d\u305f\u306e\u3067\u3001\u9577\u3044\u9593\u68da\u4e0a\u3052\u306b\u3057\u3066\u3044\u305f LightMPD-Botic \u306b\u3088\u308bI2S\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306b\u518d\u5ea6\u53d6\u308a\u7d44\u3093\u3067\u307f\u308b\u3053\u3068\u306b\u3057\u305f\uff0e&#8221;Botic&#8221;\u30b3\u30fc\u30c9\u307e\u308f\u308a\u306e\u6539\u5909\u306f\u73fe\u5b9f\u7684\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u4eca\u56de\u306f&#8221;Botic&#8221;\u306e\u30db\u30b9\u30c8\u5074\u3067\u3042\u308bMPD\u307e\u308f\u308a\u306e\u30b3\u30fc\u30c9\u6539\u4fee\u3067\u4f55\u3068\u304b\u3067\u304d\u306a\u3044\u304b\u691c\u8a0e\u3059\u308b\u3053\u3068\u306b\u3057\u305f\uff0e<\/p>\r\n<br>\r\n<h4>MPD\u5074\u3067McASP\u306b\u9001\u308a\u8fbc\u3080PCM\u30c7\u30fc\u30bf\u306e\u30c1\u30e3\u30cd\u30eb\u30a2\u30b5\u30a4\u30f3\u3092\u5909\u66f4\u3059\u308b\u65b9\u6cd5\u304c\u898b\u3064\u304b\u3063\u305f<\/h4>\r\n<br>\r\n<p>\u3053\u308c\u307e\u3067\u3001\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u306e\u554f\u984c\u306f&#8221;Botic&#8221;\u5074\uff08ALSA,McASP\uff09\u5074\u306b\u554f\u984c\u304c\u3042\u308b\u3068\u601d\u3044\u8fbc\u3093\u3067\u3044\u305f\u304c\u3001\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u518d\u751f\u6642\u306b\u30c1\u30e3\u30cd\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u304a\u304b\u3057\u304f\u306a\u308b\u4ee5\u5916\u306f\u4f55\u306e\u554f\u984c\u3082\u751f\u3058\u3066\u3044\u306a\u3044\uff0e\u3060\u3068\u3059\u308c\u3070\u30db\u30b9\u30c8\u5074\u306eMPD\u307e\u308f\u308a\u306b\u554f\u984c\uff08\u3042\u308b\u3044\u306f\u89e3\u6c7a\u7b56\uff09\u304c\u3042\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u8003\u3048\u3001MPD\u307e\u308f\u308a\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8aad\u307f\u3042\u3055\u308b\u3053\u3068\u306b\u3057\u305f\uff0e<\/p>\r\n<br>\r\n<p>\u4eca\u307e\u3067\u3001MPD\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u9685\u304b\u3089\u9685\u307e\u3067\u773a\u3081\u305f\u3053\u3068\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u6c17\u3065\u304b\u306a\u304b\u3063\u305f\u304c\u3001\u30de\u30cb\u30e5\u30a2\u30eb\u30da\u30fc\u30b8\u306e &#8220;Configuration&#8221; -> &#8220;Configuring filters&#8221; \u3068\u3044\u3046\u9805\u76ee\u304c\u3042\u308b\u3053\u3068\u306b\u6c17\u4ed8\u3044\u305f\u3002\u307b\u3093\u306e\u6570\u884c\u306e\u7c21\u5358\u306a\u8aac\u660e\u3067\u3042\u3063\u305f\u304c\u305d\u306e\u4e2d\u306b\u3001<br>\r\n\r\n&#8220;Configured filters may then be added to the filters setting of an audio_output section, see Configuring audio outputs.&#8221; <br>\r\n\u3068\u66f8\u304b\u308c\u3066\u304a\u308a\u3001&#8221;audio_output section&#8221; \u306b\u4f7f\u7528\u3059\u308b\u30d5\u30a3\u30eb\u30bf\u30fc\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u60c5\u5831\u3092\u8a2d\u5b9a\u3059\u308c\u3070\u826f\u3044\u65e8\u306e\u3053\u3068\u304c\u66f8\u304b\u308c\u3066\u3044\u305f\uff0e\u30de\u30cb\u30e5\u30a2\u30eb\u306e\u3059\u3050\u4e0a\u306e\u9805\u76ee &#8220;<a href=\"https:\/\/mpd.readthedocs.io\/en\/stable\/user.html#configuring-audio-outputs\" target=\"_blank\">Configuring audio outputs<\/a>&#8221;  \u306b\u3001\r\n<br>\r\n<pre>\r\n<code class=\"language-Markup\">\r\naudio_output {\r\n    type \"alsa\"\r\n    name \"my ALSA device\"\r\n    device \"hw:0\"\r\n    filters \"volume\" \r\n}\r\nfilter {\r\n    plugin \"volume\"\r\n    name \"software volume\"\r\n}\r\n<\/code><\/pre>\r\n<br>\r\n\u306e\u69d8\u306b\u8a18\u8f09\u3057\u308d\u3068\u66f8\u304b\u308c\u3066\u3044\u308b\u3002\u3069\u306e\u3088\u3046\u306a\u30d5\u30a3\u30eb\u30bf\u30fc\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u3042\u308b\u306e\u304b\u8abf\u3079\u3066\u307f\u308b\u3068\u3001&#8221;<a href=\"https:\/\/mpd.readthedocs.io\/en\/stable\/plugins.html#filter-plugins\" target=\"_blank\">Filter plugins<\/a>&#8221; \u306b\u3001<br>\r\n&#8220;route&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u3042\u308a\u3001\u6a5f\u80fd\u306f &#8220;Reroute channels&#8221; \u3068\u306a\u3063\u3066\u3044\u308b\uff0e \u3053\u306e\u8aac\u660e\u3067\u306f\u3001<br>\r\n<br>\r\n<b><Strong>routes \u201c0>0, 1>1, \u2026\u201d <\/b><\/strong>\r\n<br>\t\r\n\u306e\u3088\u3046\u306b\u8a18\u8f09\u3059\u308b\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u308b\uff0e&#8221;\u5165\u529b\u5074ch\u756a\u53f7&#8221; > &#8220;\u51fa\u529b\u5074ch\u756a\u53f7&#8221; \u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u30c1\u30e3\u30cd\u30eb\u6570\u5206\u8a18\u8f09\u3059\u308c\u3070\u826f\u3044\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u4f8b\u306b\u5023\u3063\u3066\u3001\u4eca\u56de\u554f\u984c\u3068\u306a\u3063\u3066\u3044\u308b\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u305f\u3081\u306b\u3001&#8221;mpd.conf&#8221;\u30d5\u30a1\u30a4\u30eb\u306b\r\n<br>\r\n<pre>\r\n<code class=\"language-Markup\">\r\n\r\naudio_output {\r\n    type            \"alsa\"\r\n    name            \"uda\"\r\n    device          \"hw:0,0\"\r\n    priority        \"FIFO:54\"\r\n    mixer_type      \"disabled\"\r\n    dsd_usb         \"no\"\r\n    dsd_native.     \"yes\"\r\n    dsd_native_type \"3\"\r\n    buffer_time\t    \"150000\"\r\n    period_time.    \"37500\"\r\n    filters         \"fix51chmap\"\r\n}\r\n\r\nfilter {\r\n    plugin \"route\"\r\n    name   \"fix51chmap\"\r\n    routes \"0>0,1>3,2>1,3>4,4>2,5>5\"\r\n}\r\n\r\nfilter {\r\n    plugin \"route\"\r\n    name   \"fix71chmap\"\r\n    routes \"0>0,1>4,2>1,3>5,4>2,5>6,6>3,7>7\"\r\n}\r\n\r\n<\/code><\/pre>\r\n<br>\r\n\u3068\u3044\u3046\u3088\u3046\u306a\u8a18\u8f09\u3092\u66f8\u304d\u52a0\u3048\u3066\u307f\u305f\u3068\u3053\u308d\u3001\u4f55\u3068\u3042\u3063\u3055\u308a\u3068\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u518d\u751f\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u554f\u984c\u304c\u89e3\u6c7a\u3057\u3066\u3057\u307e\u3063\u305f\uff0e\u3042\u307e\u308a\u306b\u3082\u7c21\u5358\u306a\u89e3\u6c7a\u65b9\u6cd5\u3067\u3001\u62cd\u5b50\u629c\u3051\u3057\u3066\u3057\u307e\u3063\u305f\uff0e\uff08\u4eca\u307e\u3067\u306e\u82e6\u52b4\u306f\u4e00\u4f53\u4f55\u3060\u3063\u305f\u3093\u3060\u308d\u3046\u304b&#8230;\uff09<\/p>\r\n<br>\r\n<p>\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30ebPCM\u30c7\u30fc\u30bf\u306e\u518d\u751f\u6642\u306b\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u304a\u304b\u3057\u306a\u3053\u3068\u306b\u306a\u308b\u73fe\u8c61\u306f\u3001\u3069\u3046\u3084\u3089MPD\uff08ALSA\uff09\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30a2\u30b5\u30a4\u30f3\u306b\u554f\u984c\u304c\u3042\u308b\u3053\u3068\u304c\u539f\u56e0\u306e\u3088\u3046\u3060\u304c\u3001FLAC\u306a\u3069\u306e\u30d5\u30a1\u30a4\u30eb\uff08\u30c7\u30fc\u30bf\u30a8\u30f3\u30b3\u30fc\u30c9\uff09\u5f62\u5f0f\u3067\u306f\u30015.1ch\u306e\u5834\u5408 FL, FR, FC, LFC, SL, SR \u306e\u9806\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3089\u3057\u3044\u304c\u3001\u305d\u308c\u4ee5\u5916\u3067\u306f\u3053\u306e\u30c1\u30e3\u30cd\u30eb\u306e\u9806\u5e8f\u306f\u74b0\u5883\u4f9d\u5b58\u3067\u660e\u78ba\u306a\u898f\u5b9a\u306f\u306a\u3044\u3089\u3057\u3044\uff0e<\/p>\r\n<br>\r\n<p>MPD\u306eGitHub\u306e\u30da\u30fc\u30b8\u306e &#8220;Discussions&#8221; \u306b\u3001<a href=\"https:\/\/github.com\/MusicPlayerDaemon\/MPD\/discussions\/2060\" target=\"_blank\">&#8220;Channel order playing 5.1 audio files #2060&#8221;<\/a> \u3068\u3044\u3046\u554f\u3044\u5408\u308f\u305b\u304c\u3042\u308a\u3001\u4ed6\u306b\u3082\u4eca\u56de\u3068\u540c\u3058\u3088\u3046\u306a\u73fe\u8c61\u306b\u906d\u9047\u3057\u305f\u4eba\u305f\u3061\u306e\u4e8b\u4f8b\u304c\u8f09\u3063\u3066\u3044\u305f\uff0e<\/p>\r\n<br>\r\n<div style=\"width: 100%; margin: 0 auto; text-align: center;\">\r\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/MPDChannelAssignment.png\" alt=\"MPD Channel Assignment\" width=\"435\" height=\"634\" class=\"size-full wp-image-10456\" srcset=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/MPDChannelAssignment.png 435w, https:\/\/y2tech.net\/blog\/wp-content\/uploads\/2025\/01\/MPDChannelAssignment-220x320.png 220w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/> \r\n<br>\r\n<span>PCM\u518d\u751f\u6642\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u554f\u984c\u306b\u3064\u3044\u3066\u306f\u3068\u308a\u3042\u3048\u305a\u89e3\u6c7a\u3057\u305f<\/span>\r\n<\/div>\r\n<br>\r\n<br>\r\n<p>\u4eca\u56de\u306f MPD\u5074\u306e\u8a2d\u5b9a\u5909\u66f4\u3067\u554f\u984c\u3092\u89e3\u6c7a\u3067\u304d\u305f\u304c\u3001\u6298\u89d2\u306a\u306e\u3067\u3001LightMPD-Botic\u306e\u30ab\u30fc\u30cd\u30eb\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3068LightMPD\u306e\u30eb\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3046\uff0eLightMPD\u306f\u57fa\u672c\u7684\u306bRAM\u30d5\u30a1\u30a4\u30eb\u4e0a\u306eLinux\u30b7\u30b9\u30c6\u30e0\u306b\u69cb\u7bc9\u3055\u308c\u305f\u30b7\u30b9\u30c6\u30e0\u3067\u3001\u4f55\u6642\u3067\u3082\u96fb\u6e90\u30d6\u30c1\u30c3(OFF)\u304c\u53ef\u80fd\u306a\u512a\u308c\u3082\u306e\u306a\u306e\u3060\u304c\u3001\u30e6\u30fc\u30b6\u5074\u3067\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u304c\u96e3\u3057\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u3042\u308b\u304c\u3001\u79c1\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u30b7\u30b9\u30c6\u30e0\u3068\u3057\u3066\u4eca\u3067\u3082\u73fe\u5f79\u3067\u6d3b\u8e8d\u3057\u3066\u3044\u308b\u512a\u308c\u3082\u306e\u3060\uff0e<\/p>\r\n<br>\r\n<p>LightMPD\u306e\u30eb\u30fc\u30c8\u30a4\u30e1\u30fc\u30b8\u306e\u4f5c\u6210\u65b9\u6cd5\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30b8\u30d5\u30a1\u30a4\u306e\u304a\u3068\u3055\u3093\u304c\u300elightMPD\u306eroot\u30a4\u30e1\u30fc\u30b8\u306e\u4f5c\u6210\u65b9\u6cd5\uff08\u66ab\u5b9a\u7248)\u300f\u3067\u3001\u624b\u9806\u3092\u516c\u958b\u3057\u3066\u3044\u308b\u306e\u3067\u3001LightMPD\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u7248\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u306e\u53c2\u8003\u306b\u3059\u308b\u3068\u826f\u3044\u3060\u308d\u3046\uff0e\u8a18\u4e8b\u306e\u5f8c\u534a\u90e8\u5206\u306f\u307e\u3060\u57f7\u7b46\u3055\u308c\u3066\u3044\u306a\u304f\u3001\u72ec\u81ea\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8ffd\u52a0\u65b9\u6cd5\u306a\u3069\u306b\u3064\u3044\u3066\u306f\u81ea\u5206\u3067\u8a66\u884c\u932f\u8aa4\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u3060\u308d\u3046\uff0e <\/p>\r\n<br>\r\n<p>LightMPD-Botic\u3092\u52d5\u304b\u3057\u3066\u3044\u308b\u30db\u30b9\u30c8\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306eBeagleBone Black\/Green\u306f\u73fe\u72b6\u3067\u306f\u307e\u3060\u5165\u624b\u53ef\u80fd\u3060\u304c\u3001Raspberry Pi\u3068\u306f\u9055\u3063\u3066\u3001\u4e16\u9593\u304b\u3089\u306f\u307b\u3068\u3093\u3069\u5fd8\u308c\u53bb\u3089\u308c\u305f\u904e\u53bb\u306e\u907a\u7269\u306e\u3088\u3046\u306a\u5b58\u5728\u304b\u3082\u3057\u308c\u306a\u3044\u304c\u3001TI\u306eSoC\u306b\u7d44\u307f\u8fbc\u307e\u308c\u305f &#8220;McASP&#8221; \u306b\u3088\u308bI2S\u51fa\u529b\u6a5f\u80fd\u306f\u3068\u3066\u3082\u5f37\u529b\u306a\u306e\u3067\u3001\u4ed6\u306eSoC\u30c1\u30c3\u30d7\u30e1\u30fc\u30ab\u3082\u540c\u69d8\u306a\u6a5f\u80fd\u3092\u7d44\u307f\u8fbc\u3093\u3067\u6b32\u3057\u3044\u3068\u3053\u308d\u3060\u304c\u3001\u81ea\u4f5c\u6d3e\u4ee5\u5916\u306eDAC\u306e\u9078\u629e\u80a2\u306fUSB\u3057\u304b\u306a\u3044\u306e\u3067\u3001I2S\u51fa\u529b\u3067\u306eDAC\u63a5\u7d9a\u306a\u3069\u773c\u4e2d\u306b\u306a\u3044\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<p>BeagleBone\u306f\u79cb\u6708\u96fb\u5b50\u3067\u53d6\u308a\u6271\u3063\u3066\u304f\u308c\u3066\u3044\u305f\u304c\u3001\u79cb\u6708\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u4e0a\u306b\u306f\u307e\u3060 BeagleBone Green \u304c\u8f09\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u81ea\u4f5c\u6d3e\u306e\u65b9\u3067Botic\u74b0\u5883\u3092\u5229\u7528\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u65e9\u3081\u306b\u5165\u624b\u3057\u3066\u304a\u3044\u305f\u65b9\u304c\u826f\u3044\u3060\u308d\u3046\u3002Digikey\u306a\u3069\u3067\u306f\u6bd4\u8f03\u7684\u7c21\u5358\u306b\u5165\u624b\u3067\u304d\u308b\u3088\u3046\u3060\u304c\u3001\u6614\u306f5\u5343\u5186\u7a0b\u5ea6\u3067\u8cfc\u5165\u53ef\u80fd\u306a\u5b89\u4fa1\u306a\u30dc\u30fc\u30c9\u3060\u3063\u305f\u304c\u3001\u4eca\u3067\u306f\u9ad8\u4fa1\u306a\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30dc\u30fc\u30c9\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u6614\u304b\u3089\u96fb\u5b50\u5de5\u4f5c\u306b\u643a\u308f\u3063\u3066\u304d\u305f\u30aa\u30fc\u30c7\u30a3\u30aa\u81ea\u4f5c\u6d3e\u3067\u3042\u308c\u3070\u3001Botic\u7528\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u57fa\u677f\u3092\u81ea\u4f5c\u3059\u308b\u3053\u3068\u306f\u305d\u308c\u7a0b\u96e3\u3057\u3044\u3053\u3068\u3067\u306f\u306a\u3044\u304c\u3001\u96fb\u5b50\u5de5\u4f5c\u306e\u7d4c\u9a13\u304c\u306a\u3044\u3068LightMPD-Botic\u74b0\u5883\u306e\u69cb\u7bc9\u306f\u96e3\u3057\u3044\u3060\u308d\u3046\uff0e\u3053\u3053\u6570\u5e74\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u95a2\u9023\u306e\u8a71\u984c\u3082\u6b86\u3069\u805e\u304b\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u304c\u3001\u3053\u308c\u307e\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u652f\u3048\u3066\u304d\u305f\u4eba\u305f\u3061\u3082\u3069\u3093\u3069\u3093\u9ad8\u9f62\u5316\u3057\u3066\u3001\u30aa\u30fc\u30c7\u30a3\u30aa\u754c\u9688\u304b\u3089\u96e2\u308c\u3066\u3057\u307e\u3063\u305f\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u3053\u6570\u5e74\u3001\u30ed\u30c3\u30af\u3084\u30b8\u30e3\u30ba\u3001\u30bd\u30a6\u30eb\u754c\u306e\u5927\u5fa1\u6240\u305f\u3061\u306e\u8a03\u5831\u306e\u5d50\u304c\u7d9a\u3044\u3066\u3044\u308b\u304c\u3001\u9577\u5e74Hi-Fi\u30aa\u30fc\u30c7\u30a3\u30aa\u306b\u643a\u308f\u3063\u3066\u304d\u305f\u4eba\u305f\u3061\u3082\u5e97\u3058\u307e\u3044\u3059\u308b\u4eba\u305f\u3061\u304c\u591a\u3044\u3088\u3046\u3067\u5bc2\u3057\u3044\u9650\u308a\u3060\uff0e\u7279\u306b\u30aa\u30fc\u30c7\u30a3\u30aa\u81ea\u4f5c\u6d3e\u306b\u3068\u3063\u3066\u306f\u73fe\u5728\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u53d6\u308a\u5dfb\u304f\u72b6\u6cc1\u306f\u53b3\u3057\u3044\u3082\u306e\u304c\u3042\u308b\uff0e\u73fe\u5728\u306eHi-Fi\u30aa\u30fc\u30c7\u30a3\u30aa\u754c\u9688\u306f\u8d85\u5f29\u7d1a\u9ad8\u984d\u30b7\u30b9\u30c6\u30e0\u3068\u5b89\u76f4\u306a\u5b89\u7269\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u6a5f\u5668\u3068\u306b\u4e8c\u6975\u5206\u5316\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u308b\uff0eHi-Fi\u30aa\u30fc\u30c7\u30a3\u30aa\u81ea\u4f5c\u6d3e\u306f\u30ac\u30e9\u30d1\u30b4\u30b9\u306e\u30be\u30a6\u30ac\u30e1\u3068\u540c\u3058\u3088\u3046\u306b\u3082\u3046\u3058\u304d\u7d76\u6ec5\u7a2e\u3068\u306a\u3063\u3066\u3057\u307e\u3046\u306e\u3060\u308d\u3046\uff0e<\/p>\r\n<br>\r\n<br>\r\n<hr \/>\r\n<h4>PCM\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306e\u554f\u984c\u306f\u89e3\u6c7a\u3057\u305f\u3051\u3069\u3001\u4eca\u5ea6\u306fDSD\u3000Naitive\u518d\u751f\u304c\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f<\/h4>\r\n<br>\r\n<p>MPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u9001\u308a\u51fa\u3057\u9806\u756a\u3092\u5909\u66f4\u3057\u305f\u526f\u4f5c\u7528\u3067\u3001\u4eca\u5ea6\u306fDSD Native\u518d\u751f\u304c\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\uff0eMPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u8a2d\u5b9a\u3067 0 -> 0, 1 -> 3, &#8230; \u306e\u3088\u3046\u306b\u30c1\u30e3\u30cd\u30eb\u306e\u9806\u756a\u3092\u5909\u66f4\u3057\u305f\u306e\u3067\u3001DSD\u4fe1\u53f7\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u304a\u304b\u3057\u306a\u4e8b\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u306e\u304c\u539f\u56e0\u306e\u3088\u3046\u3060\uff0eMPD\u5074\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u8a2d\u5b9a\u3092\u5916\u3059\u3068\u6b63\u5e38\u306bDSD Native\u4fe1\u53f7\u304c\u518d\u751f\u3055\u308c\u308b\u306e\u3067\u3001\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u304c\u539f\u56e0\u3067\u3042\u308b\u3053\u3068\u306f\u78ba\u304b\u3060\uff0e<\/p>\r\n<br>\r\n<p>DSD Native\u518d\u751f\u6642\u306e DSD\u30c1\u30e3\u30cd\u30eb\u3068\u62c5\u5f53\u3059\u308b\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u30fc\u306e\u95a2\u4fc2\u306f\u3001<br>\r\n\u3000DSD-L(0) \u2192 Serialize #0, DSD-R(1) \u2192 Serialize #1 <br>\r\n\u3068\u306a\u3063\u3066\u3044\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\uff0eDSD-R(1)\u3000\u304c\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u3067 1 \u2192 3 \u306b\u5909\u66f4\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u304c\u539f\u56e0\u3060\u308d\u3046.<\/p>\r\n<br>\r\n<p>MPD\u5074\u306e\u30d5\u30a3\u30eb\u30bf\u3067DSD Native\u518d\u751f\u6642\u306b\u306f\u30d5\u30a3\u30eb\u30bf\u3092\u9069\u7528\u3057\u306a\u3044\u3088\u3046\u306a\u4ed5\u7d44\u307f\u304c\u5fc5\u8981\u306b\u306a\u308a\u305d\u3046\u3060\uff0eMPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u81ea\u4f53\u3092\u5909\u66f4\u3067\u304d\u308c\u3070\u51fa\u529b\u30c1\u30e3\u30cd\u30eb\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5909\u66f4\u3059\u308b\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u51e6\u7406\u306a\u3069\u4e0d\u8981\u306a\u306e\u3060\u304c\uff0e\uff0e\uff0e<\/p>\r\n<br>\r\n<p>MPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u30fc\u3092\u9069\u7528\u3057\u306a\u3044\u72b6\u614b\u3067\u6b63\u5e38\u306bDSD\u30d5\u30a1\u30a4\u30eb\u3092\u518d\u751f\u3057\u305f\u3068\u304d\u306e\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\uff0e<\/p>\r\n<br>\r\n<pre style=\"height: 500px;\">\r\n<code class=\"language-Markup\">\r\n\r\n======  DSD 2ch  5.6Mbps (DSD128) [DSF File] =====\r\n\r\n[  146.063188] [ 'pcm_native.c', #2522 : ==> Entering the function 'snd_pcm_playback_open()' ]\r\n[  146.073251] [  INFO: 'snd_pcm_playback_open()' : #2526 : \/*  Invoke 'nonseekable_open( inode, file );'  *\/ ] \r\n[  146.084831] [  INFO: 'snd_pcm_playback_open()' : #2535 : \/*  Invoke 'snd_lookup_minor_data( inode, file );'  *\/ ] \r\n[  146.095665] [  INFO: 'snd_pcm_playback_open()' : #2539 : \/*  Invoke 'snd_pcm_open( inode, file );'  *\/ ] \r\n[  146.105642] [ 'pcm_native.c' #2567 : ==> Entering the function snd_pcm_open(); ]\r\n[  146.113347] [  INFO: 'snd_pcm_open()' : #2577 : \/*  Invoke 'snd_card_file_add( pcm->card, file );'  *\/ ] \r\n[  146.123445] [  INFO: 'snd_pcm_open()' : #2597 : \/*  Invoke 'snd_pcm_open_file( file, pcm, stream );'  *\/ ] \r\n[  146.134694] [ 'pcm_native.c', #2488 : ==> Entering the function 'snd_pcm_open_file()' ]\r\n[  146.143691] [  INFO: 'snd_pcm_open_file()' : #2494 : \/*  Invoke 'snd_pcm_open_substream( pcm, stream, file, &substream );'  *\/ ] \r\n[  146.155859] [ 'pcm_native.c', #2428 : ==> Entering the function 'snd_pcm_open_substream()' ]\r\n[  146.164651] [  INFO: 'snd_pcm_open_substream()' : #2433 : \/*  Invoke 'snd_pcm_attach_substream( pcm, stream, file, &substream );'  *\/ ] \r\n[  146.177518] [  INFO: 'snd_pcm_open_substream()' : #2448 : \/*  Invoke 'snd_pcm_hw_constraints_init( substream );'  *\/ ] \r\n[  146.189913] [ 'soc-pcm.c', #454 : ==> Entering the function 'soc_pcm_open()' ]\r\n[  146.197487] [ 'davinci-mcasp.c', #1930 : ==> Entering the function 'davinci_mcasp_startup()' ]\r\n[  146.207209] [  INFO: 'davinci_mcasp_startup()', #1950 :   \/* tdm_slots = mcasp->tdm_slots ==> 2 *\/   ] \r\n[  146.217024] [  INFO: 'davinci_mcasp_startup()', #1977 :   \/* ruledata->serializers ==> 4,  max_channels ==> 8  *\/   ] \r\n[  146.228173] [  INFO: 'davinci_mcasp_startup()', #1999 :   \/* max_channels ==> 8  *\/   ] \r\n[  146.236604] [  INFO: 'davinci_mcasp_startup()', #2002 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_CHANNELS, 2, max_channels );'  *\/   ] \r\n[  146.251479] [  INFO: 'davinci_mcasp_startup()', #2008 :   \/* Invoke  'snd_pcm_hw_constraint_list( 0, SNDRV_PCM_HW_PARAM_CHANNELS,  &mcasp->chconstr[substream->stream] );'  *\/   ] \r\n[  146.269275] [  INFO: 'davinci_mcasp_startup()', #2016 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_SAMPLE_BITS, 8, mcasp->slot_width );'  mcasp->slot_width ==> 32 *\/   ] \r\n[  146.287864] [ 'davinci-mcasp.c', #2059 : <== Exitting the function 'davinci_mcasp_startup()'  : return( 0 ) ]\r\n[  146.299332] [ 'soc-generic-dmaengine-pcm.c', #248 : ==> Entering the function 'dmaengine_pcm_open()' ]\r\n[  146.309062] [ INFO: 'dmaengine_pcm_open()', #255 : \/* Invoke 'dmaengine_pcm_set_runtime_hwparams( substream )' *\/  ]\r\n[  146.320028] [ 'soc-generic-dmaengine-pcm.c', #132 : ==> Entering the function 'dmaengine_pcm_set_runtime_hwparams()' ]\r\n[  146.331235] [ 'soc-generic-dmaengine-pcm.c', #149 : <== Exitting the function 'dmaengine_pcm_set_runtime_hwparams()' : return( 'snd_soc_set_runtime_hwparams( substream, pcm->config->pcm_hardware );' )  ]\r\n[  146.351180] [ 'soc-generic-dmaengine-pcm.c', #263 : <== Exitting the function 'dmaengine_pcm_open()' : return( 'snd_dmaengine_pcm_open( substream, chan );' )  ]\r\n[  146.366910] [ INFO: 'soc_pcm_open()', #543 :  soc_pcm_has_symmetry( substream ) ==> 'TRUE'   ]\r\n[  146.375912] [ INFO: 'soc_pcm_open()', #566 :  Invoke 'soc_pcm_apply_msb( substream )'  ]\r\n[  146.384346] [ INFO: 'soc_pcm_open()', #588 :  ASoC:  codec dai name: 'botic-hifi' <---->  cpu dai name:'48038000.mcasp'  ]\r\n[  146.395856] [ INFO: 'soc_pcm_open()', #591 :  ASoC:  rate mask 0x40000000  ]\r\n[  146.403257] [ INFO: 'soc_pcm_open()', #594 :  ASoC:  min ch 2,  max ch 8  ]\r\n[  146.411646] [ INFO: 'soc_pcm_open()', #597 :  ASoC:  min rate 11025,  max rate 768000  ]\r\n[  146.420890] [ INFO: 'soc_pcm_open()', #601 :  Invoke 'snd_soc_runtime_activate( rtd, substream->stream  )'  ]\r\n[  146.431253] [ 'soc-pcm.c', #607 : <== Exitting the function 'soc_pcm_open()' : return( 0 )  ]\r\n[  146.440138] [  INFO: 'snd_pcm_open_substream()' : #2461 : \/*  Invoke 'snd_pcm_hw_constraints_complete( substream );'  *\/ ] \r\n[  146.451746] [ 'pcm_native.c', #2470 : <== Exitting the function 'snd_pcm_open_substream()' : return( 0 ) ]\r\n[  146.461866] [ 'pcm_native.c', #2515 : <== Exitting the function 'snd_pcm_open_file()' : return( 0 )  ]\r\n[  146.472700] [ 'pcm_native.c' #2636 : ===> Exiting the function 'snd_pcm_open()' : return( err ==> 0 )  ]\r\n[  146.483360] [ 'pcm_native.c', #2545 : <== Exitting the function 'snd_pcm_playback_open()' : return( err ==> 0 ) ]\r\n[  146.494377] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.502678] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[  146.511477] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[  146.524321] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[  146.534719] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var), &t );' ) ]\r\n[  146.550485] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.559979] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.568227] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.577667] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.585985] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[  146.596371] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var), &t );' ) ]\r\n[  146.612020] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[  146.620840] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[  146.633626] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.643185] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.652592] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.662295] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.670575] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.680014] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.688314] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.697788] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.706112] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.715552] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.723814] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.733276] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.741540] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.750981] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.759244] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.768674] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.776915] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.786353] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.794606] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.804039] [ 'pcm_native.c', #534 : ==> Entering the function 'snd_pcm_hw_params()' ]\r\n[  146.812294] [ INFO: 'snd_pcm_hw_params()', $574 :  Invoke snd_pcm_hw_refine( substream, params ); ]\r\n[  146.821720] [ 'pcm_native.c', #288 : ==> Entering the function 'snd_pcm_hw_refine()' ]\r\n[  146.829973] [ 'pcm_native.c', #2077 : ==> Entering the function 'snd_pcm_hw_rule_format()' ]\r\n[  146.838772] [ 'pcm_native.c', #2098 : <== Exitting the function 'snd_pcm_hw_rule_format()' : return(  'snd_mask_refine( mask, &#038;m );' ) ]\r\n[  146.851543] [ 'pcm_native.c', #2106 : ==> Entering the function 'snd_pcm_hw_rule_sample_bits()' ]\r\n[  146.860789] [ 'pcm_native.c', #2136 : <== Exitting the function 'snd_pcm_hw_rule_sample_bits()' : return(  'snd_interval_refine( params, rule->var), &t );' ) ]\r\n[  146.875651] [ 'pcm_native.c', #469 : <== Exitting the function 'snd_pcm_hw_refine()' : return( )  ]\r\n[  146.885077] [ INFO: 'snd_pcm_hw_params()', $581 :  Invoke snd_pcm_hw_params_choose( substream, params ); ]\r\n[  146.895148] [ 'soc-pcm.c', #907 : ==> Entering the function 'soc_pcm_hw_params()' ]\r\n[  146.903128] [ INFO: 'soc_pcm_hw_params()', #916 :  Invoke 'soc_pcm_params_symmetry( substream, params )'  ]\r\n[  146.913284] [ 'botic-card.c', #189 : ==> Entering the function 'botic_hw_params()'; ]\r\n[  146.921447] [ INFO: 'botic_hw_params()', #201 : \/* format ==> SNDRV_PCM_FORMAT_DSD_U32_LE : (50)  *\/   ]\r\n[  146.931327] [ INFO: 'botic_hw_params()', #203 : \/* rate ==> 176400 *\/ ]\r\n[  146.938212] [ INFO: 'botic_hw_params()', #206 : \/* Invoke the function 'botic_setup_serializers( cpu_dai, format, &ser_setup )'  *\/ ]\r\n[  146.950714] [ 'botic-card.c', #94 : ==> Entering the function 'botic_setup_serializers()'; ]\r\n[  146.959508] [ 'botic-card.c', #95 :       ( args : snd_pcm_format_t format ==> SNDRV_PCM_FORMAT_DSD_U32_LE : (50) ) ]\r\n[  146.970636] [ INFO: 'botic_setup_serializers()', #103 : \/* User's Botic Serializer Setting ==> 'MMII' *\/ ]\r\n[  146.980706] [ INFO: 'botic_setup_serializers()', #155 : \/* Invoke the function 'snd_soc_dai_set_channel_map()' *\/ ]\r\n[  146.991581] [ 'soc-core.c', #2813 : ==> Entering the function 'snd_soc_dai_set_channel_map()';  ]\r\n[  147.000828] [ 'soc-core.c', #2817 : <== Exiting the function 'snd_soc_dai_set_channel_map()'  and  Return(  'dai->driver->ops->set_channel_map( dai, tx_num, tx_slot, rx_num, rx_slot )'  );  ]\r\n[  147.018576] [ 'davinci-mcasp.c', #1841 : ==> Entering the function 'davinci_mcasp_set_channel_map()' ]\r\n[  147.028276] [ 'davinci-mcasp.c', #1842 :     ( args : unsigned int tx_num ==> 2 , unsigned int rx_num ==> 0 ) ]\r\n[  147.038790] [  INFO: 'davinci_mcasp_set_channel_map()', #1850 :   \/* unsigned int *tx_slot  *\/]\r\n[  147.047847] [  INFO: 'davinci_mcasp_set_channel_map()', #1851 :   \/* tx_slot[0] ==> 0   *\/]\r\n[  147.056549] [  INFO: 'davinci_mcasp_set_channel_map()', #1852 :   \/* tx_slot[1] ==> 1   *\/]\r\n[  147.065248] [  INFO: 'davinci_mcasp_set_channel_map()', #1853 :   \/* tx_slot[2] ==> 0   *\/]\r\n[  147.073949] [  INFO: 'davinci_mcasp_set_channel_map()', #1854 :   \/* tx_slot[3] ==> 0   *\/]\r\n[  147.082651] [  INFO: davinci_mcasp_set_channel_map() : #1893 :   for ( slot = 0; slot < mcasp->num_serializer; slot++ ) : mcasp->num_serializer ==> 4  ] \r\n[  147.096960] [  INFO: davinci_mcasp_set_channel_map() : #1899 :  \/* for ( chan = 0; chan < tx_num; chan++ ) *\/  tx_num ==> 2  ] \r\n[  147.108924] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 0, slot ==> 0  ] \r\n[  147.120157] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ] \r\n[  147.134752] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 1, slot ==> 1  ] \r\n[  147.145989] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ] \r\n[  147.160571] [ 'davinci-mcasp.c', #1919 : <== Exitting the function 'davinci_mcasp_set_channel_map()'  : return( 0 ) ]\r\n[  147.171624] [ 'botic-card.c', $178 : ==> Exiting the function 'botic_setup_serializers()' : Return ( 0 ) ]\r\n[  147.181683] [ INFO: 'botic_hw_params()', #214 : \/* Invoke the function 'snd_soc_dai_set_fmt( codec_dai, ser_setup.dai_fmt )' : set CODEC DAI configs *\/ ]\r\n[  147.195989] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[  147.204508] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[  147.212214] [ 'soc-core.c', #2709 : <== Exiting the function 'snd_soc_dai_set_fmt()' : return ( -ENOTSUPP )  ]\r\n[  147.222685] [ INFO: 'botic_hw_params()', #222 : \/* Invoke the function 'snd_soc_dai_set_fmt()' : set CPU DAI configs *\/ ]\r\n[  147.234103] [ 'soc-core.c', #2701 : ==> Entering the function 'snd_soc_dai_set_fmt()';  ]\r\n[  147.242625] [ 'soc-core.c', #2702 :     ( args :  unsigned int fmt ==> 16385 ) ]\r\n[  147.250333] [ 'soc-core.c', #2713 : <== Exiting the function 'snd_soc_dai_set_fmt()'  and  Return(  'dai->driver->ops->set_fmt( dai, fmt )'  );  ]\r\n[  147.264014] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[  147.273258] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[  147.281144] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ] \r\n[  147.291831] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ] \r\n[  147.300444] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ] \r\n[  147.311499] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ] \r\n[  147.324004] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ] \r\n[  147.334424] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ] \r\n[  147.345841] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ] \r\n[  147.356534] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[  147.367588] [ INFO: 'botic_hw_params()', #232 : \/* sampling rates ==> '44k1 series' *\/ ]\r\n[  147.376021] [ INFO: 'botic_hw_params()', #235 : \/* 'gpio_set_value( gpio_int_masterclk_enable, 0 )' : set Internal Master Clock 'DISABLE' *\/ ]\r\n[  147.389343] [ INFO: 'botic_hw_params()', #240 : \/* External Master Clock SW is 'ON' ==> set 44k1 SW to 'LOW'  *\/ ]\r\n[  147.400128] [ INFO: 'botic_hw_params()', #278 : \/* DSD Playback Mode is 'ON' *\/ ]\r\n[  147.407916] [ INFO: 'botic_hw_params()', #289 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :\t set CODEC system clock\t *\/ ]\r\n[  147.420055] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[  147.428847] [ 'soc-core.c', #2565 : <== Exiting the function 'snd_soc_dai_set_sysclk()' : return ( -ENOTSUPP )  ]\r\n[  147.439540] [ INFO: 'botic_hw_params()', #297 : \/* Invoke the function 'snd_soc_dai_set_sysclk()' :\t set CPU system clock  *\/ ]\r\n[  147.451508] [ 'soc-core.c', #2550 : ==> Entering the function 'snd_soc_dai_set_sysclk()';  ]\r\n[  147.460305] [ 'soc-core.c', #2554 : <== Exiting the function 'snd_soc_dai_set_sysclk()'  and  Return(  dai->driver->ops->set_sysclk( dai, clk_id, freq, dir ); );  ]\r\n[  147.475617] [ 'davinci-mcasp.c', #751 : ==> Entering the function 'davinci_mcasp_set_sysclk()' ]\r\n[  147.484775] [ 'davinci-mcasp.c', #771 : <== Exitting the function 'davinci_mcasp_set_sysclk()'  : return( 0 ) ]\r\n[  147.495289] [ INFO: 'botic_hw_params()', #305 : \/* Invoke the function 'snd_soc_dai_set_clkdiv( cpu_dai, 0, 1 )'  *\/ ]\r\n[  147.506437] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[  147.515231] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[  147.529730] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[  147.539066] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 0, div ==> 1, bool explicit ==> 1 ) ]\r\n[  147.548575] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>0) ] \r\n[  147.556826] [  INFO: __davinci_mcasp_set_clkdiv() : #660 :   ==> case MCASP_CLKDIV_AUXCLK \/* MCLK divider *\/ ] \r\n[  147.567341] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[  147.578762] [ INFO: 'botic_hw_params()', #343 : \/* Format ==> 'SNDRV_PCM_FORMAT_DSD_U32_LE\/SNDRV_PCM_FORMAT_DSD_U32_BE' :  Invoke  'snd_soc_dai_set_clkdiv( cpu_dai, 2, 0 )'   *\/ ]\r\n[  147.595427] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[  147.604220] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[  147.618717] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[  147.628047] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 2, div ==> 0, bool explicit ==> 1 ) ]\r\n[  147.637564] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>2) ] \r\n[  147.645814] [  INFO: __davinci_mcasp_set_clkdiv() : #690 :   ==> case MCASP_CLKDIV_BCLK_FS_RATIO \/* BCLK\/LRCLK ratio  *\/ ] \r\n[  147.657414] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[  147.668833] [ INFO: 'botic_hw_params()', #346 : \/* BCLK rate ==> 5644800   *\/ ]\r\n[  147.676443] [ INFO: 'botic_hw_params()', #371 : \/*\tdivisor = ( sysclk + (bclk \/ 2) ) \/ bclk; ==> 8 :\tInvoke\t'snd_soc_dai_set_clkdiv( cpu_dai, 1, divisor );'  *\/ ]\r\n[  147.691569] [ 'soc-core.c', #2610 : ==> Entering the function 'snd_soc_dai_set_clkdiv()';  ]\r\n[  147.700363] [ 'soc-core.c', #2614 : <== Exiting the function 'snd_soc_dai_set_clkdiv()'  and  Return(  dai->driver->ops->set_clkdiv(dai, div_id, div) );  ]\r\n[  147.714861] [ 'davinci-mcasp.c', #648 : ==> Entering the function '__davinci_mcasp_set_clkdiv()' ]\r\n[  147.724197] [ 'davinci-mcasp.c', #649 :       args( div_id ==> 1, div ==> 8, bool explicit ==> 1 ) ]\r\n[  147.733714] [  INFO: davinci_mcasp_set_dai_fmt() : #655 :  switch ( div_id ) (==>1) ] \r\n[  147.742016] [  INFO: __davinci_mcasp_set_clkdiv() : #668 :   ==> case MCASP_CLKDIV_BCLK \/* BCLK divider *\/ ] \r\n[  147.752368] [ 'davinci-mcasp.c', #733 : <== Exitting the function '__davinci_mcasp_set_clkdiv()'  : return( ret ==> 0 ) ]\r\n[  147.763841] [ 'botic-card.c', #383 : ===> Exiting the function 'botic_hw_params()' : ( Return : 0 ) ]\r\n[  147.773454] [ INFO: 'soc_pcm_hw_params()', #962 :  Invoke 'soc_dai_hw_params( substream, &codec_params, codec_dai )'  ]\r\n[  147.784696] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[  147.792676] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[  147.802013] [ INFO: 'soc_pcm_hw_params()', #972 :  codec_dai->rate = params_rate( &codec_params ); ==> 176400   ]\r\n[  147.812709] [ INFO: 'soc_pcm_hw_params()', #973 :  codec_dai->channels = params_channels( &codec_params ); ==> 2   ]\r\n[  147.823675] [ INFO: 'soc_pcm_hw_params()', #974 :  codec_dai->sample_bits = snd_pcm_format_physical_width( params_format(&codec_params) ); ==> 32   ]\r\n[  147.837627] [ INFO: 'soc_pcm_hw_params()', #979 :  Invoke 'soc_dai_hw_params( substream, params, cpu_dai )'  ]\r\n[  147.848051] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[  147.856031] [ 'davinci-mcasp.c', #1555 : ==> Entering the function 'davinci_mcasp_hw_params()' ]\r\n[  147.865191] [  INFO: davinci_mcasp_hw_params() : #1570 :   \/* channels = params_channels( params ); ==> 2, *\/   ] \r\n[  147.875976] [  INFO: davinci_mcasp_hw_params() : #1571 :   \/* period_size = params_period_size( params ); ==> 6615, *\/   ] \r\n[  147.887577] [  INFO: davinci_mcasp_hw_params() : #1582 :   \/* Invoke  'davinci_mcasp_set_dai_fmt( cpu_dai, mcasp->dai_fmt )' *\/  mcasp->dai_fmt ==> (16385)  ] \r\n[  147.902437] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[  147.911739] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[  147.919635] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ] \r\n[  147.930331] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ] \r\n[  147.938945] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ] \r\n[  147.950001] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ] \r\n[  147.962507] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ] \r\n[  147.972929] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ] \r\n[  147.984348] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ] \r\n[  147.995043] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[  148.006122] [  INFO: davinci_mcasp_hw_params() : #1612 :   \/* Invoke  'mcasp_common_hw_param( mcasp, substream->stream, period_size * channels, channels, dsd_mode )' *\/   ] \r\n[  148.022248] [ 'davinci-mcasp.c', #1016 : ==> Entering the function 'mcasp_common_hw_param()' ]\r\n[  148.031228] [ 'davinci-mcasp.c', #1018 :       args( int period_words ==> 13230, int channels ==> 2, bool dsd_mode ==> 1 ) ]\r\n[  148.042921] [  INFO: 'mcasp_common_hw_param()', #1025 : ================================================================================ ]\r\n[  148.055878] [  INFO: 'mcasp_common_hw_param()', #1026 :    Sound Playback Channels : DSD  2 channel                                      ]\r\n[  148.068835] [  INFO: 'mcasp_common_hw_param()', #1028 : ================================================================================ ]\r\n[  148.081790] [  INFO: mcasp_common_hw_param() : #1041 :  max_active_serializers ==> 2  ] \r\n[  148.090225] [  INFO: mcasp_common_hw_param() : #1069 :    disable_pins ==> 268435456 ] \r\n[  148.098562] [  INFO: 'mcasp_common_hw_param()', #1091 : \/* for ( i = 0; i < mcasp->num_serializer; i++ );   mcasp->num_serializer ==> 4  ]\r\n[  148.111564] [  INFO: 'mcasp_common_hw_param()', #1138 :  \/*  =====   if ( stream == SNDRV_PCM_STREAM_PLAYBACK )  ==> TRUE  ===== *\/  ]\r\n[  148.124159] [  INFO: 'mcasp_common_hw_param()', #1144 :  \/*  =====   active_serializers = tx_ser  ==>  2   =====  *\/  ]\r\n[  148.135392] [  INFO: 'mcasp_common_hw_param()', #1145 :  \/*  =====   numevt = mcasp->txnumevt;  ==>  16   =====  *\/  ]\r\n[  148.146544] [  INFO: 'mcasp_common_hw_param()', #1146 :  \/*  =====   reg = mcasp->fifo_base + MCASP_WFIFOCTL_OFFSET; ==>  4096 (0x1000)    =====  *\/  ]\r\n[  148.160677] [  INFO: 'mcasp_common_hw_param()', #1214 :  \/*  =====   numevt = (numevt \/ active_serializers) * active_serializers; ==>  16    =====  *\/  ]\r\n[  148.174989] [  INFO: 'mcasp_common_hw_param()', #1215 :  \/*  =====   period_words; ==>  13230    =====  *\/  ]\r\n[  148.185319] [  INFO: 'mcasp_common_hw_param()', #1220 :  \/*  =====  IN while () loop  =====   numevt -= active_serializers ==>  14    =====  *\/  ]\r\n[  148.198997] [  INFO: 'mcasp_common_hw_param()', #1227 :  \/*  =====  OUT while () loop   =====   numevt ==>  14    =====  *\/  ]\r\n[  148.210868] [  INFO: 'mcasp_common_hw_param()', #1239 :  \/*  =====  dma_data->maxburst = numevt; ==>  14    =====  *\/  ]\r\n[  148.222198] [ 'davinci-mcasp.c', #1241 : <== Exitting the function 'mcasp_common_hw_param()'  : return( 0 ) ]\r\n[  148.232530] [  INFO: davinci_mcasp_hw_params() : #1625 :   \/* Invoke  'mcasp_i2s_hw_param( mcasp, substream->stream, channels, dsd_mode )' *\/   ] \r\n[  148.246211] [ 'davinci-mcasp.c', #1258 : ==> Entering the function 'mcasp_i2s_hw_param()' ]\r\n[  148.254915] [ 'davinci-mcasp.c', #1260 :       args( int channels ==> 2, bool dsd_mode ==> 1 ) ]\r\n[  148.264073] [  INFO: mcasp_i2s_hw_param() : #1275 :   total_slots = mcasp->tdm_slots ==> 2 ] \r\n[  148.272955] [  INFO: mcasp_i2s_hw_param() : #1305 :   \/* if ( mcasp->tdm_mask[stream] )  ==> FALSE *\/            ] \r\n[  148.283829] [  INFO: mcasp_i2s_hw_param() : #1309 :      active_serializers = (channels + total_slots - 1) \/ total_slots ==> 1  ] \r\n[  148.296063] [  INFO: mcasp_i2s_hw_param() : #1315 :   \/* if ( active_serializers == 1 ) ==> TRUE :  active_slots = channels;  ==> 2 *\/   ] \r\n[  148.309113] [  INFO: mcasp_i2s_hw_param() : #1329 :   \/*  mask ==> 3 (0x3) *\/   ] \r\n[  148.316997] [ 'davinci-mcasp.c', #1378 : <== Exitting the function 'mcasp_i2s_hw_param()'  : return( 0 ) ]\r\n[  148.327059] [  INFO: davinci_mcasp_hw_params() : #1634 :   \/*  params_format(params) ==>  'SNDRV_PCM_FORMAT_DSD_U32_LE : (50)' ,  *\/   ] \r\n[  148.339927] [  INFO: davinci_mcasp_hw_params() : #1684 :   \/* Invoke  'davinci_config_channel_size( mcasp, word_length );'  word_length ==> 32 *\/   ] \r\n[  148.353972] [ 'davinci-mcasp.c', #915 : ==> Entering the function 'davinci_config_channel_size()' ]\r\n[  148.363399] [ 'davinci-mcasp.c', #916 :      args( int sample_width ==> 32 ) ]\r\n[  148.370927] [  INFO: davinci_config_channel_size() : #923 :   tx_rotate = (sample_width \/ 4) & 0x7;  ==> 0 ] \r\n[  148.381260] [  INFO: davinci_config_channel_size() : #924 :   mask = (1ULL << sample_width) - 1;  ==> -1 ] \r\n[  148.391412] [  INFO: davinci_config_channel_size() : #925 :   slot_width = sample_width;  ==> 32 ] \r\n[  148.400840] [  INFO: davinci_config_channel_size() : #957 :   lot_width = sample_width;1;  ==> 32 ] \r\n[  148.410358] [  INFO: davinci_config_channel_size() : #979 :  \/*  mapping of the XSSZ bit-field  : fmt = ( slot_width >> 1 ) - 1;  ==> 15  *\/ ] \r\n[  148.423765] [  INFO: davinci_config_channel_size() : #991 :    tx_rotate ==> 0 ] \r\n[  148.431563] [ 'davinci-mcasp.c', #1001 : <== Exitting the function 'davinci_config_channel_size()'  : return( 0 ) ]\r\n[  148.442438] [  INFO: davinci_mcasp_hw_params() : #1691 :   \/* mcasp->channels = channels ==> 2 *\/   ] \r\n[  148.452139] [ 'davinci-mcasp.c', #1693 : <== Exitting the function 'davinci_mcasp_hw_params()'  : return( 0 ) ]\r\n[  148.462651] [ 'soc-pcm.c', #892 : <== Exitting the function 'soc_dai_hw_params()' : return( 0 )  ]\r\n[  148.471991] [ 'soc-generic-dmaengine-pcm.c', #95 : ==> Entering the function 'dmaengine_pcm_hw_params()' ]\r\n[  148.482059] [ 'soc-generic-dmaengine-pcm.c', #123 : <== Exitting the function 'dmaengine_pcm_hw_params()' : return( 'snd_pcm_lib_malloc_pages( substream, params_buffer_bytes(params) );' )  ]\r\n[  148.499728] [ INFO: 'soc_pcm_hw_params()', #998 :  cpu_dai->rate = params_rate( params ); ==> 176400   ]\r\n[  148.509611] [ INFO: 'soc_pcm_hw_params()', #999 :  cpu_dai->channels = params_channels( params ); ==> 2   ]\r\n[  148.519763] [ INFO: 'soc_pcm_hw_params()', #1000 :  cpu_dai->sample_bits = snd_pcm_format_physical_width( params_format(params) ); ==> 32   ]\r\n[  148.532993] [ 'soc-pcm.c', #1005 : <== Exitting the function 'soc_pcm_hw_params()' : return( ret ==> 1 )  ]\r\n[  148.543146] [  INFO: 'snd_pcm_hw_params()', #610 : \/* runtime->format ==> 50, runtime->subformat ==> 0  ] \r\n[  148.553209] [  INFO: 'snd_pcm_hw_params()', #611 : \/* runtime->channels ==> 2, runtime->rate ==> 176400  ] \r\n[  148.563361] [  INFO: 'snd_pcm_hw_params()', #612 : \/* runtime->period_size ==> 6615, runtime->periods ==> 4  ] \r\n[  148.573874] [  INFO: 'snd_pcm_hw_params()', #613 : \/* runtime->buffer_size ==> 26460  ] \r\n[  148.582308] [  INFO: 'snd_pcm_hw_params()', #617 : \/* bits = snd_pcm_format_physical_width( runtime->format ); ==> 32  ] \r\n[  148.593726] [  INFO: 'snd_pcm_hw_params()', #619 : \/* ENDIAN :  ==> 'Little Endian'  ] \r\n[  148.602068] [  INFO: 'snd_pcm_hw_params()', #620 : \/* SIGNED\/UNSIGNED :  ==> 'Unsigned'  ] \r\n[  148.610771] [  INFO: 'snd_pcm_hw_params()', #634 : \/* runtime->byte_align ==> 8, runtime->min_align ==> 1  ] \r\n[  148.621114] [ 'pcm_native.c', #662 : <== Exitting the function 'snd_pcm_hw_params()' : return( 0 )  ]\r\n[  148.630777] [ 'pcm_native.c', #1643 : ==> Entering the function 'snd_pcm_prepare()' ]\r\n[  148.638951] [ 'soc-pcm.c', #786 : ==> Entering the function 'soc_pcm_prepare()' ]\r\n[  148.646746] [ INFO: 'soc_pcm_prepare()', #844 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[  148.659381] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  148.668361] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[  148.679276] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  148.688246] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[  148.704071] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[  148.713539] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 0, int stream ==> 0 ) ]\r\n[  148.722075] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ] \r\n[  148.730511] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[  148.741207] [ 'soc-pcm.c', #857 : <== Exitting the function 'soc_pcm_prepare()' : return( ret ==> 0 )  ]\r\n[  148.751136] [ 'pcm_native.c', #1662 : <== Exitting the function 'snd_pcm_prepare()' :  return ( res ==> 0 ) ]\r\n[  148.764656] [ 'pcm_native.c', #1168 : ==> Entering the function 'snd_pcm_start()' ]\r\n[  148.772647] [ 'pcm_native.c', #1170 : ===> Exiting the function snd_pcm_start() : Return : 'snd_pcm_action( &snd_pcm_action_start, substream, SNDRV_PCM_STATE_RUNNING );' ' ]\r\n[  148.788766] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[  148.796673] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[  148.805644] [ 'davinci-mcasp.c', #227 : ==> Entering the function mcasp_start_tx(); ]\r\n[  148.813795] [  INFO: mcasp_start_tx() : #231 :    mcasp->txnumevt  ==> 16  ] \r\n[  148.821230] [ 'davinci-mcasp.c', #262 : <== Exiting the function mcasp_start_tx(); return ( VOID ) ]\r\n[  148.830740] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[  148.841609] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n\r\n     Sound Playback \r\n\r\n[  434.397036] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  434.405215] [ 'soc-pcm.c', #1105 : ==> Entering the function 'soc_pcm_trigger()' ]\r\n[  434.413106] [ 'davinci-mcasp.c', #1703 : ==> Entering the function 'davinci_mcasp_trigger()' ]\r\n[  434.422074] [ 'davinci-mcasp.c', #303 : ==> Entering the function 'mcasp_stop_tx()' ]\r\n[  434.430230] [ 'davinci-mcasp.c', #324 : <== Exiting the function mcasp_stop_tx(); return( VOID ) ]\r\n[  434.439559] [ 'davinci-mcasp.c', #1727 : <== Exitting the function 'davinci_mcasp_trigger()' : return( ret ==> 0 )]\r\n[  434.450426] [ 'soc-pcm.c', #1141 : <== Exitting the function 'soc_pcm_trigger()' : return( 0 )  ]\r\n[  434.459667] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  434.470491] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  434.478665] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  434.488081] [ 'pcm_native.c', #1189 : ==> Entering the function 'snd_pcm_do_stop()' ]\r\n[  434.496237] [ 'pcm_native.c', #1196 : <== Exitting the function 'snd_pcm_do_stop()' (return : 0) ]\r\n[  434.505589] [ 'soc-pcm.c', #1041 : ==> Entering the function 'soc_pcm_hw_free()' ]\r\n[  434.513484] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  434.522465] [ 'soc-core.c', #2876 : <== Exiting the function 'snd_soc_dai_digital_mute()' : return ( -ENOTSUPP )  ]\r\n[  434.533344] [ 'soc-pcm.c', #1096 : <== Exitting the function 'soc_pcm_hw_free()' : return( 0 )  ]\r\n[  434.542718] [ 'pcm_native.c' #2653 : ==> Entering the function snd_pcm_release(); ]\r\n[  434.550725] [ 'soc-pcm.c', #693 : ==> Entering the function 'soc_pcm_close()' ]\r\n[  434.558341] [ INFO: 'soc_pcm_open()', #715 :  Invoke 'snd_soc_dai_digital_mute( cpu_dai, 1, substream->stream )'  ]\r\n[  434.569224] [ 'soc-core.c', #2855 : ==> Entering the function 'snd_soc_dai_digital_mute()';  ]\r\n[  434.578194] [ 'soc-core.c', #2864 : <== Exiting the function 'snd_soc_dai_digital_mute()'  and  Return(  'dai->driver->ops->mute_stream( dai, mute, direction )'  );  ]\r\n[  434.593874] [ 'davinci-mcasp.c', #2092 : ==> Entering the function 'davinci_mcasp_mute_stream()' ]\r\n[  434.603221] [ 'davinci-mcasp.c', #2094 :       args( int mute ==> 1, int stream ==> 0 ) ]\r\n[  434.611746] [  INFO: davinci_mcasp_mute_stream() : #2098 :  \/*  mute_pin ==> -1  \/*   ] \r\n[  434.620189] [ 'davinci-mcasp.c', #2116 : <== Exitting the function 'davinci_mcasp_mute_stream()'  : return( 0 ) ]\r\n[  434.630881] [ 'davinci-mcasp.c', #2069 : ==> Entering the function 'davinci_mcasp_shutdown()' ]\r\n[  434.640017] [ 'davinci-mcasp.c', #2083 : <== Exitting the function 'davinci_mcasp_shutdown()'  : return( VOID ) ]\r\n[  434.650747] [ 'soc-pcm.c', #772 : <== Exitting the function 'soc_pcm_close()' : return( 0 )  ]\r\n[  434.659729] [ 'pcm_native.c', #1995 : ==> Entering the function 'snd_pcm_unlink()' ]\r\n[  434.667793] [ 'pcm_native.c', #2020 : <== Exitting the function 'snd_pcm_unlink()': return ( res ==> -114 ) ]\r\n[  434.678140] [ 'pcm_native.c' #2672 : ===> Exiting the function snd_pcm_release() : Return( 0 ) ]\r\n\r\n<\/code><\/pre>\r\n<br>\r\n<br>\r\n<p>\u4e00\u65b9\u3001MPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u30fc\u3092\u9069\u7528\u3057\u305f\u5834\u5408\u306e\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\uff08\u9014\u4e2d\u30a8\u30e9\u30fc\u3067\u30cf\u30f3\u30b0\u30a2\u30c3\u30d7\uff09\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\uff0e\uff08\u4e00\u90e8\u3060\u3051\u629c\u7c8b\uff09<\/p>\r\n<br>\r\n<pre style=\"height: 500px;\">\r\n<code class=\"language-Markup\">\r\n\r\n======  DSD 2ch  5.6Mbps (DSD128)  [ Applying MPD Channel Mapping Filter ]  =====\r\n\r\n[   74.497869] [ 'pcm_native.c', #2522 : ==> Entering the function 'snd_pcm_playback_open()' ]\r\n[   74.509031] [  INFO: 'snd_pcm_playback_open()' : #2526 : \/*  Invoke 'nonseekable_open( inode, file );'  *\/ ] \r\n[   74.519610] [  INFO: 'snd_pcm_playback_open()' : #2535 : \/*  Invoke 'snd_lookup_minor_data( inode, file );'  *\/ ] \r\n[   74.530415] [  INFO: 'snd_pcm_playback_open()' : #2539 : \/*  Invoke 'snd_pcm_open( inode, file );'  *\/ ] \r\n[   74.540386] [ 'pcm_native.c' #2567 : ==> Entering the function snd_pcm_open(); ]\r\n[   74.548082] [  INFO: 'snd_pcm_open()' : #2577 : \/*  Invoke 'snd_card_file_add( pcm->card, file );'  *\/ ] \r\n[   74.558112] [  INFO: 'snd_pcm_open()' : #2597 : \/*  Invoke 'snd_pcm_open_file( file, pcm, stream );'  *\/ ] \r\n[   74.569450] [ 'pcm_native.c', #2488 : ==> Entering the function 'snd_pcm_open_file()' ]\r\n[   74.577787] [  INFO: 'snd_pcm_open_file()' : #2494 : \/*  Invoke 'snd_pcm_open_substream( pcm, stream, file, &substream );'  *\/ ] \r\n[   74.590780] [ 'pcm_native.c', #2428 : ==> Entering the function 'snd_pcm_open_substream()' ]\r\n[   74.600715] [  INFO: 'snd_pcm_open_substream()' : #2433 : \/*  Invoke 'snd_pcm_attach_substream( pcm, stream, file, &substream );'  *\/ ] \r\n[   74.613538] [  INFO: 'snd_pcm_open_substream()' : #2448 : \/*  Invoke 'snd_pcm_hw_constraints_init( substream );'  *\/ ] \r\n[   74.624791] [ 'soc-pcm.c', #454 : ==> Entering the function 'soc_pcm_open()' ]\r\n[   74.632362] [ 'davinci-mcasp.c', #1930 : ==> Entering the function 'davinci_mcasp_startup()' ]\r\n[   74.641402] [  INFO: 'davinci_mcasp_startup()', #1950 :   \/* tdm_slots = mcasp->tdm_slots ==> 2 *\/   ] \r\n[   74.652332] [  INFO: 'davinci_mcasp_startup()', #1977 :   \/* ruledata->serializers ==> 4,  max_channels ==> 8  *\/   ] \r\n[   74.664220] [  INFO: 'davinci_mcasp_startup()', #1999 :   \/* max_channels ==> 8  *\/   ] \r\n[   74.672674] [  INFO: 'davinci_mcasp_startup()', #2002 :   \/* Invoke  'snd_pcm_hw_constraint_minmax( ,SNDRV_PCM_HW_PARAM_CHANNELS, 2, max_channels );'  *\/   ] \r\n[   74.687439] [  INFO: 'davinci_mcasp_startup()', #2008 :   \/* Invoke  'snd_pcm_hw_constraint_list( 0, SNDRV_PCM_HW_PARAM_CHANNELS,  &mcasp->chconstr[substream->stream] );'  *\/   ] \r\n[   74.704165] [ 'davinci-mcasp.c', #2059 : <== Exitting the function 'davinci_mcasp_startup()'  : return( 0 ) ]\r\n[   74.715645] [ 'soc-generic-dmaengine-pcm.c', #248 : ==> Entering the function 'dmaengine_pcm_open()' ]\r\n[   74.726105] [ INFO: 'dmaengine_pcm_open()', #255 : \/* Invoke 'dmaengine_pcm_set_runtime_hwparams( substream )' *\/  ]\r\n[   74.737127] [ 'soc-generic-dmaengine-pcm.c', #132 : ==> Entering the function 'dmaengine_pcm_set_runtime_hwparams()' ]\r\n[   74.748277] [ 'soc-generic-dmaengine-pcm.c', #149 : <== Exitting the function 'dmaengine_pcm_set_runtime_hwparams()' : return( 'snd_soc_set_runtime_hwparams( substream, pcm->config->pcm_hardware );' )  ]\r\n[   74.767178] [ 'soc-generic-dmaengine-pcm.c', #263 : <== Exitting the function 'dmaengine_pcm_open()' : return( 'snd_dmaengine_pcm_open( substream, chan );' )  ]\r\n[   74.783277] [ INFO: 'soc_pcm_open()', #543 :  soc_pcm_has_symmetry( substream ) ==> 'TRUE'   ]\r\n[   74.793019] [ INFO: 'soc_pcm_open()', #566 :  Invoke 'soc_pcm_apply_msb( substream )'  ]\r\n[   74.801476] [ INFO: 'soc_pcm_open()', #588 :  ASoC:  codec dai name: 'botic-hifi' <---->  cpu dai name:'48038000.mcasp'  ]\r\n[   74.812990] [ INFO: 'soc_pcm_open()', #591 :  ASoC:  rate mask 0x40000000  ]\r\n[   74.820338] [ INFO: 'soc_pcm_open()', #594 :  ASoC:  min ch 2,  max ch 8  ]\r\n[   74.827586] [ INFO: 'soc_pcm_open()', #597 :  ASoC:  min rate 11025,  max rate 768000  ]\r\n[   74.836072] [ INFO: 'soc_pcm_open()', #601 :  Invoke 'snd_soc_runtime_activate( rtd, substream->stream  )'  ]\r\n[   74.847534] [ 'soc-pcm.c', #607 : <== Exitting the function 'soc_pcm_open()' : return( 0 )  ]\r\n[   74.857195] [  INFO: 'snd_pcm_open_substream()' : #2461 : \/*  Invoke 'snd_pcm_hw_constraints_complete( substream );'  *\/ ] \r\n[   74.868830] [ 'pcm_native.c', #2470 : <== Exitting the function 'snd_pcm_open_substream()' : return( 0 ) ]\r\n\r\n ...\r\n\r\n[   75.337057] [ INFO: 'snd_pcm_hw_params()', $581 :  Invoke snd_pcm_hw_params_choose( substream, params ); ]\r\n[   75.347118] [ 'soc-pcm.c', #907 : ==> Entering the function 'soc_pcm_hw_params()' ]\r\n[   75.355095] [ INFO: 'soc_pcm_hw_params()', #916 :  Invoke 'soc_pcm_params_symmetry( substream, params )'  ]\r\n[   75.365245] [ 'botic-card.c', #189 : ==> Entering the function 'botic_hw_params()'; ]\r\n[   75.373402] [ INFO: 'botic_hw_params()', #201 : \/* format ==> SNDRV_PCM_FORMAT_DSD_U32_LE : (50)  *\/   ]\r\n[   75.383276] [ INFO: 'botic_hw_params()', #203 : \/* rate ==> 176400 *\/ ]\r\n[   75.390167] [ INFO: 'botic_hw_params()', #206 : \/* Invoke the function 'botic_setup_serializers( cpu_dai, format, &ser_setup )'  *\/ ]\r\n[   75.402667] [ 'botic-card.c', #94 : ==> Entering the function 'botic_setup_serializers()'; ]\r\n[   75.411455] [ 'botic-card.c', #95 :       ( args : snd_pcm_format_t format ==> SNDRV_PCM_FORMAT_DSD_U32_LE : (50) ) ]\r\n[   75.422508] [ INFO: 'botic_setup_serializers()', #103 : \/* User's Botic Serializer Setting ==> 'MMII' *\/ ]\r\n[   75.432565] [ INFO: 'botic_setup_serializers()', #155 : \/* Invoke the function 'snd_soc_dai_set_channel_map()' *\/ ]\r\n[   75.443436] [ 'soc-core.c', #2813 : ==> Entering the function 'snd_soc_dai_set_channel_map()';  ]\r\n[   75.452684] [ 'soc-core.c', #2817 : <== Exiting the function 'snd_soc_dai_set_channel_map()'  and  Return(  'dai->driver->ops->set_channel_map( dai, tx_num, tx_slot, rx_num, rx_slot )'  );  ]\r\n[   75.470436] [ 'davinci-mcasp.c', #1841 : ==> Entering the function 'davinci_mcasp_set_channel_map()' ]\r\n[   75.480130] [ 'davinci-mcasp.c', #1842 :     ( args : unsigned int tx_num ==> 2 , unsigned int rx_num ==> 0 ) ]\r\n[   75.490703] [  INFO: 'davinci_mcasp_set_channel_map()', #1850 :   \/* unsigned int *tx_slot  *\/]\r\n[   75.499778] [  INFO: 'davinci_mcasp_set_channel_map()', #1851 :   \/* tx_slot[0] ==> 0   *\/]\r\n[   75.508474] [  INFO: 'davinci_mcasp_set_channel_map()', #1852 :   \/* tx_slot[1] ==> 1   *\/]\r\n[   75.517175] [  INFO: 'davinci_mcasp_set_channel_map()', #1853 :   \/* tx_slot[2] ==> 0   *\/]\r\n[   75.525876] [  INFO: 'davinci_mcasp_set_channel_map()', #1854 :   \/* tx_slot[3] ==> 0   *\/]\r\n[   75.534574] [  INFO: davinci_mcasp_set_channel_map() : #1893 :   for ( slot = 0; slot < mcasp->num_serializer; slot++ ) : mcasp->num_serializer ==> 4  ] \r\n[   75.548881] [  INFO: davinci_mcasp_set_channel_map() : #1899 :  \/* for ( chan = 0; chan < tx_num; chan++ ) *\/  tx_num ==> 2  ] \r\n[   75.560837] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 0, slot ==> 0  ] \r\n[   75.572071] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ] \r\n[   75.586651] [  INFO: davinci_mcasp_set_channel_map() : #1903 :  \/* slot = tx_slot[chan]; *\/  chan ==> 1, slot ==> 1  ] \r\n[   75.597883] [  INFO: davinci_mcasp_set_channel_map() : #1906 :  \/* if ( slot < mcasp->num_serializer ) ==> TRUE  *\/   mcasp->serial_dir[slot] = TX_MODE;  ] \r\n[   75.612461] [ 'davinci-mcasp.c', #1919 : <== Exitting the function 'davinci_mcasp_set_channel_map()'  : return( 0 ) ]\r\n[   75.623514] [ 'botic-card.c', $178 : ==> Exiting the function 'botic_setup_serializers()' : Return ( 0 ) ]\r\n\r\n ...\r\n\r\n[   76.299710] [ 'soc-pcm.c', #880 : ==> Entering the function 'soc_dai_hw_params()' ]\r\n[   76.307678] [ 'davinci-mcasp.c', #1555 : ==> Entering the function 'davinci_mcasp_hw_params()' ]\r\n[   76.316830] [  INFO: davinci_mcasp_hw_params() : #1570 :   \/* channels = params_channels( params ); ==> 6, *\/   ] \r\n[   76.327608] [  INFO: davinci_mcasp_hw_params() : #1571 :   \/* period_size = params_period_size( params ); ==> 6615, *\/   ] \r\n[   76.339250] [  INFO: davinci_mcasp_hw_params() : #1582 :   \/* Invoke  'davinci_mcasp_set_dai_fmt( cpu_dai, mcasp->dai_fmt )' *\/  mcasp->dai_fmt ==> (16385)  ] \r\n[   76.354101] [ 'davinci-mcasp.c', #430 : ==> Entering the function 'davinci_mcasp_set_dai_fmt()' ]\r\n[   76.363346] [ 'davinci-mcasp.c', #431 :       args( unsigned int fmt ==> 16385 ) ]\r\n[   76.371235] [  INFO: davinci_mcasp_set_dai_fmt() : #463 :  switch ( fmt & SND_SOC_DAIFMT_FORMAT_MASK )  (==>1) ] \r\n[   76.381921] [  INFO: davinci_mcasp_set_dai_fmt() : #485 :   ==> case SND_SOC_DAIFMT_I2S ] \r\n[   76.390535] [  INFO: davinci_mcasp_set_dai_fmt() : #521 :  switch ( fmt & SND_SOC_DAIFMT_MASTER_MASK )  (==>16384) ] \r\n[   76.401585] [  INFO: davinci_mcasp_set_dai_fmt() : #527 :   ==> case SND_SOC_DAIFMT_CBS_CFS : \/* codec is clock and frame slave *\/ ] \r\n[   76.414082] [  INFO: davinci_mcasp_set_dai_fmt() : #583 :  switch ( fmt & SND_SOC_DAIFMT_INV_MASK )  (==>0) ] \r\n[   76.424499] [  INFO: davinci_mcasp_set_dai_fmt() : #609 :   ==> case SND_SOC_DAIFMT_NB_NF \/* fs_pol_rising ==> true *\/ ] \r\n[   76.435917] [  INFO: davinci_mcasp_set_dai_fmt() : #625 :  Frame Sync Polarity  ==> [ 'FS Polarity is FALLING' ] \r\n[   76.446610] [ 'davinci-mcasp.c', #640 : <== Exitting the function 'davinci_mcasp_set_dai_fmt()' return( ret ==> 0 ) ]\r\n[   76.457663] [  INFO: davinci_mcasp_hw_params() : #1612 :   \/* Invoke  'mcasp_common_hw_param( mcasp, substream->stream, period_size * channels, channels, dsd_mode )' *\/   ] \r\n[   76.473779] [ 'davinci-mcasp.c', #1016 : ==> Entering the function 'mcasp_common_hw_param()' ]\r\n[   76.482749] [ 'davinci-mcasp.c', #1018 :       args( int period_words ==> 39690, int channels ==> 6, bool dsd_mode ==> 1 ) ]\r\n[   76.494434] [  INFO: 'mcasp_common_hw_param()', #1025 : ================================================================================ ]\r\n[   76.507383] [  INFO: 'mcasp_common_hw_param()', #1026 :    Sound Playback Channels : DSD  6 channel                                      ]\r\n[   76.520336] [  INFO: 'mcasp_common_hw_param()', #1028 : ================================================================================ ]\r\n[   76.533285] [  INFO: mcasp_common_hw_param() : #1041 :  max_active_serializers ==> 6  ] \r\n[   76.541715] [  INFO: mcasp_common_hw_param() : #1069 :    disable_pins ==> 268435456 ] \r\n[   76.550060] [  INFO: 'mcasp_common_hw_param()', #1091 : \/* for ( i = 0; i < mcasp->num_serializer; i++ );   mcasp->num_serializer ==> 4  ]\r\n[   76.563017] [  INFO: 'mcasp_common_hw_param()', #1138 :  \/*  =====   if ( stream == SNDRV_PCM_STREAM_PLAYBACK )  ==> TRUE  ===== *\/  ]\r\n[   76.575604] [  INFO: 'mcasp_common_hw_param()', #1144 :  \/*  =====   active_serializers = tx_ser  ==>  2   =====  *\/  ]\r\n[   76.586836] [  INFO: 'mcasp_common_hw_param()', #1145 :  \/*  =====   numevt = mcasp->txnumevt;  ==>  16   =====  *\/  ]\r\n[   76.597979] [  INFO: 'mcasp_common_hw_param()', #1146 :  \/*  =====   reg = mcasp->fifo_base + MCASP_WFIFOCTL_OFFSET; ==>  4096 (0x1000)    =====  *\/  ]\r\n[   76.612103] [  INFO: 'mcasp_common_hw_param()', #1155 :  \/* =====   if ( active_serializers < max_active_serializers )  ==> TRUE   ===== ]\r\n[   76.625076] [ 'davinci-mcasp.c', #1161 : <== Exitting the function 'mcasp_common_hw_param()'  : return( -EINVAL ) ]\r\n[   76.635950] [ 'davinci-mcasp.c', #1617 : <== Exitting the function 'davinci_mcasp_hw_params()' : return( ret ==> -22 )]\r\n[   76.647226] davinci-mcasp 48038000.mcasp: ASoC: can't set 48038000.mcasp hw params: -22\r\n[   76.655573] [ 'soc-pcm.c', #1029 : <== Exitting the function 'soc_pcm_hw_params()' : return( ret ==> -22 )  ]\r\n[   76.665905] [ 'soc-pcm.c', #1041 : ==> Entering the function 'soc_pcm_hw_free()' ]\r\n\r\n  ...\r\n\r\n<\/code><\/pre>\r\n<br>\r\n<br>\r\n<p>\u4e0a\u8a18\u306e\u7d50\u679c\u304b\u3089\u3001MPD\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u30fc\u3092\u9069\u7528\u3059\u308b\u3068\u3001\u4f55\u6545\u304bDSD\u306e\u30c1\u30e3\u30cd\u30eb\u6570\u304c6ch\u3068\u3057\u3066McASP\u5074\u306b\u4f1d\u308f\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\uff0e\u3053\u308c\u3067\u306fDSD\u304c\u518d\u751f\u3067\u304d\u306a\u3044\u306e\u3082\u7121\u7406\u306f\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>PCM\u306e2ch\u518d\u751f\u6642\u306b\u306fMPD\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u30fc\u3092\u9069\u7528\u3057\u3066\u3082\u554f\u984c\u306a\u304f\u518d\u751f\u3055\u308c\u3066\u3044\u305f\u304c\u3001\u5ff5\u306e\u305f\u3081PCM2ch\u518d\u751f\u6642\u306e\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u3092\u898b\u3066\u307f\u308b\u3068\u3001DSD\u306e\u6642\u3068\u540c\u3058\u3088\u3046\u306bMcASP\u5074\u304c\u8a8d\u8b58\u3059\u308b\u30c1\u30e3\u30cd\u30eb\u6570\u306f6ch\u3060\u3063\u305f\u308a\u30014ch\u3060\u3063\u305f\u308a\u3057\u3066\u304a\u304b\u3057\u306a\u6319\u52d5\u3092\u793a\u3057\u3066\u3044\u305f\u306e\u3067\u3001MPD\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u30d5\u30a3\u30eb\u30bf\u30fc\u306f\u9b3c\u9580\u304b\u3082\u3057\u308c\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p>\u4e0a\u624b\u304f\u89e3\u6c7a\u3059\u308b\u65b9\u6cd5\u3092\u63a2\u3055\u306d\u3070\uff0e\uff0e\uff0e<\/p>\r\n<br>\r\n<hr \/>\r\n<h4>MPD\u306e\u6700\u65b0\u7248\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306b\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306e\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u30fc\u306b\u95a2\u9023\u3057\u305d\u3046\u306a\u30b3\u30fc\u30c9\u3092\u767a\u898b<\/h4>\r\n<br>\r\n<p>MPD\u5074\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u518d\u751f\u306b\u95a2\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\u306e\u3067\u3001\u3068\u308a\u3042\u3048\u305a\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u30fc\u306b\u95a2\u4fc2\u3057\u305d\u3046\u306a\u90e8\u5206\u3092\u898b\u3064\u3051\u305f\uff0e\u4eca\u306f\u5fd9\u3057\u3044\u306e\u3067MPD\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u3058\u3063\u304f\u308a\u3068\u8ffd\u3063\u3066\u884c\u304f\u6687\u306f\u306a\u3044\u304c\u3001\u3069\u3046\u3084\u3089\u3053\u306e\u30b3\u30fc\u30c9\u3092\u8db3\u639b\u304b\u308a\u306b\u30b3\u30fc\u30c9\u3092\u8ffd\u3063\u3066\u884c\u3051\u3070\u3001MPD\u5074\u306e\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u30fc\u3092\u3053\u3061\u3089\u304c\u671b\u3080\u9806\u756a\u306b\u5909\u66f4\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<p> \u8a72\u5f53\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306fMPD\u306e\u30bd\u30fc\u30b9\u30c4\u30ea\u30fc\u306e <a href=\"https:\/\/github.com\/MusicPlayerDaemon\/MPD\/blob\/master\/src\/pcm\/Order.cxx\" target=\"_blank\">&#8220;\/src\/pcm\/Order.cxx&#8221;<\/a> \u306b\u3042\u308b\uff0e\u5192\u982d\u306e\u30b3\u30e1\u30f3\u30c8\u306b\u6b21\u306e\u3088\u3046\u306a\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u30fc\u306b\u95a2\u3059\u308b\u8a18\u8ff0\u304c\u3042\u308b\uff0e<\/p>\r\n<br>\r\n<pre>\r\n<code class=\"language-cpp\">\r\n\/*\r\n * Copyright 2003-2021 The Music Player Daemon Project\r\n * http:\/\/www.musicpd.org\r\n *\r\n * This program is free software; you can redistribute it and\/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation; either version 2 of the License, or\r\n * (at your option) any later version.\r\n *\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n * GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the GNU General Public License along\r\n * with this program; if not, write to the Free Software Foundation, Inc.,\r\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r\n *\/\r\n\r\n#include \"Order.hxx\"\r\n#include \"Buffer.hxx\"\r\n#include \"util\/ConstBuffer.hxx\"\r\n\r\n\r\n\/*\r\n * According to:\r\n *  - https:\/\/xiph.org\/flac\/format.html#frame_header\r\n *  - https:\/\/github.com\/nu774\/qaac\/wiki\/Multichannel--handling\r\n * the source channel order (after decoding, e.g., flac, alac) is for\r\n *  - 1ch:            mono\r\n *  - 2ch:            left, right\r\n *  - 3ch:            left, right, center\r\n *  - 4ch:            front left, front right, back left, back right\r\n *  - 5ch:            front left, front right, front center, back\/surround left, back\/surround right\r\n *  - 6ch (aka 5.1):  front left, front right, front center, LFE, back\/surround left, back\/surround right\r\n *  - 7ch:            front left, front right, front center, LFE, back center, side left, side right\r\n *  - 8ch: (aka 7.1): front left, front right, front center, LFE, back left, back right, side left, side right\r\n *\r\n * The ALSA default channel map is (see \/usr\/share\/alsa\/pcm\/surround71.conf):\r\n *  - front left, front right, back left, back right, front center, LFE,  side left, side right\r\n *\r\n * Hence, in case of the following source channel orders 3ch, 5ch, 6ch (aka\r\n * 5.1), 7ch and 8ch the channel order has to be adapted\r\n *\/\r\n\r\n  ...\r\n\r\n\r\ntemplate<typename V>\r\nstatic void\r\nToAlsaChannelOrder51(V *dest, const V *src, size_t n) noexcept\r\n{\r\n\tTwoPointers<V> p{dest, src};\r\n\tfor (size_t i = 0; i != n; ++i)\r\n\t\tp.ToAlsa51();\r\n}\r\n\r\ntemplate<typename V>\r\nstatic inline ConstBuffer<V>\r\nToAlsaChannelOrder51(PcmBuffer &buffer, ConstBuffer<V> src) noexcept\r\n{\r\n\tauto dest = buffer.GetT<V>(src.size);\r\n\tToAlsaChannelOrder51(dest, src.data, src.size \/ 6);\r\n\treturn { dest, src.size };\r\n}\r\n\r\n ...\r\n\r\n<\/code>\r\n<\/pre>\r\n<br>\r\n<p>\u4e0a\u8a18\u306e\u30b3\u30e1\u30f3\u30c8\u306b\u6709\u308b\u3088\u3046\u306b\u30015.1ch(6ch)\u306e\u5834\u5408\u306e\u5df7\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306f\u3001FL, FR, FC, LFE, RL, RR \u3068\u3044\u3046\u3053\u3068\u306e\u3088\u3046\u3060\uff0eALSA\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306f 7.1ch(8ch) \u306b\u95a2\u3057\u3066\u306f\u3001&#8221;\/usr\/share\/alsa\/pcm\/surround71.conf&#8221; \u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3060\uff0e\u3057\u304b\u3057\u306a\u304c\u3089\u30015.1ch(6ch)\u306e\u5834\u5408\u306f &#8220;channel order has to be adapted&#8221; \u3060\u305d\u3046\u3060\uff0e\u305d\u3093\u306a\u6bba\u751f\u306a\uff0e\uff0e\uff0e<\/p>\r\n<br>\r\n<p>&#8230; \u3068\u3044\u3046\u8a33\u3067\u3001\u81ea\u5206\u3067MPD\u306e\u30b3\u30fc\u30c9\u3092\u5f04\u3063\u3066 filter plugin\u3092\u4f7f\u308f\u305a\u306b\u3001\u5df7\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3042\u308b\u3001FL, FR, FC, LFE, RL, RR\u3000\u306e\u9806\u306b\u30c7\u30fc\u30bf\u3092\u5410\u304d\u51fa\u3059\u3088\u3046\u306b\u3057\u306a\u3044\u3068\u99c4\u76ee\u3068\u3044\u3046\u3053\u3068\u306e\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p> ToAlsaChannelOrder51() \u3068\u3044\u3046\u95a2\u6570\u304c\u3042\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u5b9f\u884c\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308c\u3070 &#8220;ALSA&#8221; \u306e\u6d41\u5100\u306e\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u30fc\u306b\u7121\u7406\u77e2\u7406\u5909\u63db\u3055\u308c\u306a\u304f\u306a\u308b\u306e\u3067\u3001\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb(FLAC\u3084WAVE\u3001AIFF\u306a\u3069\uff09\u5074\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c0\u306b\u306a\u308a\u305d\u3046\u306a\u6c17\u3082\u3059\u308b\u304c\u3069\u3046\u3060\u308d\u3046\u304b\uff0e\u4eca\u306f\u3001MPD\u306e\u30b3\u30fc\u30c9\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u76f4\u3057\u3066LightMPD\u74b0\u5883\u306b\u7d44\u307f\u8fbc\u3093\u3067\u3044\u308b\u6687\u304c\u306a\u3044\u306e\u3067\u3001\u6687\u304c\u3067\u304d\u305f\u3089\u53d6\u308a\u7d44\u3093\u3067\u307f\u3088\u3046\u3068\u601d\u3046\uff0e<\/p>\r\n<br>\r\n<p>\u3053\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u306b\u306f\u307e\u3060\u5148\u304c\u9577\u305d\u3046\u3060\uff0e\uff0e\uff0e<\/p>\r\n<br>\r\n\r\n<hr \/>\r\n<br>\r\n<h4>MPD V20 \u4ee5\u964d\u3067PCM\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306e\u30b5\u30dd\u30fc\u30c8\u304c\u6539\u5584\u3055\u308c\u305f\u6a21\u69d8<\/h4>\r\n<br>\r\n<p>MPD\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u773a\u3081\u3066\u3044\u305f\u3089\u3001<a href=\"https:\/\/www.musicpd.org\/news\/2017\/01\/mpd-0-20-released\/\" target=\"_blank\">MPD V20 \u306e\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8<\/a>\u306b &#8220;\u30fbimproved multi-channel support&#8221; \u3068\u3044\u3046\u8a18\u8f09\u304c\u3042\u308a\u3001&#8221;<a href=\"https:\/\/raw.githubusercontent.com\/MusicPlayerDaemon\/MPD\/v0.20\/NEWS\" target=\"_blank\">changelog<\/a>&#8221; \u3092\u8aad\u3080\u3068\u3001 &#8221; &#8211; alsa: fix multi-channel order\u3001 &#8221; \u3068\u66f8\u304b\u308c\u3066\u3044\u305f\uff0e<\/p>\r\n<br>\r\n<p>MPD V20\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u306e\u30c1\u30e3\u30cd\u30eb\u306e\u9806\u756a\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u3068\u3044\u3046\u3053\u3068\u306a\u306e\u3060\u308d\u3046\u304b\uff0e\u3053\u308c\u307e\u3067\u306e\u554f\u984c\u306f MPD V20\u4ee5\u964d\u3067\u306f\u767a\u751f\u3057\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u3060\u308d\u3046\u304b\uff1f<\/p>\r\n<br>\r\n<p>\u6b8b\u5ff5\u306a\u304c\u3089\u3001\u79c1\u304c\u4f7f\u3063\u3066\u3044\u308blightMPD\u306eBeagleBone\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u3001MPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f DSDNative\u7248\u306e\u30d1\u30c3\u30c1\u3092\u5f53\u3066\u305fV19.21 \u306a\u306e\u3067\u3001MPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4e0a\u3052\u308b\u306b\u306flightMPD\u306e\u5168\u9762\u7684\u306a\u518d\u751f\u6210\u304c\u5fc5\u8981\u306b\u306a\u308b\uff0e<\/p>\r\n<br>\r\n<p>lightMPD\u306e\u4f5c\u8005\u306e\u30c7\u30b8\u30d5\u30a1\u30a4\u306e\u97f3\u3055\u3093\u304c<a href=\"https:\/\/sites.google.com\/site\/digififan\/home\/digifi-labo\/lightmpdnorootimejino-zuo-cheng-fang-fa\" target=\"_blank\">\u300elightMPD\u306eroot\u30a4\u30e1\u30fc\u30b8\u306e\u4f5c\u6210\u65b9\u6cd5\uff08\u66ab\u5b9a\u7248)\u300f<\/a>\u3067\u3001lightMPD\u306e\u4f5c\u6210\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u53c2\u8003\u306b\u3001MPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4e0a\u3052\u305f lightMPD \u306e\u4f5c\u6210\u3092\u884c\u3063\u3066\u307f\u3088\u3046\u3068\u601d\u3046\uff0e<\/p>\r\n<br>\r\n<p>lightMPD\u306eBuildRoot\u306e\u95a2\u9023\u30ea\u30bd\u30fc\u30b9\u306bMPD\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u3057\u3066\u3001&#8221;mpd&#8221; \u3068&#8221;mpd-native-dsd&#8221; \u306e2\u7a2e\u985e\u5b58\u5728\u3059\u308b\u304c\u3001&#8221;mpd&#8221;\u306f\u30aa\u30ea\u30b8\u30ca\u30eb\u306e MPD V19.19 \u7248\u3001&#8221;mpd-native-dsd&#8221; \u306e\u65b9\u306f\u3001MPD V19.21\u7248\u3092\u30d9\u30fc\u30b9\u306b\u3001lightMPD\u72ec\u81ea\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u51e6\u7406\u95a2\u9023\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u3068DSD Native\u5f62\u5f0f\u306e\u97f3\u6e90\u304c\u6271\u3048\u308b\u3088\u3046\u306b\u30d1\u30c3\u30c1\u3092\u5f53\u3066\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u3088\u3046\u3060\uff0elightMPD\u3067\u306f &#8220;mpd-native-dsd&#8221; \u7248\u306eMPD\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\uff0e<\/p>\r\n<br>\r\n<p>&#8220;mpd-native-dsd&#8221; \u306eDSD\u306e\u30cd\u30a4\u30c6\u30a3\u30d6\u518d\u751f\uff08DOP\u3084PCM\u5909\u63db\u3067\u306f\u306a\u3044\u518d\u751f\u65b9\u5f0f\uff09\u306b\u95a2\u3059\u308b\u30d1\u30c3\u30c1\u306f\u3001lintweaker (Jurgen Kramer)\u3055\u3093\u304c\u63d0\u4f9b\u3057\u3066\u3044\u308b\u30d1\u30c3\u30c1<a href=\"https:\/\/github.com\/lintweaker\" target=\"_blank\">Github: lintweaker<\/a>\u3067\u3042\u308b\u304c\u3001mpd v20\u4ee5\u964d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7528\u306e\u30d1\u30c3\u30c1\u306f\u306a\u3044\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>lightMPD\u306eDSDNative\u7248\u306e\u30d1\u30c3\u30c1\u3092\u5f53\u3066\u305fMPD\u306f\u3001Buildroot\u306e\u30d1\u30c3\u30b1\u30fc\u30b8( buildroot-2016.11.1\/package\/mpd-native-dsd ) \u5f62\u5f0f\u3067\u914d\u5e03\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u306f\u3001<br>\r\n<pre>\r\n<code class=\"language-cpp\">\r\nyasuaki@ubuntu18srv:~\/LMPD-Build\/beaglebone\/buildroot-2016.11.1\/package\/mpd-native-dsd$ ls -la\r\ntotal 188\r\ndrwxr-xr-x    2 yasuaki yasuaki  4096 Sep  9 10:20 .\r\ndrwxrwxr-x 1700 yasuaki yasuaki 57344 Sep  9 10:42 ..\r\n-rw-r--r--    1 yasuaki yasuaki   750 Sep  9 10:20 0001-thread-Name-include-stdio.h-for-prctl-as-well.patch\r\n-rw-r--r--    1 yasuaki yasuaki 12561 Sep  9 10:20 0002-decoder-selector-0.19.2.patch\r\n-rw-r--r--    1 yasuaki yasuaki  1230 Sep  9 10:20 0003-dsd2pcmtune.patch\r\n-rw-r--r--    1 yasuaki yasuaki  4356 Sep  9 10:20 0004-ext-audio-format-v3.patch\r\n-rw-r--r--    1 yasuaki yasuaki 25072 Sep  9 10:20 0005-mpd-0.19git-rtopt20140910.patch\r\n-rw-r--r--    1 yasuaki yasuaki  2256 Sep  9 10:20 0006-soxr-openmp.patch\r\n-rw-r--r--    1 yasuaki yasuaki 23787 Sep  9 10:20 0007-Add-native-DSD-support-to-MPD-0.19.21.patch\r\n-rw-r--r--    1 yasuaki yasuaki 12766 Sep  9 10:20 0008-native-DSD-u32le.patch\r\n-rw-r--r--    1 yasuaki yasuaki  1112 Sep  9 10:20 Config.in\r\n-rw-r--r--    1 yasuaki yasuaki   681 Sep  9 10:20 mpd.conf\r\n-rw-r--r--    1 yasuaki yasuaki   140 Sep  9 10:20 mpd.hash\r\n-rw-r--r--    1 yasuaki yasuaki  2173 Sep  9 10:20 mpd-native-dsd.mk\r\n-rw-r--r--    1 yasuaki yasuaki   519 Sep  9 10:20 S95mpd\r\n\r\n<\/code>\r\n<\/pre>\r\n\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\uff0elightMPD\u7528\u306e\u30d1\u30c3\u30c1\u3068lintweaker\u3055\u3093\u306eDSDNative\u30d1\u30c3\u30c1\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u3088\u3046\u3060\uff0e\u4e0a\u8a18\u306e8\u3064\u306e\u30d1\u30c3\u30c1\u3092\u8ffd\u3063\u3066\u3044\u3051\u3070\u30aa\u30ea\u30b8\u30ca\u30eb\u7248\u306e <a href=\"https:\/\/www.musicpd.org\/download\/mpd\/0.19\/mpd-0.19.21.tar.gz\" target=\"_blank\">mpd-0.19.21.tar.gz<\/a>\u304b\u3089\u3069\u306e\u3088\u3046\u306a\u5909\u66f4\u3092\u52a0\u3048\u305f\u306e\u304b\u304c\u5224\u308b\u304c\u3001\u30d1\u30c3\u30c1\u304c\u7d30\u5207\u308c\u3067\u5206\u304b\u308a\u96e3\u3044\u306e\u3067\u3001\u3068\u308a\u3042\u3048\u305a\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u90e8\u5206\u3060\u3051\u306e\u5dee\u5206\u3092\u53d6\u3063\u3066\u307f\u305f\uff0e<\/p>\r\n<br>\r\n   <a href=\"https:\/\/y2tech.net\/blog\/wp-content\/uploads\/Data\/MPD\/DSDPatch-GIT-DIFFS.txt\" target=\"_blank\">https:\/\/y2tech.net\/blog\/wp-content\/uploads\/Data\/MPD\/DSDPatch-GIT-DIFFS.txt<\/a>\r\n<br>\r\n<br>\r\n<p>MPD\u306eUsers Manual\u306b\u306f\u3001DSD\u306e<a href=\"https:\/\/mpd.readthedocs.io\/en\/stable\/user.html#direct-stream-digital-dsd\" target=\"_blank\">Native DSD playback<\/a>\u306b\u95a2\u3059\u308b\u8a18\u8ff0\u304c\u3042\u308b\u306e\u3067\u3001MPD V20\u4ee5\u964d\u3067\u306flintweaker\u3055\u3093\u306eDSDNative\u30d1\u30c3\u30c1\u304c\u5fc5\u8981\u306a\u306e\u304b\u3069\u3046\u304b\u4e0d\u660e\u3060\u304c\u3001\u3068\u308a\u3042\u3048\u305a MPD\u306eV20\u4ee5\u964d\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u7768\u3081\u3063\u3053\u3057\u306a\u304c\u3089\u3001lightMPD\u7528\u306e\u72ec\u81eaMPD\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u884c\u304f\u3057\u304b\u65b9\u6cd5\u304c\u306a\u3055\u305d\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>MPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u3001\u73fe\u6642\u70b9(2025\/8\uff09\u3067\u306e\u6700\u65b0\u7248\u306f\u3000ver 0.24.5 (2025\/07\/31) \u3068\u306a\u3063\u3066\u3044\u308b\u304c\u3001v24\u304b\u3089\u306f\u958b\u767a\u74b0\u5883\u306b\u3000&#8221;Meson 1.0&#8243; \u304c\u5fc5\u8981\u3068\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3001MPD\u306e\u6700\u65b0\u7248\u3092\u3044\u304d\u306a\u308alightMPD\u306b\u8f09\u305b\u308b\u306e\u306f\u7121\u7406\u3060\u308d\u3046\uff0e\u5148\u305a\u306f DSDNative V19.21 \u306e\u7248\u304b\u3089\u521d\u3081\u3066\u3001\u5f90\u3005\u306bMPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4e0a\u3052\u3066\u884c\u304f\u3053\u3068\u306b\u3059\u308b\u304c\u3001MPD\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u30de\u30a4\u30ca\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u3067\u3082\u7d50\u69cb\u5909\u66f4\u304c\u52a0\u3048\u3089\u308c\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3001MPD\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306f\u56f0\u96e3\u3092\u6975\u3081\u305d\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>MPD V19\u3068MPD V20 \u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u3056\u3063\u3068\u773a\u3081\u3066\u898b\u305f\u304c\u3001V20\u3067\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u69cb\u6210\u3084\u305d\u306e\u5185\u5bb9\u306b\u5927\u5e45\u306a\u5909\u66f4\u304c\u3042\u3063\u305f\u3088\u3046\u3067\u3001V19\u7528\u306b\u4f5c\u6210\u3055\u308c\u305f\u30d1\u30c3\u30c1\u306f\u5927\u90e8\u5206\u304c\u610f\u5473\u3092\u306a\u3055\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\uff0e\u30d1\u30c3\u30c1\u306e\u5185\u5bb9\u3092\u7406\u89e3\u3057\u3066\u305d\u308c\u3092\u65b0\u3057\u3044V20\u7cfb\u306e\u30b3\u30fc\u30c9\u306b\u9069\u7528\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5224\u65ad\u3057\u306a\u304f\u3066\u306f\u306a\u3089\u306a\u3044\u306e\u3067\u3001\u4e00\u7b4b\u7e04\u3067\u306f\u884c\u304b\u306a\u3044\u306e\u306f\u78ba\u5b9f\u3060\uff0e<\/p>\r\n<br>\r\n<p>V20\u7cfb\u4ee5\u964d\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001 &#8220;Order.cxx&#8221;, &#8220;Order.hxx&#8221; \u3068\u3044\u3046\u65b0\u305f\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u5897\u3048\u3066\u304a\u308a\u3001\u305d\u306e\u5185\u5bb9\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001<br>\r\n<br>\r\n<pre>\r\n<code class=\"language-cpp\">\r\n\/*\r\n * Copyright 2003-2017 The Music Player Daemon Project\r\n * http:\/\/www.musicpd.org\r\n *\r\n * This program is free software; you can redistribute it and\/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation; either version 2 of the License, or\r\n * (at your option) any later version.\r\n *\r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n * GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the GNU General Public License along\r\n * with this program; if not, write to the Free Software Foundation, Inc.,\r\n * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\r\n *\/\r\n\r\n#include \"config.h\"\r\n#include \"Order.hxx\"\r\n#include \"PcmBuffer.hxx\"\r\n#include \"util\/ConstBuffer.hxx\"\r\n\r\n ...\r\n\r\n\r\ntemplate<typename V>\r\nstatic inline ConstBuffer<V>\r\nToAlsaChannelOrder51(PcmBuffer &buffer, ConstBuffer<V> src)\r\n{\r\n\tauto dest = buffer.GetT<V>(src.size);\r\n\tToAlsaChannelOrder51(dest, src.data, src.size \/ 6);\r\n\treturn { dest, src.size };\r\n}\r\n\r\ntemplate<typename V>\r\nstatic void\r\nToAlsaChannelOrder71(V *dest, const V *src, size_t n)\r\n{\r\n\tTwoPointers<V> p{dest, src};\r\n\tfor (size_t i = 0; i != n; ++i)\r\n\t\tp.ToAlsa71();\r\n}\r\n\r\ntemplate<typename V>\r\nstatic inline ConstBuffer<V>\r\nToAlsaChannelOrder71(PcmBuffer &buffer, ConstBuffer<V> src)\r\n{\r\n\tauto dest = buffer.GetT<V>(src.size);\r\n\tToAlsaChannelOrder71(dest, src.data, src.size \/ 8);\r\n\treturn { dest, src.size };\r\n}\r\n\r\ntemplate<typename V>\r\nstatic ConstBuffer<V>\r\nToAlsaChannelOrderT(PcmBuffer &buffer, ConstBuffer<V> src, unsigned channels)\r\n{\r\n\tswitch (channels) {\r\n\tcase 6: \/\/ 5.1\r\n\t\treturn ToAlsaChannelOrder51(buffer, src);\r\n\r\n\tcase 8: \/\/ 7.1\r\n\t\treturn ToAlsaChannelOrder71(buffer, src);\r\n\r\n\tdefault:\r\n\t\treturn src;\r\n\t}\r\n}\r\n\r\n ...\r\n\r\n<\/code>\r\n<\/pre>\r\n<br>\r\n<p>\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u304c\u8a18\u3055\u308c\u3066\u304a\u308a\u3001\u6050\u3089\u304f\u3053\u306e\u30b3\u30fc\u30c9\u304c\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u306e\u5909\u66f4\u3092\u884c\u3063\u3066\u3044\u308b\u306e\u3060\u308d\u3046\uff0eV19\u306e\u30b3\u30fc\u30c9\u306b\u306f\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u306b\u95a2\u3059\u308b\u30b3\u30fc\u30c9\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\u306e\u3067\u3001V20\u4ee5\u964d\u306eMPD\u3067\u306f\u3053\u308c\u307e\u3067\u60a9\u307e\u3055\u308c\u7d9a\u3051\u3066\u304d\u305f\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u97f3\u6e90\u306e\u30c1\u30e3\u30cd\u30eb\u30de\u30c3\u30d4\u30f3\u30b0\u554f\u984c\u306f\u8d77\u304d\u306a\u3044\u306e\u304b\u3082\u77e5\u308c\u306a\u3044\uff0e<\/p>\r\n<br>\r\n<h4>\u3068\u308a\u3042\u3048\u305a lightMPD \u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u7248(MPD-DSDNative\u7248 V19.21\uff09\u3067\u518d\u69cb\u7bc9\u3092\u884c\u3063\u3066\u307f\u308b<\/h4>\r\n<br>\r\n<p>lightMPD\u306eroot\u30a4\u30e1\u30fc\u30b8\u306e\u4f5c\u6210\u65b9\u6cd5\uff08\u66ab\u5b9a\u7248)\u306e\u5185\u5bb9\u306f\u307e\u3060\u5b8c\u7d50\u3057\u3066\u3044\u306a\u3044\u72b6\u614b\u3067\u3001\u5f8c\u534a\u90e8\u5206\u306e\u89e3\u8aac\u304c\u307e\u3060\u8a18\u8f09\u3055\u308c\u3066\u3044\u306a\u3044\u72b6\u614b\u3060\u304c\u3001lightMPD\u306e\u4f5c\u6210\u624b\u9806\u306b\u3064\u3044\u3066\u306f\u66f8\u304b\u308c\u3066\u3044\u308b\u5185\u5bb9\u3092\u305d\u306e\u307e\u307e\u5b9f\u884c\u3059\u308c\u3070\u826f\u3044\u304c\u3001\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u958b\u767a\u74b0\u5883\u306f\u3001Ubuntu16 \u6642\u4ee3\u306e\u7269\u306a\u306e\u3067\u3001\u6700\u65b0\u306eUbuntu\u3084debian\u306a\u3069\u306e\u74b0\u5883\u3067\u306f\u305d\u306e\u307e\u307e\u3067\u306f\u52d5\u304b\u306a\u3044\u3088\u3046\u3060\uff0e<\/p>\r\n<br>\r\n<p>\u3068\u308a\u3042\u3048\u305a\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u3089\u30a8\u30e9\u30fc\u30ed\u30b0\u304b\u3089\u30a8\u30e9\u30fc\u306e\u5185\u5bb9\u3092\u628a\u63e1\u3057\u3066\u9069\u5b9c\u4fee\u6b63\u3092\u65bd\u3059\u5fc5\u8981\u304c\u3042\u308b\u304c\u3001\u306a\u308b\u3079\u304f\u958b\u767a\u74b0\u5883\u3092\u5f53\u6642\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u305f\u65b9\u304c\u7121\u96e3\u3060\uff0e\u79c1\u306f\u3068\u308a\u3042\u3048\u305a\u3001Ubuntu18 Server(64bit) \u74b0\u5883\u3067lightMPD\u306e\u518d\u69cb\u7bc9\u306b\u30c8\u30e9\u30a4\u3059\u308b\u3053\u3068\u306b\u3057\u305f\uff0e<\/p>\r\n<br>\r\n<p>\u79c1\u306f\u7d44\u307f\u8fbc\u307f\u7cfb\u306e\u958b\u767a\u306f\u30c9\u7d20\u4eba\u306a\u306e\u3067\u3001Buildroot\u306e\u6271\u3044\u65b9\u3084\u4e0a\u8a18\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5185\u5bb9\u3092\u304d\u3061\u3093\u3068\u7406\u89e3\u3059\u308b\u306b\u306f\u76f8\u5f53\u306a\u6642\u9593\u304c\u639b\u304b\u308b\u3068\u601d\u3046\u304c\u3001\u3068\u308a\u3042\u3048\u305a\u624b\u3092\u52d5\u304b\u3057\u3066\u307f\u3066\u3001\u5b9f\u969b\u306e\u4e2d\u8eab\u3092\u78ba\u8a8d\u3057\u306a\u304c\u3089\u7406\u89e3\u3092\u6df1\u3081\u3066\u884c\u304d\u305f\u3044\u3068\u601d\u3046\uff0e<\/p>\r\n<br>\r\n<p> \u6700\u521d\u306b &#8220;make lightmpd_beaglebone_defconfig&#8221; \u3092\u884c\u3063\u3066\u3001\u5404\u7a2e\u30b3\u30f3\u30d5\u30a3\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u8a2d\u5b9a\u3057\u305f\u5f8c\u306b\u672c\u756a\u306e&#8221;make&#8221; \u3092\u884c\u3046\u304c\u3001\u79c1\u306e\u74b0\u5883\u3067\u306f \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308bPerl\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c V5.26\u4ee5\u964d\u3060\u3063\u305f\u305f\u3081\u3001\u751f\u6210\u3055\u308c\u305f &#8220;automake&#8221; \u306e\u5185\u5bb9\u304c\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u3057\u307e\u3063\u3066\u5148\u306b\u9032\u3081\u306a\u304b\u3063\u305f\uff0ePerl V5.26\u4ee5\u964d\u3067 \u6b63\u898f\u8868\u73fe\u306e\u8a18\u8f09\u30eb\u30fc\u30eb\u304c\u5909\u66f4\u3055\u308c\u3066\u3057\u307e\u3063\u305f\u305f\u3081\u3001\u65e7\u5f0f\u306e\u6b63\u898f\u8868\u73fe\u30eb\u30fc\u30eb\u3067\u66f8\u304b\u308c\u305f\u5185\u5bb9\u304c\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u3044\u305f\uff0e\u3053\u306e\u90e8\u5206\u3092\u65b0\u3057\u3044\u6b63\u898f\u8868\u73fe\u30eb\u30fc\u30eb\u3067\u66f8\u304d\u76f4\u3057\u305f\u3089\u7121\u4e8b make \u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff0e<\/p>\r\n<br>\r\n<pre>\r\n<code class=\"language-cpp\">\r\n\r\n   ...\r\n\r\nconfigure.ac:39: the top level\r\nUnescaped left brace in regex is illegal here in regex; marked by <-- HERE in m\/\\${ <-- HERE ([^ \\t=:+{}]+)}\/ at \/home\/yasuaki\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1\/output\/host\/usr\/bin\/automake line 3936.\r\nautoreconf: \/home\/yasuaki\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1\/output\/host\/usr\/bin\/automake failed with exit status: 255\r\npackage\/pkg-generic.mk:206: recipe for target '\/home\/yasuaki\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1\/output\/build\/alsa-lib-1.1.2\/.stamp_configured' failed\r\nmake[1]: *** [\/home\/yasuaki\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1\/output\/build\/alsa-lib-1.1.2\/.stamp_configured] Error 1\r\nMakefile:76: recipe for target '_all' failed\r\nmake: *** [_all] Error 2\r\n \r\n<\/code>\r\n<\/pre>\r\n<br>\r\n<p>\u751f\u6210\u3055\u308c\u305f \"automake\" \u30d5\u30a1\u30a4\u30eb\u306e 3936 \u884c\u76ee\u306e\u6b63\u898f\u8868\u73fe\u3092\u6b21\u306e\u69d8\u306b\u66f8\u304d\u63db\u3048\u308b\uff08 brace \"{}\" \u3092\u30a8\u30b9\u30b1\u30fc\u30d7\u3059\u308b\uff09<\/p>\r\n<br>\r\n<pre>\r\n<code class=\"language-cpp\">\r\n\r\nyasuaki@ubuntu18srv60:~\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1$ cd output\/host\/usr\/bin\/\r\nyasuaki@ubuntu18srv60:~\/LMPD-Build\/LMPD\/beaglebone\/buildroot-2016.11.1\/output\/host\/usr\/bin$ vi automake\r\n\r\n  ...\r\n\r\n3933 sub substitute_ac_subst_variables\r\n3934 {\r\n3935   my ($text) = @_;\r\n3936 ######################################################################################\r\n3937 #  fixed perl regular expression rules ( for Perl V5.26 and laters )\r\n3938 #  $text =~ s\/\\${([^ \\t=:+{}]+)}\/substitute_ac_subst_variables_worker ($1)\/ge;\r\n3939   $text =~ s\/\\$\\{([^ \\t=:+\\{\\}]+)\\}\/substitute_ac_subst_variables_worker ($1)\/ge;\r\n3940 ######################################################################################\r\n3941   return $text;\r\n3942 }\r\n  \r\n   ...\r\n\r\n<\/code>\r\n<\/pre>\r\n<br>\r\n\r\n","protected":false},"excerpt":{"rendered":"LightMPD-Botic\u74b0\u5883\u30675.1ch\u306e\u30de\u30eb\u30c1\u30c1\u30e3\u30cd\u30eb\u30aa\u30fc\u30c7\u30a3\u30aa\u30c7\u30fc\u30bf\u3092\u518d\u751f\u3059\u308b\u969b\u306b\u3001\u5f53\u65b9\u304c\u610f\u56f3\u3057\u305f\u901a\u308a\u306e\u30c1\u30e3\u30cd\u30eb\u30a2\u30b5\u30a4\u30f3\u306b\u306a\u3089\u305a\u3001\u3053\u306e\u554f\u984c\u3092\u9577\u3044\u9593\u89e3\u6c7a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u305a\u306b\u3044\u305f\u304c\u3001\u5148\u9803\u3088\u3046\u3084\u304f\u89e3\u6c7a\u65b9\u6cd5\u3092\u898b\u3064\u3051\u305f.","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[713],"tags":[980,854,856],"class_list":["post-10258","post","type-post","status-publish","format-standard","hentry","category-digital-audio","tag-i2s-multi-channel-playback","tag-lightmpd-botic","tag-multi-channel-playback"],"_links":{"self":[{"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/posts\/10258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/comments?post=10258"}],"version-history":[{"count":3,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/posts\/10258\/revisions"}],"predecessor-version":[{"id":10764,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/posts\/10258\/revisions\/10764"}],"wp:attachment":[{"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/media?parent=10258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/categories?post=10258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/y2tech.net\/blog\/wp-json\/wp\/v2\/tags?post=10258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}