[PATCH] When checking I8042 io port, use of_find_compatible_node() instead of of_find_node_by_type()
Wade Farnsworth
wfarnsworth at mvista.com
Fri Jun 8 02:26:50 EST 2007
On Thu, 2007-06-07 at 15:05 +0200, Segher Boessenkool wrote:
> > In check_legacy_ioport(), instead of using of_find_node_by_type() to
> > find the 8042 node, use of_find_compatible_node() to find either the
> > keyboard or mouse node.
>
> Why?
>
> > switch(base_port) {
> > case I8042_DATA_REG:
> > - np = of_find_node_by_type(NULL, "8042");
> > + np = of_find_compatible_node(NULL, NULL, "pnpPNP,303");
> > + if (!np)
> > + np = of_find_compatible_node(NULL, NULL, "pnpPNP,f03");
> > + if (np) {
> > + parent = of_get_parent(np);
> > + of_node_put(np);
> > + np = parent;
> > + }
>
> This breaks other boards using 8042, if those exist --
> if this code is board-specific, it is in the wrong file.
Perhaps I was a little too bold here.
I guess if this breaks other boards then I should leave the check for
the device type, or perhaps just drop this patch altogether.
In the latter case, the 8042 node would need to have device_type =
"8042". This contradicts what you posted in an earlier conversation we
had regarding the 8641 device tree:
On Thu, 2007-05-17 at 01:40 +0200, Segher Boessenkool wrote:
> >>>> + 8042 at 60 {
> >>>> + device_type = "8042";
> >>
> >> Drop the device_type. A number as a name isn't
> >> all that great, either.
> >
> > Currently in order for the i8042 devices to be initialized,
> > check_legacy_ioport() must find a node with device_type "8042".
>
> So fix that :-)
This is my attempt to fix it :)
Now if you prefer that the 8042 node on the 8641 has the device_type
"8042", I will gladly add it back and drop this patch.
--Wade
More information about the Linuxppc-dev
mailing list