1. 25 Feb, 2023 3 commits
  2. 15 Feb, 2023 4 commits
  3. 14 Feb, 2023 1 commit
  4. 13 Feb, 2023 3 commits
  5. 03 Feb, 2023 14 commits
  6. 28 Jan, 2023 2 commits
    • Hans de Goede's avatar
      power: supply: bq25890: Add new linux,iinlim-percentage property · 6adaa9a4
      Hans de Goede authored
      Some devices, such as the Lenovo Yoga Tab 3 Pro (YT3-X90F) have
      multiple batteries with a separate bq25890 charger for each battery.
      
      This requires the maximum current the external power-supply can deliver
      to be divided over the chargers. The Android vendor kernel shipped
      on the YT3-X90F divides this current with a 40/60 percent split so that
      batteries are done charging at approx. the same time if both were fully
      empty at the start.
      
      Add support for a new "linux,iinlim-percentage" percentage property which
      can be set to indicate that a bq25890 charger should only use that
      percentage of the external power-supply's maximum current.
      
      So far this new property is only used on x86/ACPI (non devicetree) devs,
      IOW it is not used in actual devicetree files. The devicetree-bindings
      maintainers have requested properties like these to not be added to the
      devicetree-bindings, so the new property is deliberately not added
      to the existing devicetree-bindings.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      6adaa9a4
    • Hans de Goede's avatar
      power: supply: bq25890: Add support for having a secondary charger IC · d54bf877
      Hans de Goede authored
      Some devices, such as the Lenovo Yoga Tab 3 Pro (YT3-X90F) have multiple
      batteries with a separate bq25890 charger for each battery.
      
      This requires some coordination between the chargers specifically
      the main charger needs to put the secondary charger in Hi-Z mode when:
      
      1. Enabling its 5V boost (OTG) output to power an external USB device,
         to avoid the secondary charger IC seeing this as external Vbus and
         then trying to charge the secondary battery from this.
      
      2. Talking the Pump Express protocol to increase the external Vbus voltage.
         Having the secondary charger drawing current when the main charger is
         trying to talk the Pump Express protocol results in the external Vbus
         voltage not being raised.
      
      Add a new "linux,secondary-charger-name" string device-property, which
      can be set to the power_supply class device's name of the secondary
      charger when there is a secondary charger; and make the Vbus regulator and
      Pump Express code put the secondary charger in Hi-Z mode when necessary.
      
      So far this new property is only used on x86/ACPI (non devicetree) devs,
      IOW it is not used in actual devicetree files. The devicetree-bindings
      maintainers have requested properties like these to not be added to the
      devicetree-bindings, so the new property is deliberately not added
      to the existing devicetree-bindings.
      Reviewed-by: default avatarMarek Vasut <marex@denx.de>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      d54bf877
  7. 02 Jan, 2023 8 commits
  8. 25 Dec, 2022 2 commits
    • Linus Torvalds's avatar
      Linux 6.2-rc1 · 1b929c02
      Linus Torvalds authored
      1b929c02
    • Steven Rostedt (Google)'s avatar
      treewide: Convert del_timer*() to timer_shutdown*() · 292a089d
      Steven Rostedt (Google) authored
      Due to several bugs caused by timers being re-armed after they are
      shutdown and just before they are freed, a new state of timers was added
      called "shutdown".  After a timer is set to this state, then it can no
      longer be re-armed.
      
      The following script was run to find all the trivial locations where
      del_timer() or del_timer_sync() is called in the same function that the
      object holding the timer is freed.  It also ignores any locations where
      the timer->function is modified between the del_timer*() and the free(),
      as that is not considered a "trivial" case.
      
      This was created by using a coccinelle script and the following
      commands:
      
          $ cat timer.cocci
          @@
          expression ptr, slab;
          identifier timer, rfield;
          @@
          (
          -       del_timer(&ptr->timer);
          +       timer_shutdown(&ptr->timer);
          |
          -       del_timer_sync(&ptr->timer);
          +       timer_shutdown_sync(&ptr->timer);
          )
            ... when strict
                when != ptr->timer
          (
                  kfree_rcu(ptr, rfield);
          |
                  kmem_cache_free(slab, ptr);
          |
                  kfree(ptr);
          )
      
          $ spatch timer.cocci . > /tmp/t.patch
          $ patch -p1 < /tmp/t.patch
      
      Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Acked-by: Pavel Machek <pavel@ucw.cz> [ LED ]
      Acked-by: Kalle Valo <kvalo@kernel.org> [ wireless ]
      Acked-by: Paolo Abeni <pabeni@redhat.com> [ networking ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      292a089d
  9. 23 Dec, 2022 3 commits