Index: uspace/lib/drv/generic/remote_audio_pcm.c
===================================================================
--- uspace/lib/drv/generic/remote_audio_pcm.c	(revision b5abaf7c8551d1f27dee4024aa0f8824ee2e9317)
+++ uspace/lib/drv/generic/remote_audio_pcm.c	(revision 6deb2cdd4f9ffa23e068faa9b3d977ec3399c1ed)
@@ -221,18 +221,15 @@
  * @param sess Audio device session.
  * @param cap  Audio device capability.
- * @param val  Place to store queried value.
- *
- * @return Error code.
- */
-int audio_pcm_query_cap(audio_pcm_sess_t *sess, audio_cap_t cap)
-{
-	async_exch_t *exch = async_exchange_begin(sess);
-	sysarg_t value = 0;
+ * @param[out] val  Place to store queried value.
+ *
+ * @return Error code.
+ */
+int audio_pcm_query_cap(audio_pcm_sess_t *sess, audio_cap_t cap, sysarg_t *value)
+{
+	async_exch_t *exch = async_exchange_begin(sess);
 	const int ret = async_req_2_1(exch,
 	    DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE), IPC_M_AUDIO_PCM_QUERY_CAPS,
-	    cap, &value);
-	async_exchange_end(exch);
-	if (ret == EOK)
-		return value;
+	    cap, value);
+	async_exchange_end(exch);
 	return ret;
 }
Index: uspace/lib/drv/include/audio_pcm_iface.h
===================================================================
--- uspace/lib/drv/include/audio_pcm_iface.h	(revision b5abaf7c8551d1f27dee4024aa0f8824ee2e9317)
+++ uspace/lib/drv/include/audio_pcm_iface.h	(revision 6deb2cdd4f9ffa23e068faa9b3d977ec3399c1ed)
@@ -83,5 +83,5 @@
 int audio_pcm_test_format(audio_pcm_sess_t *, unsigned *, unsigned *,
     pcm_sample_format_t *);
-int audio_pcm_query_cap(audio_pcm_sess_t *, audio_cap_t);
+int audio_pcm_query_cap(audio_pcm_sess_t *, audio_cap_t, sysarg_t *);
 int audio_pcm_register_event_callback(audio_pcm_sess_t *,
     async_port_handler_t, void *);
