I am writing a PCM driver for the AICA device on the Sega Dreamcast for a 2.6.0-testX kernel.
The driver is far from complete, but I am having various problems when I test bits of it... A simple write of a file gives me this... /dev/snd # cat /test.txt > pcmC0D0p ALSA sound/sh/aica.c:165: In snd_aica_playback_open ALSA sound/sh/aica.c:80: Disabling AICA device ALSA sound/sh/aica.c:66: Enabling AICA device cat: write: File descriptor in bad state The three snd_printk messages are just what I would expect but I am not sure why I get the message about the file descriptor. Here is the open function... static int snd_aica_playback_open(snd_pcm_substream_t *subs) { snd_printk("In snd_aica_playback_open \n"); snd_aica_pcm_t *aica_chip = snd_pcm_substream_chip(subs); snd_pcm_runtime_t *runtime = subs->runtime; runtime->hw = snd_aica_playback_hw; /*setup the aica spu*/ spu_disable(); spu_memset(0, 0, 0x31000); spu_memload(0, bin_arm7, sizeof(bin_arm7)); spu_enable(); return 0; } The device doesn't support dma (or rather nobody has yet successful reversed the DMA mechanism) and so I am using the methods that worked when I wrote the OSS driver for the 2.4 kernels. snd_aica_playback_hw is... static snd_pcm_hardware_t snd_aica_playback_hw = { .info = SNDRV_PCM_INFO_INTERLEAVED|SNDRV_PCM_INFO_NONINTERLEAVED, .formats = SNDRV_PCM_FORMAT_S8 | SNDRV_PCM_FORMAT_U8 | SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_IMA_ADPCM, .rates = SNDRV_PCM_RATE_8000_44100, .rate_min = 8000, .rate_max = 44100, .channels_min = 1, .channels_max = 2, .buffer_bytes_max = 32768, .period_bytes_min = 8192, .period_bytes_max = 32768, .periods_min = 1, .periods_max = 4 }; Anybody able to give me a few pointers as to what is going wrong? Thanks Adrian ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel