Rev 3343 | Rev 3479 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3343 | Rev 3467 | ||
---|---|---|---|
Line 218... | Line 218... | ||
218 | */ |
218 | */ |
219 | ofw_tree_node_t *ofw_tree_build(void) |
219 | ofw_tree_node_t *ofw_tree_build(void) |
220 | { |
220 | { |
221 | ofw_tree_node_t *root; |
221 | ofw_tree_node_t *root; |
222 | 222 | ||
- | 223 | #if defined (SMART_FIRMWARE) |
|
- | 224 | ofw_tree_node_t *ssm; |
|
- | 225 | #endif |
|
- | 226 | ||
223 | root = ofw_tree_node_alloc(); |
227 | root = ofw_tree_node_alloc(); |
224 | if (root) |
228 | if (root) |
225 | ofw_tree_node_process(root, NULL, ofw_root); |
229 | ofw_tree_node_process(root, NULL, ofw_root); |
- | 230 | ||
- | 231 | #if defined (SMART_FIRMWARE) |
|
- | 232 | /* |
|
- | 233 | * The firmware client interface does not automatically include the |
|
- | 234 | * "ssm" node in the list of children of "/". A nasty yet working |
|
- | 235 | * solution is to explicitly stick "ssm" to the OFW tree. |
|
- | 236 | */ |
|
- | 237 | ssm = ofw_tree_node_alloc(); |
|
- | 238 | if (ssm) { |
|
- | 239 | ofw_tree_node_process(ssm, root, ofw_find_device("/ssm@0,0")); |
|
- | 240 | ssm->peer = root->child; |
|
- | 241 | root->child = ssm; |
|
- | 242 | } |
|
- | 243 | #endif |
|
226 | 244 | ||
227 | return root; |
245 | return root; |
228 | } |
246 | } |