Subject: Re: linux-next: sparc tree build failure

From: David Miller <[email-masked]>
Date: Thu, 05 Nov 2009 00:00:12 -0800 (PST)

From: David Miller <[email-masked]>
Date: Wed, 04 Nov 2009 23:53:15 -0800 (PST)

> From: Stephen Rothwell <[email-masked]>
> Date: Thu, 5 Nov 2009 18:50:14 +1100
> 
>> Caused by commit d4ac42a582e46d7f86f0acb4253a310423c72c4c ("sparc:
>> Support for GRLIB APBUART serial port").  I added the following patch for
>> today.
> 
> Thanks, the real fix is to simply remove that include, it isn't
> actually needed and the CONFIG_OF dependency is sufficient.

Hmm, it took a tiny bit more than that :-)  Here's what I commited
to fix this, thanks.

apbuart: Kill dependency on deprecated Sparc-only PROM interfaces.

Use the proper modern OF ones instead.

Noticed by Stephen Rothwell.

Signed-off-by: David S. Miller <[email-masked]>
---
 drivers/serial/apbuart.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c
index c7883a3..5f9dec3 100644
--- a/drivers/serial/apbuart.c
+++ b/drivers/serial/apbuart.c
@@ -29,7 +29,6 @@
 #include <linux/io.h>
 #include <linux/serial_core.h>
 #include <asm/irq.h>
-#include <asm/oplib.h>
 
 #include "apbuart.h"
 
@@ -596,10 +595,9 @@ static struct of_platform_driver grlib_apbuart_of_driver = {
 static void grlib_apbuart_configure(void)
 {
 	static int enum_done;
-	struct device_node *np;
+	struct device_node *np, *rp;
 	struct uart_port *port = NULL;
-
-	int node;
+	const u32 *prop;
 	int freq_khz;
 	int v = 0, d = 0;
 	unsigned int addr;
@@ -610,8 +608,10 @@ static void grlib_apbuart_configure(void)
 		return;
 
 	/* Get bus frequency */
-	node = prom_getchild(prom_root_node);
-	freq_khz = prom_getint(node, "clock-frequency");
+	rp = of_find_node_by_name(NULL, "/");
+	rp = of_get_next_child(rp, NULL);
+	prop = of_get_property(rp, "clock-frequency", NULL);
+	freq_khz = *prop;
 
 	line = 0;
 	for_each_matching_node(np, apbuart_match) {
-- 
1.6.5.2