Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
Dingo_aus
PostPosted: Jan 11, 2009 - 09:41 AM
Resident


Joined: Sep 18, 2004
Posts: 643
Location: Brisbane, Australia

I was wondering what steps are required to create a /dev/dsp device on my NGW100 using the ABDAC audio driver?

I have spent a couple of days trawling through the relevant posts which I could find as well as the OSS documentation but can't get the driver loaded.

Using Buildroot2.3.0 I have tried starting with the atngw100_defconfig and then added madplay, alsa utils and ncurses etc.

I then go into:
buildroot-avr32-v2.3.0/project_build_avr32/{name_of_my_configuration}/linux-2.6.27.6/arch/avr32/boards/atngw100
and edit the setup.c file so that it includes:
Code:
"at32_add_device_abdac(0);"

in the function
Code:
 static int __init atngw100_init(void)


I then go and edit the .config file that is the lowest directory of Buildroot and add the following:
Code:

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
CONFIG_SND_DEBUG_DETECT=y
# CONFIG_SND_PCM_XRUN_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_AC97_BUS=m
CONFIG_SND_DUMMY=m
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# ALSA AVR32 devices
#
CONFIG_SND_ATMEL_AC97=m
CONFIG_SND_ATMEL_AC97_USE_ALSA_MALLOC_CALLS=y
CONFIG_SND_ATMEL_AC97C_USE_PDC=y
CONFIG_SND_AT73C213=m
CONFIG_SND_AT73C213_USE_ALSA_MALLOC_CALLS=y

#
# Open Sound System
#
CONFIG_SOUND_PRIME=m
# CONFIG_OSS_OBSOLETE_DRIVER is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
CONFIG_SOUND_AT32_DAC=m



I then 'make' that configuration and move it to my NGW100.

On my NGW100 I only get:
Code:
./sys/devices/platform/abdac.0
./sys/bus/platform/devices/abdac.0


and nothing relevant in the /dev/ directory.

Does anyone know what I need to do to get the ABDAC loaded as /dev/dsp on my NGW100 using Buildroot2.3.0?



[/code]

_________________
Dingo_aus
http://www.users.on.net/~symes/
 
 View user's profile Send private message  
Reply with quote Back to top
hce
PostPosted: Jan 11, 2009 - 02:13 PM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

ABDAC does not work in kernel 2.6.27, because the driver is not ported to the new DMA framework.
 
 View user's profile Send private message  
Reply with quote Back to top
Dingo_aus
PostPosted: Jan 12, 2009 - 09:43 AM
Resident


Joined: Sep 18, 2004
Posts: 643
Location: Brisbane, Australia

Oh ok, thanks hce.

The ac97 code is still good in 2.6.27 onwards right?

_________________
Dingo_aus
http://www.users.on.net/~symes/
 
 View user's profile Send private message  
Reply with quote Back to top
hce
PostPosted: Jan 12, 2009 - 09:46 AM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

Dingo_aus wrote:
Oh ok, thanks hce.

The ac97 code is still good in 2.6.27 onwards right?
Nope, same problem.

On the good side, I am working on the AC97C driver as we speak. Will be sent to the AVR32 kernel list and ALSA list when done.

ABDAC will follow after that, rewritten to ALSA.
 
 View user's profile Send private message  
Reply with quote Back to top
Dingo_aus
PostPosted: Jan 12, 2009 - 11:19 PM
Resident


Joined: Sep 18, 2004
Posts: 643
Location: Brisbane, Australia

Excellent work hce,

I eagerly look forward to testing your submissions Wink

_________________
Dingo_aus
http://www.users.on.net/~symes/
 
 View user's profile Send private message  
Reply with quote Back to top
berniwa
PostPosted: Jan 13, 2009 - 03:59 PM
Rookie


Joined: Oct 18, 2007
Posts: 21
Location: Salzburg

Hey =)

When will the AC97 driver be approximately finished?

Im currently working on a larger project and everything works fine, except for the AC97, the thing is that my wirless card needs a kernel above 2.6.28 so a can't use the old kernel where the driver is working...

Best Regards
BWA
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
hce
PostPosted: Jan 13, 2009 - 06:32 PM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

I actually got sound today, and it seems like I will not need to modify the DMA framework in the kernel (which is a very good thing).

But there are some problems I need to sort out with cleaning up after the DMA, because the way it is now I run out of descriptors after a few skips in the sound file or playing several files.

Removing the driver does not work either Wink

I would recommend to subscribe to the AVR32 kernel list, link somewhere on http://avr32linux.org I will use that list for review when I am confident that it works.
 
 View user's profile Send private message  
Reply with quote Back to top
Dingo_aus
PostPosted: Jan 13, 2009 - 11:38 PM
Resident


Joined: Sep 18, 2004
Posts: 643
Location: Brisbane, Australia

The relevant mailings lists are found on this page:

http://avr32linux.org/twiki/bin/view/Main/MailingLists

_________________
Dingo_aus
http://www.users.on.net/~symes/
 
 View user's profile Send private message  
Reply with quote Back to top
berniwa
PostPosted: Jan 17, 2009 - 11:03 AM
Rookie


Joined: Oct 18, 2007
Posts: 21
Location: Salzburg

Hey =)

I already member of the kernel mailing list =)
not much going on there in the last weeks...

I'm really in dire need of that driver, right now... is it possible that you send me a patch, wheather it is stable or not, i just need to get out a few beeps...
my e-mail is bwa [at] berniwa [dot] com

I'd really appreciate that...

Greets from Austria =)
Bernhard
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
hce
PostPosted: Jan 17, 2009 - 03:32 PM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

The current state of the AC97C driver is that it crashes the kernel when you stop the playback Wink So it is not useful for anything.
 
 View user's profile Send private message  
Reply with quote Back to top
Donni_Duck
PostPosted: Jan 20, 2009 - 07:32 AM
Newbie


Joined: Sep 22, 2008
Posts: 8
Location: Germany

How can I find more information’s about ABDAC audio? At the beginning I started with the Application Note "AVR32120: AVR32 ABDAC audio bitstream DAC driver example" and use the component TPA152.

It's the sound okay?

Dingo_aus wrote:
buildroot-avr32-v2.3.0/project_build_avr32/{name_of_my_configuration}/linux-2.6.27.6/arch/avr32/boards/atngw100
and edit the setup.c file so that it includes:
Code:
Code:
"at32_add_device_abdac(0);"


Must I include more code in setup.c or it's all?

I use Buildroot 2.2.1 with kernel 2.6.23.

Donni Duck
 
 View user's profile Send private message  
Reply with quote Back to top
hce
PostPosted: Jan 20, 2009 - 07:44 AM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

You also need to enable the ABDAC driver as well, it is in drivers -> sound -> OSS -> AVR32 or something like that.
 
 View user's profile Send private message  
Reply with quote Back to top
M4NUEL
PostPosted: Jul 02, 2009 - 07:10 AM
Newbie


Joined: May 03, 2003
Posts: 7


Is there any information which describes the procedure of adding any audio-device (ac97 or abdac) on NGW100 with actual kernel 2.6.30 (git-checkout 30.06.2009 master branch)?
I've been searchin' for quite some time now, but e.g. "at32_add_device_abdac(0)" is not practical any more (no such function).

Any help is appreciated.
 
 View user's profile Send private message  
Reply with quote Back to top
hce
PostPosted: Jul 02, 2009 - 07:22 AM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

Take a look in arch/avr32/mach-at32ap/include/mach/board.h for a description of at32_add_device_abdac() parameters. And in arch/avr32/boards/favr-32/setup.c for an example usage.

For AC97 you could look at the arch/avr32/boards/atngw100/evklcd10x.c file.
 
 View user's profile Send private message  
Reply with quote Back to top
M4NUEL
PostPosted: Jul 02, 2009 - 11:04 AM
Newbie


Joined: May 03, 2003
Posts: 7


Thanks a lot. As soon as I'm at home again, I will have a look.
 
 View user's profile Send private message  
Reply with quote Back to top
bradn8vi
PostPosted: Feb 15, 2010 - 02:30 PM
Newbie


Joined: Dec 21, 2009
Posts: 6


Getting ready to submit my ac97 board design to the fab house, but before I do, I thought I'd try compiling a kernel with the appropriate modules in it, and try loading the abdac module, since it's built in to the AP7000 ...

Code:

/lib/modules/2.6.32.8/kernel/sound/atmel # ls
snd-atmel-abdac.ko  snd-atmel-ac97c.ko
/lib/modules/2.6.32.8/kernel/sound/atmel # uname -a
Linux ngw.example.net 2.6.32.8 #2 Fri Feb 12 09:42:16 EST 2010 avr32 unknown
/lib/modules/2.6.32.8/kernel/sound/atmel # modprobe snd-atmel-abdac
modprobe: Failed to load module snd_atmel_abdac: No such device.
/lib/modules/2.6.32.8/kernel/sound/atmel #


Should I be loading some other module first? Or is the problem likely related to having different kernel and userland versions? Or am I mistaken in thinking that no external hardware is required to make the abdac work? Or is there some other way in which I'm Doing It Wrong?
 
 View user's profile Send private message  
Reply with quote Back to top
hce
PostPosted: Feb 16, 2010 - 06:16 PM
Raving lunatic


Joined: Jan 07, 2003
Posts: 4580
Location: Oslo, Norway

In your board code, do you add the abdac platform device?
 
 View user's profile Send private message  
Reply with quote Back to top
bradn8vi
PostPosted: Feb 16, 2010 - 09:44 PM
Newbie


Joined: Dec 21, 2009
Posts: 6


In my board code? Where is that?

I'm just trying to load the module I'd compiled, which is what I'm used to doing on linux on regular PCs.

If you're referring to the "Select an NGW100 add-on board to support" in the kernel, I've tried both options there ... or do I need to write my own board support code from scratch? If so, is there a quick-and-dirty getting started guide for someone who has a fairly good knowledge of C already?

I've read a few posts about people doing things to some sort of setup.c ... is that the one in linux-2.6.32.8/arch/avr32/boards/atngw100? Is that what I need to be modifying, and is there some sort of guide for that?
 
 View user's profile Send private message  
Reply with quote Back to top
bradn8vi
PostPosted: Feb 17, 2010 - 03:14 AM
Newbie


Joined: Dec 21, 2009
Posts: 6


Aha!

So, unlike a regular PC, these things have pins that can be used for multiple purposes, and we get to configure those purposes in linux-2.6.32.8/arch/avr32/boards/atngw100/setup.c. This is explained here

http://avr32linux.org/twiki/bin/view/Ma ... yTheNGW100

and here

http://avr32linux.org/twiki/bin/view/Ma ... bdacDriver

Just had to dig around a bit more. And add "#include <sound/atmel-abdac.h>" to setup.c also.

Cool. Now I'm well on my way. Thanks for the pointers.
 
 View user's profile Send private message  
Reply with quote Back to top
robotdude
PostPosted: Mar 06, 2010 - 08:30 AM
Rookie


Joined: Mar 10, 2008
Posts: 24
Location: somewhere

bradn8vi wrote:
linux-2.6.32.8/arch/avr32/boards/atngw100


Where can I find a guide to use the newer kernel with a NGW100?
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits