Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision bfd1546e49e40fb980d45ced0b409578ba8ab3ef)
+++ kernel/arch/ia64/src/ia64.c	(revision e7f2ad68c3081b85a41032d60746f0b30111d468)
@@ -149,34 +149,11 @@
 }
 
-
-#ifdef I460GX
-#define POLL_INTERVAL		50000		/* 50 ms */
-/** Kernel thread for polling keyboard. */
-static void i8042_kkbdpoll(void *arg)
-{
-	while (1) {
-#ifdef CONFIG_NS16550
-	#ifndef CONFIG_NS16550_INTERRUPT_DRIVEN
-		ns16550_poll();
-	#endif	
-#else
-	#ifndef CONFIG_I8042_INTERRUPT_DRIVEN
-		i8042_poll();
-	#endif	
-#endif
-		thread_usleep(POLL_INTERVAL);
-	}
-}
-#endif
-
 void arch_post_smp_init(void)
 {
-	thread_t *t;
-
 	/*
 	 * Create thread that polls keyboard.
 	 */
 #ifdef SKI
-	t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
+	thread_t *t = thread_create(kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
 	if (!t)
 		panic("Cannot create kkbdpoll.");
@@ -193,8 +170,4 @@
 	i8042_init(kbd, IRQ_KBD, mouse, IRQ_MOUSE);
 #endif
-	t = thread_create(i8042_kkbdpoll, NULL, TASK, 0, "kkbdpoll", true);
-	if (!t)
-		panic("Cannot create kkbdpoll.");
-	thread_ready(t);
 #endif
 
Index: kernel/arch/sparc64/src/console.c
===================================================================
--- kernel/arch/sparc64/src/console.c	(revision bfd1546e49e40fb980d45ced0b409578ba8ab3ef)
+++ kernel/arch/sparc64/src/console.c	(revision e7f2ad68c3081b85a41032d60746f0b30111d468)
@@ -142,30 +142,8 @@
 	thread_detach(THREAD);
 
-#ifdef CONFIG_Z8530
-	if (kbd_type == KBD_Z8530) {
-		/*
-		 * The z8530 driver is interrupt-driven.
-		 */
+	if (kbd_type != KBD_SGCN)
 		return;
-	}
-#endif
-
-#ifdef CONFIG_NS16550
-#ifdef CONFIG_NS16550_INTERRUPT_DRIVEN
-	if (kbd_type == KBD_NS16550) {
-		/*
-		 * The ns16550 driver is interrupt-driven.
-		 */
-		return;
-	}
-#endif
-#endif
+
 	while (1) {
-#ifdef CONFIG_NS16550
-#ifndef CONFIG_NS16550_INTERRUPT_DRIVEN
-		if (kbd_type == KBD_NS16550)
-			ns16550_poll();
-#endif
-#endif
 #ifdef CONFIG_SGCN
 		if (kbd_type == KBD_SGCN)
Index: kernel/arch/sparc64/src/sparc64.c
===================================================================
--- kernel/arch/sparc64/src/sparc64.c	(revision bfd1546e49e40fb980d45ced0b409578ba8ab3ef)
+++ kernel/arch/sparc64/src/sparc64.c	(revision e7f2ad68c3081b85a41032d60746f0b30111d468)
@@ -104,5 +104,4 @@
 	static thread_t *t = NULL;
 
-
 	if (!t) {
 		/*
Index: kernel/genarch/src/kbd/ns16550.c
===================================================================
--- kernel/genarch/src/kbd/ns16550.c	(revision bfd1546e49e40fb980d45ced0b409578ba8ab3ef)
+++ kernel/genarch/src/kbd/ns16550.c	(revision e7f2ad68c3081b85a41032d60746f0b30111d468)
@@ -139,9 +139,7 @@
 	sysinfo_set_item_val("kbd.port", NULL, port);
 	
-#ifdef CONFIG_NS16550_INTERRUPT_DRIVEN
 	/* Enable interrupts */
 	ns16550_ier_write(&ns16550, IER_ERBFI);
 	ns16550_mcr_write(&ns16550, MCR_OUT2);
-#endif
 	
 	uint8_t c;
@@ -199,26 +197,4 @@
 void ns16550_poll(void)
 {
-#ifndef CONFIG_NS16550_INTERRUPT_DRIVEN
-	ipl_t ipl;
-
-	ipl = interrupts_disable();
-	spinlock_lock(&ns16550_irq.lock);
-
-	if (ns16550_lsr_read(&ns16550) & LSR_DATA_READY) {
-		if (ns16550_irq.notif_cfg.notify && ns16550_irq.notif_cfg.answerbox) {
-			/*
-			 * Send IPC notification.
-			 */
-			ipc_irq_send_notif(&ns16550_irq);
-			spinlock_unlock(&ns16550_irq.lock);
-			interrupts_restore(ipl);
-			return;
-		}
-	}
-
-	spinlock_unlock(&ns16550_irq.lock);
-	interrupts_restore(ipl);
-#endif
-
 	while (ns16550_lsr_read(&ns16550) & LSR_DATA_READY) {
 		uint8_t x;
