Index: uspace/drv/char/ns8250/ns8250.c
===================================================================
--- uspace/drv/char/ns8250/ns8250.c	(revision 208b5f542c8db6c9ce6844cd62a6794e94185293)
+++ uspace/drv/char/ns8250/ns8250.c	(revision a861ccb34a0bd1b6e65c69b2e9b5ccd1bb368aac)
@@ -57,7 +57,5 @@
 #include <ops/char_dev.h>
 
-#include <ns.h>
-#include <ipc/services.h>
-#include <ipc/irc.h>
+#include <irc.h>
 #include <device/hw_res.h>
 #include <ipc/serial_ctl.h>
@@ -488,25 +486,12 @@
 static int ns8250_interrupt_enable(ns8250_t *ns)
 {
-	/*
-	 * Enable interrupt using IRC service.
-	 * TODO: This is a temporary solution until the device framework
-	 * takes care of this itself.
-	 */
-	async_sess_t *irc_sess = service_connect_blocking(EXCHANGE_SERIALIZE,
-	    SERVICE_IRC, 0, 0);
-	if (!irc_sess) {
+	/* Enable interrupt using IRC service. */
+	int rc = irc_enable_interrupt(ns->irq);
+	if (rc != EOK)
 		return EIO;
-	}
-
-	async_exch_t *exch = async_exchange_begin(irc_sess);
-	if (!exch) {
-		return EIO;
-	}
-	async_msg_1(exch, IRC_ENABLE_INTERRUPT, ns->irq);
-	async_exchange_end(exch);
-
+	
 	/* Read LSR to clear possible previous LSR interrupt */
 	pio_read_8(&ns->regs->lsr);
-
+	
 	/* Enable interrupt on the serial port. */
 	ns8250_port_interrupts_enable(ns->regs);
