1. 23 5月, 2014 3 次提交
    • T
      of: Use NULL for pointers · d2d3d7cd
      Thierry Reding 提交于
      Commit 44856819 (of/fdt: Clean up casting in unflattening path)
      modified unflatten_dt_node() to take a void * for the mem parameter
      instead of an unsigned long. One of the call sites wasn't updated.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      
      Conflicts:
      	drivers/of/fdt.c
      d2d3d7cd
    • G
      of: Stop naming platform_device using dcr address · ba52464a
      Grant Likely 提交于
      There is now a way to ensure all platform devices get a unique name when
      populated from the device tree, and the DCR_NATIVE code path is broken
      anyway. PowerPC Cell (PS3) is the only platform that actually uses this
      path.  Most likely nobody will notice if it is killed. Remove the code
      and associated ugly #ifdef.
      
      The user-visible impact of this patch is that any DCR device on Cell
      will get a new name in the /sys/devices hierarchy.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      ba52464a
    • G
      of: Ensure unique names without sacrificing determinism · 07e461cd
      Grant Likely 提交于
      The way the driver core is implemented, every device using the same bus
      type is required to have a unique name because a symlink to each device
      is created in the appropriate /sys/bus/*/devices directory, and two
      identical names causes a collision.
      
      The current code handles the requirement by using an globally
      incremented counter that is appended to the device name. It works, but
      it means any change to device registration will change the assigned
      numbers. Instead, if we build up the name by using information from the
      parent nodes, then it can be guaranteed to be unique without adding a
      random number to the end of it.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
      Cc: Rob Herring <robh@kernel.org>
      07e461cd
  2. 14 5月, 2014 4 次提交
  3. 30 4月, 2014 10 次提交
  4. 25 4月, 2014 1 次提交
    • R
      of/irq: do irq resolution in platform_get_irq · 9ec36caf
      Rob Herring 提交于
      Currently we get the following kind of errors if we try to use interrupt
      phandles to irqchips that have not yet initialized:
      
      irq: no irq domain found for /ocp/pinmux@48002030 !
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1 at drivers/of/platform.c:171 of_device_alloc+0x144/0x184()
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.12.0-00038-g42a9708 #1012
      (show_stack+0x14/0x1c)
      (dump_stack+0x6c/0xa0)
      (warn_slowpath_common+0x64/0x84)
      (warn_slowpath_null+0x1c/0x24)
      (of_device_alloc+0x144/0x184)
      (of_platform_device_create_pdata+0x44/0x9c)
      (of_platform_bus_create+0xd0/0x170)
      (of_platform_bus_create+0x12c/0x170)
      (of_platform_populate+0x60/0x98)
      
      This is because we're wrongly trying to populate resources that are not
      yet available. It's perfectly valid to create irqchips dynamically, so
      let's fix up the issue by resolving the interrupt resources when
      platform_get_irq is called.
      
      And then we also need to accept the fact that some irqdomains do not
      exist that early on, and only get initialized later on. So we can
      make the current WARN_ON into just into a pr_debug().
      
      We still attempt to populate irq resources when we create the devices.
      This allows current drivers which don't use platform_get_irq to continue
      to function. Once all drivers are fixed, this code can be removed.
      Suggested-by: NRussell King <linux@arm.linux.org.uk>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Tested-by: NTony Lindgren <tony@atomide.com>
      Cc: stable@vger.kernel.org # v3.10+
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      9ec36caf
  5. 24 4月, 2014 1 次提交
  6. 23 4月, 2014 1 次提交
  7. 16 4月, 2014 1 次提交
  8. 15 4月, 2014 1 次提交
    • X
      of: Fix the section mismatch warnings. · 5b624118
      Xiubo Li 提交于
      In tag next-20140407, building with CONFIG_DEBUG_SECTION_MISMATCH
      enabled, the following WARNING is occured:
      
      WARNING: drivers/built-in.o(.text.unlikely+0x2220): Section mismatch
      in reference from the function __reserved_mem_check_root() to the
      function .init.text:of_get_flat_dt_prop()
      The function __reserved_mem_check_root() references
      the function __init of_get_flat_dt_prop().
      This is often because __reserved_mem_check_root lacks a __init
      annotation or the annotation of of_get_flat_dt_prop is wrong.
      
      WARNING: vmlinux.o(.text.unlikely+0xb9d0): Section mismatch in reference
      from the function __reserved_mem_check_root() to the (unknown reference)
      .init.data:(unknown)
      The function __reserved_mem_check_root() references
      the (unknown reference) __initdata (unknown).
      This is often because __reserved_mem_check_root lacks a __initdata
      annotation or the annotation of (unknown) is wrong.
      
      This is cause by :
      'drivers: of: add initialization code for dynamic reserved memory'.
      Signed-off-by: NXiubo Li <Li.Xiubo@freescale.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      5b624118
  9. 28 3月, 2014 1 次提交
  10. 21 3月, 2014 1 次提交
  11. 19 3月, 2014 1 次提交
    • P
      of: device_node kobject lifecycle fixes · 0829f6d1
      Pantelis Antoniou 提交于
      After the move to having device nodes be proper kobjects the lifecycle
      of the node needs to be controlled better.
      
      At first convert of_add_node() in the unflattened functions to
      of_init_node() which initializes the kobject so that of_node_get/put
      work correctly even before of_init is called.
      
      Afterwards introduce of_node_is_initialized & of_node_is_attached that
      query the underlying kobject about the state (attached means kobj
      is visible in sysfs)
      
      Using that make sure the lifecycle of the tree is correct at all
      times.
      Signed-off-by: NPantelis Antoniou <panto@antoniou-consulting.com>
      [grant.likely: moved of_node_init() calls, fixed up locking, and
                     dropped __of_populate() hunks]
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      0829f6d1
  12. 15 3月, 2014 1 次提交
  13. 12 3月, 2014 6 次提交
    • G
      of: remove /proc/device-tree · 8357041a
      Grant Likely 提交于
      The same data is now available in sysfs, so we can remove the code
      that exports it in /proc and replace it with a symlink to the sysfs
      version.
      
      Tested on versatile qemu model and mpc5200 eval board. More testing
      would be appreciated.
      
      v5: Fixed up conflicts with mainline changes
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
      Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
      8357041a
    • G
      of/selftest: Add self tests for manipulation of properties · 7e66c5c7
      Grant Likely 提交于
      Adds a few simple test cases to ensure that addition, update and removal
      of device tree node properties works correctly.
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
      Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
      7e66c5c7
    • G
      of: Make device nodes kobjects so they show up in sysfs · 75b57ecf
      Grant Likely 提交于
      Device tree nodes are already treated as objects, and we already want to
      expose them to userspace which is done using the /proc filesystem today.
      Right now the kernel has to do a lot of work to keep the /proc view in
      sync with the in-kernel representation. If device_nodes are switched to
      be kobjects then the device tree code can be a whole lot simpler. It
      also turns out that switching to using /sysfs from /proc results in
      smaller code and data size, and the userspace ABI won't change if
      /proc/device-tree symlinks to /sys/firmware/devicetree/base.
      
      v7: Add missing sysfs_bin_attr_init()
      v6: Add __of_add_property() early init fixes from Pantelis
      v5: Rename firmware/ofw to firmware/devicetree
          Fix updating property values in sysfs
      v4: Fixed build error on Powerpc
          Fixed handling of dynamic nodes on powerpc
      v3: Fixed handling of duplicate attribute and child node names
      v2: switch to using sysfs bin_attributes which solve the problem of
          reporting incorrect property size.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Tested-by: NSascha Hauer <s.hauer@pengutronix.de>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
      Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
      75b57ecf
    • M
      drivers: of: add support for custom reserved memory drivers · f618c470
      Marek Szyprowski 提交于
      Add support for custom reserved memory drivers. Call their init() function
      for each reserved region and prepare for using operations provided by them
      with by the reserved_mem->ops array.
      
      Based on previous code provided by Josh Cartwright <joshc@codeaurora.org>
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      f618c470
    • M
      drivers: of: add initialization code for dynamic reserved memory · 3f0c8206
      Marek Szyprowski 提交于
      This patch adds support for dynamically allocated reserved memory regions
      declared in device tree. Such regions are defined by 'size', 'alignment'
      and 'alloc-ranges' properties.
      
      Based on previous code provided by Josh Cartwright <joshc@codeaurora.org>
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      3f0c8206
    • M
      drivers: of: add initialization code for static reserved memory · e8d9d1f5
      Marek Szyprowski 提交于
      This patch adds support for static (defined by 'reg' property) reserved
      memory regions declared in device tree.
      
      Memory blocks can be reliably reserved only during early boot. This must
      happen before the whole memory management subsystem is initialized,
      because we need to ensure that the given contiguous blocks are not yet
      allocated by kernel. Also it must happen before kernel mappings for the
      whole low memory are created, to ensure that there will be no mappings
      (for reserved blocks). Typically, all this happens before device tree
      structures are unflattened, so we need to get reserved memory layout
      directly from fdt.
      
      Based on previous code provided by Josh Cartwright <joshc@codeaurora.org>
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NGrant Likely <grant.likely@linaro.org>
      e8d9d1f5
  14. 11 3月, 2014 1 次提交
  15. 07 3月, 2014 5 次提交
  16. 04 3月, 2014 1 次提交
  17. 20 2月, 2014 1 次提交