OSDN Git Service
Takashi Iwai [Wed, 14 Dec 2005 13:14:45 +0000 (13:14 +0000)]
Make dmix/dsnoop as default PCM for ICE1724
Make dmix/dsnoop as default PCM for ICE1724.
Jaroslav Kysela [Tue, 13 Dec 2005 14:25:13 +0000 (14:25 +0000)]
ladspa plugin - SIGSEGV fix when label is not specified
Jaroslav Kysela [Tue, 13 Dec 2005 14:08:58 +0000 (14:08 +0000)]
big ALSA LADSPA plugin rewrite for multiple channel LADSPA plugins
This is major rewrite of the LADSPA plugin to satisfy requirements for
the LADSPA plugins with multiple audio inputs and / or outputs.
James Courtier-Dutton [Tue, 13 Dec 2005 10:42:32 +0000 (10:42 +0000)]
snd-ca0106 Fixed SPDIF output.
Example failure error message before fix:
speaker-test 0.0.8
Playback device is spdif
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
ALSA lib setup.c:549:(add_elem) Cannot obtain info for CTL elem (MIXER,'SPDIF Front',0,0,0): No such file or directory
Playback open error: -2,No such file or directory
Jaroslav Kysela [Tue, 13 Dec 2005 07:51:52 +0000 (07:51 +0000)]
release 1.0.11rc1
Patch-level: Merged
Clemens Ladisch [Mon, 12 Dec 2005 09:36:02 +0000 (09:36 +0000)]
seq: reorganize sequencer client numbers
Reduce the maximum possible number of global clients to 16 to make
more numbers available for card clients, and allow dynamically allocated
card client numbers to share the same range as application client
numbers to make sure that all 32 cards can be used at the same time.
Jaroslav Kysela [Sun, 11 Dec 2005 08:24:13 +0000 (08:24 +0000)]
pcm dump() routines update: use spaces to indent texts
Jaroslav Kysela [Mon, 5 Dec 2005 15:20:28 +0000 (15:20 +0000)]
pcm_ladspa plugin - more verbose output
Added more verbose output for dump() callback inspired with bug#1554 .
Jaroslav Kysela [Mon, 5 Dec 2005 14:27:28 +0000 (14:27 +0000)]
Fixed compilation when HAVE_WORDEXP_H is not defined
Jaroslav Kysela [Sun, 4 Dec 2005 09:19:11 +0000 (09:19 +0000)]
direct plugins - fixed ipc_gid initialization when gid specified as number
Takashi Iwai [Fri, 2 Dec 2005 13:44:13 +0000 (13:44 +0000)]
Fix a missing line in PMacToonie.conf
Add a missing line "playback.pcm {" in PMacToonie.conf (bug#1594).
Takashi Iwai [Fri, 2 Dec 2005 13:39:24 +0000 (13:39 +0000)]
Fix the handling of stereo capture source
Patch from bug#1610
The simple mixer doesn't handle the stereo "Capture Source" properly,
wrongly set cswitch-joined.
Takashi Iwai [Wed, 30 Nov 2005 12:07:06 +0000 (12:07 +0000)]
Add description for new configure options
Add description for new configure options.
Also fixed some typos.
Takashi Iwai [Wed, 30 Nov 2005 11:39:21 +0000 (11:39 +0000)]
Minor optimization on mmap
Minor optimization on mmap.
Takashi Iwai [Wed, 30 Nov 2005 11:38:24 +0000 (11:38 +0000)]
Allow partial build with selected components
Add --enable-* and --with-pcm-plugins configure options for partial builds.
User can choose the core components (pcm, mixer, rawmidi, hwdep, seq, instr)
via --enable-xxx or --disable-xxx option. As default, all components are
enabled.
The PCM plugins to build can be selected via --with-pcm-plugins option.
For example, to build only rate and linear plugin, pass
--with-pcm-plugins=rate,linear
Passing "all" will select all plugins (it's the default value).
The plug plugin will select linear and copy plugins automatically.
The other auto conversions of plug plugin are enabled only when the
corresponding plugin is selected.
Takashi Iwai [Wed, 30 Nov 2005 11:31:18 +0000 (11:31 +0000)]
Move snd_is_local() to socket.c
Move snd_is_local() to socket.c since it's used in control_shm, too.
Takashi Iwai [Tue, 29 Nov 2005 15:25:56 +0000 (15:25 +0000)]
Add a workaround for systems without wordexp
Add a workaround for systems without wordexp (e.g. ulibc).
Takashi Iwai [Tue, 29 Nov 2005 15:20:07 +0000 (15:20 +0000)]
Use snd_user_file() in pcm_ladpsa.c
Use snd_user_file() in pcm_ladpsa.c to get rid of wordexp.
Takashi Iwai [Tue, 29 Nov 2005 15:18:56 +0000 (15:18 +0000)]
Check wordexp.h for ulibc
Check wordexp.h for ulibc.
Jaroslav Kysela [Mon, 28 Nov 2005 12:02:55 +0000 (12:02 +0000)]
Remove superfluous wordexp.h inclusion
Takashi Iwai [Wed, 23 Nov 2005 16:46:39 +0000 (16:46 +0000)]
Fix segfault of iec958 plugin with preamble
Fix segfault of iec958 plugin with preamble (bug#1571).
Takashi Iwai [Wed, 23 Nov 2005 16:35:56 +0000 (16:35 +0000)]
Remove code from check_PROGRAMS
Remove code from check_PROGRAMS (bug#1579).
Takashi Iwai [Mon, 21 Nov 2005 10:51:43 +0000 (10:51 +0000)]
Abort from snd_pcm_dshare_drain in XRUN state
Fixed the hang-up in snd_pcm_dshare_drain() when the state is XRUN.
Takashi Iwai [Mon, 21 Nov 2005 10:48:52 +0000 (10:48 +0000)]
Fix compile errors/warnings
Fix compile errors/warnings.
omixer is removed since ordinary_mixer isn't supported any more.
Takashi Iwai [Mon, 21 Nov 2005 10:47:42 +0000 (10:47 +0000)]
abort snd_pcm_dmix_drain when state is SND_PCM_STATE_XRU
From: Sascha Sommer <saschasommer@freenet.de>
this is a fix for bug
0001559.
Unlike my first guesses the real problem is not in the kernel driver but in
alsa-lib. Whenever the current dmix status is xrun and snd_pcm_dmix_drain
gets called the process will hang forever in the poll function. The reason is
that poll gets called even though the timer already stopped.
As described in the bugtracking system this bug was not noticable with alsa
versions that used the old IOCTLS because the SNDRV_TIMER_IOCTL_STOP ioctl
never reached the timer kernel module.
Attached patch fixes this problem for alsa-lib 1.0.10 by simply calling
snd_pcm_dmix_drop when snd_pcm_dmix_drain gets called in the state
SND_PCM_STATE_XRUN.
Clemens Ladisch [Sun, 20 Nov 2005 14:11:09 +0000 (14:11 +0000)]
fix compilation with gcc 2
Fix compilation with gcc 2.* by removing a superfluous variable definition.
Clemens Ladisch [Sun, 20 Nov 2005 14:09:45 +0000 (14:09 +0000)]
remove SND_SEQ_CLIENT_{DUMMY,OSS} symbols
The SND_SEQ_CLIENT_{DUMMY,OSS} are private to the kernel and should
never have been put into the public API header.
Takashi Iwai [Fri, 18 Nov 2005 16:01:39 +0000 (16:01 +0000)]
Fix free of uninitialized pointer
Fix free of uninitialized pointer (bug#1576).
Takashi Iwai [Thu, 17 Nov 2005 12:08:32 +0000 (12:08 +0000)]
Fix generation of IEC958 subframes
From: Nicolas Boullis <nboullis@debian.org>
While working on an ALSA driver for the audio part of em8300-based MPEG
decoder boards (Sigma Designs' Hollywood+ boards and Creative Labs' DXR3
boards), I think I discovered a bug in the code that generates IEC958
subframes from linear samples (iec958 plugin): M and W preambles are
swapped, and B preambles should only be used on even subframes. The
attached patch fixes this issue.
Jaroslav Kysela [Tue, 15 Nov 2005 13:44:27 +0000 (13:44 +0000)]
release 1.0.10
Patch-level: Merged
Jaroslav Kysela [Mon, 14 Nov 2005 10:18:22 +0000 (10:18 +0000)]
control - fixed crash when dynamic library is not present
See bug#1544.
Jaroslav Kysela [Mon, 14 Nov 2005 09:50:29 +0000 (09:50 +0000)]
pcm_ladspa - fix locale issues
See bug#1553 for more details.
Jaroslav Kysela [Fri, 4 Nov 2005 10:19:03 +0000 (10:19 +0000)]
release 1.0.10rc3
Patch-level: Merged
Jaroslav Kysela [Tue, 1 Nov 2005 13:35:52 +0000 (13:35 +0000)]
direct pcm plugins - fixed dump output name for dshare and dsnoop
Takashi Iwai [Thu, 27 Oct 2005 16:58:40 +0000 (16:58 +0000)]
Fix channel_info callback of plugins
Fixed channel_info callback of plugins with different src/dest sizes.
Clemens Ladisch [Mon, 17 Oct 2005 16:10:16 +0000 (16:10 +0000)]
file plugin: fix various bugs
Initialize wbuf_used_bytes, adjust appl_ptr in the rewind and forward
callbacks, and adjust the offset when a data block straddles the
boundary of the wbuf buffer.
Clemens Ladisch [Wed, 12 Oct 2005 16:08:53 +0000 (16:08 +0000)]
fix doxygen warnings
Fix some wrong parameter names, hide some undocumented functions, and
correctly escape <> characters.
Takashi Iwai [Mon, 10 Oct 2005 15:17:58 +0000 (15:17 +0000)]
Fix mmap and channel_info of hook plugin
Fix mmap and channel_info of hook plugin.
mmap_shadow must be set for this plugin to work.
Jaroslav Kysela [Mon, 10 Oct 2005 12:49:51 +0000 (12:49 +0000)]
release 1.0.10rc2
Patch-level: Merged
Takashi Iwai [Thu, 29 Sep 2005 19:11:50 +0000 (19:11 +0000)]
Fix type-punning
Fixed compile warnings on the latest gcc about type-punning.
Removed unnecessary casts.
Lee Revell [Thu, 29 Sep 2005 12:32:41 +0000 (12:32 +0000)]
use dmix/dsnoop for default PCM on ca0106
This chipset lacks hardware mixing so needs to use dmix/dsnoop by
default.
Signed-off-by: Lee Revell <rlrevell@joe-job.com>
Sasha Khapyorsky [Thu, 29 Sep 2005 11:46:59 +0000 (11:46 +0000)]
New @func - pcm_args_by_class
New 'pcm_args_by_class' @func available for using in configuration files.
Returns card, device args list formatted as "CARD=N,DEV=M" by specified
pcm class and index.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Jaroslav Kysela [Wed, 21 Sep 2005 08:24:31 +0000 (08:24 +0000)]
fixed typo in comment
Jaroslav Kysela [Wed, 21 Sep 2005 08:23:28 +0000 (08:23 +0000)]
PCM add missing pcm types - DSNOOP, IEC958, IOPLUG, EXTPLUG
Jaroslav Kysela [Wed, 21 Sep 2005 08:20:18 +0000 (08:20 +0000)]
pcm - Add SOFTVOL pcm type
Takashi Iwai [Mon, 19 Sep 2005 12:40:02 +0000 (12:40 +0000)]
Fix endianess of PMac driver
Fix endianess of PMac driver for the latest change of dmix.
Now need to specify the (big-endian) format explicitly.
Takashi Iwai [Mon, 19 Sep 2005 12:38:14 +0000 (12:38 +0000)]
Use S16_LE as default for dmix
Use S16_LE as default format for dmix, instead of S16.
Takashi Iwai [Mon, 19 Sep 2005 12:37:08 +0000 (12:37 +0000)]
Fix endianess with dmix plugin
Allow different endianess with the generic dmix code, mainly for
big-endian architectures.
Mikael Magnusson [Tue, 13 Sep 2005 10:36:16 +0000 (10:36 +0000)]
emu10k1: Front channels via fxbus 8 and 9
Routes front channels via fxbus 8 and 9 instead of fxbus 0 and 1. This
makes the front and default devices independent of each other, and
"Wave Surround", "Wave Center" and "Wave LFE" don't have to be muted
during 5.1 playback.
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
Takashi Iwai [Mon, 12 Sep 2005 17:50:57 +0000 (17:50 +0000)]
Removed unused function
Clean up: Removed unused function.
Takashi Iwai [Mon, 12 Sep 2005 17:50:16 +0000 (17:50 +0000)]
Don't return error if chown() fails
Don't take serious even if chown() fails in the creation of direct server.
It happens if a user doesn't belong to the group specified in the config.
Takashi Iwai [Mon, 12 Sep 2005 10:44:53 +0000 (10:44 +0000)]
Add modem pcm definition for hda-intel driver
Add modem pcm definition for hda-intel driver.
Sasha Khapyorsky [Mon, 12 Sep 2005 10:37:22 +0000 (10:37 +0000)]
modem's pcm "two device" config
This defines two modem related pcm devices: "phoneline" is driver's pcm
reference, with "modem" the line will be "Hook-Off"ed automatically.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Sasha Khapyorsky [Mon, 12 Sep 2005 10:35:07 +0000 (10:35 +0000)]
fix segfault then hooks list is empty
This fix prevents segfaulting then hooks list is empty.
Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
Jaroslav Kysela [Thu, 8 Sep 2005 06:48:30 +0000 (06:48 +0000)]
direct plugins - change group according ipc_gid for the socket file
This patch fixes problem when ipc_perm are 0660 and you want to share dmix
with more users in the specified group.
Jaroslav Kysela [Thu, 8 Sep 2005 06:36:00 +0000 (06:36 +0000)]
dmix and dsnoop configuration - added ipc_perm 0660 (to handle all users with audio group)
Takashi Iwai [Mon, 5 Sep 2005 15:57:31 +0000 (15:57 +0000)]
Fix compile warnings
Fix compile warnings regarding uninitialized variable.
Takashi Iwai [Fri, 2 Sep 2005 16:40:40 +0000 (16:40 +0000)]
Fix configuration for ICE1724
- Fix surround40 channel numbers
- Fix rear/center_lfe channel assignment
This configuration is based on the channel order on Revo 7.1,
Front/CLFE/Surr/Side
If the other ice1724-based boards have a different order, we need
to rename the driver's id to distinguish the difference.
Takashi Iwai [Fri, 2 Sep 2005 16:36:40 +0000 (16:36 +0000)]
Fix buffer allocation and mmap with plugins
Fixed the bug producing silent tones with some combinations of plugins.
The internal buffer handling is now better (cleaner) integrated with
snd_pcm_generic_*().
Takashi Iwai [Thu, 1 Sep 2005 17:31:52 +0000 (17:31 +0000)]
Workaround for crash with knotify
Workaround for crash with knotify and KDEMM.
Takashi Iwai [Mon, 29 Aug 2005 17:07:41 +0000 (17:07 +0000)]
Fix call of semctl IPC_RMID
semctl IPC_RMID removes all semaphore set, so we need to call this only once.
Jaroslav Kysela [Wed, 24 Aug 2005 14:13:47 +0000 (14:13 +0000)]
PCM API - handle EINTR from poll() in snd_pcm_wait() function
Jaroslav Kysela [Wed, 24 Aug 2005 14:06:11 +0000 (14:06 +0000)]
test/pcm.c - remove -EINTR handling (a job for alsa-lib)
Jaroslav Kysela [Wed, 24 Aug 2005 10:41:16 +0000 (10:41 +0000)]
mixer API - extend simple enumerated controls for direction tests
Added snd_mixer_selem_is_enum_playback() and
snd_mixer_selem_is_enum_capture() functions.
Jaroslav Kysela [Tue, 23 Aug 2005 12:57:48 +0000 (12:57 +0000)]
pcm.c test / example - Added EINTR handling
Takashi Iwai [Tue, 23 Aug 2005 12:09:07 +0000 (12:09 +0000)]
Allow separate build and source trees
From: Bernard Leak <bernard@brenda-arkle.demon.co.uk>
Allow separate build and source trees.
Modified for the latest CVS tree by tiwai.
Jaroslav Kysela [Mon, 22 Aug 2005 12:07:55 +0000 (12:07 +0000)]
moved simple mixer abstraction modules to modules/mixer/simple directory
Compile dynamic modules outside the alsa-lib tree to allow linking them
against libasound.so - proper versions of dynamic symbols.
Takashi Iwai [Fri, 19 Aug 2005 17:23:05 +0000 (17:23 +0000)]
Add missing header files
Added missing header files to Makefile.am.
Jaroslav Kysela [Fri, 19 Aug 2005 11:44:33 +0000 (11:44 +0000)]
release 1.0.10rc1
Patch-level: Merged
Takashi Iwai [Thu, 18 Aug 2005 14:58:31 +0000 (14:58 +0000)]
Fix invalid read in setlocale()
Fix suspicious warnings "Invalid read" of setlocale() detected by valgrind2.
Takashi Iwai [Thu, 18 Aug 2005 14:53:39 +0000 (14:53 +0000)]
Clean up string parser
Clean up string parser routines.
Jaroslav Kysela [Thu, 18 Aug 2005 10:42:22 +0000 (10:42 +0000)]
PCM direct plugins - handle EINTR in the resource server
The poll() call in the resource server for PCM direct plugins might be
interrupted with an signal. Handle the case gracefuly and don't exit
the server (which brings another problems - cannot connect to socket -
later).
Takashi Iwai [Wed, 17 Aug 2005 17:27:16 +0000 (17:27 +0000)]
Misc fixes
Fixes of spots found via valgrind
- non-freed chunks after snd_config_get_ascii()
- zero-fill records (to make valgrind happy)
- compile warning fixes
Jaroslav Kysela [Wed, 17 Aug 2005 14:00:32 +0000 (14:00 +0000)]
direct plugins - added graceful shutdown for the resource server
- direct plugins
- added graceful shutdown for the resource server
- fixed error paths (unclosed socket) in the make_local_socket() function
Clemens Ladisch [Tue, 16 Aug 2005 15:30:19 +0000 (15:30 +0000)]
simple mixer: fix compilation with gcc 2.x
Move a variable declaration to the top of the function for compatibility
with gcc 2.x.
Jaroslav Kysela [Tue, 16 Aug 2005 12:19:15 +0000 (12:19 +0000)]
direct plugins (dmix) - suspend/resume fixes
- this patch adds support for suspend & result for dmix and other
direct plugins
- the timer detection / initialization (TREAD support) was redesigned and
the check for proper driver version was moved to the timer_hw.c
Jaroslav Kysela [Tue, 16 Aug 2005 10:10:26 +0000 (10:10 +0000)]
timer_hw - Changed TIMER_VERSION_MAX to 2.0.5
Jaroslav Kysela [Tue, 16 Aug 2005 10:09:34 +0000 (10:09 +0000)]
sync with alsa-kernel - timer SUSPEND / RESUME events
Takashi Iwai [Fri, 12 Aug 2005 15:53:02 +0000 (15:53 +0000)]
Fix direct plugins running on 32bit emulation with 64bit arch
Fix the problems of dmix/dsnoop/dshare plugins running on 32bit mode with
64bit biarch.
Takashi Iwai [Fri, 12 Aug 2005 15:51:48 +0000 (15:51 +0000)]
Add -avoid-version for smixer plugins
Added -avoid-verstion linker option for smixer plugins.
Takashi Iwai [Wed, 3 Aug 2005 16:58:22 +0000 (16:58 +0000)]
Add function declaration
Added the function declaration of snd_mixer_sbasic_get_private()
to fix compile warnings.
Takashi Iwai [Wed, 3 Aug 2005 13:48:14 +0000 (13:48 +0000)]
Fix surroundX PCM
From: Julian Scheel <julian@jusst.de>
Hi all,
attached is an updated ICE1724.conf - I have added channels X parameters to
the .pcm.surroundXX-fields, because otherwise it's for example not possible
to play a 5.1-stream on surround51 and a stereo-stream on side simultaneous.
I need this feature to do multiroom-sound through one single sound-card (one
room playing a DVD with 5.1, another room playing some MP3s through channels
7 and 8).
I hope you could follow my explanations and will add this to the tree.
Cheers,
Julian
Clemens Ladisch [Wed, 3 Aug 2005 12:50:32 +0000 (12:50 +0000)]
use PCM interface for IEC958 controls
For consistency, use the PCM interface instead of MIXER for IEC958
default/mask/stream mixer controls.
Clemens Ladisch [Tue, 2 Aug 2005 14:18:29 +0000 (14:18 +0000)]
adjust control references in config files
Adjust the hooked control definitions for the changed interface of
the "IEC958 Playback PCM Stream" control.
Clemens Ladisch [Tue, 2 Aug 2005 07:59:46 +0000 (07:59 +0000)]
adjust control references in config files
Adjust the hooked control definitions for the changed interface of
"EMU10K1 PCM Send Volume" and "EMU10K1 PCM Send Routing" controls.
Jaroslav Kysela [Sun, 31 Jul 2005 09:08:43 +0000 (09:08 +0000)]
The simple mixer abstraction - more work
- separated the "base library" from ac97.c (dynamically loaded)
- added necessary handling of all private structures
- added selector and sid registration functions and handling code
- added basic code for hda.c (yeah, my notebook has this hw)
James Courtier-Dutton [Wed, 29 Jun 2005 20:31:33 +0000 (20:31 +0000)]
Fix bug when a sound card had a stereo mute element and would fail to unmute the right channel.
Fixes a typo. Fixes bug#[ALSA - lib
0001219]
Takashi Iwai [Tue, 28 Jun 2005 13:35:22 +0000 (13:35 +0000)]
Fix compilation on a system with old alsa-lib headers
Fixed the compilation on a system with old alsa-lib headers.
A symlink alsa is created here to include all alsa-lib headers
locally even via #include <alsa/xxx.h>
Takashi Iwai [Tue, 28 Jun 2005 10:24:44 +0000 (10:24 +0000)]
Fix compile warnings with gcc-4
Fixed compile warnings with gcc-4 about pointer signedness.
Takashi Iwai [Tue, 28 Jun 2005 09:58:48 +0000 (09:58 +0000)]
Fix the return value of snd_card_load()
Fix the return value of snd_card_load() to follow the document,
0 = not present, 1 = preset.
The other parts calling snd_card_load() are fixed, too.
Clemens Ladisch [Mon, 27 Jun 2005 14:43:12 +0000 (14:43 +0000)]
fix typo
Fix a typo in the "Swap Surround Slot" value for surround40.
Jaroslav Kysela [Mon, 27 Jun 2005 08:16:06 +0000 (08:16 +0000)]
Fixed #include statements
Takashi Iwai [Thu, 23 Jun 2005 10:04:56 +0000 (10:04 +0000)]
Remove the check of start_threshold in sw_params
Removed the invalid check of start_threshold with period_size
in snd_pcm_sw_params().
Clemens Ladisch [Thu, 23 Jun 2005 07:45:17 +0000 (07:45 +0000)]
fix file name for Doxygen
Use the correct file name for \file to make Doxygen happy.
Clemens Ladisch [Thu, 23 Jun 2005 07:44:36 +0000 (07:44 +0000)]
fix compilation with C++
Replace identifer "class" with "class_" for compatibility with C++.
Takashi Iwai [Thu, 16 Jun 2005 14:03:15 +0000 (14:03 +0000)]
Fix boundary overlap
Fixed the possible bug with boundary overlap in dmix code.
Jaroslav Kysela [Thu, 16 Jun 2005 11:59:26 +0000 (11:59 +0000)]
more simple mixer - basic abstraction - work
- midlayer cleanups and simplification
- probably broke the "none" abstraction code somehow (not intensively tested
midlayer changes)
- trying to implement ac97 module
- far from finished
- common code should be moved to alsa-lib as core for other modules
- perhaps simple_abst.c can be based on this common code, too
Takashi Iwai [Mon, 13 Jun 2005 13:19:03 +0000 (13:19 +0000)]
Add detailed documentation for external control plugin SDK
Added the detailed documentation for external control plugin SDK.
Jaroslav Kysela [Fri, 10 Jun 2005 09:23:40 +0000 (09:23 +0000)]
pcm_multi: Increased maximum slave channels to 64
From: Joachim Deguara <dga@idmt.fraunhofer.de>
Takashi Iwai [Thu, 9 Jun 2005 17:14:22 +0000 (17:14 +0000)]
Fix _snd_ctl_hw_open() mode argument
Added the missing mode argument in _snd_ctl_hw_open().