Alsa-devel
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 5 participants
- 50781 discussions
01 Dec '07
Hi,
I have a webcam which has microphone-only USB audio capability. However, not only has this device
stopped recording anything but it has also vanished from the "arecord -L" list and appeared in the
"aplay -L" one instead:
$ arecord -L
default:CARD=Audigy2
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Default Audio Device
front:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Front speakers
rear:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Rear speakers
center_lfe:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Center and Subwoofer speakers
side:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Side speakers
surround40:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
4.0 Surround output to Front and Rear speakers
surround41:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
and:
$ aplay -L
default:CARD=Audigy2
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Default Audio Device
front:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Front speakers
rear:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Rear speakers
center_lfe:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Center and Subwoofer speakers
side:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
Side speakers
surround40:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
4.0 Surround output to Front and Rear speakers
surround41:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Audigy2,DEV=0
Audigy 2 ZS [SB0353], ADC Capture/Standard PCM Playback
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=WebCam
USB Device 0x46d:0x8b4, USB Audio
Default Audio Device
front:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
Front speakers
surround40:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=WebCam,DEV=0
USB Device 0x46d:0x8b4, USB Audio
IEC958 (S/PDIF) Digital Audio Output
Here is my .asoundrc file:
ctl.Audigy2 {
type hw
card 0
}
pcm.Audigy2 {
type plug
slave {
pcm "hw:0,0"
}
}
ctl.webcam {
type hw
card 1
}
pcm.webcam {
type plug
slave {
pcm "hw:1,0"
}
}
and here is what /proc/asound looks like:
]$ ls -als /proc/asound/
total 0
0 dr-xr-xr-x 6 root root 0 2007-12-01 15:55 .
0 dr-xr-xr-x 172 root root 0 2007-12-01 14:37 ..
0 lrwxrwxrwx 1 root root 5 2007-12-01 15:55 Audigy2 -> card0
0 dr-xr-xr-x 11 root root 0 2007-12-01 15:55 card0
0 dr-xr-xr-x 3 root root 0 2007-12-01 15:55 card1
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 cards
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 devices
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 hwdep
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 modules
0 dr-xr-xr-x 2 root root 0 2007-12-01 15:55 oss
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 pcm
0 dr-xr-xr-x 2 root root 0 2007-12-01 15:55 seq
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 timers
0 -r--r--r-- 1 root root 0 2007-12-01 15:55 version
0 lrwxrwxrwx 1 root root 5 2007-12-01 15:55 WebCam -> card1
This happens with both Fedora 7 and Fedora 8. Could there be a problem with the snd-usb-audio
kernel module, please?
Cheers,
Chris
___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/
1
0
On Thu, 22 Nov 2007, Takashi Iwai wrote:
> At Wed, 21 Nov 2007 20:14:34 +0100 (CET),
> Jaroslav Kysela wrote:
> >
> > On Wed, 21 Nov 2007, Rene Herman wrote:
> >
> > > On 21-11-07 17:54, Takashi Iwai wrote:
> > >
> > > > What about the plan to move alsa-devel to vger?
> > > > Shouldn't we do that soon?
> > >
> > > Jaroslav hasn't yet pointed alsa-devel(a)alsa-project.org at vger.
> > > It's a little unfortunate that David wouldn't just transfer
> > > subscriptions as it seems that's where things stalled again. Given
> > > our still recent move from sourceforge it really should be okay to
> > > just move everyone over.
> > >
> > > I noticed that the entirety of people thanking David for setting up
> > > the list consisted of alsa-devel moderators, you and me, and I
> > > suspect most other subscribers don't feel there's actually much
> > > wrong with things as they are today and mostly consider moving again
> > > a nuisance. The one other reaction to the move was a slightly
> > > annoyed reaction about the re-subscribing...
> >
> > I'm playing with idea to redirect alsa-devel(a)alsa-project.org to vger and
> > leave current mailing list (which is subscribed to vger now too). So every
> > e-mail to this list will go through vger, and resubscription will be only
> > choice of subscriber. Opinions?
>
> A couple of things:
>
> - the official address (on kernel tree and wiki) should be vger, not
> alsa-project.org, and promote to re-subscribe.
Changing e-mail address of list is something I don't want.
The official e-mail address for alsa-devel mailing list was always
alsa-devel(a)alsa-project.org (even in time when this list was on
sourceforge). Unfortunately, vger mailing list does not accept simple
redirected e-mails from alsa-devel(a)alsa-project.org so I postponed any
actions.
> - open alsa-project.org list again. I'll stop list admin works.
I tried to count some statistics and at the time spamassassin and
mailman filtering rules catch 92% of spam messages coming to alsa-devel.
Unfortunately remaining 8% means 20 spam messages daily (without
moderation). Could moderators confirm this value?
Jaroslav
-----
Jaroslav Kysela <perex(a)perex.cz>
Linux Kernel Sound Maintainer
ALSA Project
3
7
Hi Takashi.
This removes the pnp_resource_change use from the ALSA ISAPnP drivers. In
2.4 these were useful in providing an easy path to setting the resources,
but in 2.6 they retain function as a layering violation only.
This makes for a nice cleanup (-550 lines) of ALSA but moreover, ALSA is the
only remaining user of pnp_init_resource_table(), pnp_resource_change() and
pnp_manual_config_dev() (and, in fact, of "struct pnp_resource_table") in
the tree outide of drivers/pnp itself meaning it makes for more cleanup
potential inside the PnP layer.
Thomas Renninger acked their removal from that side, you did from the ALSA
side (CC list just copied from that thread).
Against current alsa-kernel HG. Many more potential cleanups in there, but
this _only_ removes the pnp_resource_change code. Compile tested against
current alsa-kernel HG and compile- and use-tested against 2.6.23.x (few
offsets).
Signed-off-by: Rene Herman <rene.herman(a)gmail.com>
Documentation/ALSA-Configuration.txt | 35 ------------
isa/ad1816a/ad1816a.c | 55 ++-----------------
isa/als100.c | 49 ----------------
isa/azt2320.c | 50 -----------------
isa/cmi8330.c | 42 +-------------
isa/cs423x/cs4236.c | 101
+++++++----------------------------
isa/dt019x.c | 48 +---------------
isa/es18xx.c | 58 +++-----------------
isa/gus/interwave.c | 39 +------------
isa/opl3sa2.c | 36 ------------
isa/opti9xx/opti92x-ad1848.c | 50 +----------------
isa/sb/es968.c | 27 ---------
isa/sb/sb16.c | 39 -------------
isa/wavefront/wavefront.c | 55 +------------------
14 files changed, 65 insertions(+), 619 deletions(-)
diff --git a/Documentation/ALSA-Configuration.txt b/Documentation/ALSA-Configuration.txt
--- a/Documentation/ALSA-Configuration.txt
+++ b/Documentation/ALSA-Configuration.txt
@@ -150,13 +150,6 @@ Prior to version 0.9.0rc4 options had a
Module for sound cards based on Analog Devices AD1816A/AD1815 ISA chips.
- port - port # for AD1816A chip (PnP setup)
- mpu_port - port # for MPU-401 UART (PnP setup)
- fm_port - port # for OPL3 (PnP setup)
- irq - IRQ # for AD1816A chip (PnP setup)
- mpu_irq - IRQ # for MPU-401 UART (PnP setup)
- dma1 - first DMA # for AD1816A chip (PnP setup)
- dma2 - second DMA # for AD1816A chip (PnP setup)
clockfreq - Clock frequency for AD1816A chip (default = 0, 33000Hz)
This module supports multiple cards, autoprobe and PnP.
@@ -203,14 +196,6 @@ Prior to version 0.9.0rc4 options had a
Module for sound cards based on Avance Logic ALS100/ALS120 ISA chips.
- port - port # for ALS100 (SB16) chip (PnP setup)
- irq - IRQ # for ALS100 (SB16) chip (PnP setup)
- dma8 - 8-bit DMA # for ALS100 (SB16) chip (PnP setup)
- dma16 - 16-bit DMA # for ALS100 (SB16) chip (PnP setup)
- mpu_port - port # for MPU-401 UART (PnP setup)
- mpu_irq - IRQ # for MPU-401 (PnP setup)
- fm_port - port # for OPL3 FM (PnP setup)
-
This module supports multiple cards, autoprobe and PnP.
The power-management is supported.
@@ -304,15 +289,6 @@ Prior to version 0.9.0rc4 options had a
Module for sound cards based on Aztech System AZT2320 ISA chip (PnP only).
- port - port # for AZT2320 chip (PnP setup)
- wss_port - port # for WSS (PnP setup)
- mpu_port - port # for MPU-401 UART (PnP setup)
- fm_port - FM port # for AZT2320 chip (PnP setup)
- irq - IRQ # for AZT2320 (WSS) chip (PnP setup)
- mpu_irq - IRQ # for MPU-401 UART (PnP setup)
- dma1 - 1st DMA # for AZT2320 (WSS) chip (PnP setup)
- dma2 - 2nd DMA # for AZT2320 (WSS) chip (PnP setup)
-
This module supports multiple cards, PnP and autoprobe.
The power-management is supported.
@@ -504,13 +480,6 @@ Prior to version 0.9.0rc4 options had a
Module for Diamond Technologies DT-019X / Avance Logic ALS-007 (PnP
only)
-
- port - Port # (PnP setup)
- mpu_port - Port # for MPU-401 (PnP setup)
- fm_port - Port # for FM OPL-3 (PnP setup)
- irq - IRQ # (PnP setup)
- mpu_irq - IRQ # for MPU-401 (PnP setup)
- dma8 - DMA # (PnP setup)
This module supports multiple cards. This module is enabled only with
ISA PnP support.
@@ -609,10 +578,6 @@ Prior to version 0.9.0rc4 options had a
Module for sound cards based on ESS ES968 chip (PnP only).
- port - port # for ES968 (SB8) chip (PnP setup)
- irq - IRQ # for ES968 (SB8) chip (PnP setup)
- dma1 - DMA # for ES968 (SB8) chip (PnP setup)
-
This module supports multiple cards, PnP and autoprobe.
The power-management is supported.
diff --git a/isa/ad1816a/ad1816a.c b/isa/ad1816a/ad1816a.c
--- a/isa/ad1816a/ad1816a.c
+++ b/isa/ad1816a/ad1816a.c
@@ -61,20 +61,6 @@ MODULE_PARM_DESC(id, "ID string for ad18
MODULE_PARM_DESC(id, "ID string for ad1816a based soundcard.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable ad1816a based soundcard.");
-module_param_array(port, long, NULL, 0444);
-MODULE_PARM_DESC(port, "Port # for ad1816a driver.");
-module_param_array(mpu_port, long, NULL, 0444);
-MODULE_PARM_DESC(mpu_port, "MPU-401 port # for ad1816a driver.");
-module_param_array(fm_port, long, NULL, 0444);
-MODULE_PARM_DESC(fm_port, "FM port # for ad1816a driver.");
-module_param_array(irq, int, NULL, 0444);
-MODULE_PARM_DESC(irq, "IRQ # for ad1816a driver.");
-module_param_array(mpu_irq, int, NULL, 0444);
-MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for ad1816a driver.");
-module_param_array(dma1, int, NULL, 0444);
-MODULE_PARM_DESC(dma1, "1st DMA # for ad1816a driver.");
-module_param_array(dma2, int, NULL, 0444);
-MODULE_PARM_DESC(dma2, "2nd DMA # for ad1816a driver.");
module_param_array(clockfreq, int, NULL, 0444);
MODULE_PARM_DESC(clockfreq, "Clock frequency for ad1816a driver (default = 0).");
@@ -117,16 +103,12 @@ static int __devinit snd_card_ad1816a_pn
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -EBUSY;
- }
+
acard->devmpu = pnp_request_card_device(card, id->devs[1].id, NULL);
if (acard->devmpu == NULL) {
mpu_port[dev] = -1;
@@ -134,25 +116,10 @@ static int __devinit snd_card_ad1816a_pn
}
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], port[dev], 16);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
printk(KERN_ERR PFX "AUDIO PnP configure failure\n");
- kfree(cfg);
return -EBUSY;
}
@@ -162,20 +129,11 @@ static int __devinit snd_card_ad1816a_pn
dma2[dev] = pnp_dma(pdev, 1);
irq[dev] = pnp_irq(pdev, 0);
- if (acard->devmpu == NULL) {
- kfree(cfg);
+ if (acard->devmpu == NULL)
return 0;
- }
+
pdev = acard->devmpu;
- pnp_init_resource_table(cfg);
-
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
- if (mpu_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
printk(KERN_ERR PFX "MPU401 PnP configure failure\n");
@@ -186,7 +144,6 @@ static int __devinit snd_card_ad1816a_pn
mpu_irq[dev] = pnp_irq(pdev, 0);
}
- kfree(cfg);
return 0;
}
diff --git a/isa/als100.c b/isa/als100.c
--- a/isa/als100.c
+++ b/isa/als100.c
@@ -63,20 +63,6 @@ MODULE_PARM_DESC(id, "ID string for als1
MODULE_PARM_DESC(id, "ID string for als100 based soundcard.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable als100 based soundcard.");
-module_param_array(port, long, NULL, 0444);
-MODULE_PARM_DESC(port, "Port # for als100 driver.");
-module_param_array(mpu_port, long, NULL, 0444);
-MODULE_PARM_DESC(mpu_port, "MPU-401 port # for als100 driver.");
-module_param_array(fm_port, long, NULL, 0444);
-MODULE_PARM_DESC(fm_port, "FM port # for als100 driver.");
-module_param_array(irq, int, NULL, 0444);
-MODULE_PARM_DESC(irq, "IRQ # for als100 driver.");
-module_param_array(mpu_irq, int, NULL, 0444);
-MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for als100 driver.");
-module_param_array(dma8, int, NULL, 0444);
-MODULE_PARM_DESC(dma8, "8-bit DMA # for als100 driver.");
-module_param_array(dma16, int, NULL, 0444);
-MODULE_PARM_DESC(dma16, "16-bit DMA # for als100 driver.");
struct snd_card_als100 {
int dev_no;
@@ -111,38 +97,20 @@ static int __devinit snd_card_als100_pnp
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -ENODEV;
- }
+
acard->devmpu = pnp_request_card_device(card, id->devs[1].id, acard->dev);
acard->devopl = pnp_request_card_device(card, id->devs[2].id, acard->dev);
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- /* override resources */
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (dma8[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1);
- if (dma16[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma16[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n");
- kfree(cfg);
return err;
}
port[dev] = pnp_port_start(pdev, 0);
@@ -152,13 +120,6 @@ static int __devinit snd_card_als100_pnp
pdev = acard->devmpu;
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
- if (mpu_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "MPU401 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0)
goto __mpu_error;
@@ -176,11 +137,6 @@ static int __devinit snd_card_als100_pnp
pdev = acard->devopl;
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], fm_port[dev], 4);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "OPL3 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0)
goto __fm_error;
@@ -195,7 +151,6 @@ static int __devinit snd_card_als100_pnp
fm_port[dev] = -1;
}
- kfree(cfg);
return 0;
}
diff --git a/isa/azt2320.c b/isa/azt2320.c
--- a/isa/azt2320.c
+++ b/isa/azt2320.c
@@ -72,22 +72,6 @@ MODULE_PARM_DESC(id, "ID string for azt2
MODULE_PARM_DESC(id, "ID string for azt2320 based soundcard.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable azt2320 based soundcard.");
-module_param_array(port, long, NULL, 0444);
-MODULE_PARM_DESC(port, "Port # for azt2320 driver.");
-module_param_array(wss_port, long, NULL, 0444);
-MODULE_PARM_DESC(wss_port, "WSS Port # for azt2320 driver.");
-module_param_array(mpu_port, long, NULL, 0444);
-MODULE_PARM_DESC(mpu_port, "MPU-401 port # for azt2320 driver.");
-module_param_array(fm_port, long, NULL, 0444);
-MODULE_PARM_DESC(fm_port, "FM port # for azt2320 driver.");
-module_param_array(irq, int, NULL, 0444);
-MODULE_PARM_DESC(irq, "IRQ # for azt2320 driver.");
-module_param_array(mpu_irq, int, NULL, 0444);
-MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for azt2320 driver.");
-module_param_array(dma1, int, NULL, 0444);
-MODULE_PARM_DESC(dma1, "1st DMA # for azt2320 driver.");
-module_param_array(dma2, int, NULL, 0444);
-MODULE_PARM_DESC(dma2, "2nd DMA # for azt2320 driver.");
struct snd_card_azt2320 {
int dev_no;
@@ -121,43 +105,19 @@ static int __devinit snd_card_azt2320_pn
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
-
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -ENODEV;
- }
acard->devmpu = pnp_request_card_device(card, id->devs[1].id, NULL);
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- /* override resources */
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4);
- if (wss_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], wss_port[dev], 4);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n");
- kfree(cfg);
return err;
}
port[dev] = pnp_port_start(pdev, 0);
@@ -169,13 +129,6 @@ static int __devinit snd_card_azt2320_pn
pdev = acard->devmpu;
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
- if (mpu_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "MPU401 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0)
goto __mpu_error;
@@ -191,7 +144,6 @@ static int __devinit snd_card_azt2320_pn
mpu_port[dev] = -1;
}
- kfree (cfg);
return 0;
}
diff --git a/isa/cmi8330.c b/isa/cmi8330.c
--- a/isa/cmi8330.c
+++ b/isa/cmi8330.c
@@ -286,39 +286,21 @@ static int __devinit snd_cmi8330_pnp(int
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
acard->cap = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->cap == NULL) {
- kfree(cfg);
+ if (acard->cap == NULL)
return -EBUSY;
- }
+
acard->play = pnp_request_card_device(card, id->devs[1].id, NULL);
- if (acard->play == NULL) {
- kfree(cfg);
+ if (acard->play == NULL)
return -EBUSY;
- }
pdev = acard->cap;
- pnp_init_resource_table(cfg);
- /* allocate AD1848 resources */
- if (wssport[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], wssport[dev], 8);
- if (wssdma[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], wssdma[dev], 1);
- if (wssirq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], wssirq[dev], 1);
-
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR "CMI8330/C3D (AD1848) PnP manual resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "CMI8330/C3D (AD1848) PnP configure failure\n");
- kfree(cfg);
return -EBUSY;
}
wssport[dev] = pnp_port_start(pdev, 0);
@@ -327,23 +309,10 @@ static int __devinit snd_cmi8330_pnp(int
/* allocate SB16 resources */
pdev = acard->play;
- pnp_init_resource_table(cfg);
- if (sbport[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], sbport[dev], 16);
- if (sbdma8[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], sbdma8[dev], 1);
- if (sbdma16[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], sbdma16[dev], 1);
- if (sbirq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], sbirq[dev], 1);
-
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR "CMI8330/C3D (SB16) PnP manual resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "CMI8330/C3D (SB16) PnP configure failure\n");
- kfree(cfg);
return -EBUSY;
}
sbport[dev] = pnp_port_start(pdev, 0);
@@ -351,7 +320,6 @@ static int __devinit snd_cmi8330_pnp(int
sbdma16[dev] = pnp_dma(pdev, 1);
sbirq[dev] = pnp_irq(pdev, 0);
- kfree(cfg);
return 0;
}
#endif
diff --git a/isa/cs423x/cs4236.c b/isa/cs423x/cs4236.c
--- a/isa/cs423x/cs4236.c
+++ b/isa/cs423x/cs4236.c
@@ -270,29 +270,9 @@ MODULE_DEVICE_TABLE(pnp_card, snd_cs423x
MODULE_DEVICE_TABLE(pnp_card, snd_cs423x_pnpids);
/* WSS initialization */
-static int __devinit snd_cs423x_pnp_init_wss(int dev, struct pnp_dev *pdev,
- struct pnp_resource_table *cfg)
-{
- int err;
-
- pnp_init_resource_table(cfg);
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 4);
- if (fm_port[dev] != SNDRV_AUTO_PORT && fm_port[dev] > 0)
- pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4);
- if (sb_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], sb_port[dev], 16);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev] < 0 ? 4 : dma2[dev], 1);
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR IDENT " WSS PnP manual resources are invalid, using auto config\n");
- err = pnp_activate_dev(pdev);
- if (err < 0) {
+static int __devinit snd_cs423x_pnp_init_wss(int dev, struct pnp_dev *pdev)
+{
+ if (pnp_activate_dev(pdev) < 0) {
printk(KERN_ERR IDENT " WSS PnP configure failed for WSS (out of resources?)\n");
return -EBUSY;
}
@@ -311,19 +291,9 @@ static int __devinit snd_cs423x_pnp_init
}
/* CTRL initialization */
-static int __devinit snd_cs423x_pnp_init_ctrl(int dev, struct pnp_dev *pdev,
- struct pnp_resource_table *cfg)
-{
- int err;
-
- pnp_init_resource_table(cfg);
- if (cport[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], cport[dev], 8);
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR IDENT " CTRL PnP manual resources are invalid, using auto config\n");
- err = pnp_activate_dev(pdev);
- if (err < 0) {
+static int __devinit snd_cs423x_pnp_init_ctrl(int dev, struct pnp_dev *pdev)
+{
+ if (pnp_activate_dev(pdev) < 0) {
printk(KERN_ERR IDENT " CTRL PnP configure failed for WSS (out of resources?)\n");
return -EBUSY;
}
@@ -333,21 +303,9 @@ static int __devinit snd_cs423x_pnp_init
}
/* MPU initialization */
-static int __devinit snd_cs423x_pnp_init_mpu(int dev, struct pnp_dev *pdev,
- struct pnp_resource_table *cfg)
-{
- int err;
-
- pnp_init_resource_table(cfg);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
- if (mpu_irq[dev] != SNDRV_AUTO_IRQ && mpu_irq[dev] >= 0)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR IDENT " MPU401 PnP manual resources are invalid, using auto config\n");
- err = pnp_activate_dev(pdev);
- if (err < 0) {
+static int __devinit snd_cs423x_pnp_init_mpu(int dev, struct pnp_dev *pdev)
+{
+ if (pnp_activate_dev(pdev) < 0) {
printk(KERN_ERR IDENT " MPU401 PnP configure failed for WSS (out of resources?)\n");
mpu_port[dev] = SNDRV_AUTO_PORT;
mpu_irq[dev] = SNDRV_AUTO_IRQ;
@@ -368,15 +326,8 @@ static int __devinit snd_card_cs4232_pnp
static int __devinit snd_card_cs4232_pnp(int dev, struct snd_card_cs4236 *acard,
struct pnp_dev *pdev)
{
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
-
- if (!cfg)
- return -ENOMEM;
- if (snd_cs423x_pnp_init_wss(dev, acard->wss, cfg) < 0) {
- kfree(cfg);
+ if (snd_cs423x_pnp_init_wss(dev, acard->wss) < 0)
return -EBUSY;
- }
- kfree(cfg);
cport[dev] = -1;
return 0;
}
@@ -386,43 +337,33 @@ static int __devinit snd_card_cs423x_pnp
struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
-
- if (!cfg)
- return -ENOMEM;
-
acard->wss = pnp_request_card_device(card, id->devs[0].id, NULL);
if (acard->wss == NULL)
- goto error;
+ return -EBUSY;
acard->ctrl = pnp_request_card_device(card, id->devs[1].id, NULL);
if (acard->ctrl == NULL)
- goto error;
+ return -EBUSY;
if (id->devs[2].id[0]) {
acard->mpu = pnp_request_card_device(card, id->devs[2].id, NULL);
if (acard->mpu == NULL)
- goto error;
+ return -EBUSY;
}
/* WSS initialization */
- if (snd_cs423x_pnp_init_wss(dev, acard->wss, cfg) < 0)
- goto error;
+ if (snd_cs423x_pnp_init_wss(dev, acard->wss) < 0)
+ return -EBUSY;
/* CTRL initialization */
if (acard->ctrl && cport[dev] > 0) {
- if (snd_cs423x_pnp_init_ctrl(dev, acard->ctrl, cfg) < 0)
- goto error;
+ if (snd_cs423x_pnp_init_ctrl(dev, acard->ctrl) < 0)
+ return -EBUSY;
}
/* MPU initialization */
if (acard->mpu && mpu_port[dev] > 0) {
- if (snd_cs423x_pnp_init_mpu(dev, acard->mpu, cfg) < 0)
- goto error;
- }
- kfree(cfg);
- return 0;
-
- error:
- kfree(cfg);
- return -EBUSY;
+ if (snd_cs423x_pnp_init_mpu(dev, acard->mpu) < 0)
+ return -EBUSY;
+ }
+ return 0;
}
#endif /* CONFIG_PNP */
diff --git a/isa/dt019x.c b/isa/dt019x.c
--- a/isa/dt019x.c
+++ b/isa/dt019x.c
@@ -56,18 +56,6 @@ MODULE_PARM_DESC(id, "ID string for DT-0
MODULE_PARM_DESC(id, "ID string for DT-019X based soundcard.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable DT-019X based soundcard.");
-module_param_array(port, long, NULL, 0444);
-MODULE_PARM_DESC(port, "Port # for dt019x driver.");
-module_param_array(mpu_port, long, NULL, 0444);
-MODULE_PARM_DESC(mpu_port, "MPU-401 port # for dt019x driver.");
-module_param_array(fm_port, long, NULL, 0444);
-MODULE_PARM_DESC(fm_port, "FM port # for dt019x driver.");
-module_param_array(irq, int, NULL, 0444);
-MODULE_PARM_DESC(irq, "IRQ # for dt019x driver.");
-module_param_array(mpu_irq, int, NULL, 0444);
-MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for dt019x driver.");
-module_param_array(dma8, int, NULL, 0444);
-MODULE_PARM_DESC(dma8, "8-bit DMA # for dt019x driver.");
struct snd_card_dt019x {
struct pnp_dev *dev;
@@ -95,36 +83,20 @@ static int __devinit snd_card_dt019x_pnp
const struct pnp_card_device_id *pid)
{
struct pnp_dev *pdev;
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
-
acard->dev = pnp_request_card_device(card, pid->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree (cfg);
+ if (acard->dev == NULL)
return -ENODEV;
- }
+
acard->devmpu = pnp_request_card_device(card, pid->devs[1].id, NULL);
acard->devopl = pnp_request_card_device(card, pid->devs[2].id, NULL);
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (dma8[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
-
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "DT-019X AUDIO the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR PFX "DT-019X AUDIO pnp configure failure\n");
- kfree(cfg);
return err;
}
@@ -135,15 +107,7 @@ static int __devinit snd_card_dt019x_pnp
port[dev],irq[dev],dma8[dev]);
pdev = acard->devmpu;
-
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port[dev], 2);
- if (mpu_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq[dev], 1);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "DT-019X MPU401 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
pnp_release_card_device(pdev);
@@ -162,11 +126,6 @@ static int __devinit snd_card_dt019x_pnp
pdev = acard->devopl;
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], fm_port[dev], 4);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "DT-019X OPL3 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
pnp_release_card_device(pdev);
@@ -181,7 +140,6 @@ static int __devinit snd_card_dt019x_pnp
fm_port[dev] = -1;
}
- kfree(cfg);
return 0;
}
diff --git a/isa/es18xx.c b/isa/es18xx.c
--- a/isa/es18xx.c
+++ b/isa/es18xx.c
@@ -2035,31 +2035,9 @@ MODULE_DEVICE_TABLE(pnp, snd_audiodrive_
MODULE_DEVICE_TABLE(pnp, snd_audiodrive_pnpbiosids);
/* PnP main device initialization */
-static int __devinit snd_audiodrive_pnp_init_main(int dev, struct pnp_dev *pdev,
- struct pnp_resource_table *cfg)
-{
- int err;
-
- pnp_init_resource_table(cfg);
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], mpu_port[dev], 2);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if (pnp_device_is_isapnp(pdev)) {
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_ERR PFX "PnP manual resources are invalid, using auto config\n");
- }
- err = pnp_activate_dev(pdev);
- if (err < 0) {
+static int __devinit snd_audiodrive_pnp_init_main(int dev, struct pnp_dev *pdev)
+{
+ if (pnp_activate_dev(pdev) < 0) {
snd_printk(KERN_ERR PFX "PnP configure failure (out of resources?)\n");
return -EBUSY;
}
@@ -2087,16 +2065,9 @@ static int __devinit snd_audiodrive_pnp(
static int __devinit snd_audiodrive_pnp(int dev, struct snd_audiodrive *acard,
struct pnp_dev *pdev)
{
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
-
- if (!cfg)
- return -ENOMEM;
acard->dev = pdev;
- if (snd_audiodrive_pnp_init_main(dev, acard->dev, cfg) < 0) {
- kfree(cfg);
+ if (snd_audiodrive_pnp_init_main(dev, acard->dev) < 0)
return -EBUSY;
- }
- kfree(cfg);
return 0;
}
@@ -2125,33 +2096,24 @@ static int __devinit snd_audiodrive_pnpc
struct pnp_card_link *card,
const struct pnp_card_device_id *id)
{
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
-
- if (!cfg)
- return -ENOMEM;
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -EBUSY;
- }
+
acard->devc = pnp_request_card_device(card, id->devs[1].id, NULL);
- if (acard->devc == NULL) {
- kfree(cfg);
+ if (acard->devc == NULL)
return -EBUSY;
- }
+
/* Control port initialization */
if (pnp_activate_dev(acard->devc) < 0) {
- kfree(cfg);
snd_printk(KERN_ERR PFX "PnP control configure failure (out of resources?)\n");
return -EAGAIN;
}
snd_printdd("pnp: port=0x%llx\n",
(unsigned long long)pnp_port_start(acard->devc, 0));
- if (snd_audiodrive_pnp_init_main(dev, acard->dev, cfg) < 0) {
- kfree(cfg);
+ if (snd_audiodrive_pnp_init_main(dev, acard->dev) < 0)
return -EBUSY;
- }
- kfree(cfg);
+
return 0;
}
#endif /* CONFIG_PNP */
diff --git a/isa/gus/interwave.c b/isa/gus/interwave.c
--- a/isa/gus/interwave.c
+++ b/isa/gus/interwave.c
@@ -560,50 +560,27 @@ static int __devinit snd_interwave_pnp(i
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
iwcard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (iwcard->dev == NULL) {
- kfree(cfg);
+ if (iwcard->dev == NULL)
return -EBUSY;
- }
+
#ifdef SNDRV_STB
iwcard->devtc = pnp_request_card_device(card, id->devs[1].id, NULL);
- if (iwcard->devtc == NULL) {
- kfree(cfg);
+ if (iwcard->devtc == NULL)
return -EBUSY;
- }
#endif
/* Synth & Codec initialization */
pdev = iwcard->dev;
- pnp_init_resource_table(cfg);
- if (port[dev] != SNDRV_AUTO_PORT) {
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- pnp_resource_change(&cfg->port_resource[1], port[dev] + 0x100, 12);
- pnp_resource_change(&cfg->port_resource[2], port[dev] + 0x10c, 4);
- }
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (dma2[dev] < 0)
- pnp_resource_change(&cfg->dma_resource[1], 4, 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "InterWave - Synth - the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
- kfree(cfg);
snd_printk(KERN_ERR "InterWave PnP configure failure (out of resources?)\n");
return err;
}
if (pnp_port_start(pdev, 0) + 0x100 != pnp_port_start(pdev, 1) ||
pnp_port_start(pdev, 0) + 0x10c != pnp_port_start(pdev, 2)) {
- kfree(cfg);
snd_printk(KERN_ERR "PnP configure failure (wrong ports)\n");
return -ENOENT;
}
@@ -620,21 +597,15 @@ static int __devinit snd_interwave_pnp(i
#ifdef SNDRV_STB
/* Tone Control initialization */
pdev = iwcard->devtc;
- pnp_init_resource_table(cfg);
- if (port_tc[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port_tc[dev], 1);
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "InterWave - ToneControl - the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
- kfree(cfg);
snd_printk(KERN_ERR "InterWave ToneControl PnP configure failure (out of resources?)\n");
return err;
}
port_tc[dev] = pnp_port_start(pdev, 0);
snd_printdd("isapnp IW: tone control port=0x%lx\n", port_tc[dev]);
#endif
- kfree(cfg);
return 0;
}
#endif /* CONFIG_PNP */
diff --git a/isa/opl3sa2.c b/isa/opl3sa2.c
--- a/isa/opl3sa2.c
+++ b/isa/opl3sa2.c
@@ -610,39 +610,8 @@ static int __devinit snd_opl3sa2_pnp(int
static int __devinit snd_opl3sa2_pnp(int dev, struct snd_opl3sa2 *chip,
struct pnp_dev *pdev)
{
- struct pnp_resource_table * cfg;
- int err;
-
- cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
- if (!cfg) {
- snd_printk(KERN_ERR PFX "cannot allocate pnp cfg\n");
- return -ENOMEM;
- }
- /* PnP initialization */
- pnp_init_resource_table(cfg);
- if (sb_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], sb_port[dev], 16);
- if (wss_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], wss_port[dev], 8);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], fm_port[dev], 4);
- if (midi_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[3], midi_port[dev], 2);
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[4], port[dev], 2);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- err = pnp_manual_config_dev(pdev, cfg, 0);
- if (err < 0)
- snd_printk(KERN_WARNING "PnP manual resources are invalid, using auto config\n");
- err = pnp_activate_dev(pdev);
- if (err < 0) {
- kfree(cfg);
- snd_printk(KERN_ERR "PnP configure failure (out of resources?) err = %d\n", err);
+ if (pnp_activate_dev(pdev) < 0) {
+ snd_printk(KERN_ERR "PnP configure failure (out of resources?)\n");
return -EBUSY;
}
sb_port[dev] = pnp_port_start(pdev, 0);
@@ -657,7 +626,6 @@ static int __devinit snd_opl3sa2_pnp(int
pnp_device_is_pnpbios(pdev) ? "BIOS" : "ISA", sb_port[dev], wss_port[dev], fm_port[dev], midi_port[dev]);
snd_printdd("%sPnP OPL3-SA: control port=0x%lx, dma1=%i, dma2=%i, irq=%i\n",
pnp_device_is_pnpbios(pdev) ? "BIOS" : "ISA", port[dev], dma1[dev], dma2[dev], irq[dev]);
- kfree(cfg);
return 0;
}
#endif /* CONFIG_PNP */
diff --git a/isa/opti9xx/opti92x-ad1848.c b/isa/opti9xx/opti92x-ad1848.c
--- a/isa/opti9xx/opti92x-ad1848.c
+++ b/isa/opti9xx/opti92x-ad1848.c
@@ -1690,53 +1690,19 @@ static int __devinit snd_card_opti9xx_pn
const struct pnp_card_device_id *pid)
{
struct pnp_dev *pdev;
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
chip->dev = pnp_request_card_device(card, pid->devs[0].id, NULL);
- if (chip->dev == NULL) {
- kfree(cfg);
+ if (chip->dev == NULL)
return -EBUSY;
- }
+
chip->devmpu = pnp_request_card_device(card, pid->devs[1].id, NULL);
pdev = chip->dev;
- pnp_init_resource_table(cfg);
-
-#ifdef OPTi93X
- if (port != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port + 4, 4);
-#else
- if (pid->driver_data != 0x0924 && port != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], port, 4);
-#endif /* OPTi93X */
- if (irq != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq, 1);
- if (dma1 != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1, 1);
-#if defined(CS4231) || defined(OPTi93X)
- if (dma2 != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2, 1);
-#else
-#ifdef snd_opti9xx_fixup_dma2
- snd_opti9xx_fixup_dma2(pdev);
-#endif
-#endif /* CS4231 || OPTi93X */
-#ifdef OPTi93X
- if (fm_port > 0 && fm_port != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], fm_port, 4);
-#else
- if (fm_port > 0 && fm_port != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], fm_port, 4);
-#endif
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "AUDIO the requested resources are invalid, using auto config\n");
+
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "AUDIO pnp configure failure: %d\n", err);
- kfree(cfg);
return err;
}
@@ -1756,15 +1722,6 @@ static int __devinit snd_card_opti9xx_pn
pdev = chip->devmpu;
if (pdev && mpu_port > 0) {
- pnp_init_resource_table(cfg);
-
- if (mpu_port != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], mpu_port, 2);
- if (mpu_irq != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], mpu_irq, 1);
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "AUDIO the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "AUDIO pnp configure failure\n");
@@ -1775,7 +1732,6 @@ static int __devinit snd_card_opti9xx_pn
mpu_irq = pnp_irq(pdev, 0);
}
}
- kfree(cfg);
return pid->driver_data;
}
#endif /* CONFIG_PNP */
diff --git a/isa/sb/es968.c b/isa/sb/es968.c
--- a/isa/sb/es968.c
+++ b/isa/sb/es968.c
@@ -49,12 +49,6 @@ MODULE_PARM_DESC(id, "ID string for es96
MODULE_PARM_DESC(id, "ID string for es968 based soundcard.");
module_param_array(enable, bool, NULL, 0444);
MODULE_PARM_DESC(enable, "Enable es968 based soundcard.");
-module_param_array(port, long, NULL, 0444);
-MODULE_PARM_DESC(port, "Port # for es968 driver.");
-module_param_array(irq, int, NULL, 0444);
-MODULE_PARM_DESC(irq, "IRQ # for es968 driver.");
-module_param_array(dma8, int, NULL, 0444);
-MODULE_PARM_DESC(dma8, "8-bit DMA # for es968 driver.");
struct snd_card_es968 {
struct pnp_dev *dev;
@@ -86,40 +80,23 @@ static int __devinit snd_card_es968_pnp(
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
+
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -ENODEV;
- }
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- /* override resources */
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (dma8[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n");
- kfree(cfg);
return err;
}
port[dev] = pnp_port_start(pdev, 0);
dma8[dev] = pnp_dma(pdev, 1);
irq[dev] = pnp_irq(pdev, 0);
- kfree(cfg);
return 0;
}
diff --git a/isa/sb/sb16.c b/isa/sb/sb16.c
--- a/isa/sb/sb16.c
+++ b/isa/sb/sb16.c
@@ -257,44 +257,21 @@ static int __devinit snd_card_sb16_pnp(i
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->dev == NULL) {
- kfree(cfg);
+ if (acard->dev == NULL)
return -ENODEV;
- }
+
#ifdef SNDRV_SBAWE_EMU8000
acard->devwt = pnp_request_card_device(card, id->devs[1].id, acard->dev);
#endif
/* Audio initialization */
pdev = acard->dev;
- pnp_init_resource_table(cfg);
-
- /* override resources */
-
- if (port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], port[dev], 16);
- if (mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], mpu_port[dev], 2);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[2], fm_port[dev], 4);
- if (dma8[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma8[dev], 1);
- if (dma16[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma16[dev], 1);
- if (irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], irq[dev], 1);
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR PFX "AUDIO the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR PFX "AUDIO pnp configure failure\n");
- kfree(cfg);
return err;
}
port[dev] = pnp_port_start(pdev, 0);
@@ -311,17 +288,6 @@ static int __devinit snd_card_sb16_pnp(i
/* WaveTable initialization */
pdev = acard->devwt;
if (pdev != NULL) {
- pnp_init_resource_table(cfg);
-
- /* override resources */
-
- if (awe_port[dev] != SNDRV_AUTO_PORT) {
- pnp_resource_change(&cfg->port_resource[0], awe_port[dev], 4);
- pnp_resource_change(&cfg->port_resource[1], awe_port[dev] + 0x400, 4);
- pnp_resource_change(&cfg->port_resource[2], awe_port[dev] + 0x800, 4);
- }
- if ((pnp_manual_config_dev(pdev, cfg, 0)) < 0)
- snd_printk(KERN_ERR PFX "WaveTable the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
goto __wt_error;
@@ -339,7 +305,6 @@ __wt_error:
awe_port[dev] = -1;
}
#endif
- kfree(cfg);
return 0;
}
diff --git a/isa/wavefront/wavefront.c b/isa/wavefront/wavefront.c
--- a/isa/wavefront/wavefront.c
+++ b/isa/wavefront/wavefront.c
@@ -104,21 +104,15 @@ snd_wavefront_pnp (int dev, snd_wavefron
const struct pnp_card_device_id *id)
{
struct pnp_dev *pdev;
- struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL);
int err;
- if (!cfg)
- return -ENOMEM;
-
/* Check for each logical device. */
/* CS4232 chip (aka "windows sound system") is logical device 0 */
acard->wss = pnp_request_card_device(card, id->devs[0].id, NULL);
- if (acard->wss == NULL) {
- kfree(cfg);
+ if (acard->wss == NULL)
return -EBUSY;
- }
/* there is a game port at logical device 1, but we ignore it completely */
@@ -133,25 +127,19 @@ snd_wavefront_pnp (int dev, snd_wavefron
if (use_cs4232_midi[dev]) {
acard->mpu = pnp_request_card_device(card, id->devs[2].id, NULL);
- if (acard->mpu == NULL) {
- kfree(cfg);
+ if (acard->mpu == NULL)
return -EBUSY;
- }
}
/* The ICS2115 synth is logical device 4 */
acard->synth = pnp_request_card_device(card, id->devs[3].id, NULL);
- if (acard->synth == NULL) {
- kfree(cfg);
+ if (acard->synth == NULL)
return -EBUSY;
- }
/* PCM/FM initialization */
pdev = acard->wss;
-
- pnp_init_resource_table(cfg);
/* An interesting note from the Tropez+ FAQ:
@@ -165,23 +153,9 @@ snd_wavefront_pnp (int dev, snd_wavefron
*/
- if (cs4232_pcm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], cs4232_pcm_port[dev], 4);
- if (fm_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[1], fm_port[dev], 4);
- if (dma1[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[0], dma1[dev], 1);
- if (dma2[dev] != SNDRV_AUTO_DMA)
- pnp_resource_change(&cfg->dma_resource[1], dma2[dev], 1);
- if (cs4232_pcm_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->irq_resource[0], cs4232_pcm_irq[dev], 1);
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "PnP WSS the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "PnP WSS pnp configure failure\n");
- kfree(cfg);
return err;
}
@@ -195,22 +169,9 @@ snd_wavefront_pnp (int dev, snd_wavefron
pdev = acard->synth;
- pnp_init_resource_table(cfg);
-
- if (ics2115_port[dev] != SNDRV_AUTO_PORT) {
- pnp_resource_change(&cfg->port_resource[0], ics2115_port[dev], 16);
- }
-
- if (ics2115_port[dev] != SNDRV_AUTO_IRQ) {
- pnp_resource_change(&cfg->irq_resource[0], ics2115_irq[dev], 1);
- }
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "PnP ICS2115 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "PnP ICS2115 pnp configure failure\n");
- kfree(cfg);
return err;
}
@@ -226,15 +187,6 @@ snd_wavefront_pnp (int dev, snd_wavefron
pdev = acard->mpu;
- pnp_init_resource_table(cfg);
-
- if (cs4232_mpu_port[dev] != SNDRV_AUTO_PORT)
- pnp_resource_change(&cfg->port_resource[0], cs4232_mpu_port[dev], 2);
- if (cs4232_mpu_irq[dev] != SNDRV_AUTO_IRQ)
- pnp_resource_change(&cfg->port_resource[0], cs4232_mpu_irq[dev], 1);
-
- if (pnp_manual_config_dev(pdev, cfg, 0) < 0)
- snd_printk(KERN_ERR "PnP MPU401 the requested resources are invalid, using auto config\n");
err = pnp_activate_dev(pdev);
if (err < 0) {
snd_printk(KERN_ERR "PnP MPU401 pnp configure failure\n");
@@ -258,7 +210,6 @@ snd_wavefront_pnp (int dev, snd_wavefron
ics2115_port[dev],
ics2115_irq[dev]);
- kfree(cfg);
return 0;
}
6
19
Hello Luis, and Alsa list,
I recently got an Edirol UA-4FX. It works just fine as a generic USB
Audio device. I've written up all the details at
http://alsa.opensrc.org/index.php/Edirol_UA-4FX (shamelessly stolen
from the Edirol_UA-25 page).
The the UA-4FX needs a patch to usbaudio.c create_ua700_ua25_quirk()
and usbquirks.h, and then it has full support. (MIDI I/O, sample rates
up to 96 kHz) I've made an attempt, mostly to get it working on my
machine. Can you review it?
Thanks,
David
2
3
Hi,
during the discussions with LSB guys, it turned out that the current
ALSA-lib has many exported symbols that are not actually considered to
be public.
I fixed these unneeded exports in the HG tree. If you find some
problems with this change, please let me know.
thanks,
Takashi
1
0
Hi,
I've talked with some people workiong on LSB about the possibility to
put libasound as a part of the next LSB (surprisingly, they would like
it more than I). I proposed that we should define the minimal set at
first as the standard instead of taking all existing API functions.
An interesting input was that they did some statistics and counted the
actual used functions/variables in ALSA API over distros. The data
is attached below. I just put the number of apps and functions there
to simplify. (It includes __* functions that are actaully internal
ones, and I'm wondering why their numbers are so high. Anyway, they
shouldn't be a part of standard.)
So, first, just take a look at it. You'll see how many functions are
not actually used at all.
What I'd like to do now are:
- create a list of "standard" functions to be passed to LSB
- clean up and actually drop some non-used functions
- remove some functions from export list (in Versions file)
I'll try to create a list. Basically it'll be almost as same as the
list of functions with count > 0, plus some related ones.
Then, let's discuss and clean up...
BTW, regarding Versions. The versioned symbols for newly added
functions seem not set properly as expected. We have entries
ALSA_0.9 {
global:
__snd_*;
_snd_*;
snd_*;
local:
*;
};
and thus the rest functions after this all belong to ALSA_0.9 in the
end (except for functions explicitly defined with obsolete macros in
pcm.c). It means, we'll need to stick with ALSA_0.9 tag no matter
which version is added. Only if the function API is changed and
double definitions are needed, we'll tag to another version...
Oh well.
Takashi
AppUsage Iname
36 snd_pcm_hw_params_set_format
36 snd_pcm_hw_params_set_access
36 snd_pcm_hw_params_any
36 snd_pcm_open
36 snd_pcm_hw_params
36 snd_pcm_prepare
35 snd_strerror
35 snd_pcm_close
35 snd_pcm_writei
34 snd_pcm_hw_params_set_channels
29 snd_pcm_sw_params_current
28 snd_pcm_sw_params
28 snd_pcm_sw_params_set_start_threshold
27 snd_pcm_readi
25 snd_pcm_drop
24 snd_pcm_avail_update
23 snd_pcm_state
23 snd_pcm_resume
22 snd_ctl_open
22 snd_ctl_close
22 snd_card_next
22 snd_pcm_sw_params_set_avail_min
22 snd_pcm_start
21 snd_ctl_pcm_next_device
21 snd_pcm_hw_params_malloc
20 snd_pcm_hw_params_free
20 snd_pcm_nonblock
19 snd_pcm_pause
19 snd_pcm_info_set_stream
19 snd_ctl_pcm_info
19 snd_pcm_info_get_name
19 snd_pcm_status
19 snd_pcm_info_set_device
18 snd_pcm_hw_params_set_rate_near
18 snd_pcm_sw_params_set_xfer_align
18 snd_pcm_info_set_subdevice
17 snd_ctl_card_info_get_name
17 snd_ctl_card_info
17 snd_pcm_hw_params_sizeof
16 snd_pcm_hw_params_get_format_mask
16 snd_pcm_status_get_avail
16 snd_pcm_hw_params_set_period_size_near
16 snd_pcm_format_physical_width
16 snd_lib_error_set_handler
16 snd_pcm_format_mask_test
15 snd_pcm_sw_params_free
15 snd_pcm_info_free
15 snd_ctl_card_info_get_id
15 snd_pcm_sw_params_malloc
15 snd_pcm_info_malloc
14 snd_pcm_format_mask_malloc
14 snd_pcm_sw_params_sizeof
14 snd_seq_set_client_name
14 snd_seq_open
14 snd_pcm_format_mask_free
13 snd_pcm_format_width
13 snd_pcm_format_big_endian
13 snd_pcm_format_linear
13 snd_pcm_build_linear_format
13 snd_ctl_card_info_free
13 snd_pcm_info_get_id
13 snd_seq_create_simple_port
13 snd_seq_close
13 snd_ctl_card_info_malloc
13 snd_pcm_status_free
13 snd_pcm_format_signed
13 snd_pcm_info_get_subdevices_count
13 snd_pcm_status_malloc
13 __snd_pcm_hw_params_set_tick_time_last
13 __snd_pcm_hw_params_get_period_time
13 __snd_pcm_hw_params_get_periods
13 __snd_pcm_hw_params_set_access_last
13 __snd_pcm_hw_params_set_buffer_size_near
13 __snd_pcm_hw_params_get_periods_max
13 __snd_pcm_hw_params_get_period_size_min
13 __snd_pcm_hw_params_set_format_last
13 __snd_pcm_hw_params_set_period_time_first
13 __snd_pcm_hw_params_set_period_time_last
13 __snd_pcm_hw_params_set_channels_last
13 __snd_pcm_hw_params_get_tick_time_min
13 __snd_pcm_hw_params_set_buffer_size_first
13 __snd_pcm_hw_params_get_period_time_max
13 __snd_pcm_hw_params_get_tick_time_max
13 __snd_pcm_hw_params_get_rate
13 __snd_pcm_hw_params_get_subformat
13 __snd_pcm_hw_params_get_tick_time
13 __snd_pcm_hw_params_get_rate_max
13 __snd_pcm_hw_params_get_period_size
13 __snd_pcm_hw_params_set_periods_first
13 __snd_pcm_hw_params_get_access
13 __snd_pcm_hw_params_set_rate_near
13 __snd_pcm_hw_params_set_buffer_size_last
13 __snd_pcm_hw_params_set_tick_time_first
13 __snd_pcm_hw_params_get_periods_min
13 __snd_pcm_hw_params_get_rate_min
13 __snd_pcm_hw_params_set_channels_first
13 __snd_pcm_hw_params_get_channels_max
13 __snd_pcm_hw_params_get_buffer_time_min
13 __snd_pcm_hw_params_get_period_size_max
13 __snd_pcm_hw_params_get_channels_min
13 __snd_pcm_hw_params_get_buffer_time_max
13 __snd_pcm_hw_params_get_buffer_size_max
13 __snd_pcm_hw_params_get_buffer_size
13 __snd_pcm_hw_params_get_buffer_time
13 __snd_pcm_hw_params_get_period_time_min
13 __snd_pcm_hw_params_set_format_first
13 __snd_pcm_hw_params_set_period_size_first
13 __snd_pcm_hw_params_get_channels
13 __snd_pcm_hw_params_set_rate_last
13 __snd_pcm_hw_params_get_format
13 __snd_pcm_hw_params_set_buffer_time_near
13 __snd_pcm_hw_params_get_buffer_size_min
13 __snd_pcm_hw_params_set_channels_near
13 __snd_pcm_hw_params_set_subformat_last
13 __snd_pcm_hw_params_set_subformat_first
13 __snd_pcm_hw_params_set_rate_first
13 __snd_pcm_hw_params_set_period_size_last
13 __snd_pcm_hw_params_set_period_size_near
13 __snd_pcm_hw_params_set_period_time_near
13 __snd_pcm_hw_params_set_tick_time_near
13 __snd_pcm_hw_params_set_periods_near
13 __snd_pcm_hw_params_set_buffer_time_last
13 __snd_pcm_hw_params_set_periods_last
13 __snd_pcm_hw_params_set_buffer_time_first
11 snd_seq_event_input
11 snd_pcm_drain
11 snd_pcm_hw_params_get_buffer_size
10 snd_mixer_selem_get_playback_volume
10 snd_mixer_selem_register
10 snd_mixer_attach
10 snd_mixer_selem_get_playback_volume_range
10 snd_pcm_hw_params_set_periods_near
10 snd_pcm_hw_params_get_period_size
10 snd_mixer_open
10 snd_mixer_load
10 snd_mixer_close
9 snd_mixer_elem_next
9 snd_mixer_selem_has_playback_volume
9 snd_pcm_delay
9 snd_rawmidi_read
9 snd_seq_client_id
9 snd_rawmidi_close
9 snd_mixer_selem_has_playback_switch
9 snd_midi_event_new
9 snd_mixer_first_elem
9 snd_rawmidi_open
8 snd_pcm_hw_params_get_rate
8 snd_seq_poll_descriptors
8 snd_mixer_selem_set_playback_switch_all
8 snd_mixer_selem_get_name
8 snd_mixer_selem_get_capture_volume
8 snd_rawmidi_write
8 snd_mixer_selem_set_playback_volume
8 snd_seq_port_info_sizeof
8 snd_mixer_selem_has_capture_volume
8 snd_mixer_selem_has_capture_switch
8 snd_midi_event_free
8 snd_mixer_selem_set_capture_switch_all
8 snd_rawmidi_nonblock
7 snd_rawmidi_info_free
7 snd_seq_client_info_sizeof
7 snd_pcm_sw_params_set_silence_size
7 snd_rawmidi_info_malloc
7 snd_ctl_rawmidi_info
7 snd_rawmidi_info_get_name
7 snd_midi_event_encode_byte
7 snd_ctl_rawmidi_next_device
7 snd_rawmidi_info_set_device
7 snd_seq_port_info_set_port
7 snd_rawmidi_info_set_stream
7 snd_pcm_hw_params_set_buffer_size_near
7 snd_rawmidi_info_set_subdevice
7 snd_rawmidi_info_get_id
7 snd_rawmidi_info_get_subdevices_count
7 snd_mixer_selem_get_capture_volume_range
7 snd_mixer_selem_is_playback_mono
7 snd_pcm_sw_params_set_stop_threshold
7 snd_pcm_hw_params_can_pause
6 snd_ctl_card_info_get_mixername
6 snd_seq_free_event
6 snd_pcm_hw_params_set_buffer_time_near
6 snd_pcm_hw_params_get_channels_max
6 snd_seq_poll_descriptors_count
6 snd_mixer_selem_get_capture_switch
6 snd_pcm_sw_params_set_silence_threshold
6 snd_mixer_selem_has_playback_channel
6 snd_pcm_status_sizeof
6 snd_pcm_hw_params_set_period_time_near
6 snd_mixer_selem_set_capture_volume
6 snd_config_search
6 snd_mixer_selem_channel_name
6 snd_seq_query_next_port
6 snd_pcm_info_sizeof
6 snd_pcm_hw_params_get_channels_min
6 snd_pcm_hw_params_set_rate
6 snd_mixer_selem_get_playback_switch
6 snd_mixer_selem_is_capture_mono
6 snd_seq_port_info_set_client
6 snd_mixer_selem_is_active
6 snd_mixer_selem_has_capture_channel
6 snd_pcm_hw_params_test_format
6 snd_config_update
5 snd_seq_port_subscribe_set_sender
5 snd_seq_port_subscribe_set_dest
5 snd_config_iterator_end
5 snd_config_iterator_next
5 snd_seq_port_info_get_name
5 snd_seq_port_info_get_capability
5 snd_config_iterator_first
5 snd_seq_connect_to
5 snd_pcm_hw_params_get_channels
5 snd_pcm_hw_params_get_buffer_size_min
5 snd_seq_subscribe_port
5 snd_pcm_hw_params_get_period_size_min
5 snd_seq_port_info_get_addr
5 snd_seq_event_input_pending
5 snd_seq_query_next_client
5 snd_seq_event_output
5 snd_config_iterator_entry
5 snd_seq_client_info_get_client
5 snd_seq_drain_output
5 snd_seq_client_info_set_client
5 snd_config_get_string
5 snd_seq_port_info_get_port
4 snd_pcm_hw_params_get_buffer_size_max
4 snd_pcm_hw_params_get_rate_min
4 snd_pcm_bytes_to_frames
4 snd_ctl_card_info_sizeof
4 snd_pcm_hw_params_get_rate_max
4 snd_pcm_hw_params_can_resume
4 snd_card_get_name
4 snd_pcm_hw_params_get_period_size_max
4 snd_pcm_frames_to_bytes
4 snd_pcm_status_get_trigger_tstamp
4 snd_pcm_wait
3 snd_pcm_poll_descriptors
3 snd_pcm_hw_params_is_double
3 snd_pcm_hw_params_is_batch
3 snd_pcm_hw_params_get_tick_time
3 snd_pcm_hw_params_can_sync_start
3 snd_pcm_status_get_state
3 snd_seq_port_info_set_name
3 snd_pcm_hw_params_get_periods_max
3 snd_pcm_hw_params_get_period_time
3 snd_async_add_pcm_handler
3 snd_seq_port_subscribe_sizeof
3 snd_pcm_mmap_commit
3 snd_pcm_hw_params_test_rate
3 snd_pcm_hw_params_get_access
3 snd_pcm_hw_params_can_overrange
3 snd_pcm_writen
3 snd_pcm_hw_params_get_format
3 snd_pcm_hw_params_is_half_duplex
3 snd_seq_event_output_direct
3 snd_pcm_hw_params_is_joint_duplex
3 snd_seq_connect_from
3 snd_pcm_hw_params_get_buffer_time
3 snd_config_get_id
3 snd_seq_client_info_get_name
3 snd_pcm_mmap_begin
3 snd_seq_port_info_set_capability
3 snd_pcm_hw_params_can_mmap_sample_resolution
3 snd_pcm_poll_descriptors_count
3 snd_pcm_link
3 snd_config
3 snd_pcm_hw_params_get_periods
3 snd_pcm_hw_params_set_channels_near
3 snd_pcm_hw_params_test_access
3 snd_pcm_hw_params_is_block_transfer
3 snd_pcm_hw_params_set_rate_resample
2 snd_seq_disconnect_from
2 snd_config_get_type
2 snd_mixer_selem_id_sizeof
2 snd_pcm_hw_params_get_period_time_max
2 snd_pcm_poll_descriptors_revents
2 snd_seq_delete_simple_port
2 snd_pcm_access_mask_test
2 snd_ctl_elem_value_clear
2 snd_config_get_integer
2 snd_pcm_access_name
2 snd_seq_port_info_get_client
2 snd_ctl_elem_value_set_integer
2 snd_mixer_selem_id_get_name
2 snd_pcm_mmap_readi
2 snd_ctl_elem_info_is_readable
2 snd_hctl_close
2 snd_ctl_elem_info_malloc
2 snd_pcm_mmap_writei
2 snd_ctl_name
2 snd_hwdep_close
2 snd_hwdep_open
2 snd_hwdep_info
2 snd_pcm_hw_params_get_access_mask
2 snd_pcm_format_set_silence
2 snd_hctl_load
2 snd_hctl_find_elem
2 snd_hctl_free
2 snd_pcm_sw_params_set_tstamp_mode
2 snd_pcm_hw_params_get_periods_min
2 snd_pcm_hw_params_test_channels
2 snd_pcm_sw_params_set_xrun_mode
2 snd_ctl_elem_value_get_integer
2 snd_pcm_hw_params_get_tick_time_max
2 snd_async_handler_get_callback_private
2 snd_hctl_open
2 snd_pcm_hw_params_get_tick_time_min
2 snd_pcm_readn
2 snd_seq_unsubscribe_port
2 snd_hctl_elem_info
2 snd_pcm_access_mask_sizeof
2 snd_seq_disconnect_to
2 snd_pcm_hw_params_dump
2 snd_pcm_hw_params_get_period_time_min
2 snd_pcm_rewind
2 snd_seq_client_info_get_type
2 snd_pcm_hw_params_copy
2 snd_seq_create_port
2 snd_pcm_type
2 snd_hwdep_info_sizeof
2 snd_hctl_elem_write
2 snd_ctl_elem_value_free
2 snd_ctl_elem_info_get_count
2 snd_pcm_hw_params_set_period_size
2 snd_seq_port_info_get_type
2 snd_ctl_elem_id_set_name
2 snd_ctl_elem_id_clear
2 snd_ctl_elem_info_free
2 snd_pcm_hwsync
2 snd_pcm_info
2 snd_seq_port_info_set_type
2 snd_mixer_selem_set_playback_volume_all
2 snd_ctl_elem_info_clear
2 snd_pcm_state_name
2 snd_pcm_sw_params_get_boundary
2 snd_hctl_elem_read
2 snd_ctl_elem_id_malloc
2 snd_ctl_elem_id_set_interface
2 snd_pcm_format_mask_sizeof
2 snd_ctl_elem_id_free
2 snd_rawmidi_poll_descriptors_count
2 snd_rawmidi_poll_descriptors
2 snd_pcm_hw_params_get_buffer_time_max
2 snd_midi_event_decode
2 snd_pcm_format_cpu_endian
2 snd_ctl_elem_value_malloc
2 snd_mixer_selem_set_capture_volume_all
2 snd_ctl_elem_info_get_step
2 snd_seq_port_subscribe_free
2 snd_output_stdio_attach
2 snd_ctl_elem_info_get_min
2 snd_seq_port_subscribe_malloc
2 snd_mixer_selem_id_get_index
2 snd_pcm_status_get_tstamp
2 snd_pcm_hw_params_get_buffer_time_min
2 snd_pcm_format_name
2 snd_ctl_elem_info_get_max
1 snd_seq_port_subscribe_copy
1 snd_pcm_sw_params_set_sleep_min
1 snd_timer_info_get_resolution
1 snd_ctl_hwdep_next_device
1 snd_midi_event_init
1 snd_mixer_selem_get_id
1 snd_pcm_forward
1 snd_pcm_hw_params_test_period_size
1 snd_mixer_find_selem
1 snd_config_add
1 snd_pcm_areas_silence
1 snd_timer_poll_descriptors_count
1 snd_pcm_hw_free
1 snd_timer_params_set_ticks
1 snd_seq_poll_descriptors_revents
1 snd_seq_port_info_free
1 snd_pcm_hw_params_get_sbits
1 snd_seq_query_subscribe_set_root
1 snd_pcm_format_description
1 snd_pcm_status_dump
1 snd_pcm_sw_params_dump
1 snd_seq_get_client_info
1 snd_seq_query_subscribe_get_root
1 snd_timer_params_set_auto_start
1 snd_timer_params
1 snd_timer_open
1 snd_mixer_selem_id_set_name
1 snd_pcm_area_copy
1 snd_rawmidi_poll_descriptors_revents
1 snd_timer_read
1 snd_timer_id_malloc
1 snd_seq_port_subscribe_get_exclusive
1 snd_mixer_selem_has_common_volume
1 snd_timer_params_get_ticks
1 snd_seq_alloc_queue
1 snd_asoundlib_version
1 snd_seq_port_info_set_port_specified
1 snd_timer_close
1 snd_mixer_detach
1 snd_timer_info_malloc
1 snd_seq_client_info_set_name
1 snd_seq_port_subscribe_get_sender
1 snd_seq_query_subscribe_get_addr
1 snd_seq_query_subscribe_get_queue
1 snd_seq_port_subscribe_get_time_real
1 snd_seq_port_subscribe_set_exclusive
1 snd_config_substitute
1 snd_seq_query_subscribe_get_time_real
1 snd_timer_stop
1 snd_timer_info
1 snd_seq_query_subscribe_get_exclusive
1 snd_output_close
1 snd_seq_port_subscribe_get_time_update
1 snd_seq_port_subscribe_set_time_update
1 snd_seq_port_subscribe_get_dest
1 snd_timer_params_malloc
1 snd_seq_port_subscribe_get_queue
1 snd_config_copy
1 snd_seq_query_subscribe_get_index
1 snd_seq_set_client_info
1 snd_seq_port_subscribe_set_queue
1 snd_seq_port_info_malloc
1 snd_config_get_ascii
1 snd_seq_queue_tempo_set_ppq
1 snd_seq_query_subscribe_set_type
1 snd_pcm_hw_params_get_rate_numden
1 snd_midi_event_reset_encode
1 snd_seq_queue_tempo_sizeof
1 snd_pcm_open_lconf
1 snd_ctl_hwdep_info
1 snd_pcm_hw_params_get_subformat
1 snd_pcm_hw_params_set_periods
1 snd_seq_query_subscribe_sizeof
1 snd_mixer_elem_get_type
1 snd_seq_query_subscribe_get_time_update
1 snd_seq_query_subscribe_set_index
1 snd_config_search_alias_hooks
1 snd_card_get_longname
1 snd_config_imake_integer
1 snd_seq_query_port_subscribers
1 snd_seq_queue_tempo_set_tempo
1 snd_config_update_free_global
1 snd_hwdep_info_set_device
1 snd_seq_get_any_client_info
1 snd_pcm_dump
1 snd_seq_set_port_info
1 snd_seq_get_port_info
1 snd_mixer_selem_has_playback_switch_joined
1 snd_hwdep_poll_descriptors
1 snd_pcm_format_size
1 snd_seq_delete_port
1 snd_seq_control_queue
1 snd_seq_event_length
1 snd_config_delete
1 snd_mixer_selem_id_set_index
1 snd_pcm_hw_params_set_periods_min
1 snd_seq_port_info_set_midi_channels
1 snd_mixer_selem_has_playback_volume_joined
1 snd_seq_free_queue
1 snd_hwdep_ioctl
1 snd_pcm_hw_params_set_periods_integer
1 snd_seq_parse_address
1 snd_timer_poll_descriptors
1 snd_async_del_handler
1 snd_pcm_status_get_avail_max
1 snd_seq_get_any_port_info
1 snd_hwdep_info_get_iface
1 snd_mixer_selem_set_playback_switch
1 snd_seq_port_subscribe_set_time_real
1 snd_timer_start
1 snd_hwdep_info_get_name
1 snd_midi_event_encode
1 snd_pcm_status_get_delay
1 snd_hwdep_read
1 snd_seq_set_queue_tempo
0 snd_instr_header_get_id
0 snd_pcm_unlink
0 snd_pcm_hw_params_set_access_first
0 snd_ctl_rawmidi_prefer_subdevice
0 snd_pcm_hw_params_test_buffer_size
0 snd_pcm_info_get_subdevices_avail
0 snd_pcm_sw_params_get_silence_size
0 snd_ctl_elem_list_malloc
0 snd_output_buffer_open
0 snd_pcm_samples_to_bytes
0 snd_pcm_null_open
0 snd_pcm_hook_get_private
0 snd_pcm_status_get_htstamp
0 snd_ctl_elem_value_get_bytes
0 snd_ctl_elem_list_set_offset
0 snd_ctl_elem_value_get_name
0 snd_timer_params_set_early_event
0 snd_pcm_meter_get_rate
0 snd_config_save
0 snd_pcm_meter_get_boundary
0 snd_pcm_meter_get_bufsize
0 snd_seq_remove_events_get_queue
0 snd_pcm_mulaw_open
0 snd_hwdep_info_get_id
0 snd_hctl_elem_prev
0 snd_pcm_info_get_sync
0 snd_config_search_definition
0 snd_pcm_multi_open
0 snd_pcm_meter_search_scope
0 snd_hwdep_dsp_status_get_dsp_loaded
0 snd_ctl_event_elem_get_numid
0 snd_hctl_poll_descriptors
0 snd_pcm_mmap_writen
0 snd_mixer_elem_empty
0 snd_pcm_info_get_device
0 snd_instr_header_get_alias
0 snd_pcm_hw_params_set_period_size_max
0 snd_pcm_hw_params_set_period_size_integer
0 snd_pcm_hw_params_set_period_size_first
0 snd_pcm_hw_params_set_buffer_time_min
0 snd_pcm_hw_params_get_fifo_size
0 snd_mixer_elem_get_callback_private
0 snd_ctl_elem_info_set_id
0 snd_pcm_hw_params_set_format_last
0 snd_seq_port_info_get_timestamp_real
0 snd_pcm_hw_params_set_period_time_min
0 snd_pcm_scope_set_name
0 snd_seq_set_client_pool
0 snd_pcm_hw_params_set_periods_last
0 snd_pcm_hw_params_set_periods_first
0 snd_pcm_hw_params_set_period_time_minmax
0 snd_pcm_hw_params_set_period_time_max
0 snd_pcm_hw_params_set_period_size_minmax
0 snd_pcm_hw_params_set_period_size_min
0 snd_pcm_hw_params_set_period_time_last
0 snd_pcm_hw_params_set_period_time_first
0 snd_pcm_hw_params_set_period_time
0 snd_config_get_integer64
0 snd_pcm_hw_params_set_access_last
0 snd_pcm_meter_get_now
0 snd_pcm_hw_params_set_buffer_size_last
0 snd_pcm_hw_open_fd
0 snd_pcm_hw_params_set_buffer_size
0 snd_seq_reset_pool_input
0 snd_ctl_card_info_get_card
0 snd_pcm_hw_params_get_subformat_mask
0 snd_ctl_elem_remove
0 snd_pcm_scope_s16_get_channel_buffer
0 snd_timer_query_next_device
0 snd_pcm_hw_params_set_channels_first
0 snd_pcm_hw_params_set_buffer_time_minmax
0 snd_pcm_hw_params_set_buffer_time_max
0 snd_pcm_scope_set_ops
0 snd_pcm_hw_params_set_channels_min
0 snd_pcm_hw_params_set_channels_last
0 snd_ctl_elem_info_set_interface
0 snd_pcm_hw_params_set_buffer_size_min
0 snd_pcm_hw_params_set_buffer_size_max
0 snd_hctl_elem_get_index
0 snd_pcm_hw_params_set_buffer_time_first
0 snd_pcm_hw_params_set_buffer_time
0 snd_pcm_hw_params_test_tick_time
0 snd_pcm_hw_params_test_subformat
0 snd_seq_get_input_buffer_size
0 snd_pcm_info_copy
0 snd_dlclose
0 snd_config_get_bool
0 snd_pcm_hw_params_set_buffer_size_first
0 snd_seq_queue_timer_get_type
0 snd_ctl_elem_info_get_device
0 snd_instr_fm_convert_from_stream
0 snd_pcm_hw_open
0 snd_pcm_hw_params_test_period_time
0 snd_ctl_poll_descriptors_revents
0 snd_pcm_hook_get_pcm
0 snd_pcm_info_get_stream
0 snd_pcm_info_get_subdevice
0 snd_ctl_elem_value_set_enumerated
0 snd_pcm_info_get_subclass
0 snd_pcm_info_get_class
0 snd_ctl_elem_value_set_name
0 snd_pcm_hw_params_set_period_size_last
0 snd_pcm_hook_set_private
0 snd_pcm_hooks_open
0 snd_pcm_hw_params_set_format_mask
0 snd_pcm_hw_params_set_subformat_first
0 snd_timer_query_open_lconf
0 snd_pcm_hw_params_set_rate_minmax
0 snd_hctl_elem_get_subdevice
0 snd_instr_header_set_name
0 snd_pcm_hw_params_set_subformat_mask
0 snd_ctl_elem_info_get_index
0 snd_pcm_hw_params_set_periods_minmax
0 snd_ctl_elem_list_get_numid
0 snd_pcm_hw_params_set_rate_max
0 snd_pcm_hw_params_set_rate_last
0 snd_pcm_hw_params_set_rate_first
0 snd_pcm_format_silence_64
0 snd_ctl_elem_info_is_locked
0 snd_input_gets
0 snd_pcm_iec958_open
0 snd_pcm_name
0 snd_pcm_hw_params_test_buffer_time
0 snd_pcm_hw_params_set_tick_time_max
0 snd_ctl_elem_info_is_volatile
0 snd_pcm_hw_params_set_tick_time_first
0 snd_pcm_hw_params_set_tick_time_near
0 snd_seq_client_info_get_event_lost
0 snd_pcm_hw_params_set_tick_time_minmax
0 snd_seq_queue_tempo_set_skew
0 snd_seq_queue_timer_free
0 snd_seq_queue_timer_get_queue
0 snd_ctl_event_clear
0 snd_seq_queue_timer_copy
0 snd_seq_queue_timer_set_id
0 snd_seq_queue_timer_set_resolution
0 snd_seq_queue_timer_get_resolution
0 snd_seq_port_info_copy
0 snd_seq_queue_status_get_status
0 snd_seq_queue_tempo_copy
0 snd_seq_queue_tempo_free
0 snd_seq_queue_status_get_tick_time
0 snd_seq_queue_status_malloc
0 snd_seq_queue_tempo_get_skew_base
0 snd_seq_queue_tempo_get_tempo
0 snd_seq_queue_tempo_get_ppq
0 snd_seq_queue_tempo_get_skew
0 snd_seq_remove_events_get_time
0 snd_seq_remove_events_set_condition
0 snd_seq_remove_events_set_dest
0 snd_seq_remove_events_malloc
0 snd_config_searchva
0 snd_seq_remove_events_set_tag
0 snd_timer_info_get_ticks
0 snd_seq_remove_events_set_event_type
0 snd_seq_type
0 snd_seq_queue_timer_set_type
0 snd_seq_remove_events_free
0 snd_seq_queue_timer_sizeof
0 snd_seq_remove_events
0 snd_hwdep_dsp_status_malloc
0 snd_seq_remove_events_get_event_type
0 snd_seq_remove_events_get_tag
0 snd_seq_remove_events_get_condition
0 snd_ctl_event_elem_get_index
0 snd_pcm_format_mask_copy
0 snd_instr_iwffff_open
0 snd_seq_query_named_queue
0 snd_config_set_string
0 snd_config_test_id
0 snd_seq_query_subscribe_get_port
0 snd_mixer_poll_descriptors_revents
0 snd_seq_query_subscribe_get_client
0 snd_seq_query_subscribe_get_num_subs
0 snd_seq_port_info_get_synth_voices
0 snd_seq_port_info_set_addr
0 snd_seq_port_info_set_midi_voices
0 snd_seq_port_info_get_timestamp_queue
0 snd_seq_port_info_get_timestamping
0 snd_seq_client_pool_get_output_room
0 snd_seq_port_info_set_timestamp_real
0 snd_timer_params_get_queue_size
0 snd_seq_port_info_set_synth_voices
0 snd_seq_queue_info_get_queue
0 snd_pcm_access_mask_empty
0 snd_seq_queue_info_set_owner
0 snd_seq_queue_info_malloc
0 snd_seq_queue_info_set_flags
0 snd_seq_queue_status_free
0 snd_seq_queue_status_get_events
0 snd_seq_queue_info_sizeof
0 snd_instr_fm_convert_to_stream
0 snd_seq_query_subscribe_get_type
0 snd_rawmidi_params_sizeof
0 snd_seq_queue_info_copy
0 snd_seq_extract_output
0 snd_seq_query_subscribe_set_client
0 snd_seq_queue_info_get_name
0 snd_pcm_dsnoop_open
0 snd_seq_queue_info_get_flags
0 snd_seq_queue_info_get_locked
0 snd_timer_open_lconf
0 snd_timer_params_free
0 snd_timer_info_sizeof
0 snd_timer_name
0 snd_timer_params_set_exclusive
0 snd_timer_params_set_queue_size
0 snd_timer_params_get_auto_start
0 snd_timer_params_get_early_event
0 snd_timer_id_set_card
0 snd_timer_id_set_subdevice
0 snd_timer_id_sizeof
0 snd_timer_id_set_class
0 snd_timer_id_set_sclass
0 snd_timer_info_get_card
0 snd_timer_info_get_name
0 snd_instr_simple_convert_to_stream
0 snd_rawmidi_status_get_avail
0 snd_instr_iwffff_load
0 snd_timer_status_get_resolution
0 snd_config_imake_string
0 snd_timer_status_get_overrun
0 snd_timer_status_get_queue
0 snd_timer_type
0 snd_user_file
0 snd_timer_status_malloc
0 snd_timer_status_sizeof
0 snd_timer_params_sizeof
0 snd_timer_query_params
0 snd_timer_query_status
0 snd_timer_poll_descriptors_revents
0 snd_timer_query_close
0 snd_rawmidi_open_lconf
0 snd_timer_status_free
0 snd_seq_port_info_set_timestamp_queue
0 snd_timer_status
0 snd_seq_set_input_buffer_size
0 snd_ctl_elem_value_get_interface
0 snd_seq_system_info
0 snd_seq_set_queue_info
0 snd_timer_id_set_device
0 snd_seq_system_info_get_clients
0 snd_ctl_elem_value_set_device
0 snd_seq_system_info_free
0 snd_seq_system_info_get_channels
0 snd_seq_remove_events_set_time
0 snd_seq_set_bit
0 snd_seq_set_client_event_filter
0 snd_seq_remove_events_sizeof
0 snd_seq_reset_pool_output
0 snd_ctl_elem_value_copy
0 snd_seq_set_client_pool_output_room
0 snd_pcm_hw_params_set_format_first
0 snd_hctl_poll_descriptors_count
0 snd_spcm_init_duplex
0 snd_seq_remove_events_copy
0 snd_pcm_sw_params_get_start_threshold
0 snd_spcm_init_get_params
0 snd_ctl_elem_info_get_step64
0 snd_timer_id_get_device
0 snd_timer_id_get_sclass
0 snd_timer_id_free
0 snd_timer_id_get_class
0 snd_seq_system_info_get_cur_queues
0 snd_pcm_dshare_open
0 snd_seq_system_info_sizeof
0 snd_seq_system_info_get_ports
0 snd_seq_system_info_get_queues
0 snd_seq_port_info_get_port_specified
0 snd_shm_area_share
0 snd_seq_remove_events_set_queue
0 snd_seq_client_pool_set_input_pool
0 snd_ctl_elem_info_set_name
0 snd_pcm_tstamp_mode_name
0 snd_pcm_type_name
0 snd_async_add_ctl_handler
0 snd_timer_query_info
0 snd_rawmidi_drain
0 snd_dlopen
0 snd_ctl_elem_value_set_byte
0 snd_ctl_elem_list_get_id
0 snd_pcm_sw_params_get_avail_min
0 snd_pcm_sw_params_get_sleep_min
0 snd_pcm_sw_params_get_stop_threshold
0 snd_timer_params_copy
0 snd_pcm_sw_params_get_silence_threshold
0 snd_ctl_elem_iface_name
0 snd_config_hook_load_for_all_cards
0 snd_pcm_sw_params_get_tstamp_mode
0 snd_pcm_sw_params_get_xfer_align
0 snd_mixer_get_count
0 snd_rawmidi_name
0 snd_timer_status_copy
0 snd_mixer_get_callback_private
0 _snd_pcm_file_open
0 snd_rawmidi_params_get_avail_min
0 snd_shm_area_create
0 snd_rawmidi_params_copy
0 snd_rawmidi_params_current
0 snd_input_ungetc
0 snd_rawmidi_info_get_card
0 snd_rawmidi_info_get_device
0 snd_rawmidi_info
0 snd_ctl_elem_value_set_numid
0 snd_rawmidi_info_get_subdevice_name
0 snd_rawmidi_info_get_subdevices_avail
0 snd_pcm_status_get_overrange
0 snd_rawmidi_info_get_stream
0 snd_pcm_scope_get_name
0 snd_pcm_scope_s16_open
0 snd_pcm_scope_set_callback_private
0 snd_pcm_scope_malloc
0 snd_seq_client_pool_get_input_free
0 snd_pcm_shm_open
0 snd_ctl_elem_value_get_index
0 snd_pcm_hw_params_set_channels_minmax
0 snd_seq_queue_status_sizeof
0 snd_rawmidi_info_sizeof
0 snd_seq_remove_events_get_channel
0 snd_pcm_reset
0 snd_hctl_set_compare
0 snd_seq_query_subscribe_malloc
0 snd_pcm_route_open
0 snd_pcm_scope_get_callback_private
0 snd_pcm_route_determine_ttable
0 snd_pcm_route_load_ttable
0 snd_pcm_subformat_description
0 snd_pcm_subformat_mask_free
0 snd_timer_status_get_timestamp
0 snd_pcm_subformat_mask_any
0 snd_pcm_subformat_mask_copy
0 snd_pcm_subformat_mask_test
0 snd_pcm_sw_params_copy
0 snd_pcm_subformat_mask_set
0 snd_pcm_area_silence
0 snd_pcm_start_mode_name
0 snd_timer_params_get_exclusive
0 snd_mixer_poll_descriptors_count
0 snd_pcm_status_copy
0 snd_sctl_free
0 snd_pcm_stream
0 snd_ctl_elem_info_get_name
0 snd_pcm_status_get_trigger_htstamp
0 _snd_pcm_hw_open
0 snd_pcm_subformat_mask_none
0 snd_seq_queue_timer_get_id
0 snd_seq_drop_output
0 snd_seq_drop_output_buffer
0 snd_seq_event_types
0 snd_hctl_elem_get_interface
0 snd_seq_event_output_pending
0 snd_seq_event_types
0 snd_seq_client_pool_get_output_pool
0 snd_seq_client_pool_set_output_pool
0 snd_ctl_elem_read
0 snd_hctl_async
0 snd_seq_drop_input_buffer
0 snd_ctl_elem_info_sizeof
0 snd_seq_drop_input
0 snd_seq_client_pool_sizeof
0 snd_instr_header_copy
0 snd_seq_name
0 snd_pcm_subformat_name
0 snd_seq_queue_timer_malloc
0 snd_instr_fm_free
0 snd_seq_query_subscribe_copy
0 snd_seq_port_info_get_midi_voices
0 snd_seq_port_info_get_read_use
0 snd_mixer_elem_detach
0 snd_output_buffer_string
0 snd_seq_set_output_buffer_size
0 snd_seq_get_output_buffer_size
0 snd_seq_get_port_subscription
0 snd_seq_get_bit
0 snd_func_private_card_driver
0 snd_seq_get_queue_timer
0 snd_mixer_elem_remove
0 snd_seq_get_queue_status
0 snd_hwdep_dsp_image_free
0 snd_rawmidi_status_free
0 snd_rawmidi_status_get_xruns
0 snd_rawmidi_status_malloc
0 snd_timer_info_free
0 snd_rawmidi_status_get_tstamp
0 snd_sctl_build
0 snd_sctl_install
0 snd_rawmidi_stream
0 snd_rawmidi_type
0 snd_rawmidi_params_get_buffer_size
0 snd_rawmidi_params_set_buffer_size
0 snd_rawmidi_params_set_no_active_sensing
0 snd_rawmidi_params_get_no_active_sensing
0 snd_rawmidi_params_set_avail_min
0 snd_rawmidi_status
0 snd_rawmidi_status_copy
0 snd_seq_query_subscribe_set_port
0 snd_timer_query_open
0 snd_seq_client_info_set_broadcast_filter
0 snd_timer_status_get_lost
0 snd_seq_client_pool_copy
0 snd_seq_client_info_set_error_bounce
0 snd_seq_client_info_set_event_filter
0 snd_seq_client_pool_get_input_pool
0 snd_seq_client_pool_get_output_free
0 snd_seq_client_pool_free
0 snd_seq_client_pool_get_client
0 snd_sctl_remove
0 snd_seq_queue_info_free
0 snd_seq_client_info_free
0 snd_ctl_elem_id_get_subdevice
0 snd_seq_change_bit
0 snd_rawmidi_info_get_flags
0 snd_ctl_elem_info_is_indirect
0 snd_timer_params_set_filter
0 snd_pcm_format_silence_16
0 snd_ctl_event_copy
0 snd_ctl_event_elem_get_device
0 snd_ctl_elem_value_sizeof
0 snd_ctl_elem_write
0 snd_seq_remove_events_get_dest
0 snd_ctl_event_elem_get_name
0 snd_ctl_event_elem_get_subdevice
0 snd_ctl_event_elem_get_interface
0 snd_ctl_event_elem_get_mask
0 snd_config_imake_real
0 snd_ctl_elem_value_set_iec958
0 snd_seq_system_info_get_cur_clients
0 snd_hctl_nonblock
0 snd_seq_queue_status_get_queue
0 snd_config_expand
0 snd_ctl_elem_value_set_subdevice
0 snd_ctl_elem_value_set_integer64
0 snd_ctl_elem_value_set_interface
0 snd_pcm_hw_params_set_periods_max
0 snd_ctl_wait
0 snd_seq_queue_tempo_malloc
0 snd_pcm_hook_add
0 snd_ctl_set_power_state
0 snd_dlsym
0 snd_func_card_id
0 snd_hwdep_dsp_status_copy
0 snd_pcm_hw_params_set_rate_min
0 snd_ctl_elem_list_get_subdevice
0 snd_ctl_event_sizeof
0 snd_ctl_event_type_name
0 snd_ctl_event_get_type
0 snd_ctl_elem_id_set_subdevice
0 snd_mixer_selem_set_enum_item
0 snd_ctl_pcm_prefer_subdevice
0 snd_ctl_poll_descriptors
0 snd_ctl_get_power_state
0 snd_ctl_open_lconf
0 snd_midi_event_no_status
0 snd_ctl_elem_list_get_index
0 snd_ctl_elem_list_get_interface
0 snd_ctl_elem_list_get_count
0 snd_ctl_elem_list_get_device
0 snd_ctl_elem_list_get_name
0 snd_ctl_elem_list_get_used
0 snd_hctl_get_count
0 snd_func_refer
0 snd_func_card_driver
0 snd_timer_info_get_id
0 snd_ctl_elem_info_set_numid
0 snd_ctl_elem_id_set_index
0 snd_ctl_elem_info_set_index
0 snd_ctl_elem_list_alloc_space
0 snd_pcm_hw_params_set_buffer_time_last
0 snd_ctl_elem_list_free_space
0 snd_ctl_elem_list_clear
0 snd_ctl_elem_list_copy
0 snd_ctl_elem_list_sizeof
0 snd_ctl_elem_value_get_enumerated
0 snd_ctl_elem_value_get_id
0 snd_timer_params_get_filter
0 snd_ctl_elem_value_get_device
0 snd_ctl_elem_value_get_integer64
0 snd_ctl_elem_value_get_subdevice
0 snd_ctl_elem_value_set_boolean
0 snd_seq_client_info_copy
0 snd_ctl_elem_value_get_numid
0 snd_ctl_elem_set_bytes
0 snd_hwdep_poll_descriptors_revents
0 snd_ctl_elem_lock
0 snd_seq_client_pool_set_output_room
0 snd_ctl_elem_type_name
0 snd_seq_set_client_pool_input
0 snd_ctl_event_malloc
0 snd_ctl_elem_unlock
0 snd_seq_queue_status_get_real_time
0 snd_input_stdio_open
0 snd_hwdep_name
0 snd_hwdep_dsp_image_set_length
0 snd_hwdep_info_malloc
0 snd_hwdep_open_lconf
0 snd_pcm_sw_params_get_xrun_mode
0 snd_input_buffer_open
0 snd_mixer_selem_has_capture_switch_exclusive
0 snd_rawmidi_info_copy
0 snd_pcm_mmap_readn
0 snd_hwdep_dsp_status_get_id
0 snd_hwdep_dsp_status_free
0 snd_hwdep_dsp_status_get_chip_ready
0 snd_hwdep_dsp_status_get_num_dsps
0 snd_hwdep_info_free
0 snd_hwdep_info_get_card
0 snd_hwdep_dsp_status_get_version
0 snd_hwdep_dsp_status_sizeof
0 snd_input_close
0 snd_pcm_hw_params_set_subformat
0 snd_instr_header_get_name
0 snd_instr_header_get_follow_alias
0 snd_instr_header_get_format
0 snd_instr_header_get_type
0 snd_instr_header_set_cmd
0 snd_config_make_compound
0 snd_instr_header_set_alias
0 snd_instr_header_set_cluster
0 snd_pcm_hw_params_test_periods
0 snd_seq_queue_status_copy
0 snd_hctl_first_elem
0 snd_input_scanf
0 snd_seq_nonblock
0 snd_pcm_access_mask_malloc
0 snd_instr_header_get_data
0 snd_instr_header_free
0 snd_instr_header_get_cluster
0 snd_func_concat
0 snd_pcm_subformat_mask_empty
0 snd_hctl_elem_next
0 snd_hctl_elem_get_name
0 snd_hctl_elem_get_numid
0 snd_hwdep_dsp_load
0 snd_hctl_handle_events
0 snd_hctl_get_callback_private
0 snd_hctl_elem_set_callback
0 snd_hctl_elem_set_callback_private
0 snd_ctl_elem_id_get_numid
0 snd_hctl_compare_fast
0 snd_func_datadir
0 snd_func_igetenv
0 snd_hctl_ctl
0 snd_mixer_selem_get_enum_item
0 snd_pcm_rate_open
0 snd_hctl_elem_get_hctl
0 snd_hctl_elem_get_id
0 snd_hctl_last_elem
0 snd_hwdep_dsp_image_get_index
0 snd_hwdep_dsp_image_get_length
0 snd_seq_get_queue_tempo
0 snd_hwdep_dsp_image_get_image
0 snd_hwdep_dsp_image_malloc
0 snd_hwdep_dsp_image_set_name
0 snd_hwdep_dsp_image_sizeof
0 snd_hwdep_dsp_image_set_image
0 snd_hwdep_dsp_image_set_index
0 snd_hctl_open_ctl
0 snd_config_make
0 snd_pcm_access_mask_reset
0 snd_hctl_name
0 snd_hctl_poll_descriptors_revents
0 snd_hctl_wait
0 snd_hwdep_dsp_image_copy
0 snd_hctl_set_callback
0 snd_card_get_index
0 _snd_pcm_route_open
0 _snd_pcm_share_open
0 _snd_pcm_mulaw_open
0 _snd_pcm_multi_open
0 _snd_pcm_shm_open
0 snd_pcm_hw_params_set_tick_time
0 snd_seq_set_queue_usage
0 snd_config_set_pointer
0 snd_ctl_elem_info_set_item
0 _snd_pcm_hooks_open
0 snd_hwdep_type
0 snd_seq_system_info_copy
0 _snd_pcm_hook_ctl_elems_install
0 snd_hwdep_nonblock
0 _snd_pcm_linear_open
0 snd_ctl_type
0 _snd_pcm_iec958_open
0 snd_ctl_elem_info_set_device
0 snd_async_handler_get_ctl
0 snd_pcm_info_get_card
0 snd_config_get_ctl_iface
0 snd_config_delete_compound_members
0 snd_config_evaluate
0 snd_config_get_bool_ascii
0 snd_config_get_ireal
0 snd_ctl_card_info_get_longname
0 snd_config_get_ctl_iface_ascii
0 snd_ctl_card_info_clear
0 snd_rawmidi_params_free
0 snd_hctl_set_callback_private
0 snd_async_handler_get_fd
0 snd_async_handler_get_signo
0 snd_seq_queue_info_set_locked
0 snd_output_printf
0 snd_config_make_pointer
0 snd_card_load
0 snd_timer_continue
0 snd_mixer_elem_value
0 snd_ctl_subscribe_events
0 snd_timer_nonblock
0 snd_seq_queue_tempo_get_queue
0 snd_ctl_elem_info_get_subdevice
0 snd_timer_id_get_subdevice
0 snd_instr_header_get_len
0 snd_pcm_info_get_subdevice_name
0 snd_async_handler_get_pcm
0 snd_seq_get_client_pool
0 snd_hwdep_info_copy
0 snd_seq_set_queue_timer
0 snd_config_set_id
0 snd_hctl_elem_get_device
0 snd_pcm_file_open
0 snd_instr_header_malloc
0 snd_seq_open_lconf
0 snd_ctl_elem_id_get_device
0 snd_async_add_handler
0 snd_mixer_selem_has_capture_switch_joined
0 snd_timer_id_get_card
0 snd_seq_sync_output_queue
0 snd_ctl_nonblock
0 snd_hctl_elem_get_callback_private
0 _snd_pcm_alaw_open
0 _snd_pcm_dmix_open
0 _snd_pcm_dshare_open
0 _snd_pcm_asym_open
0 _snd_pcm_copy_open
0 snd_seq_client_info_get_num_ports
0 snd_pcm_hw_params_set_tick_time_min
0 snd_config_searchv
0 snd_seq_event_output_buffer
0 snd_ctl_poll_descriptors_count
0 snd_ctl_elem_value_set_index
0 snd_pcm_meter_add_scope
0 _snd_pcm_null_open
0 snd_mixer_selem_get_enum_items
0 snd_seq_port_info_set_timestamping
0 snd_ctl_elem_id_set_numid
0 snd_seq_alloc_named_queue
0 snd_ctl_elem_id_set_device
0 snd_ctl_elem_value_get_boolean
0 snd_ctl_elem_info
0 snd_seq_port_info_get_write_use
0 snd_pcm_format_float
0 snd_hwdep_write
0 snd_hwdep_info_get_device
0 snd_ctl_read
0 snd_rawmidi_info_get_subdevice
0 snd_ctl_elem_list
0 snd_ctl_elem_id_copy
0 snd_ctl_elem_id_get_name
0 snd_seq_client_pool_malloc
0 snd_ctl_elem_id_get_index
0 snd_ctl_elem_id_get_interface
0 snd_ctl_elem_info_copy
0 snd_ctl_elem_info_get_owner
0 snd_ctl_elem_info_get_type
0 snd_seq_client_info_get_error_bounce
0 snd_ctl_elem_info_get_numid
0 snd_ctl_elem_info_is_inactive
0 snd_ctl_elem_info_is_writable
0 _snd_pcm_ladspa_open
0 snd_ctl_elem_info_is_owner
0 snd_pcm_hw_params_set_tick_time_last
0 snd_ctl_elem_info_get_id
0 snd_ctl_elem_info_get_interface
0 snd_ctl_elem_info_get_dimension
0 snd_ctl_elem_info_get_dimensions
0 snd_ctl_elem_info_get_item_name
0 snd_ctl_elem_info_get_max64
0 snd_ctl_elem_info_get_min64
0 snd_ctl_elem_info_get_items
0 snd_mixer_last_elem
0 snd_config_get_pointer
0 snd_func_getenv
0 snd_instr_header_set_follow_alias
0 snd_config_load
0 snd_config_load_override
0 snd_config_make_integer
0 snd_config_make_string
0 snd_config_remove
0 snd_config_make_integer64
0 snd_instr_iwffff_convert_from_stream
0 snd_config_hook_load
0 snd_pcm_meter_get_channels
0 snd_config_get_real
0 snd_config_get_type_ascii
0 snd_config_imake_integer64
0 snd_pcm_subformat_mask_reset
0 snd_pcm_subformat_mask_malloc
0 snd_config_imake_pointer
0 snd_ctl_elem_value_set_id
0 snd_spcm_init
0 snd_config_top
0 snd_config_update_free
0 snd_config_set_integer64
0 snd_config_set_real
0 snd_seq_set_client_pool_output
0 snd_ctl_card_info_copy
0 snd_ctl_card_info_get_driver
0 snd_config_update_r
0 snd_pcm_hw_params_set_access_mask
0 snd_config_searcha
0 snd_config_searcha_hooks
0 snd_config_search_alias
0 snd_config_search_hooks
0 snd_seq_remove_events_set_channel
0 snd_input_getc
0 snd_config_set_integer
0 snd_config_searchva_hooks
0 snd_pcm_ladspa_open
0 snd_mixer_selem_id_copy
0 snd_pcm_share_open
0 snd_pcm_hw_params_set_subformat_last
0 snd_mixer_elem_prev
0 snd_mixer_selem_id_malloc
0 snd_mixer_selem_id_free
0 snd_ctl_elem_info_set_subdevice
0 snd_seq_client_info_malloc
0 snd_mixer_selem_get_index
0 snd_mixer_selem_has_common_switch
0 snd_mixer_selem_has_capture_volume_joined
0 snd_hwdep_poll_descriptors_count
0 snd_mixer_set_compare
0 snd_mixer_set_callback_private
0 snd_mixer_selem_set_playback_volume_range
0 snd_output_flush
0 snd_seq_port_info_get_midi_channels
0 snd_mixer_wait
0 snd_func_private_string
0 snd_mixer_selem_set_capture_switch
0 snd_mixer_selem_is_enumerated
0 snd_ctl_event_free
0 snd_input_stdio_attach
0 snd_mixer_selem_set_capture_volume_range
0 snd_mixer_selem_get_enum_item_name
0 snd_pcm_format_mask_none
0 snd_mixer_elem_attach
0 snd_mixer_elem_add
0 snd_seq_get_queue_usage
0 snd_seq_client_info_get_event_filter
0 snd_mixer_elem_info
0 snd_seq_queue_tempo_set_skew_base
0 snd_mixer_class_register
0 snd_pcm_dump_sw_setup
0 snd_mixer_class_unregister
0 snd_pcm_hw_params_current
0 snd_pcm_hw_params_set_buffer_size_minmax
0 snd_pcm_sw_params_get_start_mode
0 snd_shm_area_destroy
0 snd_pcm_hw_params_get_min_align
0 snd_ctl_elem_list_free
0 snd_rawmidi_status_sizeof
0 snd_mixer_selem_get_capture_group
0 snd_pcm_linear_open
0 snd_mixer_elem_set_callback_private
0 snd_mixer_elem_set_callback
0 snd_mixer_poll_descriptors
0 snd_mixer_handle_events
0 snd_mixer_free
0 snd_pcm_sw_params_set_start_mode
0 snd_hwdep_dsp_status
0 snd_seq_create_queue
0 snd_pcm_dump_setup
0 snd_ctl_card_info_get_components
0 snd_pcm_hw_params_set_channels_max
0 snd_ctl_elem_value_get_iec958
0 snd_seq_system_info_malloc
0 _snd_pcm_rate_open
0 snd_output_puts
0 snd_pcm_dump_hw_setup
0 snd_seq_queue_info_get_owner
0 snd_seq_get_queue_info
0 snd_pcm_stream_name
0 snd_pcm_format_silence
0 snd_pcm_xrun_mode_name
0 snd_pcm_format_value
0 snd_pcm_format_unsigned
0 snd_pcm_format_silence_32
0 snd_pcm_format_mask_any
0 snd_pcm_format_little_endian
0 snd_ctl_elem_id_sizeof
0 snd_pcm_format_mask_set
0 snd_pcm_format_mask_reset
0 snd_pcm_format_mask_empty
0 snd_timer_id_copy
0 snd_pcm_access_mask_none
0 snd_instr_header_get_cmd
0 snd_pcm_access_mask_free
0 snd_pcm_adpcm_open
0 snd_ctl_event_elem_get_id
0 snd_pcm_access_mask_set
0 snd_output_vprintf
0 snd_rawmidi_drop
0 snd_output_putc
0 snd_seq_queue_info_set_name
0 snd_pcm_access_mask_copy
0 snd_pcm_access_mask_any
0 snd_pcm_copy_open
0 snd_pcm_bytes_to_samples
0 _snd_pcm_adpcm_open
0 snd_seq_client_info_get_broadcast_filter
0 snd_pcm_dmix_open
0 snd_ctl_elem_value_get_byte
0 snd_pcm_alaw_open
0 snd_output_stdio_open
0 snd_rawmidi_params_malloc
0 snd_pcm_areas_copy
0 snd_pcm_subformat_mask_sizeof
0 snd_hwdep_dsp_image_get_name
0 snd_midi_event_reset_decode
0 snd_mixer_set_callback
0 snd_instr_iwffff_close
0 snd_instr_simple_convert_from_stream
0 _snd_pcm_dsnoop_open
0 snd_config_make_real
0 snd_instr_header_set_len
0 snd_instr_header_set_id
0 snd_instr_header_set_format
0 snd_instr_header_sizeof
0 snd_instr_header_set_type
0 snd_midi_event_resize_buffer
0 snd_instr_iwffff_open_rom_file
0 snd_instr_iwffff_open_rom
0 snd_pcm_hook_remove
0 snd_instr_simple_free
0 snd_timer_info_copy
0 snd_lib_error
0 snd_rawmidi_params
0 snd_instr_iwffff_convert_to_stream
0 snd_timer_info_is_slave
0 snd_seq_query_subscribe_free
0 snd_instr_iwffff_free
0 snd_config_set_ascii
0 snd_pcm_direct_shm_discard
0 snd_pcm_direct_check_interleave
0 snd_pcm_plugin_undo_read_generic
0 snd_pcm_direct_server_discard
0 snd_pcm_hw_param_get
0 snd_pcm_plugin_undo_write_generic
0 __snd_pcm_forward
0 snd_rawmidi_hw_ops
0 __snd_pcm_sw_params_get_tstamp_mode
0 snd_pcm_direct_initialize_slave
0 snd_pcm_hw_param_refine_multiple
0 snd_interval_refine_last
0 snd_pcm_direct_hw_refine
0 snd_pcm_direct_poll_revents
0 snd_pcm_direct_server_create
0 _snd_hwdep_hw_open
0 snd_interval_mulkdiv
0 snd_rawmidi_virtual_open
0 snd_pcm_hw_param_set_max
0 snd_pcm_hw_param_set_mask
0 _snd_func_private_card_driver_dlsym_config_evaluate_001
0 __snd_hwdep_hw_open_dlsym_hwdep_001
0 snd_pcm_direct_semaphore_create_or_connect
0 snd_pcm_direct_client_discard
0 snd_rawmidi_virtual_ops
0 _snd_timer_query_hw_open
0 __snd_pcm_multi_open_dlsym_pcm_001
0 __snd_pcm_hooks_open_dlsym_pcm_001
0 snd_pcm_direct_shm_create_or_connect
0 __snd_pcm_hook_ctl_elems_install_dlsym_pcm_001
0 snd_pcm_hw_param_set_last
0 snd_atomic_read_wait
0 snd_pcm_hw_param_set_near
0 snd_pcm_slave_conf
0 _snd_pcm_boundary
0 __snd_pcm_adpcm_open_dlsym_pcm_001
0 snd_pcm_direct_initialize_poll_fd
0 __snd_ctl_shm_open_dlsym_control_001
0 __snd_timer_params_set_filter
0 snd_pcm_open_slave
0 __snd_pcm_asym_open_dlsym_pcm_001
0 _snd_pcm_hw_param_set_max
0 __snd_pcm_alaw_open_dlsym_pcm_001
0 __snd_ctl_hw_open_dlsym_control_001
0 snd_interval_add
0 snd_pcm_hw_param_get_min
0 snd_interval_div
0 snd_hwdep_hw_open
0 snd_timer_query_hw_open
0 snd_pcm_adpcm_decode
0 __snd_pcm_sw_params_get_silence_threshold
0 snd_pcm_new
0 _snd_pcm_mmap_hw_ptr
0 __snd_pcm_copy_open_dlsym_pcm_001
0 snd_pcm_direct_async
0 __snd_pcm_hw_open_dlsym_pcm_001
0 __snd_timer_query_info
0 snd_pcm_plugin_fast_ops
0 snd_pcm_direct_client_connect
0 __snd_pcm_shm_open_dlsym_pcm_001
0 snd_pcm_plug_open
0 snd_pcm_areas_from_buf
0 _snd_pcm_hw_param_set_interval
0 snd_pcm_linear_get_index
0 snd_pcm_areas_from_bufs
0 snd_pcm_async
0 __snd_pcm_dmix_open_dlsym_pcm_001
0 snd_pcm_read_mmap
0 snd_pcm_channel_info_shm
0 _snd_rawmidi_virtual_open
0 _snd_ctl_poll_descriptor
0 __snd_timer_query_status
0 __snd_timer_query_params
0 _snd_ctl_hw_open
0 _snd_config_hook_load_dlsym_config_hook_001
0 snd_pcm_direct_mmap
0 snd_pcm_set_appl_ptr
0 __snd_timer_query_hw_open_dlsym_timer_query_001
0 snd_timer_hw_open
0 _snd_func_private_string_dlsym_config_evaluate_001
0 _snd_func_datadir_dlsym_config_evaluate_001
0 __snd_pcm_mulaw_open_dlsym_pcm_001
0 _snd_func_private_pcm_subdevice_dlsym_config_evaluate_001
0 _snd_func_pcm_id_dlsym_config_evaluate_001
0 __snd_pcm_null_open_dlsym_pcm_001
0 __snd_pcm_plug_open_dlsym_pcm_001
0 snd_shm_area_destructor
0 snd_pcm_linear_get32_index
0 snd_pcm_direct_info
0 __snd_pcm_sw_params_get_silence_size
0 __snd_pcm_sw_params_get_start_threshold
0 __snd_pcm_sw_params_get_sleep_min
0 __snd_pcm_share_open_dlsym_pcm_001
0 __snd_timer_params_get_exclusive
0 __snd_pcm_sw_params_get_avail_min
0 __snd_pcm_status_get_trigger_htstamp
0 __snd_timer_params_set_exclusive
0 __snd_timer_hw_open_dlsym_timer_001
0 snd_pcm_mulaw_encode
0 snd_pcm_alaw_decode
0 snd_pcm_hw_param_always_eq
0 snd_pcm_hw_refine
0 __snd_pcm_sw_params_get_stop_threshold
0 __snd_rawmidi_hw_open_dlsym_rawmidi_001
0 snd_pcm_conf_generic_id
0 snd_pcm_hw_param_never_eq
0 _snd_seq_hw_open
0 snd_pcm_hw_param_get_max
0 snd_pcm_hw_param_name
0 snd_pcm_mmap_appl_forward
0 _snd_pcm_hw_params_refine
0 _snd_pcm_hw_param_refine
0 snd_pcm_hw_param_get_mask
0 _snd_pcm_hw_param_set_minmax
0 snd_pcm_hw_param_set_integer
0 snd_pcm_hw_param_set
0 snd_pcm_set_hw_ptr
0 snd_pcm_hw_param_set_first
0 _snd_rawmidi_hw_open
0 _snd_pcm_plug_open
0 __snd_seq_hw_open_dlsym_seq_001
0 snd_pcm_direct_sw_params
0 _snd_pcm_poll_descriptor
0 __snd_pcm_ladspa_open_dlsym_pcm_001
0 _snd_func_getenv_dlsym_config_evaluate_001
0 __snd_pcm_hw_params_set_access_first
0 snd_pcm_hw_param_dump
0 __snd_pcm_meter_open_dlsym_pcm_001
0 _snd_func_refer_dlsym_config_evaluate_001
0 snd_pcm_read_areas
0 __snd_pcm_route_open_dlsym_pcm_001
0 __snd_pcm_iec958_open_dlsym_pcm_001
0 __snd_pcm_dshare_open_dlsym_pcm_001
0 snd_pcm_adpcm_encode
0 _snd_pcm_hw_params_any
0 _snd_pcm_hw_param_set_min
0 _snd_pcm_hw_param_set_empty
0 _snd_pcm_hw_param_set
0 _snd_pcm_hw_param_set_mask
0 snd_pcm_hw_param_empty
0 snd_pcm_plugin_init
0 _snd_func_igetenv_dlsym_config_evaluate_001
0 snd_is_local
0 _snd_config_hook_load_for_all_cards_dlsym_config_hook_001
0 snd_interval_refine_min
0 snd_pcm_munmap
0 snd_interval_refine_set
0 snd_pcm_hw_param_set_minmax
0 snd_rawmidi_hw_open
0 snd_receive_fd
0 snd_pcm_direct_parse_bindings
0 snd_ctl_hw_ops
0 snd_ctl_hw_open
0 __snd_pcm_rate_open_dlsym_pcm_001
0 __snd_ctl_elem_info_get_dimensions
0 _snd_ctl_shm_open
0 snd_interval_refine_max
0 snd_pcm_meter_open
0 __snd_rawmidi_virtual_open_dlsym_rawmidi_001
0 snd_pcm_hw_param_get_interval
0 snd_pcm_write_areas
0 snd_pcm_direct_hw_params
0 snd_ctl_new
0 _snd_func_card_id_dlsym_config_evaluate_001
0 _snd_func_card_driver_dlsym_config_evaluate_001
0 snd_pcm_link_hw_ptr
0 snd_pcm_unlink_hw_ptr
0 __snd_ctl_elem_info_get_dimension
0 __snd_pcm_sw_params_get_xfer_align
0 snd_pcm_linear_convert_index
0 snd_pcm_direct_hw_free
0 __snd_timer_params_get_filter
0 snd_interval_sub
0 snd_ctl_async
0 _snd_timer_hw_open
0 snd_pcm_linear_getput
0 snd_pcm_unlink_appl_ptr
0 snd_pcm_linear_put_index
0 snd_pcm_direct_channel_info
0 snd_seq_create_event
0 __snd_pcm_status_get_htstamp
0 snd_send_fd
0 snd_pcm_linear_put32_index
0 snd_interval_muldiv
0 snd_pcm_write_mmap
0 snd_pcm_linear_convert
0 snd_pcm_hw_fast_tstamp
0 snd_pcm_hw_refine_soft
0 snd_pcm_hw_param_refine_near
0 snd_pcm_mmap_hw_forward
0 snd_pcm_direct_munmap
0 snd_determine_driver
0 snd_interval_refine
0 snd_pcm_free
0 snd_pcm_link_appl_ptr
0 snd_pcm_hw_params_slave
0 snd_pcm_hw_param_set_min
0 snd_pcm_hw_refine_slave
0 snd_pcm_mmap_hw_backward
0 snd_interval_refine_first
0 snd_interval_mul
0 snd_pcm_hw_param_any
0 snd_pcm_direct_nonblock
0 snd_func_private_pcm_subdevice
0 snd_func_pcm_id
0 __snd_pcm_type_name
0 snd_pcm_mulaw_decode
0 snd_interval_print
0 __snd_pcm_linear_open_dlsym_pcm_001
0 snd_interval_muldivk
0 snd_pcm_alaw_encode
0 __snd_pcm_dsnoop_open_dlsym_pcm_001
0 snd_seq_hw_open
0 _snd_func_concat_dlsym_config_evaluate_001
0 _snd_pcm_meter_open
0 snd_seq_hw_ops
0 snd_ctl_shm_ops
0 snd_pcm_mmap
0 __snd_pcm_file_open_dlsym_pcm_001
0 snd_pcm_mmap_appl_backward
0 snd_ctl_shm_open
0 snd_timer_async
0 snd_pcm_lfloat_open
0 _snd_pcm_lfloat_open
0 snd_pcm_lfloat_convert_integer_float
0 snd_pcm_lfloat_convert_float_integer
0 snd_pcm_lfloat_put_s32_index
0 __snd_pcm_lfloat_open_dlsym_pcm_001
0 snd_pcm_lfloat_get_s32_index
0 snd_ctl_elem_add_integer64
0 snd_pcm_softvol_open
0 _snd_pcm_softvol_open
0 snd_ctl_elem_add_integer
0 snd_ctl_elem_add_iec958
0 snd_ctl_elem_info_is_user
0 snd_ctl_elem_add_boolean
0 __snd_pcm_softvol_open_dlsym_pcm_001
0 snd_timer_ginfo_get_name
0 snd_timer_ginfo_get_resolution
0 snd_pcm_ioplug_set_param_minmax
0 snd_timer_ginfo_get_resolution_max
0 snd_pcm_ioplug_reinit_status
0 snd_async_handler_get_timer
0 snd_async_add_timer_handler
0 snd_pcm_ioplug_set_param_list
0 snd_timer_ginfo_get_card
0 snd_pcm_ioplug_params_reset
0 snd_err_msg
0 snd_timer_ginfo_malloc
0 snd_timer_ginfo_get_tid
0 snd_timer_ginfo_copy
0 snd_timer_ginfo_get_clients
0 snd_pcm_hw_params_set_export_buffer
0 snd_pcm_ioplug_delete
0 snd_pcm_ioplug_mmap_areas
0 snd_timer_ginfo_get_id
0 snd_timer_ginfo_set_tid
0 snd_timer_ginfo_get_flags
0 snd_pcm_ioplug_create
0 snd_pcm_extplug_create
0 snd_pcm_extplug_params_reset
0 snd_timer_ginfo_sizeof
0 snd_pcm_extplug_delete
0 snd_pcm_extplug_set_param_minmax
0 snd_pcm_hw_params_get_rate_resample
0 snd_timer_ginfo_get_resolution_min
0 snd_pcm_extplug_set_slave_param_list
0 snd_names_list
0 snd_pcm_extplug_set_param_list
0 snd_names_list_free
0 snd_timer_ginfo_free
0 snd_pcm_hw_params_get_export_buffer
0 snd_pcm_parse_control_id
0 snd_pcm_extplug_set_slave_param_minmax
0 snd_pcm_generic_rewind
0 snd_pcm_generic_sw_params
0 snd_pcm_generic_start
0 snd_pcm_direct_set_timer_params
0 snd_dlobj_cache_add
0 snd_pcm_generic_link
0 snd_ext_parm_set_minmax
0 snd_pcm_generic_state
0 snd_pcm_generic_writei
0 snd_pcm_generic_mmap
0 snd_pcm_generic_async
0 snd_pcm_generic_info
0 snd_pcm_direct_clear_timer_queue
0 snd_pcm_generic_drain
0 snd_pcm_generic_drop
0 snd_pcm_generic_close
0 snd_pcm_generic_hw_free
0 snd_pcm_generic_nonblock
0 snd_pcm_generic_munmap
0 snd_pcm_generic_hw_refine
0 snd_pcm_generic_hw_params
0 snd_pcm_generic_forward
0 snd_pcm_generic_writen
0 snd_ext_parm_clear
0 snd_pcm_generic_readi
0 snd_ext_parm_mask_refine
0 snd_dlobj_cache_cleanup
0 snd_dlobj_cache_lookup
0 snd_pcm_generic_channel_info
0 snd_pcm_generic_poll_descriptors
0 snd_pcm_generic_hwsync
0 snd_pcm_generic_prepare
0 snd_pcm_generic_avail_update
0 snd_ext_parm_set_list
0 snd_pcm_generic_poll_descriptors_count
0 snd_pcm_generic_status
0 snd_pcm_generic_readn
0 snd_pcm_generic_resume
0 snd_pcm_generic_pause
0 snd_interval_list
0 snd_pcm_generic_delay
0 snd_ext_parm_interval_refine
0 snd_pcm_generic_reset
0 snd_pcm_generic_unlink
0 snd_pcm_generic_poll_revents
0 snd_pcm_generic_mmap_commit
0 snd_pcm_direct_timer_stop
0 snd_pcm_wait_nocheck
0 snd_mixer_sbasic_get_private
0 snd_mixer_class_get_mixer
0 snd_mixer_get_hctl
0 snd_mixer_class_set_private_free
0 snd_mixer_class_copy
0 snd_mixer_elem_free
0 snd_mixer_simple_basic_register
0 snd_mixer_class_get_private
0 snd_mixer_selem_set_playback_dB_all
0 snd_mixer_class_get_event
0 snd_mixer_selem_is_enum_capture
0 snd_mixer_sbasic_set_private
0 snd_mixer_class_free
0 snd_mixer_sbasic_set_private_free
0 snd_mixer_selem_set_playback_dB
0 snd_mixer_elem_get_private
0 snd_mixer_class_sizeof
0 snd_mixer_elem_new
0 snd_mixer_selem_get_capture_dB_range
0 snd_mixer_class_get_compare
0 snd_mixer_selem_get_playback_dB_range
0 snd_mixer_sbasic_info
0 snd_mixer_class_set_event
0 snd_mixer_selem_get_capture_dB
0 snd_mixer_class_set_compare
0 snd_mixer_simple_none_register
0 snd_mixer_selem_set_capture_dB_all
0 snd_mixer_selem_is_enum_playback
0 snd_ctl_ext_delete
0 snd_mixer_selem_set_capture_dB
0 snd_mixer_class_set_private
0 snd_mixer_detach_hctl
0 snd_mixer_attach_hctl
0 snd_mixer_class_malloc
0 snd_mixer_selem_get_playback_dB
0 snd_ctl_ext_create
0 snd_pcm_direct_resume
0 _snd_func_pcm_args_by_class_dlsym_config_evaluate_001
0 snd_func_pcm_args_by_class
0 snd_pcm_direct_open_secondary_client
0 snd_mixer_selem_compare
0 snd_pcm_recover
0 snd_pcm_set_params
0 snd_pcm_get_params
0 snd_pcm_direct_parse_open_conf
0 _snd_seq_open_lconf
0 snd_config_check_hop
0 snd_config_set_hop
0 snd_pcm_generic_link_fd
0 _snd_pcm_link_descriptors
0 snd_pcm_generic_link2
0 snd_pcm_rate_get_default_converter
0 snd_hctl_elem_tlv_read
0 snd_ctl_elem_tlv_write
0 snd_ctl_elem_tlv_command
0 snd_hctl_elem_tlv_write
0 snd_ctl_elem_info_is_tlv_commandable
0 snd_ctl_elem_info_is_tlv_writable
0 snd_ctl_elem_info_is_tlv_readable
0 snd_hctl_elem_tlv_command
0 snd_ctl_elem_tlv_read
0 _snd_pcm_rate_linear_open
0 snd_pcm_direct_initialize_secondary_slave
4
6
[alsa-devel] Some drivers don't create all necessary sysfs symlinks
by Lennart Poettering 30 Nov '07
by Lennart Poettering 30 Nov '07
30 Nov '07
Hi!
Apparently not all ALSA drivers set the "device" symlink
properly. This creates problems with HAL which then is unable to
manage permissions to those files properly. One example of such a
driver is EMU10K1X.
For more information, see:
https://bugzilla.redhat.com/show_bug.cgi?id=370821#c26
Also reported on the ALSA BTS:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3575
Lennart
--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
2
3
Hi All:
Im having problems while using mplayer 1.0 to play music based on alsa 1.0.15.
Im using an ARM9 system and montavista linux 2.6.18.
Here's what the problem is and what's modified in the mplayer.conf:
***************************************************************************************************************
/ $ mplayer /tmp/a.wav
MPlayer 1.0rc2-4.2.0 (C) 2000-2007 MPlayer Team
CPU: ARM
115 audio & 237 video codecs
Playing /tmp/a.wav.
Audio file file format detected.
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
[AO_ALSA] alsa-lib: conf.c:2699:(snd_config_hooks_call) Cannot open shared
library (null)
[AO_ALSA] alsa-lib: conf.c:3076:(snd_config_update_r) hooks failed,
removing configuration
[AO_ALSA] Playback open error: No such file or directory
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video
Exiting... (End of file)
*****************************************************************************************************************
/etc/mplayer/mplayer.conf
##################
# audio settings #
##################
# Specify default audio driver (see -ao help for a list).
ao=alsa
# Use SDL audio driver with the esd subdriver by default.
#ao = sdl:esd
# Specify the mixer device.
#mixer = /dev/mixer
# Resample the sound to 44100Hz with the lavcresample audio filter.
#af=lavcresample=44100
****************************************************************************************************************
Can anybody tell me what going wrong with this?
Thanks in advance!
semiyd
_________________________________________________________________
Connect to the next generation of MSN MessengerÂ
http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=…
2
1
30 Nov '07
Hello,
as I already reported on another email I'm having problems with my sound:
http://thread.gmane.org/gmane.linux.alsa.devel/49412
My motherboard is PCCHIPS A13G+.
The sound hardware of my Mobo is in the NVIDIA MCP61S Single chipset.
This chipset consists of: GeForce(R) 6100 GPU and MCP nForce(R) 405
Codec: Realtek ALC660-VD
When looking at the soundcard matrix for Nvidia there are 2 options listed:
http://www.alsa-project.org/main/index.php/Matrix:Vendor-Nvidia
AC97 nForce-1 - nForce-4
HDA nForce-430 and later
Since my chipset is nForce 405 should I select the first option
AC97? But everyone seems to advise me to use the HDA option.
When I look at the details for HDA I see only "Intel HDA driver" and
nothing about which particular chipsets are supported.
On the AC97 option there is a list of chips but all are from Intel and
none from Nvidia.
So I'm confused. Which soundcard is the correct one for me? Is my
particular chipset supported at all?
Thanks!
2
4
Hello,
I am using alsa-lib 1.0.15 on an embedded PowerPC board. I can play
audio with aplay, but gstreamer fails, so I built and ran the 'pcm' app
in alsa-lib-1.0.15/test/. pcm gives:
# export LIBASOUND_DEBUG=1
# ./pcm
Playback device is plughw:0,0
Stream parameters are 44100Hz, S16_BE, 1 channels
Sine wave rate is 440.0000Hz
Using transfer method: write
ALSA lib pcm_plug.c:773:(snd_pcm_plug_hw_refine_schange) Unable to find
an usable access for 'plughw:0,0'
ALSA ERROR hw_params: set (FORMAT)
value = S16_BE : Invalid argument
ACCESS: RW_INTERLEAVED
FORMAT: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE
S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE
SUBFORMAT: STD
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: [25000 300000]
PERIOD_SIZE: [100 1288490189)
PERIOD_BYTES: [50 4294967295)
PERIODS: (0 12884902)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [100 1288490188]
BUFFER_BYTES: [50 4294967295]
TICK_TIME: 4000
Sample format not available for playback: Invalid argument
Setting of hwparams failed: Invalid argument
Is the driver saying it can do format S16_BE somewhere, but fails when
the format is actually set? How can I dig deeper on this?
Thanks in advance for any ideas!
,
John
1
1