All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: patches@linaro.org, xen-devel@lists.xen.org,
	andre.przywara@linaro.org, stefano.stabellini@eu.citrix.com
Subject: Re: [RFC 09/24] xen/dts: Add new helpers to use the device tree
Date: Thu, 22 Aug 2013 14:48:30 +0100	[thread overview]
Message-ID: <521616AE.7080301@linaro.org> (raw)
In-Reply-To: <1377177716.2825.13.camel@kazak.uk.xensource.com>

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.

> 
> Are any of these just sync'd from Linux?

Most of them.

> 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:
>> + */
> 
> 


-- 
Julien Grall

  reply	other threads:[~2013-08-22 13:48 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-16 21:05 [RFC 00/24] Allow Xen to boot with a raw Device Tree Julien Grall
2013-08-16 21:05 ` [RFC 01/24] xen/char: dt-uart: Allow the user to give a path to the node Julien Grall
2013-08-16 21:25   ` Andre Przywara
2013-08-19 15:09     ` Julien Grall
2013-08-22 12:23       ` Ian Campbell
2013-08-16 21:05 ` [RFC 02/24] xen: Introduce __initconst to store initial const data Julien Grall
2013-08-19  9:46   ` Jan Beulich
2013-08-19 14:56     ` Ian Campbell
2013-08-20  7:12       ` Jan Beulich
2013-08-20  8:31         ` Ian Campbell
2013-08-20  8:53           ` Jan Beulich
2013-08-20  8:59           ` Julien Grall
2013-08-22 13:07   ` Ian Campbell
2013-08-16 21:05 ` [RFC 03/24] xen/dts: Don't check the number of address and size cells in process_cpu_node Julien Grall
2013-08-19  0:59   ` Chen Baozi
2013-08-22 12:51   ` Ian Campbell
2013-08-22 13:14     ` Julien Grall
2013-08-22 14:05       ` Ian Campbell
2013-08-16 21:05 ` [RFC 04/24] xen/dts: Constify device_tree_flattened Julien Grall
2013-08-22 13:05   ` Ian Campbell
2013-08-22 13:35     ` Julien Grall
2013-08-22 14:07       ` Ian Campbell
2013-08-16 21:05 ` [RFC 05/24] xen/arm: Move __PSCI* from traps.c to the header Julien Grall
2013-08-22 13:05   ` Ian Campbell
2013-08-16 21:05 ` [RFC 06/24] xen: Add new string functions Julien Grall
2013-08-19  9:54   ` Jan Beulich
2013-08-19 14:57     ` Ian Campbell
2013-08-19 15:13       ` Julien Grall
2013-08-20  8:32         ` Jan Beulich
2013-08-16 21:05 ` [RFC 07/24] xen: Use the right string comparison function in device tree Julien Grall
2013-08-22 13:11   ` Ian Campbell
2013-08-22 13:23     ` Julien Grall
2013-08-16 21:05 ` [RFC 08/24] xen/dts: Don't add a fake property "name" in the " Julien Grall
2013-08-22 13:16   ` Ian Campbell
2013-08-22 13:43     ` Julien Grall
2013-08-22 14:08       ` Ian Campbell
2013-08-16 21:05 ` [RFC 09/24] xen/dts: Add new helpers to use " Julien Grall
2013-08-22 13:21   ` Ian Campbell
2013-08-22 13:48     ` Julien Grall [this message]
2013-08-22 14:09       ` Ian Campbell
2013-08-16 21:05 ` [RFC 10/24] xen/dts: Remove device_get_reg call in process_memory_node Julien Grall
2013-08-22 13:23   ` Ian Campbell
2013-08-22 13:54     ` Julien Grall
2013-08-22 14:10       ` Ian Campbell
2013-08-16 21:05 ` [RFC 11/24] xen/dts: Remove device_get_reg call in process_cpu_node Julien Grall
2013-08-16 21:05 ` [RFC 12/24] xen/dts: Remove device_get_reg call in process_multiboot_node Julien Grall
2013-08-16 21:05 ` [RFC 13/24] xen/dts: Check the CPU ID is not greater than NR_CPUS Julien Grall
2013-08-22 13:24   ` Ian Campbell
2013-08-16 21:05 ` [RFC 14/24] xen/video: hdlcd: Convert the driver to the new device tree API Julien Grall
2013-08-22 13:28   ` Ian Campbell
2013-08-22 14:02     ` Julien Grall
2013-08-22 14:11       ` Ian Campbell
2013-08-16 21:05 ` [RFC 15/24] xen/arm: Use dt_device_match to avoid multiple if conditions Julien Grall
2013-08-22 13:30   ` Ian Campbell
2013-08-22 14:04     ` Julien Grall
2013-08-16 21:05 ` [RFC 16/24] xen/arm: Build DOM0 FDT by browsing the device tree structure Julien Grall
2013-08-22 13:49   ` Ian Campbell
2013-08-22 14:10     ` Julien Grall
2013-08-22 14:13       ` Ian Campbell
2013-08-16 21:05 ` [RFC 17/24] xen/arm: Mark each device used by Xen as disabled in DOM0 FDT Julien Grall
2013-08-22 13:50   ` Ian Campbell
2013-08-22 14:15     ` Julien Grall
2013-08-22 14:22       ` Ian Campbell
2013-08-16 21:05 ` [RFC 18/24] xen/arm: Don't map disabled device in DOM0 Julien Grall
2013-08-16 21:05 ` [RFC 19/24] xen/arm: Create a fake PSCI node in dom0 device tree Julien Grall
2013-08-21 13:50   ` Julien Grall
2013-08-16 21:05 ` [RFC 20/24] xen/arm: Add new platform specific callback device_is_blacklist Julien Grall
2013-08-22 13:57   ` Ian Campbell
2013-08-16 21:05 ` [RFC 21/24] xen/arm: vexpress: Blacklist a list of board specific devices Julien Grall
2013-08-22 14:00   ` Ian Campbell
2013-08-22 14:24     ` Julien Grall
2013-08-22 14:36       ` Ian Campbell
2013-08-22 14:51         ` Julien Grall
2013-08-22 15:02           ` Ian Campbell
2013-08-22 15:28             ` Julien Grall
2013-08-22 15:32               ` Ian Campbell
2013-08-16 21:05 ` [RFC 22/24] xen/arm: exynos5: Blacklist MCT device Julien Grall
2013-08-16 21:05 ` [RFC 23/24] xen/dts: Clean up the exported API for device tree Julien Grall
2013-08-22 14:01   ` Ian Campbell
2013-08-16 21:05 ` [RFC 24/24] xen/arm: Check if the device is available before using it Julien Grall
2013-08-22 14:01   ` Ian Campbell
2013-08-19 22:11 ` [RFC 00/24] Allow Xen to boot with a raw Device Tree Julien Grall
2013-08-20  8:33   ` Ian Campbell
2013-08-20  8:48     ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=521616AE.7080301@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=andre.przywara@linaro.org \
    --cc=patches@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.