Index: uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.c
===================================================================
--- uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -34,4 +34,5 @@
  */
 
+#include <align.h>
 #include <assert.h>
 #include <errno.h>
Index: uspace/drv/fb/amdm37x_dispc/main.c
===================================================================
--- uspace/drv/fb/amdm37x_dispc/main.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/drv/fb/amdm37x_dispc/main.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -35,9 +35,9 @@
  */
 
+#include <ddf/driver.h>
 #include <ddf/log.h>
 #include <errno.h>
 #include <str_error.h>
 #include <stdio.h>
-#include <ops/graph_dev.h>
 #include <graph.h>
 
@@ -46,11 +46,11 @@
 #define NAME  "amdm37x_dispc"
 
-static graph_dev_ops_t graph_vsl_dev_ops = {
-	.connect = (connect_func) &graph_visualizer_connection
-};
+static void graph_vsl_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+{
+	visualizer_t *vsl;
 
-static ddf_dev_ops_t graph_fun_ops = {
-	.interfaces[GRAPH_DEV_IFACE] = &graph_vsl_dev_ops
-};
+	vsl = (visualizer_t *) ddf_fun_data_get((ddf_fun_t *)arg);
+	graph_visualizer_connection(vsl, iid, icall, NULL);
+}
 
 static int amdm37x_dispc_dev_add(ddf_dev_t *dev)
@@ -74,5 +74,5 @@
 	vis->reg_svc_handle = ddf_fun_get_handle(fun);
 
-	ddf_fun_set_ops(fun, &graph_fun_ops);
+	ddf_fun_set_conn_handler(fun, graph_vsl_connection);
 	/* Hw part */
 	amdm37x_dispc_t *dispc =
Index: uspace/drv/fb/kfb/kfb.c
===================================================================
--- uspace/drv/fb/kfb/kfb.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/drv/fb/kfb/kfb.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -40,5 +40,4 @@
 #include <task.h>
 #include <graph.h>
-#include <ops/graph_dev.h>
 #include "port.h"
 #include "kfb.h"
@@ -60,20 +59,4 @@
 };
 
-static graph_dev_ops_t graph_vsl_dev_ops = {
-	.connect = (connect_func) &graph_visualizer_connection
-};
-
-ddf_dev_ops_t graph_vsl_device_ops = {
-	.interfaces[GRAPH_DEV_IFACE] = &graph_vsl_dev_ops
-};
-
-static graph_dev_ops_t graph_rnd_dev_ops = {
-	.connect = (connect_func) &graph_renderer_connection
-};
-
-ddf_dev_ops_t graph_rnd_device_ops = {
-	.interfaces[GRAPH_DEV_IFACE] = &graph_rnd_dev_ops
-};
-
 int main(int argc, char *argv[])
 {
Index: uspace/drv/fb/kfb/port.c
===================================================================
--- uspace/drv/fb/kfb/port.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/drv/fb/kfb/port.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -207,4 +207,12 @@
 };
 
+static void graph_vsl_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
+{
+	visualizer_t *vsl;
+
+	vsl = (visualizer_t *) ddf_fun_data_get((ddf_fun_t *)arg);
+	graph_visualizer_connection(vsl, iid, icall, NULL);
+}
+
 int port_init(ddf_dev_t *dev)
 {
@@ -346,5 +354,5 @@
 		return ENOMEM;
 	}
-	ddf_fun_set_ops(fun_vs, &graph_vsl_device_ops);
+	ddf_fun_set_conn_handler(fun_vs, &graph_vsl_connection);
 
 	visualizer_t *vs = ddf_fun_data_alloc(fun_vs, sizeof(visualizer_t));
Index: uspace/lib/c/include/ipc/dev_iface.h
===================================================================
--- uspace/lib/c/include/ipc/dev_iface.h	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/lib/c/include/ipc/dev_iface.h	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -40,7 +40,4 @@
 	/** Character device interface */
 	CHAR_DEV_IFACE,
-
-	/** Graphic device interface */
-	GRAPH_DEV_IFACE,
 
 	/** Audio device mixer interface */
Index: uspace/lib/drv/Makefile
===================================================================
--- uspace/lib/drv/Makefile	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/lib/drv/Makefile	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -47,5 +47,4 @@
 	generic/remote_pio_window.c \
 	generic/remote_char_dev.c \
-	generic/remote_graph_dev.c \
 	generic/remote_nic.c \
 	generic/remote_usb.c \
Index: uspace/lib/drv/generic/dev_iface.c
===================================================================
--- uspace/lib/drv/generic/dev_iface.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/lib/drv/generic/dev_iface.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -45,5 +45,4 @@
 #include "remote_led_dev.h"
 #include "remote_battery_dev.h"
-#include "remote_graph_dev.h"
 #include "remote_nic.h"
 #include "remote_usb.h"
@@ -62,5 +61,4 @@
 		[PIO_WINDOW_DEV_IFACE] = &remote_pio_window_iface,
 		[CHAR_DEV_IFACE] = &remote_char_dev_iface,
-		[GRAPH_DEV_IFACE] = &remote_graph_dev_iface,
 		[NIC_DEV_IFACE] = &remote_nic_iface,
 		[PCI_DEV_IFACE] = &remote_pci_iface,
Index: pace/lib/drv/generic/private/remote_graph_dev.h
===================================================================
--- uspace/lib/drv/generic/private/remote_graph_dev.h	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/*
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup libdrv
- * @{
- */
-/** @file
- */
-
-#ifndef LIBDRV_REMOTE_GRAPH_DEV_H_
-#define LIBDRV_REMOTE_GRAPH_DEV_H_
-
-extern remote_iface_t remote_graph_dev_iface;
-
-#endif
-
-/**
- * @}
- */
Index: pace/lib/drv/generic/remote_graph_dev.c
===================================================================
--- uspace/lib/drv/generic/remote_graph_dev.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup libdrv
- * @{
- */
-/** @file
- */
-
-#include <errno.h>
-#include <async.h>
-#include <macros.h>
-
-#include "ops/graph_dev.h"
-#include "graph_iface.h"
-#include "ddf/driver.h"
-
-typedef enum {
-	GRAPH_DEV_CONNECT = 0
-} graph_dev_method_t;
-
-int graph_dev_connect(async_sess_t *sess)
-{
-	async_exch_t *exch = async_exchange_begin(sess);
-	int ret = async_req_1_0(exch, DEV_IFACE_ID(GRAPH_DEV_IFACE), GRAPH_DEV_CONNECT);
-	async_exchange_end(exch);
-
-	return ret;
-}
-
-static void remote_graph_connect(ddf_fun_t *, void *, ipc_callid_t, ipc_call_t *);
-
-static const remote_iface_func_ptr_t remote_graph_dev_iface_ops[] = {
-	[GRAPH_DEV_CONNECT] = remote_graph_connect
-};
-
-const remote_iface_t remote_graph_dev_iface = {
-	.method_count = ARRAY_SIZE(remote_graph_dev_iface_ops),
-	.methods = remote_graph_dev_iface_ops
-};
-
-static void remote_graph_connect(ddf_fun_t *fun, void *ops, ipc_callid_t callid,
-    ipc_call_t *call)
-{
-	graph_dev_ops_t *graph_dev_ops = (graph_dev_ops_t *) ops;
-
-	if (!graph_dev_ops->connect || !ddf_fun_data_get(fun)) {
-		async_answer_0(callid, ENOTSUP);
-		return;
-	}
-
-	(*graph_dev_ops->connect)(ddf_fun_data_get(fun), callid, call, NULL);
-}
-
-/**
- * @}
- */
Index: pace/lib/drv/include/graph_iface.h
===================================================================
--- uspace/lib/drv/include/graph_iface.h	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ 	(revision )
@@ -1,45 +1,0 @@
-/*
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup libc
- * @{
- */
-/** @file
- */
-
-#ifndef LIBC_DEVICE_GRAPH_DEV_H_
-#define LIBC_DEVICE_GRAPH_DEV_H_
-
-#include <async.h>
-
-extern int graph_dev_connect(async_sess_t *);
-
-#endif
-
-/** @}
- */
Index: pace/lib/drv/include/ops/graph_dev.h
===================================================================
--- uspace/lib/drv/include/ops/graph_dev.h	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/*
- * Copyright (c) 2011 Petr Koupy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup libdrv
- * @{
- */
-/** @file
- */
-
-#ifndef LIBDRV_OPS_GRAPH_DEV_H_
-#define LIBDRV_OPS_GRAPH_DEV_H_
-
-#include <async.h>
-#include "../ddf/driver.h"
-
-typedef void (*connect_func)(void *, ipc_callid_t , ipc_call_t *, void *);
-
-typedef struct {
-	connect_func connect;
-} graph_dev_ops_t;
-
-#endif
-
-/**
- * @}
- */
Index: uspace/srv/hid/compositor/compositor.c
===================================================================
--- uspace/srv/hid/compositor/compositor.c	(revision 7d2763958352f8ff682b6803d3439d75f5c8c581)
+++ uspace/srv/hid/compositor/compositor.c	(revision 8e4a408d3222959baf54e62461fd1575e23f4fda)
@@ -57,5 +57,4 @@
 
 #include <event.h>
-#include <graph_iface.h>
 #include <io/keycode.h>
 #include <io/mode.h>
@@ -1156,10 +1155,4 @@
 	if (sess == NULL) {
 		printf("%s: Unable to connect to visualizer %s\n", NAME, svc);
-		return NULL;
-	}
-
-	rc = graph_dev_connect(sess);
-	if (rc != EOK) {
-		printf("%s: Failed initializing visualiser %s\n", NAME, svc);
 		return NULL;
 	}
