firefly-linux-kernel-4.4.55.git
12 years agoMerge branch 'regulator-register' into regulator-drivers
Mark Brown [Mon, 9 Apr 2012 11:30:21 +0000 (12:30 +0100)]
Merge branch 'regulator-register' into regulator-drivers

12 years agoregulator: Convert rc5t583 to set_voltage
Axel Lin [Thu, 5 Apr 2012 06:07:36 +0000 (14:07 +0800)]
regulator: Convert rc5t583 to set_voltage

Not every regulator driver should implement set_voltage_sel callback.
See commit e8eef82
"regulator: Provide a selector based set_voltage_sel() operation".

For rc5t583, the regulator voltage can be mapped onto selector values with a
simple calculation, thus implement set_voltage is better than set_voltage_sel.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8649: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:26:06 +0000 (08:26 +0800)]
regulator: max8649: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max1586: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:24:27 +0000 (08:24 +0800)]
regulator: max1586: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: tps65217: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:31:51 +0000 (08:31 +0800)]
regulator: tps65217: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: AnilKumar Ch <anilkumar@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: tps6105x: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:30:42 +0000 (08:30 +0800)]
regulator: tps6105x: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8952: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:29:49 +0000 (08:29 +0800)]
regulator: max8952: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8660: Constify regulator_desc
Axel Lin [Fri, 6 Apr 2012 00:26:59 +0000 (08:26 +0800)]
regulator: max8660: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert twl4030ldo_set_voltage to set_voltage_sel
Axel Lin [Mon, 26 Mar 2012 01:30:06 +0000 (09:30 +0800)]
regulator: Convert twl4030ldo_set_voltage to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: rc5t583: Correct MODULE LICENSE to GPL v2
Laxman Dewangan [Fri, 6 Apr 2012 05:28:33 +0000 (10:58 +0530)]
regulator: rc5t583: Correct MODULE LICENSE to GPL v2

Fixing build issue reported by Paul Gortmaker:

It appears this breaks linux-next allmodconfig build, because it
uses an uppercase V in the v2 of its MODULE_LICENSE.

FATAL: modpost: GPL-incompatible module rc5t583-regulator.ko uses
GPL-only symbol 'platform_driver_unregister'
make[2]: *** [__modpost] Error 1

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: rc5t583: Simplify RC5T583_REG macro
Axel Lin [Fri, 6 Apr 2012 00:01:36 +0000 (08:01 +0800)]
regulator: rc5t583: Simplify RC5T583_REG macro

Simplify RC5T583_REG macro by removing _vout_reg and _ds_reg parameters.

The naming for vout_reg and deepsleep_reg can be replaced by:
.vout_reg       = RC5T583_REG_##_id##DAC,
.deepsleep_reg  = RC5T583_REG_##_id##DAC_DS,

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: rc5t583: Remove nsteps from struct rc5t583_regulator_info
Axel Lin [Thu, 5 Apr 2012 06:04:48 +0000 (14:04 +0800)]
regulator: rc5t583: Remove nsteps from struct rc5t583_regulator_info

The nsteps can be calculated by (_max_mv - _min_mv) * 1000 / _step_uV + 1,
thus we can remove _nsteps from RC5T583_REG macro, and then remove
nsteps from struct rc5t583_regulator_info.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: rc5t583: Fix off-by-one valid range checking for selector
Axel Lin [Wed, 4 Apr 2012 14:38:09 +0000 (22:38 +0800)]
regulator: rc5t583: Fix off-by-one valid range checking for selector

The valid selector should be 0 ... nsteps-1.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: da9052: Remove unneeded devm_kfree calls
Axel Lin [Thu, 5 Apr 2012 04:08:58 +0000 (12:08 +0800)]
regulator: da9052: Remove unneeded devm_kfree calls

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: pcap: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 04:01:33 +0000 (12:01 +0800)]
regulator: pcap: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: lp3972: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 04:00:32 +0000 (12:00 +0800)]
regulator: lp3972: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: lp3971: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 03:59:20 +0000 (11:59 +0800)]
regulator: lp3971: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: isl6271a: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 03:58:06 +0000 (11:58 +0800)]
regulator: isl6271a: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: pcf50633: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 04:02:36 +0000 (12:02 +0800)]
regulator: pcf50633: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: ad5398: Constify regulator_desc
Axel Lin [Thu, 5 Apr 2012 03:56:56 +0000 (11:56 +0800)]
regulator: ad5398: Constify regulator_desc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Fix rc5t583_regulator_probe error handling
Axel Lin [Wed, 4 Apr 2012 11:52:35 +0000 (19:52 +0800)]
regulator: Fix rc5t583_regulator_probe error handling

1. regulator_register returns ERR_PTR on error, thus use IS_ERR to check the
   return value.
2. Fix off-by-one for unregistering the registered regulator.
   Current code does not unregister regs[0].rdev in clean_exit.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: aat2870: Add MODULE_ALIAS
Mark Brown [Wed, 14 Mar 2012 17:44:56 +0000 (17:44 +0000)]
regulator: aat2870: Add MODULE_ALIAS

Not that it's ever likely to get used.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Jin Park <jinyoungp@nvidia.com>
12 years agoregulator: Add support for RICOH PMIC RC5T583 regulator
Laxman Dewangan [Wed, 4 Apr 2012 07:14:00 +0000 (12:44 +0530)]
regulator: Add support for RICOH PMIC RC5T583 regulator

The RC5T583 PMIC from RICOH consists of 4 DCDC and 10
LDOs. This driver supports the control of different
regulator output through regulator interface.
This driver depends on MFD driver of RC5T583 and uses
mfd rc5t583 apis to communicate to device for accessing
different device's registers.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: wm8994: Constify regulator_desc
Mark Brown [Tue, 3 Apr 2012 19:47:27 +0000 (20:47 +0100)]
regulator: wm8994: Constify regulator_desc

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: wm8350: Constify regulator_desc
Mark Brown [Tue, 3 Apr 2012 19:47:15 +0000 (20:47 +0100)]
regulator: wm8350: Constify regulator_desc

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: core: Constify the regulator_desc passed in when registering
Mark Brown [Tue, 3 Apr 2012 19:46:53 +0000 (20:46 +0100)]
regulator: core: Constify the regulator_desc passed in when registering

Drivers should be able to declare their descriptors const and the framework
shouldn't ever be modifying the desciptor. Make the parameter and the
pointer in regulator_dev const to enforce this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: tps6524x: Use module_spi_driver()
Mark Brown [Tue, 3 Apr 2012 23:34:23 +0000 (00:34 +0100)]
regulator: tps6524x: Use module_spi_driver()

Unusual to see a regulator driver not using subsys_initcall() but the
deferred probe support should make this viable.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8860: Remove announcement on probe
Mark Brown [Tue, 3 Apr 2012 23:03:15 +0000 (00:03 +0100)]
regulator: max8860: Remove announcement on probe

The core already announces constraints and we're not adding any new
information such as the chip revision.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8649: Remove contentless announcement log message
Mark Brown [Tue, 3 Apr 2012 22:59:37 +0000 (23:59 +0100)]
regulator: max8649: Remove contentless announcement log message

The core already logs the regulator constraints as it is registered and
we're not adding any extra content about the device such as the chip
revision.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: lp3971: Convert to module_i2c_driver()
Mark Brown [Tue, 3 Apr 2012 22:33:10 +0000 (23:33 +0100)]
regulator: lp3971: Convert to module_i2c_driver()

Unusual to see a regulator driver not using subsys_initcall() but with
the probe deferral support should be becoming more and more viable.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: isl6271a: Allow missing init_data for diagnostics
Mark Brown [Tue, 3 Apr 2012 22:28:21 +0000 (23:28 +0100)]
regulator: isl6271a: Allow missing init_data for diagnostics

The regulator core supports this to allow the configuration to be inspected
at runtime even if no software mangement is enabled.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
12 years agoregulator: gpio-regulator: Basic devm_kzalloc() conversion
Mark Brown [Tue, 3 Apr 2012 22:20:56 +0000 (23:20 +0100)]
regulator: gpio-regulator: Basic devm_kzalloc() conversion

There's some other allocations but they're not so trivial as they use
kmemdup() and kstrdup().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: gpio-regulator: Sort in Makefile
Mark Brown [Tue, 3 Apr 2012 22:20:04 +0000 (23:20 +0100)]
regulator: gpio-regulator: Sort in Makefile

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert mc13xxx regulator drivers to set_voltage_sel
Axel Lin [Tue, 20 Mar 2012 02:46:35 +0000 (10:46 +0800)]
regulator: Convert mc13xxx regulator drivers to set_voltage_sel

Convert mc13892_sw_regulator_ops and mc13xxx_regulator_ops to set_voltage_sel.
mc13xxx_get_best_voltage_index function is not used now, remove it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: fixed: Support for open drain gpio pin
Laxman Dewangan [Wed, 7 Mar 2012 10:28:33 +0000 (15:58 +0530)]
regulator: fixed: Support for open drain gpio pin

Adding flag on fixed regulator board configuration structure
to specify whether gpio is open drain type or not.
Passing this information to gpio library when requesting
gpio so that gpio driver can set the pin state accordingly,
for open drain type:
- Pin can be set HIGH as setting as input, PULL UP on
  pin make this as HIGH.
- Pin can be set LOW as setting it as output and drive to LOW.

The non-open drain pin can be  set HIGH/LOW by setting it to
output and driving it to HIGH/LOW.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add support for tps62362 and tps62363 in tps62360-regulator driver
Axel Lin [Mon, 2 Apr 2012 10:19:28 +0000 (18:19 +0800)]
regulator: Add support for tps62362 and tps62363 in tps62360-regulator driver

According to the datasheet[1], tps62360 is register compatible with tps62362.
tps62361B is register compatible with tps62363.
Thus this patch adds support for tps62362 and tps62363.

[1] http://www.ti.com/litv/pdf/slvsau9b

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add missing n_voltages setting for max8925
Axel Lin [Mon, 2 Apr 2012 01:16:08 +0000 (09:16 +0800)]
regulator: Add missing n_voltages setting for max8925

The n_voltages are the same for all regulators: (max - min / step) + 1 == 64.
The vol_shift is always 0, and the vol_nbits is always the same as n_voltages
setting. Thus we can remove vol_shitf and vol_nbits fields from struct
max8925_regulator_info.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Set list_voltage callback for max8925
Axel Lin [Mon, 2 Apr 2012 01:14:28 +0000 (09:14 +0800)]
regulator: Set list_voltage callback for max8925

Current code implements max8925_list_voltage but does not set the list_voltage
callback function in max8925_regulator_[ldo|sdv]_ops. Fix it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert 88pm8607 to get_voltage_sel
Axel Lin [Wed, 28 Mar 2012 07:01:48 +0000 (15:01 +0800)]
regulator: Convert 88pm8607 to get_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Jett Zhou <jtzhou@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert 88pm8607 to set_voltage_sel
Axel Lin [Wed, 28 Mar 2012 07:00:36 +0000 (15:00 +0800)]
regulator: Convert 88pm8607 to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Jett Zhou <jtzhou@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add missing n_voltages setting for 88pm8607
Axel Lin [Wed, 28 Mar 2012 06:59:23 +0000 (14:59 +0800)]
regulator: Add missing n_voltages setting for 88pm8607

Then we can remove the vol_nbits field from struct pm8607_regulator_info.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Jett Zhou <jtzhou@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Set list_voltage callback for 88pm8607
Axel Lin [Wed, 28 Mar 2012 06:58:29 +0000 (14:58 +0800)]
regulator: Set list_voltage callback for 88pm8607

Current code implements pm8607_list_voltage but does not set the list_voltage
callback function in pm8607_regulator_ops. Fix it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Jett Zhou <jtzhou@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Trivial comment fix for wm831x-ldo driver
Axel Lin [Thu, 29 Mar 2012 07:04:22 +0000 (15:04 +0800)]
regulator: Trivial comment fix for wm831x-ldo driver

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert tps6524x to get_voltage_sel
Axel Lin [Wed, 28 Mar 2012 11:46:39 +0000 (19:46 +0800)]
regulator: Convert tps6524x to get_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert tps6524x to set_voltage_sel
Axel Lin [Wed, 28 Mar 2012 11:45:43 +0000 (19:45 +0800)]
regulator: Convert tps6524x to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: ad5398: Use devm_kzalloc
Axel Lin [Tue, 27 Mar 2012 02:09:42 +0000 (10:09 +0800)]
regulator: ad5398: Use devm_kzalloc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: ad5398: show changing current in uA
Axel Lin [Tue, 27 Mar 2012 02:08:25 +0000 (10:08 +0800)]
regulator: ad5398: show changing current in uA

Integer division may truncate the result.
Current code shows changing current is 0mA when selector is 1 ... 8.

For example:
selector = 1
ad5398_calc_current returns 117, debug message shows 117/1000 = 0mA
selector = 2
ad5398_calc_current returns 234, debug message shows 234/1000 = 0mA
selector = 3
ad5398_calc_current returns 351, debug message shows 351/1000 = 0mA
............
selector = 8
ad5398_calc_current returns 937, debug message shows 937/1000 = 0mA

Show the changing current in uA makes it easier for debugging.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: tps65023: Remove unused client field from struct tps_pmic
Axel Lin [Wed, 28 Mar 2012 02:07:40 +0000 (10:07 +0800)]
regulator: tps65023: Remove unused client field from struct tps_pmic

The client field of struct tps_pmic is not used after converting to regmap API.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Remove unused name and client fields from struct tps62360_chip
Axel Lin [Wed, 28 Mar 2012 02:06:45 +0000 (10:06 +0800)]
regulator: Remove unused name and client fields from struct tps62360_chip

The client field of struct tps62360_chip is not used after converting to regmap.
The name field of struct tps62360_chip is not used in this driver.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Refactor to use one da9052_ldo_ops/da9052_dcdc_ops for all LDOs/DCDCs
Axel Lin [Thu, 15 Mar 2012 12:00:07 +0000 (20:00 +0800)]
regulator: Refactor to use one da9052_ldo_ops/da9052_dcdc_ops for all LDOs/DCDCs

In current implementation, da9052_ldo_ops and da9052_ldo5_6_ops are very
similar, only the set_voltage is slightly different.
da9052_buckperi_ops and da9052_dcdc_ops are also similar.

This patch adds da9052_regulator_set_voltage for the set_voltage callback
used by all LDOs and DCDCs. Rework da9052_get_regulator_voltage_sel and
da9052_set_dcdc_voltage to make it possible to be shared by all DCDCs.
Rework da9052_list_voltage to make it to be shared by all DCDCs and LDOs.

Then we can remove da9052_ldo5_6_ops and da9052_buckperi_ops.
We can also remove DA9052_LDO5_6 and DA9052_BUCKPERI macros which is not used
now.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Fix da9052 ldo regulator names
Axel Lin [Thu, 15 Mar 2012 11:58:39 +0000 (19:58 +0800)]
regulator: Fix da9052 ldo regulator names

The regulator name for LDOs are LDO4 ... LDO13 in current implementation.
The correct regulator name for LDOs should be LDO1 ... LDO10.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert tps65023 to set_voltage_sel
Axel Lin [Mon, 26 Mar 2012 05:46:44 +0000 (13:46 +0800)]
regulator: Convert tps65023 to set_voltage_sel

This patch also changes the define for TPS65023_LDO_CTRL_LDOx_MASK,
because regmap_update_bits actually does:
        (orig & ~mask) | (val & mask)
This change makes the code consists for all regmap_update_bits calls.

Also removes some uninformative comments.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add MAX8997_VOLTAGE_REGULATOR and MAX8997_CURRENT_REGULATOR macros
Axel Lin [Tue, 13 Mar 2012 06:53:58 +0000 (14:53 +0800)]
regulator: Add MAX8997_VOLTAGE_REGULATOR and MAX8997_CURRENT_REGULATOR macros

MAX8997_VOLTAGE_REGULATOR macro has _name and _ops parameters so we can use it
for all regulators with REGULATOR_VOLTAGE type.
The MAX8997_VOLTAGE_REGULATOR now replaces regulator_desc_ldo and
regulator_desc_buck macros.

MAX8997_CURRENT_REGULATOR is for CHARGER and CHARGER_TOPOFF.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Make max8997_get_voltage_register always return correct register
Axel Lin [Tue, 13 Mar 2012 03:22:41 +0000 (11:22 +0800)]
regulator: Make max8997_get_voltage_register always return correct register

Check max8997->buck[1|2|5]_gpiodvs status in max8997_get_voltage_register
and return correct register accordingly.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert max8952 to set_voltage_sel
Axel Lin [Mon, 26 Mar 2012 01:20:58 +0000 (09:20 +0800)]
regulator: Convert max8952 to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Remove _en_reg, _en_bit and _ops parameters from tps65090_REG macro
Axel Lin [Sat, 24 Mar 2012 02:57:53 +0000 (10:57 +0800)]
regulator: Remove _en_reg, _en_bit and _ops parameters from tps65090_REG macro

Both _en_bit and _ops parameters for all DCDCs and FETs are the same, so we
can hardcode it in tps65090_REG macro.

_en_reg can be calculated by _id + 12, so we can also remove it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked by: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: tps65090: Use IS_ERR to check return value of regulator_register
Axel Lin [Sat, 24 Mar 2012 02:56:00 +0000 (10:56 +0800)]
regulator: tps65090: Use IS_ERR to check return value of regulator_register

regulator_register never returns NULL.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked by: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Merge tps6586x_regulator_ldo_ops and tps6586x_regulator_dvm_ops
Axel Lin [Sat, 24 Mar 2012 01:44:42 +0000 (09:44 +0800)]
regulator: Merge tps6586x_regulator_ldo_ops and tps6586x_regulator_dvm_ops

Now all the callback implementation are the same for both ldo and dvm
regulator_ops, merge them to tps6586x_regulator_ops.

Also rename tps6586x_ldo_list_voltage to tps6586x_list_voltage.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert tps6586x to set_voltage_sel
Axel Lin [Sat, 24 Mar 2012 01:42:26 +0000 (09:42 +0800)]
regulator: Convert tps6586x to set_voltage_sel

Convert both tps6586x_[ldo|dvm]_set_voltage to one set_voltage_sel callback.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert tps6586x to get_voltage_sel
Axel Lin [Sat, 24 Mar 2012 01:38:30 +0000 (09:38 +0800)]
regulator: Convert tps6586x to get_voltage_sel

This also fixes a bug, LDO0 has minimal voltage 1.2V rather than 1.25V.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: wm831x-dcdc: Use devm_kzalloc
Axel Lin [Fri, 23 Mar 2012 09:00:01 +0000 (17:00 +0800)]
regulator: wm831x-dcdc: Use devm_kzalloc

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert pcap-regulator to get_voltage_sel
Axel Lin [Fri, 23 Mar 2012 08:50:40 +0000 (16:50 +0800)]
regulator: Convert pcap-regulator to get_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert pcap-regulator to set_voltage_sel
Axel Lin [Fri, 23 Mar 2012 08:49:22 +0000 (16:49 +0800)]
regulator: Convert pcap-regulator to set_voltage_sel

After converting to set_voltage_sel, we can remove the workaroud of getting
the best match voltage for V1. The core will iterate through the whole voltage
table and find the best match for us.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert lp3972 to set_voltage_sel
Axel Lin [Fri, 23 Mar 2012 02:51:14 +0000 (10:51 +0800)]
regulator: Convert lp3972 to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-By: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert lp3971 to set_voltage_sel
Axel Lin [Fri, 23 Mar 2012 02:49:54 +0000 (10:49 +0800)]
regulator: Convert lp3971 to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-By: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add TPS65090 regulator driver
Venu Byravarasu [Thu, 22 Mar 2012 13:04:09 +0000 (18:34 +0530)]
regulator: Add TPS65090 regulator driver

Add TPS65090 regulator driver

TPS65090 PMIC from TI consists of 3 step down converters,
2 always on LDOs and 7 current limited load switches. The
output voltages are ON/OFF controllable and are meant to
supply power to the components on target board.

Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: gpio-regulator: Set the smallest voltage/current in the specified range
Axel Lin [Thu, 22 Mar 2012 06:08:04 +0000 (14:08 +0800)]
regulator: gpio-regulator: Set the smallest voltage/current in the specified range

Do not assume the gpio regulator states map is sorted in any order.
This patch ensures we always set the smallest voltage/current that falls within
the specified range.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: fixed: Don't supply voltage change ops when no GPIO is given
Mark Brown [Wed, 21 Mar 2012 20:04:44 +0000 (20:04 +0000)]
regulator: fixed: Don't supply voltage change ops when no GPIO is given

Rather than replicating the core support for always on regulators use
a different set of ops with none of the enable related operations provided
when we don't have any ops. This ensures that we automatically pick up
any enhanced support for such regulators that the core has such as the
warnings about regulation constraints that can't be used.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: fixed: Use devm_kzalloc()
Mark Brown [Wed, 21 Mar 2012 18:13:29 +0000 (18:13 +0000)]
regulator: fixed: Use devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Use tps65912_get_voltage for both DCDCs and LDOs
Axel Lin [Thu, 15 Mar 2012 09:18:35 +0000 (17:18 +0800)]
regulator: Use tps65912_get_voltage for both DCDCs and LDOs

Now tps65912_get_voltage_dcdc and tps65912_get_voltage_ldo has exactly the same
implementation. We can merge them to tps65912_get_voltage function.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Implement tps65912_list_voltage to be shared by both DCDCs and LDOs
Axel Lin [Thu, 15 Mar 2012 09:17:36 +0000 (17:17 +0800)]
regulator: Implement tps65912_list_voltage to be shared by both DCDCs and LDOs

Merge tps65912_list_voltage_dcdc and tps65912_list_voltage_ldo to
tps65912_list_voltage.  This change does not add too much complexity in
tps65912_list_voltage function.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: max8952: Simplify the logic to get vid[0|1] status
Axel Lin [Thu, 15 Mar 2012 00:47:48 +0000 (08:47 +0800)]
regulator: max8952: Simplify the logic to get vid[0|1] status

The syntax "(((vid >> 1) % 2) == 1)" is inefficient and also hard to read.
Use bitwidse AND operator instead.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert ab3100 to set_voltage_sel
Axel Lin [Tue, 20 Mar 2012 02:14:40 +0000 (10:14 +0800)]
regulator: Convert ab3100 to set_voltage_sel

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert ab8500 to set_voltage_sel
Axel Lin [Tue, 20 Mar 2012 01:51:08 +0000 (09:51 +0800)]
regulator: Convert ab8500 to set_voltage_sel

Convert ab8500 to set_voltage_sel and then we can remove
ab8500_get_best_voltage_index function.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Convert pcf50633 to get_voltage_sel
Axel Lin [Mon, 19 Mar 2012 02:57:06 +0000 (10:57 +0800)]
regulator: Convert pcf50633 to get_voltage_sel

Convert pcf50633 to get_voltage_sel and then we can remove
pcf50633_regulator_voltage_value function and move its implementation
to pcf50633_regulator_list_voltage.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register
Axel Lin [Mon, 19 Mar 2012 02:55:24 +0000 (10:55 +0800)]
regulator: pcf50633: Don't write to reserved bits of AUTO output voltage select register

The datasheet says 00000000 to 00101110 are reserved, and the min value of the
voltage setting is 1.8 V.
Thus don't write 0 to AUTO output voltage select register (address 1Ah).

Table 50. AUTOOUT - AUTO output voltage select register (address 1Ah) bit description[1]
Bit Symbol Access Description
7:0 auto_out R/W VO(prog) = 0.625 + auto_out × 0.025 V
eg. 00000000 to 00101110: reserved
00101111: 1.8 V (min)
01010011: 2.7 V
01101010: 3.275 V
01101011: 3.300 V
01101100: 3.325 V
01111111 : 3.800 V (max)
..... .....
11111110 : 3.800 V
11111111 : 3.800 V

This patch also fixes a bug in pcf50633_regulator_list_voltage:
In regulator core _regulator_do_set_voltage function:

        if (rdev->desc->ops->set_voltage) {
                ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV,
                                                   &selector);

                if (rdev->desc->ops->list_voltage)
                        selector = rdev->desc->ops->list_voltage(rdev,
                                                                 selector);
                else
                        selector = -1;

The list_voltage call here takes the selector got from set_voltage callback.
Thus adding 0x2f to the index in pcf50633_regulator_list_voltage looks wrong to me.

e.g.
If min_uV < 1.8V, pcf50633_regulator_set_voltage sets 0 to selector.
For this case, adding 0x2f to the index in pcf50633_regulator_list_voltage is correct.
However, if min_uV == 1.8V, pcf50633_regulator_set_voltage sets 0x2f to selector.
Adding 0x2f to the index in pcf50633_regulator_list_voltage in this case is wrong.

What this patch does is:
The minimal voltage setting for AUTOOUT is 0x2f.
Thus for the case min_uV < 1.8, set the voltage setting to 1.8V by writting
0x2f to AUTOOUT register and set selector = 0x2f.
So we don't write the rserved range to AUTOOUT register.
Which means the possible range of AUTOOUT register value is 0x2f ~ 0xff.

We have no problem in regulator_get_voltage.
Since we won't write 0~0x2e to AUTOOUT register, we have no problem converting
the bits we read to voltage. The equation in auto_voltage_value works fine.

For list_voltage, we need to take into account the case selector is 0 ~ 0x2e
because the regulator core assumes the selector is starting from 0.
This patch returns 0 for the cases selector is 0 ~ 0x2e, which means
"this selector code can't be used on this system".

The regulator core iterates from 0 to n_voltages to find the small voltage
in the specific range. The n_voltages settings for AUTOOUT should be 128 now,
including the reserved range of AUTOOUT.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Add support s5m8767 opmode operation
Sangbeom Kim [Fri, 9 Mar 2012 08:55:34 +0000 (17:55 +0900)]
regulator: Add support s5m8767 opmode operation

S5M8767A has 4 operation mode for BUCK/LDOs.
This patch can handle opmode for s5m8767a.

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agomfd: Add s5m regulator operation mode
Sangbeom Kim [Fri, 9 Mar 2012 08:53:53 +0000 (17:53 +0900)]
mfd: Add s5m regulator operation mode

This patch add variables for opmode of s5m series.
S5M series have 4 operation modes.
Off mode is always regulator off mode.
On mode is always regulator on mode.
Lowpower mode is that regualtor operate in low-power.
Suspend mode is that regulator operation depends on AP suspend mode.

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoLinux 3.4-rc1
Linus Torvalds [Sat, 31 Mar 2012 23:24:09 +0000 (16:24 -0700)]
Linux 3.4-rc1

12 years agoMerge branch 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virti...
Linus Torvalds [Sat, 31 Mar 2012 22:11:39 +0000 (15:11 -0700)]
Merge branch 's3-for-3.4' of git://git./linux/kernel/git/amit/virtio-console

Pull virtio S3 support patches from Amit Shah:
 "Turns out S3 is not different from S4 for virtio devices: the device
  is assumed to be reset, so the host and guest state are to be assumed
  to be out of sync upon resume.  We handle the S4 case with exactly the
  same scenario, so just point the suspend/resume routines to the
  freeze/restore ones.

  Once that is done, we also use the PM API's macro to initialise the
  sleep functions.

  A couple of cleanups are included: there's no need for special thaw
  processing in the balloon driver, so that's addressed in patches 1 and
  2.

  Testing: both S3 and S4 support have been tested using these patches
  using a similar method used earlier during S4 patch development: a
  guest is started with virtio-blk as the only disk, a virtio network
  card, a virtio-serial port and a virtio balloon device.  Ping from
  guest to host, dd /dev/zero to a file on the disk, and IO from the
  host on the virtio-serial port, all at once, while exercising S4 and
  S3 (separately) were tested.  They all continue to work fine after
  resume.  virtio balloon values too were tested by inflating and
  deflating the balloon."

Pulling from Amit, since Rusty is off getting married (and presumably
shaving people).

* 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console:
  virtio-pci: switch to PM ops macro to initialise PM functions
  virtio-pci: S3 support
  virtio-pci: drop restore_common()
  virtio: drop thaw PM operation
  virtio: balloon: Allow stats update after restore from S4

12 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Linus Torvalds [Sat, 31 Mar 2012 20:42:57 +0000 (13:42 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs

Pull second try at vfs part d#2 from Al Viro:
 "Miklos' first series (with do_lookup() rewrite split into edible
  chunks) + assorted bits and pieces.

  The 'untangling of do_lookup()' series is is a splitup of what used to
  be a monolithic patch from Miklos, so this series is basically "how do
  I convince myself that his patch is correct (or find a hole in it)".
  No holes found and I like the resulting cleanup, so in it went..."

Changes from try 1: Fix a boot problem with selinux, and commit messages
prettied up a bit.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits)
  vfs: fix out-of-date dentry_unhash() comment
  vfs: split __lookup_hash
  untangling do_lookup() - take __lookup_hash()-calling case out of line.
  untangling do_lookup() - switch to calling __lookup_hash()
  untangling do_lookup() - merge d_alloc_and_lookup() callers
  untangling do_lookup() - merge failure exits in !dentry case
  untangling do_lookup() - massage !dentry case towards __lookup_hash()
  untangling do_lookup() - get rid of need_reval in !dentry case
  untangling do_lookup() - eliminate a loop.
  untangling do_lookup() - expand the area under ->i_mutex
  untangling do_lookup() - isolate !dentry stuff from the rest of it.
  vfs: move MAY_EXEC check from __lookup_hash()
  vfs: don't revalidate just looked up dentry
  vfs: fix d_need_lookup/d_revalidate order in do_lookup
  ext3: move headers to fs/ext3/
  migrate ext2_fs.h guts to fs/ext2/ext2.h
  new helper: ext2_image_size()
  get rid of pointless includes of ext2_fs.h
  ext2: No longer export ext2_fs.h to user space
  mtdchar: kill persistently held vfsmount
  ...

12 years agoMerge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 31 Mar 2012 20:35:31 +0000 (13:35 -0700)]
Merge branch 'sched-urgent-for-linus' of git://git./linux/kernel/git/tip/tip

Pull scheduler fixes from Ingo Molnar.

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched: Fix incorrect usage of for_each_cpu_mask() in select_fallback_rq()
  sched: Fix __schedule_bug() output when called from an interrupt
  sched/arch: Introduce the finish_arch_post_lock_switch() scheduler callback

12 years agoMerge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 31 Mar 2012 20:34:04 +0000 (13:34 -0700)]
Merge branch 'perf-urgent-for-linus' of git://git./linux/kernel/git/tip/tip

Pull perf updates and fixes from Ingo Molnar:
 "It's mostly fixes, but there's also two late items:

   - preliminary GTK GUI support for perf report
   - PMU raw event format descriptors in sysfs, to be parsed by tooling

  The raw event format in sysfs is a new ABI.  For example for the 'CPU'
  PMU we have:

    aldebaran:~> ll /sys/bus/event_source/devices/cpu/format/*
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/any
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/cmask
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/edge
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/event
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/inv
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/offcore_rsp
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/pc
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/umask

  those lists of fields contain a specific format:

    aldebaran:~> cat /sys/bus/event_source/devices/cpu/format/offcore_rsp
    config1:0-63

  So, those who wish to specify raw events can now use the following
  event format:

    -e cpu/cmask=1,event=2,umask=3

  Most people will not want to specify any events (let alone raw
  events), they'll just use whatever default event the tools use.

  But for more obscure PMU events that have no cross-architecture
  generic events the above syntax is more usable and a bit more
  structured than specifying hex numbers."

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
  perf tools: Remove auto-generated bison/flex files
  perf annotate: Fix off by one symbol hist size allocation and hit accounting
  perf tools: Add missing ref-cycles event back to event parser
  perf annotate: addr2line wants addresses in same format as objdump
  perf probe: Finder fails to resolve function name to address
  tracing: Fix ent_size in trace output
  perf symbols: Handle NULL dso in dso__name_len
  perf symbols: Do not include libgen.h
  perf tools: Fix bug in raw sample parsing
  perf tools: Fix display of first level of callchains
  perf tools: Switch module.h into export.h
  perf: Move mmap page data_head offset assertion out of header
  perf: Fix mmap_page capabilities and docs
  perf diff: Fix to work with new hists design
  perf tools: Fix modifier to be applied on correct events
  perf tools: Fix various casting issues for 32 bits
  perf tools: Simplify event_read_id exit path
  tracing: Fix ftrace stack trace entries
  tracing: Move the tracing_on/off() declarations into CONFIG_TRACING
  perf report: Add a simple GTK2-based 'perf report' browser
  ...

12 years agoMerge tag 'parisc-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6
Linus Torvalds [Sat, 31 Mar 2012 20:32:30 +0000 (13:32 -0700)]
Merge tag 'parisc-misc' of git://git./linux/kernel/git/jejb/parisc-2.6

Pull PARISC misc updates from James Bottomley:
 "This is a couple of minor updates (fixing lws futex locking and
  removing some obsolete cpu_*_map calls)."

* tag 'parisc-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
  [PARISC] remove references to cpu_*_map.
  [PARISC] futex: Use same lock set as lws calls

12 years agoMerge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi...
Linus Torvalds [Sat, 31 Mar 2012 20:31:23 +0000 (13:31 -0700)]
Merge tag 'scsi-misc' of git://git./linux/kernel/git/jejb/scsi-misc-2.6

Pull SCSI updates from James Bottomley:
 "This is primarily another round of driver updates (lpfc, bfa, fcoe,
  ipr) plus a new ufshcd driver.  There shouldn't be anything
  controversial in here (The final deletion of scsi proc_ops which
  caused some build breakage has been held over until the next merge
  window to give us more time to stabilise it).

  I'm afraid, with me moving continents at exactly the wrong time,
  anything submitted after the merge window opened has been held over to
  the next merge window."

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (63 commits)
  [SCSI] ipr: Driver version 2.5.3
  [SCSI] ipr: Increase alignment boundary of command blocks
  [SCSI] ipr: Increase max concurrent oustanding commands
  [SCSI] ipr: Remove unnecessary memory barriers
  [SCSI] ipr: Remove unnecessary interrupt clearing on new adapters
  [SCSI] ipr: Fix target id allocation re-use problem
  [SCSI] atp870u, mpt2sas, qla4xxx use pci_dev->revision
  [SCSI] fcoe: Drop the rtnl_mutex before calling fcoe_ctlr_link_up
  [SCSI] bfa: Update the driver version to 3.0.23.0
  [SCSI] bfa: BSG and User interface fixes.
  [SCSI] bfa: Fix to avoid vport delete hang on request queue full scenario.
  [SCSI] bfa: Move service parameter programming logic into firmware.
  [SCSI] bfa: Revised Fabric Assigned Address(FAA) feature implementation.
  [SCSI] bfa: Flash controller IOC pll init fixes.
  [SCSI] bfa: Serialize the IOC hw semaphore unlock logic.
  [SCSI] bfa: Modify ISR to process pending completions
  [SCSI] bfa: Add fc host issue lip support
  [SCSI] mpt2sas: remove extraneous sas_log_info messages
  [SCSI] libfc: fcoe_transport_create fails in single-CPU environment
  [SCSI] fcoe: reduce contention for fcoe_rx_list lock [v2]
  ...

12 years agovfs: fix out-of-date dentry_unhash() comment
J. Bruce Fields [Wed, 15 Feb 2012 16:48:40 +0000 (11:48 -0500)]
vfs: fix out-of-date dentry_unhash() comment

64252c75a2196a0cf1e0d3777143ecfe0e3ae650 "vfs: remove dget() from
dentry_unhash()" changed the implementation but not the comment.

Cc: Sage Weil <sage@newdream.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agovfs: split __lookup_hash
Miklos Szeredi [Mon, 26 Mar 2012 10:54:24 +0000 (12:54 +0200)]
vfs: split __lookup_hash

Split __lookup_hash into two component functions:

 lookup_dcache - tries cached lookup, returns whether real lookup is needed
 lookup_real - calls i_op->lookup

This eliminates code duplication between d_alloc_and_lookup() and
d_inode_lookup().

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - take __lookup_hash()-calling case out of line.
Al Viro [Fri, 30 Mar 2012 18:48:04 +0000 (14:48 -0400)]
untangling do_lookup() - take __lookup_hash()-calling case out of line.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - switch to calling __lookup_hash()
Al Viro [Fri, 30 Mar 2012 18:41:51 +0000 (14:41 -0400)]
untangling do_lookup() - switch to calling __lookup_hash()

now we have __lookup_hash() open-coded if !dentry case;
just call the damn thing instead...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - merge d_alloc_and_lookup() callers
Al Viro [Fri, 30 Mar 2012 18:39:15 +0000 (14:39 -0400)]
untangling do_lookup() - merge d_alloc_and_lookup() callers

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - merge failure exits in !dentry case
Al Viro [Fri, 30 Mar 2012 18:37:42 +0000 (14:37 -0400)]
untangling do_lookup() - merge failure exits in !dentry case

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - massage !dentry case towards __lookup_hash()
Al Viro [Fri, 30 Mar 2012 18:34:00 +0000 (14:34 -0400)]
untangling do_lookup() - massage !dentry case towards __lookup_hash()

Reorder if-else cases for starters...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - get rid of need_reval in !dentry case
Al Viro [Fri, 30 Mar 2012 18:18:50 +0000 (14:18 -0400)]
untangling do_lookup() - get rid of need_reval in !dentry case

Everything arriving into if (!dentry) will have need_reval = 1.
Indeed, the only way to get there with need_reval reset to 0 would
be via
if (unlikely(d_need_lookup(dentry)))
goto unlazy;
if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) {
status = d_revalidate(dentry, nd);
if (unlikely(status <= 0)) {
if (status != -ECHILD)
need_reval = 0;
goto unlazy;
...
unlazy:
/* no assignments to dentry */
if (dentry && unlikely(d_need_lookup(dentry))) {
dput(dentry);
dentry = NULL;
}
and if d_need_lookup() had already been false the first time around, it
will remain false on the second call as well.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - eliminate a loop.
Al Viro [Fri, 30 Mar 2012 18:13:15 +0000 (14:13 -0400)]
untangling do_lookup() - eliminate a loop.

d_lookup() *will* fail after successful d_invalidate(), if we are
holding i_mutex all along.  IOW, we don't need to jump back to
l: - we know what path will be taken there and can do that (i.e.
d_alloc_and_lookup()) directly.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - expand the area under ->i_mutex
Al Viro [Fri, 30 Mar 2012 18:08:28 +0000 (14:08 -0400)]
untangling do_lookup() - expand the area under ->i_mutex

keep holding ->i_mutex over revalidation parts

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agountangling do_lookup() - isolate !dentry stuff from the rest of it.
Al Viro [Fri, 30 Mar 2012 18:04:16 +0000 (14:04 -0400)]
untangling do_lookup() - isolate !dentry stuff from the rest of it.

Duplicate the revalidation-related parts into if (!dentry) branch.
Next step will be to pull them under i_mutex.

This and the next 8 commits are more or less a splitup of patch
by Miklos; folks, when you are working with something that convoluted,
carve your patches up into easily reviewed steps, especially when
a lot of codepaths involved are rarely hit...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agovfs: move MAY_EXEC check from __lookup_hash()
Miklos Szeredi [Mon, 26 Mar 2012 10:54:21 +0000 (12:54 +0200)]
vfs: move MAY_EXEC check from __lookup_hash()

The only caller of __lookup_hash() that needs the exec permission check on
parent is lookup_one_len().

All lookup_hash() callers already checked permission in LOOKUP_PARENT walk.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agovfs: don't revalidate just looked up dentry
Miklos Szeredi [Mon, 26 Mar 2012 10:54:20 +0000 (12:54 +0200)]
vfs: don't revalidate just looked up dentry

__lookup_hash() calls ->lookup() if the dentry needs lookup and on success
revalidates the dentry (all under dir->i_mutex).

While this is harmless it doesn't make a lot of sense.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agovfs: fix d_need_lookup/d_revalidate order in do_lookup
Miklos Szeredi [Mon, 26 Mar 2012 10:54:19 +0000 (12:54 +0200)]
vfs: fix d_need_lookup/d_revalidate order in do_lookup

Doing revalidate on a dentry which has not yet been looked up makes no sense.

Move the d_need_lookup() check before d_revalidate().

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
12 years agoext3: move headers to fs/ext3/
Al Viro [Fri, 30 Mar 2012 02:30:07 +0000 (22:30 -0400)]
ext3: move headers to fs/ext3/

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>