Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'regulator-v3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator

Pull regulator fixes from Mark Brown:
"A small set of driver fixes plus one larger core change which changes
the way we check to see if we're using DT so that there aren't any
races between deciding we're using DT and the regulator subsystem
noticing.

This makes the new support for substituting a dummy regulator and
optional regulators work a lot better on DT systems since it ensures
that we don't trigger probe deferral when we shouldn't which was
causing bugs in clients"

* tag 'regulator-v3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: pfuze100: allow misprogrammed ID
regulator: pfuze100: Fix address of FABID
regulator: as3722: set the correct current limit
regulator: core: Check for DT every time we check full constraints
regulator: core: Replace checks of have_full_constraints with a function

+10 -5
+1 -1
drivers/regulator/as3722-regulator.c
··· 590 590 default: 591 591 return -EINVAL; 592 592 } 593 + ret <<= ffs(mask) - 1; 593 594 val = ret & mask; 594 - val <<= ffs(mask) - 1; 595 595 return as3722_update_bits(as3722, reg, mask, val); 596 596 } 597 597
+8 -3
drivers/regulator/core.c
··· 119 119 return ""; 120 120 } 121 121 122 + static bool have_full_constraints(void) 123 + { 124 + return has_full_constraints || of_have_populated_dt(); 125 + } 126 + 122 127 /** 123 128 * of_get_regulator - get a regulator device node based on supply name 124 129 * @dev: Device pointer for the consumer (of regulator) device ··· 1345 1340 * Assume that a regulator is physically present and enabled 1346 1341 * even if it isn't hooked up and just provide a dummy. 1347 1342 */ 1348 - if (has_full_constraints && allow_dummy) { 1343 + if (have_full_constraints() && allow_dummy) { 1349 1344 pr_warn("%s supply %s not found, using dummy regulator\n", 1350 1345 devname, id); 1351 1346 ··· 3632 3627 if (error) 3633 3628 ret = error; 3634 3629 } else { 3635 - if (!has_full_constraints) 3630 + if (!have_full_constraints()) 3636 3631 goto unlock; 3637 3632 if (!ops->disable) 3638 3633 goto unlock; ··· 3830 3825 if (!enabled) 3831 3826 goto unlock; 3832 3827 3833 - if (has_full_constraints) { 3828 + if (have_full_constraints()) { 3834 3829 /* We log since this may kill the system if it 3835 3830 * goes wrong. */ 3836 3831 rdev_info(rdev, "disabling\n");
+1 -1
drivers/regulator/pfuze100-regulator.c
··· 38 38 39 39 #define PFUZE100_DEVICEID 0x0 40 40 #define PFUZE100_REVID 0x3 41 - #define PFUZE100_FABID 0x3 41 + #define PFUZE100_FABID 0x4 42 42 43 43 #define PFUZE100_SW1ABVOL 0x20 44 44 #define PFUZE100_SW1CVOL 0x2e