summary refs log tree commit diff stats
path: root/audio/ossaudio.c
diff options
context:
space:
mode:
authormalc <av1474@comtv.ru>2010-01-09 17:54:07 +0300
committermalc <av1474@comtv.ru>2010-01-09 17:55:18 +0300
commit6d246526ce3c145b2831285def6983f5de6190d3 (patch)
tree9c6a2d16ed0d478112fb04692883862fac49b30a /audio/ossaudio.c
parent59bc10ee01038f93a13d0471f799e6ad2e1e5ee5 (diff)
downloadfocaccia-qemu-6d246526ce3c145b2831285def6983f5de6190d3.tar.gz
focaccia-qemu-6d246526ce3c145b2831285def6983f5de6190d3.zip
oss: issue OSS_GETVERSION ioctl only when needed
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'audio/ossaudio.c')
-rw-r--r--audio/ossaudio.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index fe6fb523bc..79d1daa1c0 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -244,9 +244,6 @@ static int oss_open (int in, struct oss_params *req,
                      struct oss_params *obt, int *pfd)
 {
     int fd;
-#ifdef USE_DSP_POLICY
-    int version;
-#endif
     int oflags = conf.exclusive ? O_EXCL : 0;
     audio_buf_info abinfo;
     int fmt, freq, nchannels;
@@ -288,22 +285,25 @@ static int oss_open (int in, struct oss_params *req,
     }
 
 #ifdef USE_DSP_POLICY
-    if (ioctl (fd, OSS_GETVERSION, &version)) {
-        oss_logerr2 (errno, typ, "Failed to get OSS version\n");
-        version = 0;
-    }
+    if (conf.policy >= 0) {
+        int version;
 
-    if (conf.debug) {
-        dolog ("OSS version = %#x\n", version);
-    }
+        if (ioctl (fd, OSS_GETVERSION, &version)) {
+            oss_logerr2 (errno, typ, "Failed to get OSS version\n");
+            version = 0;
+        }
 
-    if (conf.policy >= 0 && version >= 0x040000)
-    {
-        int policy = conf.policy;
-        if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) {
-            oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n",
-                         conf.policy);
-            goto err;
+        if (conf.debug) {
+            dolog ("OSS version = %#x\n", version);
+        }
+
+        if (version >= 0x040000) {
+            int policy = conf.policy;
+            if (ioctl (fd, SNDCTL_DSP_POLICY, &policy)) {
+                oss_logerr2 (errno, typ, "Failed to set timing policy to %d\n",
+                             conf.policy);
+                goto err;
+            }
         }
     }
     else