1. 09 12月, 2011 8 次提交
    • T
      memblock: Reimplement __memblock_remove() using memblock_isolate_range() · 71936180
      Tejun Heo 提交于
      __memblock_remove()'s open coded region manipulation can be trivially
      replaced with memblock_islate_range().  This increases code sharing
      and eases improving region tracking.
      
      This pulls memblock_isolate_range() out of HAVE_MEMBLOCK_NODE_MAP.
      Make it use memblock_get_region_node() instead of assuming rgn->nid is
      available.
      
      -v2: Fixed build failure on !HAVE_MEMBLOCK_NODE_MAP caused by direct
           rgn->nid access.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      71936180
    • T
      memblock: Separate out memblock_isolate_range() from memblock_set_node() · 6a9ceb31
      Tejun Heo 提交于
      memblock_set_node() operates in three steps - break regions crossing
      boundaries, set nid and merge back regions.  This patch separates the
      first part into a separate function - memblock_isolate_range(), which
      breaks regions crossing range boundaries and returns range index range
      for regions properly contained in the specified memory range.
      
      This doesn't introduce any behavior change and will be used to further
      unify region handling.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      6a9ceb31
    • T
      memblock: Kill memblock_init() · fe091c20
      Tejun Heo 提交于
      memblock_init() initializes arrays for regions and memblock itself;
      however, all these can be done with struct initializers and
      memblock_init() can be removed.  This patch kills memblock_init() and
      initializes memblock with struct initializer.
      
      The only difference is that the first dummy entries don't have .nid
      set to MAX_NUMNODES initially.  This doesn't cause any behavior
      difference.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      fe091c20
    • T
      memblock: Kill sentinel entries at the end of static region arrays · c5a1cb28
      Tejun Heo 提交于
      memblock no longer depends on having one more entry at the end during
      addition making the sentinel entries at the end of region arrays not
      too useful.  Remove the sentinels.  This eases further updates.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      c5a1cb28
    • T
      memblock: Add __memblock_dump_all() · 4ff7b82f
      Tejun Heo 提交于
      Add __memblock_dump_all() which dumps memblock configuration whether
      memblock_debug is enabled or not.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      4ff7b82f
    • T
      memblock: Use memblock_reserve() in memblock internal functions · 9c8c27e2
      Tejun Heo 提交于
      Make memblock_double_array(), __memblock_alloc_base() and
      memblock_alloc_nid() use memblock_reserve() instead of calling
      memblock_add_region() with reserved array directly.  This eases
      debugging and updates to memblock_add_region().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      9c8c27e2
    • T
      memblock: Make memblock_{add|remove|free|reserve}() return int and update prototypes · 581adcbe
      Tejun Heo 提交于
      memblock_{add|remove|free|reserve}() return either 0 or -errno but had
      long as return type.  Chage it to int.  Also, drop 'extern' from all
      prototypes in memblock.h - they are unnecessary and used
      inconsistently (especially if mm.h is included in the picture).
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      581adcbe
    • T
      memblock: Fix include breakages caused by 24aa0788 · 1c16d242
      Tejun Heo 提交于
      24aa0788 (memblock, x86: Replace memblock_x86_reserve/free_range()
      with generic ones) removed arch/x86/include/asm/memblock.h and dropped
      its inclusion from include/linux/memblock.h which breaks other
      architectures which depended on the generic memblock.h pulling in the
      arch specific one.
      
      However, the proper fix isn't adding back the asm inclusion.  memblock
      doesn't have any arch dependent part and doesn't need arch specific
      header file and asm/memblock.h files are either practically empty or
      contain mostly unrelated arch specific stuff.
      
      * In microblaze, sh, powerpc, sparc and openrisc, asm/memblock.h is
        either empty or just contains unused MEMBLOCK_DBG() macro.  Remove
        them.
      
      * In arm and unicore32, asm/memblock.h contains arch specific stuff.
        Include it directly from its users.  It might be a good idea to
        rename the header file to avoid confusion.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: N"H. Peter Anvin" <hpa@zytor.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      1c16d242
  2. 29 11月, 2011 1 次提交
    • T
      Merge branch 'master' into x86/memblock · d4bbf7e7
      Tejun Heo 提交于
      Conflicts & resolutions:
      
      * arch/x86/xen/setup.c
      
      	dc91c728 "xen: allow extra memory to be in multiple regions"
      	24aa0788 "memblock, x86: Replace memblock_x86_reserve/free..."
      
      	conflicted on xen_add_extra_mem() updates.  The resolution is
      	trivial as the latter just want to replace
      	memblock_x86_reserve_range() with memblock_reserve().
      
      * drivers/pci/intel-iommu.c
      
      	166e9278 "x86/ia64: intel-iommu: move to drivers/iommu/"
      	5dfe8660 "bootmem: Replace work_with_active_regions() with..."
      
      	conflicted as the former moved the file under drivers/iommu/.
      	Resolved by applying the chnages from the latter on the moved
      	file.
      
      * mm/Kconfig
      
      	66616720 "memblock: add NO_BOOTMEM config symbol"
      	c378ddd5 "memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option"
      
      	conflicted trivially.  Both added config options.  Just
      	letting both add their own options resolves the conflict.
      
      * mm/memblock.c
      
      	d1f0ece6 "mm/memblock.c: small function definition fixes"
      	ed7b56a7 "memblock: Remove memblock_memory_can_coalesce()"
      
      	confliected.  The former updates function removed by the
      	latter.  Resolution is trivial.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      d4bbf7e7
  3. 28 11月, 2011 2 次提交
  4. 27 11月, 2011 2 次提交
  5. 26 11月, 2011 2 次提交
  6. 25 11月, 2011 2 次提交
  7. 24 11月, 2011 22 次提交
  8. 23 11月, 2011 1 次提交
    • A
      regulator: TPS65910: Fix VDD1/2 voltage selector count · 780dc9ba
      Afzal Mohammed 提交于
      Count of selector voltage is required for regulator_set_voltage
      to work via set_voltage_sel. VDD1/2 currently have it as zero,
      so regulator_set_voltage won't work for VDD1/2.
      Update count (n_voltages) for VDD1/2.
      
      Output Voltage = (step value * 12.5 mV + 562.5 mV) * gain
      
      With above expr, number of voltages that can be selected is
      step value count * gain count
      
      constant for gain count will be called VDD1_2_NUM_VOLT_COARSE
      
      existing constant for step value count is VDD1_2_NUM_VOLTS,
      use VDD1_2_NUM_VOLT_FINE instead to make clear that step value
      is not the only component in deciding selectable voltage count
      Signed-off-by: NAfzal Mohammed <afzal@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      780dc9ba