ARM: Allow arm_memblock_steal() to remove memory from any RAM region

Allow arm_memblock_steal() to remove memory from any RAM region,
including highmem areas.  This allows memory to be stolen from the
very top of declared memory, including highmem areas, rather than
our precious lowmem.

Change-Id: Ib4dbc4e7bc34d402134d96db5ed8118eaffa0245
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Git-commit: 7ac68a4c1de6aac5b0bb231fe6d8505ebe5686d9
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Larry Bassel <lbassel@codeaurora.org>
msm: clock: Fix clk_set_parent()

- Update the clk->parent field when the operation succeeds.
- Grab the prepare lock when changing the parent. This is necessary to
  avoid race conditions between clk_set_parent() and clk_prepare(),
  clk_unprepare() and clk_set_rate(). Luckily, as of now, only the measure
  clock supports clk_set_parent(). So, this is not a real issue in a
  production device. Each set_parent op still needs to deal with
  grabbing/releasing the enable lock at the right time.
- If a clock doesn't support clk_set_parent() return an error instead of
  silently failing.

Change-Id: I5fdd6a7bb44bb924dc9aabd7119a03520617e3d1
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>