1. 09 1月, 2009 6 次提交
    • M
      regulator: move set_machine_constraints after regulator device initialization · 74f544c1
      Mike Rapoport 提交于
      Calling set_machine_constraints before regulator device initialization
      causes crash when constraints have apply_uV set.
      Signed-off-by: NMike Rapoport <mike@compulab.co.il>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      74f544c1
    • D
      regulator: sysfs attribute reduction (v2) · 7ad68e2f
      David Brownell 提交于
      Clean up the sysfs interface to regulators by only exposing the
      attributes that can be properly displayed.  For example: when a
      particular regulator method is needed to display the value, only
      create that attribute when that method exists.
      
      This cleaned-up interface is much more comprehensible.  Most
      regulators only support a subset of the possible methods, so
      often more than half the attributes would be meaningless.  Many
      "not defined" values are no longer necessary.  (But handling
      of out-of-range values still looks a bit iffy.)
      
      Documentation is updated to reflect that few of the attributes
      are *always* present, and to briefly explain why a regulator may
      not have a given attribute.
      
      This adds object code, about a dozen bytes more than was removed
      by the preceding patch, but saves a bunch of per-regulator data
      associated with the now-removed attributes.  So there's a net
      reduction in memory footprint.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      7ad68e2f
    • D
      regulator: code shrink (v2) · 4fca9545
      David Brownell 提交于
      Shrink regulator core by removing duplication in attribute printing
      and probe() cleanup paths.  Saves about 340 bytes (object) on ARM.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      4fca9545
    • D
      regulator: improved mode error checks · e573520b
      David Brownell 提交于
      Minor bugfixes in handling of regulator modes:
      
       - have the routine verifying regulator modes check against
         the set of legal modes (!);
      
       - have regulator_set_optimum_mode() verify the return value
         of regulator_ops.get_optimum_mode(), like drms_uA_update();
      
       - one call to regulator_ops.set_mode() treated zero as a
         failure code; make this consistent with other callers.
      
      Both regulator_set_mode() and regulator_set_optimum_mode() now
      require valid_ops_mask to include REGULATOR_CHANGE_MODE; that
      seems like a bugfix too.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      e573520b
    • D
      regulator: enable/disable refcounting · 412aec61
      David Brownell 提交于
      Make the <linux/regulator.h> framework treat enable/disable call
      pairs like the <linux/clk.h> and <linux/interrupt.h> frameworks do:
      they're refcounted, so that different parts of a driver don't need
      to put work into coordination that frameworks normally handle.
      It's a minor object code shrink.
      
      It also makes the regulator_is_disabled() kerneldoc say what it's
      actually returning:  return value is not a refcount, and may report
      an error (e.g. I/O error from I2C).
      
      It also fixes some minor regulator_put() goofage:  removing unlocked
      access to the enable state.  (But still not making regulator put/get
      match the refcounting pattern they invoke.)
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      412aec61
    • K
      regulator: struct device - replace bus_id with dev_name(), dev_set_name() · 812460a9
      Kay Sievers 提交于
      This patch is part of a larger patch series which will remove
      the "char bus_id[20]" name string from struct device. The device
      name is managed in the kobject anyway, and without any size
      limitation, and just needlessly copied into "struct device".
      
      To set and read the device name dev_name(dev) and dev_set_name(dev)
      must be used. If your code uses static kobjects, which it shouldn't
      do, "const char *init_name" can be used to statically provide the
      name the registered device should have. At registration time, the
      init_name field is cleared, to enforce the use of dev_name(dev) to
      access the device name at a later time.
      
      We need to get rid of all occurrences of bus_id in the entire tree
      to be able to enable the new interface. Please apply this patch,
      and possibly convert any remaining remaining occurrences of bus_id.
      
      We want to submit a patch to -next, which will remove bus_id from
      "struct device", to find the remaining pieces to convert, and finally
      switch over to the new api, which will remove the 20 bytes array
      and does no longer have a size limitation.
      
      Thanks,
      Kay
      
      From: Kay Sievers <kay.sievers@vrfy.org>
      Subject: regulator: struct device - replace bus_id with dev_name(), dev_set_name()
      
      Cc: Liam Girdwood <lrg@slimlogic.co.uk>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-Off-By: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      812460a9
  2. 14 10月, 2008 5 次提交
  3. 30 7月, 2008 1 次提交
    • L
      regulator: regulator framework core · 414c70cb
      Liam Girdwood 提交于
      This adds the regulator framework core.
      
      This framework is designed to provide a generic interface to voltage
      and current regulators within the Linux kernel. It's intended to
      provide voltage and current control to client or consumer drivers and
      also provide status information to user space applications through a
      sysfs interface.
      
      The intention is to allow systems to dynamically control regulator
      output in order to save power and prolong battery life. This applies
      to both voltage regulators (where voltage output is controllable) and
      current sinks (where current output is controllable).
      
      This framework safely compiles out if not selected so that client
      drivers can still be used in systems with no software controllable
      regulators.
      Signed-off-by: NLiam Girdwood <lg@opensource.wolfsonmicro.com>
      Signed-off-by: NGreg Kroah-Hartman <greg@kroah.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      414c70cb