_SH Posted December 26, 2015 Posted December 26, 2015 Hi all!When i comand pause to player (mplayer2, mpv, does not matters) it cause kernel panic if output device is spdif. It tested on kernel of 3.4 line. Old log here: Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 476.282804] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARMMessage from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.674151] Process mplayer (pid: 3651, stack limit = 0xedc522f0)Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.689540] Stack: (0xedc53e18 to 0xedc54000)Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.706949] 3e00: 00000000 c0b4747cMessage from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.728251] 3e20: c0b474c8 c002ce5c edca8580 00000010 00000004 ee942f00 00000000 bf2d0190Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.749586] 3e40: bf2d0120 eeb47c00 ee9e1080 c0651728 c06516c4 eeb47c00 eeb47c00 c0b26d8cMessage from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.770870] 3e60: 00000000 c063efd8 eeb47c00 eeb47cd0 00000000 c0b26d8c c000ed84 edc52000Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.792272] 3e80: ee13b018 c064042c 00000000 eeb47c00 00000008 00000000 eeb47cd0 c0641c48Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.813640] 3ea0: 00000001 00000001 edc53ebc c005e5ec 00000000 00000000 ee30d000 c0787ef4Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.834972] 3ec0: 00200200 00000000 00000008 eeb47c00 ee11de40 c000ed84 edc52000 ee13b018Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.856290] 3ee0: 00000000 c0642130 00000000 c0b058f8 60000013 00000001 00000003 ee11de40Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.877614] 3f00: 00000008 00000000 ee11de40 c000ed84 edc52000 c00fa5e8 edc53f2c c005e5ecMessage from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.898938] 3f20: 00000001 00000000 00000000 00000000 00000000 ee258c08 eeda0170 edc52018Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.920250] 3f40: 00000001 00000001 00000000 bed61510 edc53f78 00000000 bed61510 edc53f78Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.941501] 3f60: 00000000 40044145 00000008 00000000 ee11de40 c000ed84 edc52000 00000000Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.962753] 3f80: 01c366f0 c00fa7d0 bed61510 00000000 bed6148c 00000001 01caf090 00000000Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 477.983956] 3fa0: 00000036 c000ec00 00000001 01caf090 00000008 40044145 00000000 01caecb0Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 478.005248] 3fc0: 00000001 01caf090 00000000 00000036 00000004 00211af0 0011c468 01c366f0Message from syslogd@Cubian at Oct 25 23:11:50 ...kernel:[ 478.026483] 3fe0: 00000002 bed61330 b69c2e65 b555f68c 20000010 00000008 64657373 00000000Message from syslogd@Cubian at Oct 25 23:11:50 ... kernel:[ 478.286611] Code: e5846054 e5843040 e3a00000 e8bd8070 (e7f001f2) Found a dirty solution. Exclude from sunxi_pcm_hardware.info SNDRV_PCM_INFO_PAUSE, SNDRV_PCM_INFO_RESUME --- sunxi_spdma.c.new 2015-10-11 13:03:41.312808000 +0300 +++ sunxi_spdma.c 2015-10-09 20:35:46.000000000 +0300 @@ -39,7 +39,8 @@ static const struct snd_pcm_hardware sunxi_pcm_hardware = { .info = SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | - SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID, + SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | + SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME, .formats = SNDRV_PCM_FMTBIT_S16_LE, .rates = SNDRV_PCM_RATE_8000_192000 | SNDRV_PCM_RATE_KNOT, .rate_min = 8000, Is more elegant solution exists? P.S. This bug is actual for kernel from repo: linux-image-sun7i
Igor Posted December 26, 2015 Posted December 26, 2015 Our sources are completely changed in this part, take a look at this patch: https://github.com/igorpecovnik/lib/blob/second/patch/kernel/dev-i2s-spdif.patch
_SH Posted December 27, 2015 Author Posted December 27, 2015 Thanks. I edit this pacth for my custom builds. Open issue for linux-sunxi github. Maybe somethin fix. Until that i must to paching and make custom builds.
Recommended Posts