Pārlūkot izejas kodu

[POWERPC] 4xx: Implement udbg_getc() for 440

Implement udbg_getc() for 440, which fixes xmon input.

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Hollis Blanchard 17 gadi atpakaļ
vecāks
revīzija
70dea47da1
1 mainītis faili ar 11 papildinājumiem un 0 dzēšanām
  1. 11 0
      arch/powerpc/kernel/udbg_16550.c

+ 11 - 0
arch/powerpc/kernel/udbg_16550.c

@@ -206,11 +206,22 @@ static void udbg_44x_as1_putc(char c)
 	}
 	}
 }
 }
 
 
+static int udbg_44x_as1_getc(void)
+{
+	if (udbg_comport) {
+		while ((as1_readb(&udbg_comport->lsr) & LSR_DR) == 0)
+			; /* wait for char */
+		return as1_readb(&udbg_comport->rbr);
+	}
+	return -1;
+}
+
 void __init udbg_init_44x_as1(void)
 void __init udbg_init_44x_as1(void)
 {
 {
 	udbg_comport =
 	udbg_comport =
 		(volatile struct NS16550 __iomem *)PPC44x_EARLY_DEBUG_VIRTADDR;
 		(volatile struct NS16550 __iomem *)PPC44x_EARLY_DEBUG_VIRTADDR;
 
 
 	udbg_putc = udbg_44x_as1_putc;
 	udbg_putc = udbg_44x_as1_putc;
+	udbg_getc = udbg_44x_as1_getc;
 }
 }
 #endif /* CONFIG_PPC_EARLY_DEBUG_44x */
 #endif /* CONFIG_PPC_EARLY_DEBUG_44x */