Index: kernel/genarch/src/drivers/dsrln/dsrlnin.c
===================================================================
--- kernel/genarch/src/drivers/dsrln/dsrlnin.c	(revision 969383551290fbbbc07fb4c7ee15832d490665b5)
+++ kernel/genarch/src/drivers/dsrln/dsrlnin.c	(revision d2cc7e180f6a8ca583560ae28fcb1beae2fb36a1)
@@ -39,4 +39,5 @@
 #include <mm/slab.h>
 #include <arch/asm.h>
+#include <ddi/device.h>
 
 static indev_operations_t kbrdin_ops = {
@@ -57,5 +58,5 @@
 }
 
-indev_t *dsrlnin_init(dsrlnin_t *dev, devno_t devno, inr_t inr)
+indev_t *dsrlnin_init(dsrlnin_t *dev, inr_t inr)
 {
 	dsrlnin_instance_t *instance
@@ -66,9 +67,8 @@
 	indev_initialize("dsrlnin", &instance->kbrdin, &kbrdin_ops);
 	
-	instance->devno = devno;
 	instance->dsrlnin = dev;
 	
 	irq_initialize(&instance->irq);
-	instance->irq.devno = devno;
+	instance->irq.devno = device_assign_devno();
 	instance->irq.inr = inr;
 	instance->irq.claim = dsrlnin_claim;
Index: kernel/genarch/src/drivers/i8042/i8042.c
===================================================================
--- kernel/genarch/src/drivers/i8042/i8042.c	(revision 969383551290fbbbc07fb4c7ee15832d490665b5)
+++ kernel/genarch/src/drivers/i8042/i8042.c	(revision d2cc7e180f6a8ca583560ae28fcb1beae2fb36a1)
@@ -42,4 +42,5 @@
 #include <console/chardev.h>
 #include <mm/slab.h>
+#include <ddi/device.h>
 
 static indev_operations_t kbrdin_ops = {
@@ -77,5 +78,5 @@
 
 /** Initialize i8042. */
-indev_t *i8042_init(i8042_t *dev, devno_t devno, inr_t inr)
+indev_t *i8042_init(i8042_t *dev, inr_t inr)
 {
 	i8042_instance_t *instance
@@ -86,9 +87,8 @@
 	indev_initialize("i8042", &instance->kbrdin, &kbrdin_ops);
 	
-	instance->devno = devno;
 	instance->i8042 = dev;
 	
 	irq_initialize(&instance->irq);
-	instance->irq.devno = devno;
+	instance->irq.devno = device_assign_devno();
 	instance->irq.inr = inr;
 	instance->irq.claim = i8042_claim;
Index: kernel/genarch/src/drivers/ns16550/ns16550.c
===================================================================
--- kernel/genarch/src/drivers/ns16550/ns16550.c	(revision 969383551290fbbbc07fb4c7ee15832d490665b5)
+++ kernel/genarch/src/drivers/ns16550/ns16550.c	(revision d2cc7e180f6a8ca583560ae28fcb1beae2fb36a1)
@@ -40,4 +40,5 @@
 #include <console/chardev.h>
 #include <mm/slab.h>
+#include <ddi/device.h>
 
 #define LSR_DATA_READY  0x01
@@ -80,5 +81,5 @@
  *
  */
-indev_t *ns16550_init(ns16550_t *dev, devno_t devno, inr_t inr, cir_t cir, void *cir_arg)
+indev_t *ns16550_init(ns16550_t *dev, inr_t inr, cir_t cir, void *cir_arg)
 {
 	ns16550_instance_t *instance
@@ -89,9 +90,8 @@
 	indev_initialize("ns16550", &instance->kbrdin, &kbrdin_ops);
 	
-	instance->devno = devno;
 	instance->ns16550 = dev;
 	
 	irq_initialize(&instance->irq);
-	instance->irq.devno = devno;
+	instance->irq.devno = device_assign_devno();
 	instance->irq.inr = inr;
 	instance->irq.claim = ns16550_claim;
Index: kernel/genarch/src/drivers/z8530/z8530.c
===================================================================
--- kernel/genarch/src/drivers/z8530/z8530.c	(revision 969383551290fbbbc07fb4c7ee15832d490665b5)
+++ kernel/genarch/src/drivers/z8530/z8530.c	(revision d2cc7e180f6a8ca583560ae28fcb1beae2fb36a1)
@@ -40,4 +40,5 @@
 #include <arch/asm.h>
 #include <mm/slab.h>
+#include <ddi/device.h>
 
 static indev_operations_t kbrdin_ops = {
@@ -88,5 +89,5 @@
 
 /** Initialize z8530. */
-indev_t *z8530_init(z8530_t *dev, devno_t devno, inr_t inr, cir_t cir, void *cir_arg)
+indev_t *z8530_init(z8530_t *dev, inr_t inr, cir_t cir, void *cir_arg)
 {
 	z8530_instance_t *instance
@@ -97,9 +98,8 @@
 	indev_initialize("z8530", &instance->kbrdin, &kbrdin_ops);
 	
-	instance->devno = devno;
 	instance->z8530 = dev;
 	
 	irq_initialize(&instance->irq);
-	instance->irq.devno = devno;
+	instance->irq.devno = device_assign_devno();
 	instance->irq.inr = inr;
 	instance->irq.claim = z8530_claim;
