1. 09 1月, 2009 3 次提交
    • 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. 08 1月, 2009 37 次提交