From: bugtrack@alsa-project.org
To: alsa-devel@alsa-project.org
Subject: [ALSA - lib 0001971]: Some elements incorrectly have capture flags
Date: Fri, 7 Apr 2006 12:05:57 +0200 [thread overview]
Message-ID: <758a392cec0158d9ffa612d5d6298870@bugtrack.alsa-project.org> (raw)
A NOTE has been added to this issue.
======================================================================
<https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1971>
======================================================================
Reported By: pzad
Assigned To:
======================================================================
Project: ALSA - lib
Issue ID: 1971
Category: simple mixer
Reproducibility: always
Severity: minor
Priority: normal
Status: new
======================================================================
Date Submitted: 03-28-2006 12:16 CEST
Last Modified: 04-07-2006 12:05 CEST
======================================================================
Summary: Some elements incorrectly have capture flags
Description:
Some elemnts have capture flags even they have nothing to do with capture.
This will duplicate control in alsamixer - view ALL.
On VIA8233A + ALC650:
Simple mixer control '3D Control - Center',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 1 [7%]
Simple mixer control '3D Control - Depth',0
Capabilities: volume volume-joined
Playback channels: Mono
Capture channels: Mono
Limits: 0 - 15
Mono: 0 [0%]
On Audigy 1:
Simple mixer control 'Bass',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 40
Front Left: 23 [58%]
Front Right: 23 [58%]
Simple mixer control 'Treble',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 40
Front Left: 27 [68%]
Front Right: 27 [68%]
======================================================================
----------------------------------------------------------------------
Raymond - 04-06-06 09:45
----------------------------------------------------------------------
It's easy to implement a switch which route either one of the following
1) Front Playback Channels
2) Capture Channels
3) Rear Playback Channels (Only for au8810/au8830 with 4 channels codec)
to the 10-bands stereo equalizer.
static void
vortex_connect_codecplay(vortex_t * vortex, int en, unsigned char
mixers[])
{
#ifdef CHIP_AU8820
vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_CODECOUT(0));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_CODECOUT(1));
#else
switch(vortex->eq_route){
case 0:
// Connect front channels through EQ.
vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_EQIN(0));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_EQIN(1));
/* Lower volume, since EQ has some gain. */
vortex_mix_setvolumebyte(vortex, mixers[0], 0);
vortex_mix_setvolumebyte(vortex, mixers[1], 0);
vortex_route(vortex, en, 0x11, ADB_EQOUT(0), ADB_CODECOUT(0));
vortex_route(vortex, en, 0x11, ADB_EQOUT(1), ADB_CODECOUT(1));
/* Check if reg 0x28 has SDAC bit set. */
if (VORTEX_IS_QUAD(vortex)) {
/* Rear channel. Note: ADB_CODECOUT(0+2) and (1+2) is for AC97 modem
*/
vortex_connection_mix_adb(vortex, en, 0x11, mixers[2],
ADB_CODECOUT(4));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[3],
ADB_CODECOUT(5));
}
break;
case 1:
vortex_connection_mix_adb(vortex, en, 0x11, mixers[0],
ADB_CODECOUT(0));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[1],
ADB_CODECOUT(1));
if (VORTEX_IS_QUAD(vortex)) {
vortex_connection_mix_adb(vortex, en, 0x11, mixers[2],
ADB_CODECOUT(4));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[3],
ADB_CODECOUT(5));
}
break;
case 2:
// Connect front channels
vortex_connection_mix_adb(vortex, en, 0x11, mixers[0],
ADB_CODECOUT(0));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[1],
ADB_CODECOUT(1));
// Connect rear channels through EQ.
vortex_connection_mix_adb(vortex, en, 0x11, mixers[2], ADB_EQIN(0));
vortex_connection_mix_adb(vortex, en, 0x11, mixers[3], ADB_EQIN(1));
/* Lower volume, since EQ has some gain. */
vortex_mix_setvolumebyte(vortex, mixers[2], 0);
vortex_mix_setvolumebyte(vortex, mixers[3], 0);
vortex_route(vortex, en, 0x11, ADB_EQOUT(0), ADB_CODECOUT(4));
vortex_route(vortex, en, 0x11, ADB_EQOUT(1), ADB_CODECOUT(5));
break;
};
#endif
}
static void
vortex_connect_codecrec(vortex_t * vortex, int en, unsigned char mixin0,
unsigned char mixin1)
{
/*
Enable: 0x1, 0x1
Channel: 0x11, 0x11
ADB Source address: 0x48, 0x49
Destination Asp4Topology_0x9c,0x98
*/
if ( vortex->eq_route == 1 ) {
// Connect capture channels through EQ.
vortex_connection_mix_adb(vortex, en, 0x11, ADB_CODECIN(0),
ADB_EQIN(0));
vortex_connection_mix_adb(vortex, en, 0x11, ADB_CODECIN(1),
ADB_EQIN(1));
/* Lower volume, since EQ has some gain. */
vortex_mix_setvolumebyte(vortex, mixin0, 0);
vortex_mix_setvolumebyte(vortex, mixin1, 0);
vortex_route(vortex, en, 0x11, ADB_EQOUT(0), mixin0);
vortex_route(vortex, en, 0x11, ADB_EQOUT(1), mixin1));
}
else {
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(0), mixin0);
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(1), mixin1);
};
}
It's OK to implement eq_route as a module switch since we can change the
name of the kcontrol when the driver is loaded.
Is it possible to implmenet eq_route as a kcontrol which allow the user to
change the eq_route dynamically after the driver is loaded ?
Will the alsamixer able to detect this change ?
Please note the that above code is not complete, we still need to adjust
the gain of the hardware mixers when a substream is open.
----------------------------------------------------------------------
Raymond - 04-07-06 12:05
----------------------------------------------------------------------
Please note that the above code is wrong.
You need the following code to route capture channel to equalizer.
static void
vortex_connect_codecrec(vortex_t * vortex, int en, unsigned char mixin0,
unsigned char mixin1)
{
/*
Enable: 0x1, 0x1
Channel: 0x11, 0x11
ADB Source address: 0x48, 0x49
Destination Asp4Topology_0x9c,0x98
*/
#ifndef CHIP_AU8820
if ( vortex->eq_route == 1 ) {
/* connect capture channels to EQ */
vortex_route(vortex, en, 0x11, ADB_CODECIN(0), ADB_EQIN(0));
vortex_route(vortex, en, 0x11, ADB_CODECIN(1), ADB_EQIN(1));
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_EQOUT(0), mixin0);
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_EQOUT(1), mixin1);
/* Lower volume, since EQ has some gain. */
vortex_mix_setvolumebyte(vortex, mixin0, 0);
vortex_mix_setvolumebyte(vortex, mixin1, 0);
}
else {
#endif
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(0), mixin0);
vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(1), mixin1);
#ifndef CHIP_AU8820
};
#endif
}
Issue History
Date Modified Username Field Change
======================================================================
03-28-06 12:16 pzad New Issue
03-30-06 11:01 Raymond Note Added: 0009028
03-30-06 12:50 pzad Note Added: 0009031
03-30-06 13:13 pzad Note Added: 0009032
03-30-06 13:22 Raymond Note Added: 0009033
03-30-06 13:29 Raymond Note Edited: 0009033
03-30-06 13:41 Raymond Note Edited: 0009033
03-31-06 04:36 Raymond Note Added: 0009041
03-31-06 04:50 Raymond Note Edited: 0009041
04-01-06 01:13 Raymond Note Edited: 0009033
04-03-06 19:08 Raymond Note Added: 0009103
04-05-06 18:42 Raymond Note Added: 0009121
04-05-06 18:46 Raymond Note Edited: 0009121
04-05-06 18:50 Raymond Note Edited: 0009121
04-06-06 09:11 Raymond Note Deleted: 0009103
04-06-06 09:44 Raymond Note Added: 0009124
04-06-06 09:45 Raymond Note Edited: 0009124
04-07-06 12:05 Raymond Note Added: 0009136
======================================================================
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
next reply other threads:[~2006-04-07 10:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-07 10:05 bugtrack [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-07-24 14:44 [ALSA - lib 0001971]: Some elements incorrectly have capture flags bugtrack
2006-07-24 1:00 bugtrack
2006-07-23 2:19 bugtrack
2006-07-22 21:01 bugtrack
2006-07-22 3:25 bugtrack
2006-06-30 16:20 bugtrack
2006-04-14 4:21 bugtrack
2006-04-13 18:26 bugtrack
2006-04-13 9:32 bugtrack
2006-04-06 7:44 bugtrack
2006-04-05 16:42 bugtrack
2006-04-03 17:08 bugtrack
2006-03-31 2:36 bugtrack
2006-03-30 11:22 bugtrack
2006-03-30 11:13 bugtrack
2006-03-30 10:50 bugtrack
2006-03-30 9:01 bugtrack
2006-03-28 10:16 bugtrack
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=758a392cec0158d9ffa612d5d6298870@bugtrack.alsa-project.org \
--to=bugtrack@alsa-project.org \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.