.. | .. |
---|
53 | 53 | |
---|
54 | 54 | static int sparc_i8042_probe(struct platform_device *op) |
---|
55 | 55 | { |
---|
56 | | - struct device_node *dp = op->dev.of_node; |
---|
| 56 | + struct device_node *dp; |
---|
57 | 57 | |
---|
58 | | - dp = dp->child; |
---|
59 | | - while (dp) { |
---|
60 | | - if (!strcmp(dp->name, OBP_PS2KBD_NAME1) || |
---|
61 | | - !strcmp(dp->name, OBP_PS2KBD_NAME2)) { |
---|
| 58 | + for_each_child_of_node(op->dev.of_node, dp) { |
---|
| 59 | + if (of_node_name_eq(dp, OBP_PS2KBD_NAME1) || |
---|
| 60 | + of_node_name_eq(dp, OBP_PS2KBD_NAME2)) { |
---|
62 | 61 | struct platform_device *kbd = of_find_device_by_node(dp); |
---|
63 | 62 | unsigned int irq = kbd->archdata.irqs[0]; |
---|
64 | 63 | if (irq == 0xffffffff) |
---|
.. | .. |
---|
67 | 66 | kbd_iobase = of_ioremap(&kbd->resource[0], |
---|
68 | 67 | 0, 8, "kbd"); |
---|
69 | 68 | kbd_res = &kbd->resource[0]; |
---|
70 | | - } else if (!strcmp(dp->name, OBP_PS2MS_NAME1) || |
---|
71 | | - !strcmp(dp->name, OBP_PS2MS_NAME2)) { |
---|
| 69 | + } else if (of_node_name_eq(dp, OBP_PS2MS_NAME1) || |
---|
| 70 | + of_node_name_eq(dp, OBP_PS2MS_NAME2)) { |
---|
72 | 71 | struct platform_device *ms = of_find_device_by_node(dp); |
---|
73 | 72 | unsigned int irq = ms->archdata.irqs[0]; |
---|
74 | 73 | if (irq == 0xffffffff) |
---|
75 | 74 | irq = op->archdata.irqs[0]; |
---|
76 | 75 | i8042_aux_irq = irq; |
---|
77 | 76 | } |
---|
78 | | - |
---|
79 | | - dp = dp->sibling; |
---|
80 | 77 | } |
---|
81 | 78 | |
---|
82 | 79 | return 0; |
---|
.. | .. |
---|
109 | 106 | static int __init i8042_platform_init(void) |
---|
110 | 107 | { |
---|
111 | 108 | struct device_node *root = of_find_node_by_path("/"); |
---|
| 109 | + const char *name = of_get_property(root, "name", NULL); |
---|
112 | 110 | |
---|
113 | | - if (!strcmp(root->name, "SUNW,JavaStation-1")) { |
---|
| 111 | + if (name && !strcmp(name, "SUNW,JavaStation-1")) { |
---|
114 | 112 | /* Hardcoded values for MrCoffee. */ |
---|
115 | 113 | i8042_kbd_irq = i8042_aux_irq = 13 | 0x20; |
---|
116 | 114 | kbd_iobase = ioremap(0x71300060, 8); |
---|
.. | .. |
---|
139 | 137 | static inline void i8042_platform_exit(void) |
---|
140 | 138 | { |
---|
141 | 139 | struct device_node *root = of_find_node_by_path("/"); |
---|
| 140 | + const char *name = of_get_property(root, "name", NULL); |
---|
142 | 141 | |
---|
143 | | - if (strcmp(root->name, "SUNW,JavaStation-1")) |
---|
| 142 | + if (!name || strcmp(name, "SUNW,JavaStation-1")) |
---|
144 | 143 | platform_driver_unregister(&sparc_i8042_driver); |
---|
145 | 144 | } |
---|
146 | 145 | |
---|