[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC 09/24] xen/dts: Add new helpers to use the device tree
On Thu, 2013-08-22 at 14:48 +0100, Julien Grall wrote: > On 08/22/2013 02:21 PM, Ian Campbell wrote: > > <insert which new helpers here> > > I will update the commit message on the next patch series. > > > I think this is also reimplementing the internals of some existing > > dt_match_foo? And changing set_val into dt_set_cell. IOW there seems to > > be more changes than the single line changelog would suggest. > > Except set_val which was rename and exported to __dt_set_cell, nothing > has changed. All the functions are new. OK. > > > > Are any of these just sync'd from Linux? > > Most of them. THIs is worth mentioning in the commit message, along with a rough Linux version number, in case we come back and need to sync bug fixes or something > > > On Fri, 2013-08-16 at 22:05 +0100, Julien Grall wrote: > >> @@ -295,11 +341,29 @@ struct dt_device_node > >> *dt_find_compatible_node(struct dt_device_node *from, > >> /** > >> * Find a property with a given name for a given node > >> * and return the value. > >> - */ > >> + */ > > > > Oops. > > > >> const void *dt_get_property(const struct dt_device_node *np, > >> const char *name, u32 *lenp); > >> > >> /** > >> + * dt_property_read_string - Find and read a string from a property > >> + * @np: Device node from which the property value is to be read > >> + * @propname: Name of the property to be searched > >> + * @out_string: Pointer to null terminated return string, modified only > >> + * if return value if 0. > >> + * > >> + * Search for a property in a device tree node and retrieve a null > >> + * terminated string value (pointer to data, not a copy). Returns 0 on > >> + * sucess, -EINVAL if the property does not exist, -ENODATA if property > > > > success > > > >> + * doest not have value, and -EILSEQ if the string is not > >> + * null-terminated with the length of the property data. > >> + * > >> + * The out_string pointer is modifed only if a valid string can be > >> decoded. > > > > modified > > > >> + */ > >> +int dt_property_read_string(const struct dt_device_node *np, > >> + const char *propname, const char > >> **out_string); > >> + > >> +/** > >> * Checks if the given "compat" string matches one of the strings in > >> * the device's "compatible" property > >> */ > >> @@ -433,4 +497,71 @@ int dt_n_size_cells(const struct dt_device_node *np); > >> */ > >> int dt_n_addr_cells(const struct dt_device_node *np); > >> > >> -#endif > >> +/** > >> + * dt_device_is_available - Check if a device is available for use > >> + * > >> + * @device: Node to check for availability > >> + * > >> + * Returns true if the status property is absent or set to "okay" or "ok", > >> + * false otherwise. > >> + */ > >> +bool_t dt_device_is_available(const struct dt_device_node *device); > >> + > >> +/** > >> + * dt_match_node - Tell if a device_node has a matching of dt_device_match > >> + * @matches: array of dt_device_match structures to search in > >> + * @node: the dt_device_node structure to match against > >> + * > >> + * Returns true if the device node match one of dt_device_match. > >> + */ > >> +bool_t dt_match_node(const struct dt_device_match *matches, > >> + const struct dt_device_node *node); > >> + > >> +/** > >> + * dt_find_matching_node - Find a node based on an dt_device_match match > >> table > >> + * @from: The node to start searching from or NULL, the node you pass > >> + * will not be searched, only the next one will; typically, you > >> pass > >> + * what the returned call returned > >> + * @matches: array of dt_device_match structures to search in > >> + * > >> + * Returns a node pointer. > >> + */ > >> +struct dt_device_node * > >> +dt_find_matching_node(struct dt_device_node *from, > >> + const struct dt_device_match *matches); > >> + > >> +/** > >> + * dt_set_cell - Write a value into a serie of cells > > > > series > > > >> + * > >> + * @cellp: Pointer to cells > >> + * > >> + * Write a value into a series of cells and update cellp to point to the > >> + * cell just after. > >> + */ > >> +void dt_set_cell(__be32 **cellp, int size, u64 val); > >> + > >> +/** > >> + * dt_set_range - Write range into a serie of cells > >> + * > >> + * @cellp: Pointer to cells > >> + * @np: Node which contains the encoding for the address and > >> + * the size > >> + * @address: Start of range > >> + * @size: Size of the range > >> + * > >> + * Write a range into a serie of cells and update cellp to point to the > > > > series > > > >> + * cell just after. > >> + */ > >> +void dt_set_range(__be32 **cellp, const struct dt_device_node *np, > >> + u64 address, u64 size); > >> + > >> +#endif /* __XEN_DEVICE_TREE_H */ > >> + > >> +/* > >> + * Local variables: > >> + * mode: C > >> + * c-file-style: "BSD" > >> + * c-basic-offset: 4 > >> + * indent-tabs-mode: nil > >> + * End: > >> + */ > > > > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |