oss: issue OSS_GETVERSION ioctl only when needed

Signed-off-by: malc <av1474@comtv.ru>
This commit is contained in:
malc 2010-01-09 17:54:07 +03:00
parent 59bc10ee01
commit 6d246526ce
1 changed files with 17 additions and 17 deletions

View File

@ -244,9 +244,6 @@ static int oss_open (int in, struct oss_params *req,
struct oss_params *obt, int *pfd) struct oss_params *obt, int *pfd)
{ {
int fd; int fd;
#ifdef USE_DSP_POLICY
int version;
#endif
int oflags = conf.exclusive ? O_EXCL : 0; int oflags = conf.exclusive ? O_EXCL : 0;
audio_buf_info abinfo; audio_buf_info abinfo;
int fmt, freq, nchannels; int fmt, freq, nchannels;
@ -288,22 +285,25 @@ static int oss_open (int in, struct oss_params *req,
} }
#ifdef USE_DSP_POLICY #ifdef USE_DSP_POLICY
if (ioctl (fd, OSS_GETVERSION, &version)) { if (conf.policy >= 0) {
oss_logerr2 (errno, typ, "Failed to get OSS version\n"); int version;
version = 0;
}
if (conf.debug) { if (ioctl (fd, OSS_GETVERSION, &version)) {
dolog ("OSS version = %#x\n", version); oss_logerr2 (errno, typ, "Failed to get OSS version\n");
} version = 0;
}
if (conf.policy >= 0 && version >= 0x040000) if (conf.debug) {
{ dolog ("OSS version = %#x\n", version);
int policy = conf.policy; }
if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) {
oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n", if (version >= 0x040000) {
conf.policy); int policy = conf.policy;
goto err; if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) {
oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n",
conf.policy);
goto err;
}
} }
} }
else else