 342ea00f45
			
		
	
	
	342ea00f45
	
	
	
		
			
			Use for_each_compatible_node() macro instead of open coding it. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			926 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			926 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * parport.h: platform-specific PC-style parport initialisation
 | |
|  *
 | |
|  * Copyright (C) 1999, 2000  Tim Waugh <tim@cyberelk.demon.co.uk>
 | |
|  *
 | |
|  * This file should only be included by drivers/parport/parport_pc.c.
 | |
|  */
 | |
| 
 | |
| #ifndef _ASM_POWERPC_PARPORT_H
 | |
| #define _ASM_POWERPC_PARPORT_H
 | |
| #ifdef __KERNEL__
 | |
| 
 | |
| #include <asm/prom.h>
 | |
| 
 | |
| static int parport_pc_find_nonpci_ports (int autoirq, int autodma)
 | |
| {
 | |
| 	struct device_node *np;
 | |
| 	const u32 *prop;
 | |
| 	u32 io1, io2;
 | |
| 	int propsize;
 | |
| 	int count = 0;
 | |
| 	int virq;
 | |
| 
 | |
| 	for_each_compatible_node(np, "parallel", "pnpPNP,400") {
 | |
| 		prop = of_get_property(np, "reg", &propsize);
 | |
| 		if (!prop || propsize > 6*sizeof(u32))
 | |
| 			continue;
 | |
| 		io1 = prop[1]; io2 = prop[2];
 | |
| 
 | |
| 		virq = irq_of_parse_and_map(np, 0);
 | |
| 		if (virq == NO_IRQ)
 | |
| 			continue;
 | |
| 
 | |
| 		if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0)
 | |
| 				!= NULL)
 | |
| 			count++;
 | |
| 	}
 | |
| 	return count;
 | |
| }
 | |
| 
 | |
| #endif /* __KERNEL__ */
 | |
| #endif /* !(_ASM_POWERPC_PARPORT_H) */
 |