1. 16 9月, 2015 12 次提交
  2. 15 9月, 2015 1 次提交
    • S
      fdt: add new fdt address parsing functions · 02464e38
      Stephen Warren 提交于
      fdtdec_get_addr_size() hard-codes the number of cells used to represent
      an address or size in DT. This is incorrect in many cases depending on
      the DT binding for a particular node or property (e.g. it is incorrect
      for the "reg" property). In most cases, DT parsing code must use the
      properties #address-cells and #size-cells to parse addres properties.
      
      This change splits up the implementation of fdtdec_get_addr_size() so
      that the core logic can be used for both hard-coded and non-hard-coded
      cases. Various wrapper functions are implemented that support cases
      where hard-coded cell counts should or should not be used, and where
      the client does and doesn't know the parent node ID that contains the
      properties #address-cells and #size-cells.
      
      dev_get_addr() is updated to use the new functions.
      
      Core functionality in fdtdec_get_addr_size_fixed() is widely tested via
      fdtdec_get_addr_size(). I tested fdtdec_get_addr_size_auto_noparent() and
      dev_get_addr() by manually modifying the Tegra I2C driver to invoke them.
      
      Much of the core implementation of fdtdec_get_addr_size_fixed(),
      fdtdec_get_addr_size_auto_parent(), and
      fdtdec_get_addr_size_auto_noparent() comes from Thierry Reding's
      previous commit "fdt: Fix fdtdec_get_addr_size() for 64-bit".
      Based-on-work-by: NThierry Reding <treding@nvidia.com>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Michal Suchanek <hramrach@gmail.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NSimon Glass <sjg@chromium.org>
      Dropped #define DEBUG at the top of fdtdec.c:
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      02464e38
  3. 14 9月, 2015 1 次提交
  4. 13 9月, 2015 26 次提交