Thread (3 messages) flat view 3 messages, 2 authors, 2008-02-21
STALE6770d

[PATCH] powerpc: don't create two devices for each cpm_uart device tree node

From: Nikita V. Youshchenko <hidden>
Date: 2008-02-19 23:52:48
Subsystem: linux for powerpc (32-bit and 64-bit), the rest · Maintainers: Madhavan Srinivasan, Linus Torvalds

    powerpc: don't create two devices for each cpm_uart device tree node
    
    Code in arch/powerpc/sysdev/fsl_soc.c used to create two 'struct device'
    objects for each cpm_uart device tree node - one "fsl-cpm-scc:uart"
    in cpm_uart_of_init() and one "fsl-cpm-smc:uart" in cpm_smc_uart_of_init().
    
    This patch adds additional test to those routines, such that cpm_uart_of_init()
    only registers devices with model "SCC", and cpm_smc_uart_of_init() only
    registers devices with model "SMC".
    
    Signed-off-by: Nikita Youshchenko [off-list ref]
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index f1b8412..536f8c9 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -890,6 +890,10 @@ static int __init cpm_uart_of_init(void)
 		const int *id;
 		const char *model;
 
+		model = of_get_property(np, "model", NULL);
+		if (!model || strcmp(model, "SCC") != 0)
+			continue;
+
 		memset(r, 0, sizeof(r));
 		memset(&cpm_uart_data, 0, sizeof(cpm_uart_data));
 
@@ -917,7 +921,6 @@ static int __init cpm_uart_of_init(void)
 		id = of_get_property(np, "device-id", NULL);
 		cpm_uart_data.fs_no = *id;
 
-		model = of_get_property(np, "model", NULL);
 		strcpy(cpm_uart_data.fs_type, model);
 
 		cpm_uart_data.uart_clk = ppc_proc_freq;
@@ -1175,6 +1178,10 @@ static int __init cpm_smc_uart_of_init(void)
 		const int *id;
 		const char *model;
 
+		model = of_get_property(np, "model", NULL);
+		if (!model || strcmp(model, "SMC") != 0)
+			continue;
+
 		memset(r, 0, sizeof(r));
 		memset(&cpm_uart_data, 0, sizeof(cpm_uart_data));
 
@@ -1200,7 +1207,6 @@ static int __init cpm_smc_uart_of_init(void)
 			goto err;
 		}
 
-		model = of_get_property(np, "model", NULL);
 		strcpy(cpm_uart_data.fs_type, model);
 
 		id = of_get_property(np, "device-id", NULL);

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help