15 May, 2008

1 commit

  • Update function of_find_property() to return NULL if the device_node
    passed to it is also NULL. Otherwise, passing NULL will cause a null
    pointer dereference.

    Without this, the legacy_serial driver will crash if there's no
    'chosen' node in the device tree.

    Signed-off-by: Timur Tabi
    Signed-off-by: Paul Mackerras

    Timur Tabi
     

07 Apr, 2008

1 commit

  • IEEE 1275 defined a standard "status" property to indicate the operational
    status of a device. The property has four possible values: okay, disabled,
    fail, fail-xxx. The absence of this property means the operational status
    of the device is unknown or okay.

    This adds a function called of_device_is_available that checks the state
    of the status property of a device. If the property is absent or set to
    either "okay" or "ok", it returns 1. Otherwise it returns 0.

    Signed-off-by: Josh Boyer
    Signed-off-by: Paul Mackerras

    Josh Boyer
     

06 Feb, 2008

1 commit

  • Iterating through a device node's parents is simple enough, but dealing
    with the refcounts properly is a little ugly, and replicating that logic
    is asking for someone to get it wrong or forget it all together, eg:

    while (dn != NULL) {
    /* loop body */
    tmp = of_get_parent(dn);
    of_node_put(dn);
    dn = tmp;
    }

    So add of_get_next_parent(), inspired by of_get_next_child(). The
    contract is that it returns the parent and drops the reference on the
    current node, this makes the loop look like:

    while (dn != NULL) {
    /* loop body */
    dn = of_get_next_parent(dn);
    }

    Signed-off-by: Michael Ellerman
    Acked-by: David S. Miller
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     

17 Jan, 2008

1 commit

  • Similar to of_find_compatible_node(), of_find_matching_node() and
    for_each_matching_node() allow you to iterate over the device tree
    looking for specific nodes, except that they take of_device_id
    tables instead of strings.

    This also moves of_match_node() from driver/of/device.c to
    driver/of/base.c to colocate it with the of_find_matching_node which
    depends on it.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     

20 Jul, 2007

6 commits

  • This consolidates the routines of_find_node_by_path, of_find_node_by_name,
    of_find_node_by_type and of_find_compatible_device. Again, the comparison
    of strings are done differently by Sparc and PowerPC and also these add
    read_locks around the iterations.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This adds a read_lock around the child/next accesses on Sparc.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This requires creating dummy of_node_{get,put} routines for sparc and
    sparc64. It also adds a read_lock around the parent accesses.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • The only change here is that a readlock is taken while the property list
    is being traversed on Sparc where it was not taken previously.

    Also, Sparc uses strcasecmp to compare property names while PowerPC
    uses strcmp.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • The only difference here is that Sparc uses strncmp to match compatibility
    names while PowerPC uses strncasecmp.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell
     
  • This creates drivers/of/base.c (depending on CONFIG_OF) and puts
    the first trivially common bits from the prom.c files into it.

    Signed-off-by: Stephen Rothwell
    Acked-by: Paul Mackerras
    Acked-by: David S. Miller

    Stephen Rothwell