On Friday 21 December 2007, Anton Vorontsov wrote: > > +static spinlock_t cpm2_port_lock = __SPIN_LOCK_UNLOCKED(cpm2_port_lock);
This needs to be static DEFINE_SPINLOCK(cpm2_port_lock); I think at least lockdep doesn't work the way you do it here. > +int cpm2_init_par_io(void) > +{ > + struct device_node *np; > + const u32 *num_ports; > + > + np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pario"); > + if (!np) > + return -ENOENT; > + > + num_ports = of_get_property(np, "num-ports", NULL); > + if (!num_ports) { > + of_node_put(np); > + return -ENOENT; > + } > + cpm2_num_ports = *num_ports; > + > + np->data = &of_gpio_chip; > + > + return 0; > +} This function should also do the call to of_iomap, so you don't need to pull the address out of the cpm2_immr, which I believe we're trying to get rid of. Arnd <>< _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev