linux/drivers/acpi/battery.c
<<
>>
Prefs
   1/*
   2 *  battery.c - ACPI Battery Driver (Revision: 2.0)
   3 *
   4 *  Copyright (C) 2007 Alexey Starikovskiy <astarikovskiy@suse.de>
   5 *  Copyright (C) 2004-2007 Vladimir Lebedev <vladimir.p.lebedev@intel.com>
   6 *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
   7 *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
   8 *
   9 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  10 *
  11 *  This program is free software; you can redistribute it and/or modify
  12 *  it under the terms of the GNU General Public License as published by
  13 *  the Free Software Foundation; either version 2 of the License, or (at
  14 *  your option) any later version.
  15 *
  16 *  This program is distributed in the hope that it will be useful, but
  17 *  WITHOUT ANY WARRANTY; without even the implied warranty of
  18 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  19 *  General Public License for more details.
  20 *
  21 *  You should have received a copy of the GNU General Public License along
  22 *  with this program; if not, write to the Free Software Foundation, Inc.,
  23 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  24 *
  25 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  26 */
  27
  28#include <linux/kernel.h>
  29#include <linux/module.h>
  30#include <linux/init.h>
  31#include <linux/types.h>
  32#include <linux/jiffies.h>
  33#include <linux/async.h>
  34#include <linux/dmi.h>
  35#include <linux/slab.h>
  36#include <linux/suspend.h>
  37#include <asm/unaligned.h>
  38
  39#ifdef CONFIG_ACPI_PROCFS_POWER
  40#include <linux/proc_fs.h>
  41#include <linux/seq_file.h>
  42#include <asm/uaccess.h>
  43#endif
  44
  45#include <acpi/acpi_bus.h>
  46#include <acpi/acpi_drivers.h>
  47#include <linux/power_supply.h>
  48
  49#define PREFIX "ACPI: "
  50
  51#define ACPI_BATTERY_VALUE_UNKNOWN 0xFFFFFFFF
  52
  53#define ACPI_BATTERY_CLASS              "battery"
  54#define ACPI_BATTERY_DEVICE_NAME        "Battery"
  55#define ACPI_BATTERY_NOTIFY_STATUS      0x80
  56#define ACPI_BATTERY_NOTIFY_INFO        0x81
  57#define ACPI_BATTERY_NOTIFY_THRESHOLD   0x82
  58
  59/* Battery power unit: 0 means mW, 1 means mA */
  60#define ACPI_BATTERY_POWER_UNIT_MA      1
  61
  62#define _COMPONENT              ACPI_BATTERY_COMPONENT
  63
  64ACPI_MODULE_NAME("battery");
  65
  66MODULE_AUTHOR("Paul Diefenbaugh");
  67MODULE_AUTHOR("Alexey Starikovskiy <astarikovskiy@suse.de>");
  68MODULE_DESCRIPTION("ACPI Battery Driver");
  69MODULE_LICENSE("GPL");
  70
  71static unsigned int cache_time = 1000;
  72module_param(cache_time, uint, 0644);
  73MODULE_PARM_DESC(cache_time, "cache time in milliseconds");
  74
  75#ifdef CONFIG_ACPI_PROCFS_POWER
  76extern struct proc_dir_entry *acpi_lock_battery_dir(void);
  77extern void *acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir);
  78
  79enum acpi_battery_files {
  80        info_tag = 0,
  81        state_tag,
  82        alarm_tag,
  83        ACPI_BATTERY_NUMFILES,
  84};
  85
  86#endif
  87
  88static const struct acpi_device_id battery_device_ids[] = {
  89        {"PNP0C0A", 0},
  90        {"", 0},
  91};
  92
  93MODULE_DEVICE_TABLE(acpi, battery_device_ids);
  94
  95enum {
  96        ACPI_BATTERY_ALARM_PRESENT,
  97        ACPI_BATTERY_XINFO_PRESENT,
  98        ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY,
  99        /* On Lenovo Thinkpad models from 2010 and 2011, the power unit
 100           switches between mWh and mAh depending on whether the system
 101           is running on battery or not.  When mAh is the unit, most
 102           reported values are incorrect and need to be adjusted by
 103           10000/design_voltage.  Verified on x201, t410, t410s, and x220.
 104           Pre-2010 and 2012 models appear to always report in mWh and
 105           are thus unaffected (tested with t42, t61, t500, x200, x300,
 106           and x230).  Also, in mid-2012 Lenovo issued a BIOS update for
 107           the 2011 models that fixes the issue (tested on x220 with a
 108           post-1.29 BIOS), but as of Nov. 2012, no such update is
 109           available for the 2010 models.  */
 110        ACPI_BATTERY_QUIRK_THINKPAD_MAH,
 111};
 112
 113struct acpi_battery {
 114        struct mutex lock;
 115        struct mutex sysfs_lock;
 116        struct power_supply bat;
 117        struct acpi_device *device;
 118        struct notifier_block pm_nb;
 119        unsigned long update_time;
 120        int rate_now;
 121        int capacity_now;
 122        int voltage_now;
 123        int design_capacity;
 124        int full_charge_capacity;
 125        int technology;
 126        int design_voltage;
 127        int design_capacity_warning;
 128        int design_capacity_low;
 129        int cycle_count;
 130        int measurement_accuracy;
 131        int max_sampling_time;
 132        int min_sampling_time;
 133        int max_averaging_interval;
 134        int min_averaging_interval;
 135        int capacity_granularity_1;
 136        int capacity_granularity_2;
 137        int alarm;
 138        char model_number[32];
 139        char serial_number[32];
 140        char type[32];
 141        char oem_info[32];
 142        int state;
 143        int power_unit;
 144        unsigned long flags;
 145};
 146
 147#define to_acpi_battery(x) container_of(x, struct acpi_battery, bat)
 148
 149inline int acpi_battery_present(struct acpi_battery *battery)
 150{
 151        return battery->device->status.battery_present;
 152}
 153
 154static int acpi_battery_technology(struct acpi_battery *battery)
 155{
 156        if (!strcasecmp("NiCd", battery->type))
 157                return POWER_SUPPLY_TECHNOLOGY_NiCd;
 158        if (!strcasecmp("NiMH", battery->type))
 159                return POWER_SUPPLY_TECHNOLOGY_NiMH;
 160        if (!strcasecmp("LION", battery->type))
 161                return POWER_SUPPLY_TECHNOLOGY_LION;
 162        if (!strncasecmp("LI-ION", battery->type, 6))
 163                return POWER_SUPPLY_TECHNOLOGY_LION;
 164        if (!strcasecmp("LiP", battery->type))
 165                return POWER_SUPPLY_TECHNOLOGY_LIPO;
 166        return POWER_SUPPLY_TECHNOLOGY_UNKNOWN;
 167}
 168
 169static int acpi_battery_get_state(struct acpi_battery *battery);
 170
 171static int acpi_battery_is_charged(struct acpi_battery *battery)
 172{
 173        /* either charging or discharging */
 174        if (battery->state != 0)
 175                return 0;
 176
 177        /* battery not reporting charge */
 178        if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN ||
 179            battery->capacity_now == 0)
 180                return 0;
 181
 182        /* good batteries update full_charge as the batteries degrade */
 183        if (battery->full_charge_capacity == battery->capacity_now)
 184                return 1;
 185
 186        /* fallback to using design values for broken batteries */
 187        if (battery->design_capacity == battery->capacity_now)
 188                return 1;
 189
 190        /* we don't do any sort of metric based on percentages */
 191        return 0;
 192}
 193
 194static int acpi_battery_get_property(struct power_supply *psy,
 195                                     enum power_supply_property psp,
 196                                     union power_supply_propval *val)
 197{
 198        int ret = 0;
 199        struct acpi_battery *battery = to_acpi_battery(psy);
 200
 201        if (acpi_battery_present(battery)) {
 202                /* run battery update only if it is present */
 203                acpi_battery_get_state(battery);
 204        } else if (psp != POWER_SUPPLY_PROP_PRESENT)
 205                return -ENODEV;
 206        switch (psp) {
 207        case POWER_SUPPLY_PROP_STATUS:
 208                if (battery->state & 0x01)
 209                        val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
 210                else if (battery->state & 0x02)
 211                        val->intval = POWER_SUPPLY_STATUS_CHARGING;
 212                else if (acpi_battery_is_charged(battery))
 213                        val->intval = POWER_SUPPLY_STATUS_FULL;
 214                else
 215                        val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
 216                break;
 217        case POWER_SUPPLY_PROP_PRESENT:
 218                val->intval = acpi_battery_present(battery);
 219                break;
 220        case POWER_SUPPLY_PROP_TECHNOLOGY:
 221                val->intval = acpi_battery_technology(battery);
 222                break;
 223        case POWER_SUPPLY_PROP_CYCLE_COUNT:
 224                val->intval = battery->cycle_count;
 225                break;
 226        case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
 227                if (battery->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN)
 228                        ret = -ENODEV;
 229                else
 230                        val->intval = battery->design_voltage * 1000;
 231                break;
 232        case POWER_SUPPLY_PROP_VOLTAGE_NOW:
 233                if (battery->voltage_now == ACPI_BATTERY_VALUE_UNKNOWN)
 234                        ret = -ENODEV;
 235                else
 236                        val->intval = battery->voltage_now * 1000;
 237                break;
 238        case POWER_SUPPLY_PROP_CURRENT_NOW:
 239        case POWER_SUPPLY_PROP_POWER_NOW:
 240                if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN)
 241                        ret = -ENODEV;
 242                else
 243                        val->intval = battery->rate_now * 1000;
 244                break;
 245        case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
 246        case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
 247                if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
 248                        ret = -ENODEV;
 249                else
 250                        val->intval = battery->design_capacity * 1000;
 251                break;
 252        case POWER_SUPPLY_PROP_CHARGE_FULL:
 253        case POWER_SUPPLY_PROP_ENERGY_FULL:
 254                if (battery->full_charge_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
 255                        ret = -ENODEV;
 256                else
 257                        val->intval = battery->full_charge_capacity * 1000;
 258                break;
 259        case POWER_SUPPLY_PROP_CHARGE_NOW:
 260        case POWER_SUPPLY_PROP_ENERGY_NOW:
 261                if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN)
 262                        ret = -ENODEV;
 263                else
 264                        val->intval = battery->capacity_now * 1000;
 265                break;
 266        case POWER_SUPPLY_PROP_CAPACITY:
 267                if (battery->capacity_now && battery->full_charge_capacity)
 268                        val->intval = battery->capacity_now * 100/
 269                                        battery->full_charge_capacity;
 270                else
 271                        val->intval = 0;
 272                break;
 273        case POWER_SUPPLY_PROP_MODEL_NAME:
 274                val->strval = battery->model_number;
 275                break;
 27ners/aMANUFACTURERe POWER_SUPPLY_PROP_MODEL_CITY:
 274                val->strval =  141        char  275             city)
 258            OWN |2
 259 SERIADELUMBERe POWER_SUPPLY_PROP_MODEL == 02
 274                val->strval =  139        char  258             return 02
 251            "> 181POWER_SUPPLY_PROP_MODEL<   break;
 258             NAME:
                   ne" name="L258"> 258                break;
devicecode=fucode=acpi_ops_pro[]   h ( return 12
 259 S      case  189 239        case  239        case   181 239        case   239        case :
 239        case   239        case   245        case :
 245        case  )
 259        case   259        case  239        case   239 MANUFACTURERe   239 SERIADELUMBERe  )3
)3
deviceenergyucode=acpi_ops_pro[]   h (3
 245 S      case  245        case  259        case   259        case   239        case  239        case   239        case   239        case  239        case   239        case   245        case  245        case   259 MANUFACTURERe   259 SERIADELUMBERe  3
valdevice"+code=acpi_bunitsL259ged" class="sref">acpi_battery_is_charged(struct acpi_battery *b3COUNT3
3
 267                if (cape=POWEUNITOPA    enum cape=POWEUNITOPA*3
 202--------------------------------------------------------------------------* run battery update only if it is presen3a> * 10003
 " id="L256" classssssssssssssssB is pr Managemtteryrun battery update only if it is presen3aery)3
 " i--------------------------------------------------------------------------">/* run battery update only if it is presen3E_NOW3
acpi_batteoffsetss="sref">device"+codoffsetsL256"h (3
 202 ffset inside199" cla"+codsbsa href="">/* run battery update only if it is presen3Eount3
 141      u8_property" class="srgt;<">battery-><    nL256" clas" clascode=strcasec="L202"> 20298" or mp" cl?">/* run battery update only if it is presen3EODEV3
 * 10003
acpi_batteoffsetss="sref">device"+codoffsetsL256"deviceva>-&goffsets_pro[]   h (3
acpi_battery_is_charged(struct battery->), 0} acpi_battery_is_charged(struct battery-> acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct battery-> * 10003
acpi_batteoffsetss="sref">device"+codoffsetsL256"devicear 3
acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct intval =  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery-acpi_battery_is_charged(struct  acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct  139        char acpi_battery_is_charged(struct battery->typ>ode=p, 1} acpi_battery_is_charged(struct  141        char  3
acpi_batteoffsetss="sref">device"+codoffsetsL256"deviceextended_ar 3
acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct intval =  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery-acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct (strumeasuremtte_accuracc="+cp, 0} acpi_battery_is_charged(struct battery-&gax_samprivg_tim<="+cp, 0} acpi_battery_is_charged(struct battery-&gin_samprivg_tim<="+cp, 0} acpi_battery_is_charged(struct valgax_a+coagivg_inef=" c="+cp, 0} acpi_battery_is_charged(struct valgin_a+coagivg_inef=" c="+cp, 0} acpi_battery_is_charged(struct  acpi_battery_is_charged(struct  acpi_battery_is_charged(struct battery->acpi_battery_is_charged(struct  139        char acpi_battery_is_charged(struct battery->typ>ode=p, 1} acpi_battery_is_charged(struct  141        char   1813
battery->extract_+cokf">L259ged" class="sref">acpi_battery_is_charged(struct acpi_battery * battery-"+codobjece+code=acpi_battery" c+cokf">battery->+cokf">L259 acpi_batteoffsetss="sref">device"+codoffsetsL256"=acpi_battery" coffsetss="sref">deviceoffsetsL256,L98" deviceef=a hrp/a> 3
deviceiL247 id="L145" class="line" name="L145"3"city3
battery-"+codobjece+code=acpi_battery" celemttebattery->elemttery47 id="L145" class="line" name="L145"3"WN |3
battery->+cokf">L259href="+code=battery"typ>battery->typ>ode= !capacity_now" class="sTYPE_PACKAGse   189deviceiL247a hre deviceiL247 <e deviceef=a hr; ++deviceiL247) h ( 181battery->+cokf">L259href="+code=battery"+cokf">battery->+cokf">L259.battery-&href="+c <ecapacity_now" clais="sref">deviceiL247) (3
battery->+cokf">L259href="+code=battery"+cokf">battery->+cokf">L259.deviceelemttes_pro[pacity_now" clais="sref">deviceiL247] id="L145" class="line" name="L145"3"> * 10003
deviceoffsetsL256[pacity_now" clais="sref">deviceiL247].battery-><    ) h (        cha+t9ry47a hline" name="L267u8> 141      u8_prop=)acpi_battery" class="sref">acpi_battery *deviceoffsetsL256[pacity_now" clais="sref">deviceiL247].3set    n (devictelemttery47a hcity_ine" name="L2yp>battery->typ>ode= !capacity_now" class="sref">cape=POWEUNITOPA 3set    n ( 268emttebattery->elemttery47a hcity_ine" name="L2yp>battery->typ>ode= !capacity_now" class="sref">cape=POWEUNITOPA3
 268emttebattery-&g_bancp> *>acpi>        cha+t9ry47a hline" name="L267u8141"> 141    telemttery47a hcity_ine" name="L2yp>battery->tysecmp 141      po 3set    n (4rivers/ac4i/b3ttery30#L190" id="L14ass="40s="line" name="L250"> 250 270ffsetss="sref">devictelemttery47a hcity_ine" name="L2yp>battery->typ>ode= !capacity_now" class="sref">cape=POWEUNITOPA 271emttebattery-&g_bancp> *>acpi>        cha+t9ry47a hline" name="L267u81441      u8_prop=)acpi_battery" class="cokf">battery->elemttery47a hcity_ine" name="L2yp>battery->ty       u8_pri/b3ttery36attery"class=))" class="sref"3"CITY3set    n (4r3vers/ac4i/b3ttery39#L243" id="L245" cl40s="line"66" cla        u8_pri/b3ttery36attery"class=)] class="sref">intval = 0;
 270                else
acpiiiiiia>        cha+t9ry47a hline" name="L267u8> 1"sre20298" or mp" cl?">/* rudon't have valudte only if it is presen3EODEV3
 270p" class="sref"3"   break3
        cha+t9x7a hline" name=x67u8> 14fntia)(41      u8_prop=)acpi_battery" class="sref">acpi_battery *deviceoffsetsL256[pacity_now" clais="sref">deviceiL247].3set    n (4r8vers/ac4i/b2ttery2c#L198" id="L14ass="40s="line" name="L268"> 268a>        cha+t9x7a hline" name=x67u8> 14ss="sref">devictelemttery47a hcity_ine" name="L2yp>battery->typ>ode= !capacity_now" class="sref">cape=POWEUNITOPA3
 268emttebattery->elemttery47a hcity_ine" name="L2yp>battery->ty 3set    n (4rivers/ac4i/b3ttery31#L190" id="L14ass="41s="line" name="L250">ne" name="L1673KNOWN3
intval = 0;
acpi="sref">deviceiL247i_battery" c_get_f">aue=acpi_bunitsL259ged" class="get_f">aue>acpi_battery_is_charged(struct acpi_battery * 3
3
devici_battus_get_f">aue=acpi_bunitsL259ged" us_get_f">aue>acpi>        cha+t9ery * ef">cape=POWEUNITOPAEXCEPTIOCPI_BATTERY_VALUE_UNKEXCEPTIOC>acpii>        cha+t9AhrINFOPI_BATTERY_VALUEhrINFO67u8141"> 141    EhrERROG_ode=AY_PCFSROPIhrERROG67u8141="sremWstrcasecmp3set    n (4rivers/ac4i/b3ttery31#L259" id="L24ass="41ne" name="L25name="L2de=FAULe 3set    n (4rivers/ac4i/b3ttery3c#L220" id="L145" cl420e" name="L23ne" name="L1673KNOWN3
intval = 0;
acpi="sref">deviceiL247i_battery" c_get_char i_battery" c_get_char>acpi_battery_is_charged(struct acpi_battery * 3
deviceiL247resul  ne" name="L258">sul 67u8> 1e  245    i_batf">aue=acpi_bunitsL259ged"f">aue>acps="sref">batteryue=acpi_bunitsL25f">aue>acpsclass="sref">intval = 0;
 = acpi>        cha+t9ITOPA*battery-&gery * 3
 2681="sremWstrcasecmp(struuff h>acps="sref">batteryuuff h7a hline" name=uuff h>acps= {>ef">cape=POWEUNITOPAALLOCAThrBUFFIG_ode=AY_PCFSROPITOPAALLOCAThrBUFFIG67u8141"> 141    NWER_SUPPLY_PROP_ENN+code=p ne" name="L145"3"> 1813
deviceiL247i_battery" c_p">smttery47a hcity_ini_battery" c_p">smtt>acpi>        cha+t9ery * 3
intval = 0;
 141      u8_pmutex_lock  ) h (battery-&gery * 3set    n (4rivers/ac4i/b3ttery3c#L236" id="L145" cl43ne" name="L245"> 245    ue=acpi_bunitsL25f">aue>acpsclef">deviceiL247i_batevalu>ae-"+codobjece+code=acpi_battevalu>ae-"+codo>acpi>        cha+t9ery * battery->tyhandlref="+code=dep, handlr67u8141"> 141    endir; ++ 2681"> 141    NWER_SUPPLY_PROP_ENN+code=p14cokf">battery-&geuff h7a hline" name=uuff h>acp)" class="sref"3"CITY3set    n (4rivers/ac4i/b3ttery33#L188" id="Le4" cla43ne" name="L259"> 259 MAN"utex_unlock  ) h (battery-&gery * 3set    n (4rivers/ac4i/b3ttery3c#L239" id="L24erty"43s="line" name="L183      els3
devicITOPAFAILURTYPE_PACKAGsa hrp/a> FAILURT>acpi>        cha+t9ue=acpi_bunitsL25f">aue>acp))p" class="sref"3"   break3
ef">cape=POWEUNITOPAEXCEPTIOCPI_BATTERY_VALUE_UNKEXCEPTIOC>acpii>        cha+t9AhrINFOPI_BATTERY_VALUEhrINFO67u8141"> 141    ue=acpi_bunitsL25f">aue>acp141="sremWstrcasecmp 141    endir; ++3set    n (4rivers/ac4i/b3ttery3c#L242" id="L24erty"44s="line" name="L267+cde=FAULe 3set    n (4rivers/ac4i/b3ttery34#L203" id="L145" cl44s="line"66" cne" name="L1673KNOWN3
devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3
deviceiL247resul  ne" name="L258">sul 67u8> 1ebattery->->extract_+cokf">L259ged" class="sref">acpi>battery-&gery *  141    euff h7a hline" name=uuff h>acpt> 141      po 3
deviceiL247s="sref">deviceextended_ar 3
deviceextended_ar 3set    n (4rivers/ac4i/b3ttery3c#L248" id="L24erty"4class="sroffse 270                else
deviceiL247resul  ne" name="L258">sul 67u8> 1ebattery->->extract_+cokf">L259ged" class="sref">acpi>battery-&gery *  141    euff h7a hline" name=uuff h>acpt> 141      po 3
 250name="L2ef">deviceiL247devicear  141    ERRAY_SIZTYPE_PACKAGsa hrpRRAY_SIZT>acpi>battery-&gdevicear 3set    n (4rivers/ac4i/b3ttery35#L241" id="L24erty"45ne" name="L239"> 239    kfrect_+cokf">L259gekfrec>acpi>battery-&geuff h7a hline" name=uuff h>acpt> 141      po 3set    n (4rivers/ac4i/b3ttery35#L242" id="L24erty"4class="sroffsefsetss="sref">devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3
battery-&gery *  battery->tydea>->3set    n (4rivers/ac4i/b3ttery3c#L254" id="L24erty"454ass="sroffsefsetss="sref">devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3set    n (4rivers/ac4i/b3ttery3c#L255" id="L24erty"4522222222222ed" cl>battery-&gery * -&gery *  -&gery *  battery->tydea>->-&gery *  3set    n (4rivers/ac4i/b3ttery35#L248" id="L24erty"45s="line" name="L268">ef">cape=POWEUNery *  battery->tyf/a>->* class="sref"3"   break3
10000 /1ebattery-&gery *  3set    n (4rivers/ac4i/b3ttery36#L200" id="L240" cl46s="line" name="L250">ebattery-&gery *  3set    n (4rivers/ac4i/b3ttery3c#L261" id="Le4" cla46s="line" name="L271"> 271ebattery-&gery *  battery->tydea>->3set    n (4rivers/ac4i/b3ttery36#L253" id="L24erty"46s="line"66" cla  20298" or mp" cl?">/* ruCuriously, dep, 0} 3
3
/* ru2e=dep, 0} 3
)3
3
deviceiL247resul  ne" name="L258">sul 67u8" class="sref"3"CITY3set    n (4rivers/ac4i/b3ttery37#L240" id="L24erty"4class=ne" name="L1673KNOWN3
acpi="sref">deviceiL247i_battery" c_get_f">aref="+code=dep, i_battery" c_get_f">ar>acpi_battery_is_charged(struct acpi_battery * 3
deviceiL247resul  ne" name="L258">sul 67u8> 1ass="sref">intval = 0;
 141      u8_pi_batf">aue=acpi_bunitsL259ged"f">aue>acps="sref">batteryue=acpi_bunitsL25f">aue>acpsclass="sref">intval = 0;
(struuff h>acps="sref">batteryuuff h7a hline" name=uuff h>acps= {>ef">cape=POWEUNITOPAALLOCAThrBUFFIG_ode=AY_PCFSROPITOPAALLOCAThrBUFFIG67u8141"> 141    NWER_SUPPLY_PROP_ENN+code=p ne" name="L145"3"> 181deviceiL247i_battery" c_p">smttery47a hcity_ini_battery" c_p">smtt>acpi>        cha+t9ery * 3
intval = 0;
battery->tyupd>ae-n_samprivg_tim<="+cupd>ae-n_salass=cokf"cokf"ne" name="L203Y_NOW3
devicr_sa_beforde= !capacity_now_sa_beford>acpi>        cha+t9jiffiee=acpi_bunitsL25jiffieede=p141"> 141    ery * ae-n_salass=+ne" name="L203Y_NOW3
3
intval = 0;
intval = 0;
 245    mutex_lock  ) h (battery-&gery * 3set    n (4rivers/ac4i/b3ttery38#L247" id="L248"  245    ue=acpi_bunitsL25f">aue>acpsclef">deviceiL247i_batevalu>ae-"+codobjece+code=acpi_battevalu>ae-"+codo>acpi>        cha+t9ery * battery->tyhandlref="+code=dep, handlr67up141="sremWstrcasecmp3set    n (4rivers/ac4i/b3ttery38#L248" id="L24niola48s="line" name="L268"> 268emtt href="+cottery->tyNWER_SUPPLY_PROP_ENN+code=p14cokf">battery-&geuff h7a hline" name=uuff h>acp)" class="sref"3"CITY3set    n (4rivers/ac4i/b3ttery38#L259" id="L24="lin4" name="L267+c5"> 245    mutex_unlock  ) h (battery-&gery * 3set    n (4rivers/ac4i/b3ttery39#L180" id="L140" cl49s="line" name="L203Y_NOW3
aue>acp))p" class="sref"3"   break3
 141    ue=acpi_bunitsL25f">aue>acp141="sremWstrcasecmp3set    n (4rivers/ac4i/b3ttery39#L243" id="L243" cl4ss="line"66" cla  3set    n (4rivers/ac4i/b3ttery39#L274" id="L244" cl4ss="line" namene" name="L1673KNOWN3
intval = 0;
 245    resul  ne" name="L258">sul 67u8> 1ebattery->->extract_+cokf">L259ged" class="sref">acpi>battery-&gery *  141    euff h7a hline" name=uuff h>acpt> 141      po  = 0;
arcear arcear  141    ERRAY_SIZTYPE_PACKAGsa hrpRRAY_SIZT>acpi>battery-&gf">arcear arcear 3set    n (4rivers/ac4i/b2ttery2c#L198" id="L14ass="49ne" name="L259"> 259 MANery * ae-n_salass= 1ebattery-&gjiffiee=acpi_bunitsL25jiffieede=p" class="sref"3"CITY3set    n (4rivers/ac4i/b2ttery29#L259" id="L24ass="49 name="L267+c5"> 245    kfrect_+cokf">L259gekfrec>acpi>battery-&geuff h7a hline" name=uuff h>acpt> 141      po 3set    n (5rivers/ac5i/b3ttery30#L190" id="L15ass="50s="line" name="L203Y_NOW3
/* ruFor buggy DSDTs thathdeport neg>acve 16-bit valuds s="seith h67ly if it is presen3EODEV3
3
3
3
battery->ty href="+counit      capacity_now" class="sref">cape=POWEUNITOPA*-&gery * ae-nre4" cl"sTYPE_PACKAGse battery->tyr>ae-nref="+code=_lree=r>ae-nre4" c)ef=s="0)p" class="sref"3"   break3
ebattery-&gery * ae-nre4" clclef">deviceiL247ibe=acpi_bunitsL259bs>acpii>        cha+t9fi/b3ttery31o[]   f1e=psp)ebattery-&gery * ae-nre4" c)"ne" name="L203Y_NOW3
->ty cmptk_oncref="+code=dep,  cmptk_oncr>acpi>battery-&gKERN_WARNINGYPE_PACKAGsa hrKERN_WARNING>acps="sref">batteryFW_BUGYPE_PACKAGsa hrFW_BUG>acps=="sremWstrcasecmpne" namee20298" or mpsecmp3
devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3
-&gery * -&gery * 3
deviceiL247ery * devicery * deviceiL247ery *  devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * battery->ty href="+counit      capacity_now" class=cokf"cokf"1ebattery-&gery *  deviceiL247ery * devicery * ne" 10000 /1ebattery-&gery *  3set    n (5rivers/ac5i/b3ttery32#L181" id="L151" cl52ne" name="L23ne" name="L1673KNOWN3
 245    resul  ne" name="L258">sul 67u8" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L223acpi="sref">deviceiL247i_battery" c_set_alarhr; ++acpi_battery_is_charged(struct acpi_battery * 3
3
 245    i_batf">aue=acpi_bunitsL259ged"f">aue>acps="sref">batteryue=acpi_bunitsL25f">aue>acpsclass="sref">intval = 0;
battery-"+codobjece+code=acpi_battery" celemtbjecef">batteryacpscl{ t> 141      p>ode= !capacity_now" class="ref">cape=POWEUNITOPA 181devicery" c_lisobjece+code=acpi_battery" c_lisoelemtbjecef">batteryacpscl{ 114cokf">battery-&gacpsne" name="L145"3"> 1813
deviceiL247i_battery" c_p">smttery47a hcity_ini_battery" c_p">smtt>acpi>        cha+t9ery * 3set    n (5rivers/ac5i/b3ttery3c#L232s="line"5name=53s="line" name="L2!ef">deviceiL247rest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3
3set    n (5rivers/ac5i/b3ttery334L191" id="L15ass="53"line" name="L145"3    break3
 141      u8_pacpt> 141       devicery * acp" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L236" id="L155" cl53ne" n class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery33#L187 id="L195" cla53ne" name="L245"> 245    mutex_lock  ) h (battery-&gery * 3set    n (5rivers/ac5i/b3ttery33#L188" id="Le5" cla53ne" name="L259"> 259 MANue=acpi_bunitsL25f">aue>acpsclef">deviceiL247i_batevalu>ae-"+codobjece+code=acpi_battevalu>ae-"+codo>acpi>        cha+t9ery * battery->tyhandlref="+code=dep, handlr67up141="sremWstrcasecmp3set    n (5rivers/ac5i/b3ttery3c#L239" id="L25erty"53ne" name="L25name="L268"> 268emtt4cokf">battery-&gacp141"> 141    NWER_SUPPLY_PROP_ENN+code=p)" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L240" id="L25erty"5class="sroffse5"> 245    mutex_unlock  ) h (battery-&gery * 3set    n (5rivers/ac5i/b3ttery3c#L241" id="L25erty"54lass=e" name="L1673KNOWN3
devicITOPAFAILURTYPE_PACKAGsa hrp/a> FAILURT>acpi>        cha+t9ue=acpi_bunitsL25f">aue>acp))e" name="L1673KNOWN3
3set    n (5rivers/ac5i/b3ttery34#L204id="L1455 clas54"line" name="L145"3    break3
 141      u8_pp/a> DEBUG"+cI=POWER_SUPPLY_PROITOPADEBUG"+cI=P>acpii>        cha+t9ITOPADBrINFOPI_BATTERY_VALUETOPADBrINFO67up141="sremWstrcasecmp 141    ery * acp))" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L246" id="L25erty"5474" class="lide=FAULass="sref">intval = 0;
acpi="sref">deviceiL247i_battery" c_init_alarhr; ++acpi_battery_is_charged(struct acpi_battery * 3
3
 239    i_batf">aue=acpi_bunitsL259ged"f">aue>acps="sref">batteryue=acpi_bunitsL25f">aue>acpscl>        cha+t9IE_OKPI_BATTERY_VALUEE_OK=psp" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery35#L242" id="L25erty"5class="sroffse9"> 239    i_bathandlref="+code=dep, i_bathandlr>acps="sref">batteryhandlref="+code=dep, handlr67upscl>        cha+t9NWER_SUPPLY_PROP_ENN+code=p" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L253" id="L25erty"55arivee" name="L1673KNOWN3
/* ruSe0ffsealarhs are supported, andffseso, set defaultse only if it is presen3EODEV3
 141      u8_pue=acpi_bunitsL25f">aue>acpsclef">deviceiL247i_batget_handlref="+code=dep, i_batget_handlr>acpi>        cha+t9ery * battery->tyhandlref="+code=dep, handlr67up141="sremWstrcasecmpbattery-&ghandlref="+code=dep, handlr67up)" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery35#L246" id="L25erty"5574" class="lifsetebattery-&gITOPAFAILURTYPE_PACKAGsa hrp/a> FAILURT>acpi>        cha+t9ue=acpi_bunitsL25f">aue>acp))p" class="sref"3"   break3
battery-&gery * 3set    n (5rivers/ac5i/b3ttery35#L248" id="L25erty"55s="line" name="L268">de=FAULass="sref">intval = 0;
 245    set_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3set    n (5rivers/ac5i/b3ttery3c#L261" id="Le5" cla561ass="sroffsefset!ef">deviceiL247ery * acp) class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery36#L242" id="L25erty"56s="line" name="L267+cef">deviceiL247ery * acp> 1ebattery-&gery *  3set    n (5rivers/ac5i/b3ttery36#L253" id="L25erty"56s="line"66" cde=FAUL5"> 245    i_battery" c_set_alarhr; ++acpisref">acpi_battery * 3set    n (5rivers/ac5i/b3ttery36#L254" id="L25erty"5class=ne" name="L1673KNOWN3
intval = 0;
acpi5"> 245    ssize_ounit    e, 0}battery<_battery" c_alarh_shref="+code=_lree=<_battery" c_alarh_shre>acpi_battery_is_chargedacpi_batt0}vef="+code=dep, 0}v67u81s="sref">intval = 0;
acpi_batt
intval = 0;
 268emtt href="+come"+code=acpi_bunitss="buf * acp) class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery36#L239" id="L25erty"5class=" class="sref"3"   break3
acpi_battery *  = (struct acpi_battdevtget_drvdataef="+code=dep, devtget_drvdata>acpisref">acpi_battdevef="+code=dep, 0}v67u8))" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery37#L241" id="L25erty"571e" name="L23de=FAUL5"> 245    s cmptf * acpisref">acpi_batteuf * acp141="sremWstrcasecmp 141    ery * acp * 1000)" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery37#L242" id="L25erty"57e" nane" name="L1673KNOWN3
acpi5"> 245    ssize_ounit    e, 0}battery<_battery" c_alarh_storde= !capacity_no<_battery" c_alarh_stord>acpi_battery_is_chargedacpi_batt0}vef="+code=dep, 0}v67u81s="sref">intval = 0;
acpi_batt
intval = 0;
 acp141"> 141    batterycouttery47a hcity_incoutt>acp) class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery37#L247" id="L25erty"57="lin" class="sref"3"   break3
batteryxery47a hcity_inx="+c" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery37#L239" id="L25erty"57ne" name="L25_batteoffsetss="sref">devicuct acpi_battery *  = (struct acpi_battdevtget_drvdataef="+code=dep, devtget_drvdata>acpisref">acpi_battdevef="+code=dep, 0}v67u8))" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery38#L240" id="L25erty"58lass="sroffsefsetss="sref">devicsscanf * acpisref">acpi_batteuf * acp141="sremWstrcasecmpbattery-&gxery47a hcity_inx="+c)="sr1) class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery38#L251" id="L155" cl58s="line" name="L271">ef">cape=POWEUNery * acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery3c#L182id="L1455 clas58lass="sroffsefsetss="sref">devici_battery" c_p">smttery47a hcity_ini_battery" c_p">smtt>acpi>        cha+t9ery * 3set    n (5rivers/ac5i/b3ttery383L261" id="L95"  245    i_battery" c_set_alarhr; ++acpisref">acpi_battery * 3set    n (5rivers/ac5i/b3ttery38#L264" id="L254" cl5ss="line""""unde=FAUL5"> 245    couttery47a hcity_incoutt>acp" class="sref"3"CITY3set    n (5rivers/ac5i/b3ttery38#L275" id="L25222225222222ne" name="L1673KNOWN3
3set    n (5rivers/ac5i/b3ttery38#L247" id="L258" acpi_battery_is_chargedacp> 1" class="sref"3"   break3
 141      
 1"t> 141       id=f="+code=_lree= id=>acp> 1e="sremWstrcasecmpacp> 10644}1s="sref">intval = 0;
acpsclef">deviceiL247i_battery" c_alarh_shref="+code=_lree=<_battery" c_alarh_shre>acp1s="sref">intval = 0;
deviceiL247i_battery" c_alarh_storde= !capacity_no<_battery" c_alarh_stord>acp1s="sref">intval = 0;
 1813
acpi="sref">deviceiL247sysfs_addruct acpi_battery * 3
deviceiL247resul  ne" name="L258">sul 67u8e" name="L145"3"> 1813set    n (5rivers/ac5odeg                    5  25659ne" name="L24fsetss="sref">devicery * cape=POWEUNITOPA*ebattery-&gery * deviceiL247 0}tery" c_p"ope=acpi_bunitsL25 0}tery" c_p"ope67u8e" name="L145"3"> 181-&gery *  181ne" nameef">cape=POWEUNIRRAY_SIZTYPE_PACKAGsa hrpRRAY_SIZT>acpi>battery-&g 0}tery" c_p"ope=acpi_bunitsL25 0}tery" c_p"ope67u8"" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery30#L191" id="L16ass="60s="line" name}e 270p" class="sref"3"   break3
deviceiL247ery * deviceiL247energy>tery" c_p"ope=acpi_bunitsL25energy>tery" c_p"ope67u8e" name="L145"3"> 181battery-&gery *  181cape=POWEUNIRRAY_SIZTYPE_PACKAGsa hrpRRAY_SIZT>acpi>battery-&genergy>tery" c_p"ope=acpi_bunitsL25energy>tery" c_p"ope67u8"" class="sref"3"CITY3set    n (6r5vers/ac6i/b3ttery39#L275" id="L26953set    n (6r7vers/ac6ideg                    6ass="60ne" name="L245"> 245    ery * acp> 1e_is_charged(strdevicr_bidhref="+code=acpi_batdevicr_bid>acpisref">acpi_battery * 3set    n (6r8vers/ac6i/b2ttery2c#L198" id="L16ass="60ne" name="L259"> 259 MANery * cape=POWEUNPOWER_SUPPLYA 181 259 MANery * deviceiL247i_battery" c_get_propert> * 67u8e" name="L145"3"> 1813
 239    resul  ne" name="L258">sul 67u8> 1ebattery-&gity_nosupply_regist h7a hline" name="oy_nosupply_regist h>acpicokf">battery-&gery * battery->ty0}vef="+code=dep, 0}v67u814cokf">battery-&gery * 3set    n (6rivers/ac6i/b3ttery312L191" id="L16ass="61lass="sroffsefsetss="sref">devicresul  ne" name="L258">sul 67u8" class="sref"3"ODEV3
deviceiL247resul  ne" name="L258">sul 67u8e" name="L145"3"> 181 245    devicr_cre>ae-filref="+code=dep, devicr_cre>ae-filr>acpisref">acpi_battery * battery-&galarh_
acp"" class="sref"3"CITY3set    n (6r5vers/ac6i/b3ttery31#L195" id="L16ass="6122222ne" name="L1673KNOWN3
3set    n (6r7vers/ac6i/b3ttery317L196" id="L16ass="61ne" nf">acpivoidref">deviceiL247sysfs_remova>tery" chref="+code=acpsysfs_remova>tery" c>acpi_battery_is_charged(struct acpi_battery * 3
 259 MANmutex_lock  ) h (battery-&gery * 3set    n (6rivers/ac6i/b3ttery3c#L220" id="L165" cl62lass="sroffsefset!ef">deviceiL247ery * ef">cape=POWEUNmutex_unlock  ) h (battery-&gery * 3set    n (6rivers/ac6i/b3ttery3c#L222#ifdef2l6ss="l62s="line" name="L267+cde=FAU" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery3c#L223 141      u8_pdevicr_remova>filref="+code=dep, devicr_remova>filr>acpisref">acpi_battery * battery-&galarh_
acp"" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery32#L256" id="L266" cl62ne" name="L245"> 245    "oy_nosupply_unregist h7a hline" name="oy_nosupply_unregist h>acpicokf">battery-&gery * 3set    n (6rivers/ac6i/b3ttery32#L167" id="L167" cl62ne" name="L245"> 245    ery *         cha+t9NWER_SUPPLY_PROP_ENN+code=p" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery3c#L228#endif i6="L1662ne" name="L259"> 259 MANmutex_unlock  ) h (battery-&gery * 3set    n (6rivers/ac6i/b3ttery32#L189" id="L169" cl62ne" nne" name="L1673KNOWN3
acpivoidref">deviceiL247findruct acpi_battdhr; ++acpi_battp203aaref="+code=dep, p203aarde=p" class="sref"3"ODEV3
devicuct acpi_battery * (struct 3set    n (6rivers/ac6i/b3ttery334L191" id="L16ass="634ass="sroffsee20298" or mp" cl?">/* ruNote: the harda>-&d ear 3
-& ea dmidea>-&.sse only if it is presen3EODEV3
battery->typ>ode= !capacity_now" class="cl>        cha+t9DMI_ENT ? PORTABLhr*-&gdhr; ++->tyu8r; ++acpi_battdhi_dataef="+code=dep, dhi_datade=p="ni"onstettery->tyu8r; ++-&gdhr; ++3set    n (6rivers/ac6i/b3ttery33#L188" id="Le6" cla63s="line" name="L268">f"sref">deviceiL247dhi_href="+code=full_chargedhi_href="+c67u8scl>        cha+t9get_unal=deed * acpii"onstettery->tyui/b3ttery31o[]   u174" cl")tebattery-&gdhi_dataef="+code=dep, dhi_datade=p=+ 6))" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery3c#L239" id="L26erty"63ne" name="L25name="L2fsetebattery-&gdhr; ++3
ne" nameef">cape=POWEUNdhi_href="+code=full_chargedhi_href="+c67u8s*cl>        cha+t9dhi_dataef="+code=dep, dhi_datade=p[17]" class="sref"3"CITY3set    n (6rivers/ac6i/b3ttery3c#L241" id="L26erty"64s="line" name="L271">fsetss="sref">devicery * 67u8s*1ebattery-&gery *  3set    n (6rivers/ac6i/b3ttery3c#L242" id="L26erty"64s="line" name="L267+ccccc"sTYPE_PACKAGse cape=POWEUNery * 67u8s*110="cl>        cha+t9dhi_href="+code=full_chargedhi_href="+c67u8" class="sref"3"ODEV3
cape=POWEUNset_bcounit    e, 0}acpi>        cha+t9ITOPA*3
battery-&gery * 3set    n (6rivers/ac6i/b3ttery3c#L246" id="L26erty"6474" class="line" name="L1673KNOWN3
/* ronly if it is presen3EODEV3
3
3
3
smttRaar =sr0xFFFFFFFF.e"ly if it is presen3EODEV3
3
fseit's de 0}3
3
3
/*sruHandlr this correctlyMso that they won't break usEODef=e.e"ly if it is presen3EODEV3
3
acpivoidref">deviceiL247i_battery" c_quirke=acpi_bunitsL259ged"tery" c_quirke>acpi_battery_is_charged(struct acpi_battery * 3
devicrest_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * 3
3set    n (6rivers/ac6i/b3ttery36#L255" id="L26erty"6622222s="sref">intval = 0;
battery->tyf/a>->-&gery * ae-nre4" c="sref">cape=POWEUNITOPA*battery->ty2e=dep, 0nref="+code=_lree=2e=dep, 0nrelass=cg="s0acokf"cokf"1ebattery-&gery * -&gset_bcounit    e, 0}acpi>        cha+t9ITOPA*battery-&gery * ebattery-&gery *  cape=POWEUNery * 67u8" class="srL203Y_NOW3
ef">cape=POWEUNery * devicery * ebattery-&gery *  acpi_batt0}vef=r8s7y30acpi_batt0}vef=r8s7y30acpiL247"ref="6rivers/ac6i/b3tteref=9"67s="line"667"ref="6rivers/acpro_>(struct ->ty2e=dep, 0nhref="5rivers/a3attery->ty2e=dep, 0nhref="5riverilarh>acp * 1000)e=dep, devicr_
acpisilarh>acpKNOWN3
3set    n (5rivers/ac5i/b3ttery35#L26n" class=6sref"3"   break3
 acpi_bat7up)" class="srefttyf/a>->(struct acp6sref"68f">battery-&gery * a6pi_batteuf * a6p141="sremWstrcasecmp3set    nThinkPadvers/ac5i/b3tte8a>3set    n (5rivers/ac5i/b3ttery35#L26>ef">cape6POWEUNery * <6 href68vicery * 3
 245RCe=Pef="+code=POWER_SUPPLY_PROPITOPAp"L250">ebffsefsetss="sref">devici6batte6y" c_p">smttery47a hcis="line"66" cne" name="L1673KNOWN3
 245    i_bat6ery" 68f="+code=dep, 0}e=dep, 0}>>>>>>>>>>>>>="L26cs="s6  n (5rivei/b3ttery37#L254" id="href="6rivers/ac6i/b3ttery35#L247" id="L26erty"65498s"L1 couery * 3set    n 65rive68acpi>        cha+t9ITOPA*fsetss="sref">devicery *  245    cout6ery4768edbattery-&g>3set    6 (5rivers/ac5i/b3ttery386L275"68>acpi_battery_is_chargedbattery-&g>2e=dep, 0i_battery_is_chargedfsetss="sref">devicery * batteryac68*   141      sh6ef="+69etebattery-&gdhr; ++battery-&gname="L266+ct> 141      storde6 !cap69141="sremWstrcasecmp-&0d="6i/b3ttery3c#L241" id="L26erty"64s="line" name="L271">fsetss="sref">devicery * battery * deviceiL247ery * batteryeb"5rivers/ac5i/b3ttery3c#6191" 69" c_p">smttery47a hcis="line"ef="+code=pyp>battery->ty2e=dep, 0nref="+code=_lree=2e=dep, 0nrelass=* clame="L267+cef">deviceiL247ery * battery-&gn="+code=f_addruct acpi_batter6_is_c69f="+code=dep, 0}e=dep, 0}>>>>>>>>>>>>a>-&0d="6i/b3ttery3c#L241" id="L26erty"64s="line" name="L271">fsetss="sref">devicery * batteryacpi_battery 6        cha+t9ITOPA*67u8" class="srL203Y_NOW3
ef">cape=POWEUNery * fsetss="sref">devicery * batterydeviceiL247resul6 ne" 69>acpi_battery_is_chargedbattery->tyf/a>->->6y href="+counit      cap6city_6ow" class="sref">cape=pyp>battery->tyf/a>-> 141      properti6e=acp6_bunitsL25proppyp>battery->tyf/a>-> *7a  3
updct sssssss* only if it is presen3EODEV3
acpivoidref">deviceiL247i_battery" c_quirke=acpi_bunit7 href=de=7t> 141      properti7e=acp7_bunitset    n (5rivers/ac5i/b3ttery35#L27ery *7a  3
acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5rivera  cape=POWEUNIRRAY_S7ZTYPE70ode62s="line"66" cne" name="145"3"> 1813
3set    n (5rivera   devicresul  ne" name="L258">sul 67u8" class="7icr_bidhr7f="+code=acpi_batdevicr_7id>ac70y2e=dep, 0nhref="a  acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>3set    n (5rivers/ac5i/b3ttery35#L27 141      p>ode=7!capa70* 3
3set    n (5rivera  battery-&gery *  * battery7atterybatterpyp>battery->tyf/a>->3set    n7(6riv71 battery->tysysfs_lock  ) h (battery->tyf/a>-> *73
battery-&73KNOWN3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>3set    n (5rivers/ac5i/b3ttery35#L27tery-7gttyef= *         cha+t9IT66" cne" name="145"3"> 1813set    n (5rivera  -&galarh_
 acpi_battery_is_chargeddevicresul  ne" name="L258">sul 67u8" class="7cpsysfs_r7mova>tery" c>acpi_batter7_is_c71w" class="sref">cape=POWEUNITOPA*3set    n (5rivera  acpi_battery 7battery->tyf/a>->-&gery * 3set    n (6rivers/ac6i/b3ttery3c#L220" id="L165" cl62lass="sroff7efset!ef"7deviceiL247ery * battery->tyef= 145"3"> 181 1813set    n (5rivera  acpicokf"7batte7y-&gery * smttery47a hcis="line"" id="L16ass="61lass="sroffsefsetss="sref">devicresul  ne" name="L258">sul 67u8" class="7y3c#L222#7fdef2l6ss="l62s="line" n7me="L724unitsL25proppyp>battery->tyf/a>->-7s/ac6i/b3ttery3c#L223 1813
e=pyODEV " id="+c/1000" class="sref"3"CITY3set    n (5rivera         0}vef="+code=dei/b3ttery36#L200" id="L260" cl66s="li " id="L256" classsss"+c/1000" class="sref"3"CITY3set    n (5rivera  a7picokf">batter" id="L16ass="61lass="sroffsefsetss="sref">devicresul  ne" name="L258">sul 67u8" class="7ypsysfs_r7pyp>battery->tyef=7* battery->tyf/a>->acpicokf"7batte7y-yp>battery->tyf/a>->battery7/a>->tysysfs_lock  ) h7(3
3
acpivoidref">deviceiL247i_battery" c_quirke=acpi_bunit7>3set    7 (6rivers/ac6i/b3ttery327L189"7id="L1y3c#L220" id="L165" cl62lass="sroff7rgedbatterye=p" class="sref"3WN3
sul 67u8" class="77u814void7"sref">acpi_battp203aare7="+co73ilarh>acp * 1000)" class="sref"3"CITY (struc> * 3set    n (6rivers/ac6i/b3tte>acp * 1000)" class="sref"3"CITY-7b3ttery334L191" id="L16a7s="6373acpi>        cha+t9ITa> acp"" class="sref"3"CITYbattery-&gery"L15 id="59ne" n class="sref"3"CITY3s * sul 67u8" class="77psysfs_r7ttdhi_dataef="+code=dep,7dhi_d73y"6474" class="line" name="L1673KNOWN acp7i"ons7ettery->c6i/b3ttery31#L3set    n (5rivera  acp"" class="sref"3"CITYne" nameef">cape7POWEU7dhi_href="+cod=FAUL" class="sref""L15 id="59ne" n class="sref"3"CITY3set    n (5rivers/ href="+code=pyp>battery->tyflage=acpi_bunitsL2WN3
67u8s*1ebattery-7gery<7a> * battery->tysy7n (6river7/ac6i/b3ttery3c#L242" id7"L26e74ilarh>acp * 1000)" class="sref"3"CITY7attery->tycle=dep,70}/*sruHandlr this correctlyMso that they won7>cape=POW7UNset_bcounit    e, 0}3
3set    n (5rivera        0}vef="+code=de"3"> 1813set    n (5rivera  3set   7n (6river7/ac6i/b3ttery3c#L246" id7"L26e7ty"6474" class="line" name="L1673KNOWN3
/*sruHandlr this correctlyMso that they won7f="6river7/ac6i/b3ttery35#L241" id7"L26e75_alarh_stord>acp1s="sref">intval = 7"6rivers/7c6i/b3ttery35#L242" id="726ert7"65s="#ifdef 0}vef="+code=deCONFIG_href=PROCFSs="sre3"CITY3set CONFIG_href=PROCFSs="srealarh_stord>acp1s="sref">intval = 7"ode=pyp>7V3
3set proc_dir_sssf"tery3c#L261" id="Le6"sul 67u8" class="7smttRaar 7sr0xFFFFFFFF.e"ly if it 7s pre75s="sref"3"ODEV3
3
3
3
3
acpi_battery *<7g/shre_bu7.cgi?rs/1597ne"ly if it 7s pre75-yp>battery->tyf/a>->-&gery *<" class="sref"3"ODEV3
3set na"ttery" class="sref">acpi_battery *<7L259ged"t7ry" c_quirke>acpi_batter7_is_c76_alarh_stord>acp1s="sref">intval = 7ry" class7"sref">acpi_battery 7 pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity:rrrrrrrrrrrrrrrrr%s\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7rode=pyp>7IRK_PERCe=Pef="+code=PO67u814c7kf">battery-&gery<+coy if it is pres73KNOWN3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river?s="sref"3"CITY3set    nyesvers/ac5i/b3t:s="sref"3"CITY3set    nnovers/ac5i/b3tay" class="sref">acpi_battery *<7LmttRaar 7e=acpi_bunitsL25flagede=7"" cl76ty"67s="line"66" a  acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>" class="sref">acpi_battery *<7Lrivers/a76#L254" id="L26erty"66s=7line"76ed3set na"ttery" class="sref">acpi_battery *<7Lt is pre7-&gery *         cha+t9dhi_dataef="+code=dep, dhi_datade=p[17]" class="sref"3"CITY3set    n (6rivers//a>3
-&g>" class="sref">acpi_battery *<7La>3
cape=POWE"+coy if it is presseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set lasssssss:rrrrrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<7L/shre_bu7kf"cokf"1ebattery-&g7ry acpi_battery *<7*battery-&gery * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set lasssssss:rrrrrrrrr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7ap, 0}cape=7OWEUN7ry * -&gery *         cha+t9dhi_dataef="+code=dep, dhi_datade=p[17]" class="sref"3"CITY3set    n (6riversth_stord>acp1s="sref">intval = 7a259ged"t72e=dep, 0nrelass= 14ss="7ref">7evicery * 3
3ttes>acp> 1ebattery-&gxery473ttes_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<7="L250">e7attery-&gery * 77ilarh>acp * 1000)" class="sref"3"CITY <7 href77ged(struc> * *         cha+t9dhi_dataef="+code=dep, dhi_datad"L26erty"6622222s="sref">intval = 0;
-&g>" class="sref">acpi_battery *<7ef="6rive7s/ac6i/b3ttery37#L253" i7="L2677acpi>        cha+t9IT66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nldema = 0lasssssss:rrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<7pi_batt0}7ef=r8s7y30acpi_batt0}vef7r8s7y70acpiL247"ref=else" class="sref">acpi_battery *<7*t is pre7truct acpi_battery_is_char66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nldema = 0lasssssss:rrrrrr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7aa>3
 *         cha+t9dhi_dataef="+code=dep, dhi_datad"L26erty"6622222s="sref">intval = 0;
intval = 7a/shre_bu7sref"3"   break3
  3set    n (5river>y" class="sref">acpi_battery *<7href="+co7e=acpro_>(struct acp7sref"78f=sysfs_lock>acp"" class="sref"3"CITYa7pi_batteuf * a7p141="sremWstr66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n4" id="Ltechnologs:rrrrrr%se 3
acp1s="sref">intval = 7>ef">cape7POWEUNery * <7 href78vicery *  3set    nnon-vers/ac5i/b3t:s="sref"3"CITY3set    nvers/ac5i/b3tay" class="sref">acpi_battery *<7p"L250">e7ffsefsetss="sref">devici7batte78ilarh>acp * 1000)" class="sref"3"CITY 245    i_bat7ery" 78ged(struc> * *         cha+t9dhi_dataef="+code=dep, dhi_dataddevicery * -&g>" class="sref">acpi_battery *<7" class="7ref"3"CITY3set    n 75rive78acpi>        cha+t9IT/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set l=pyp>ba:rrrrrrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<7>i_batt0}7=FAUL5"> 245    cout7ery4778acpiL247"ref=else" class="sref">acpi_battery *<7>3set    7 (5rivers/ac5i/b3ttery387L275"78>acpi_battery_is_char/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set l=pyp>ba:rrrrrrrrrr%drmV\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7>a>3
 * acpi_battery *<7>/shre_bu7     id=f="+code=_lree= 7d=>ac78ttery->c6i/b3ttery31#Lseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set lasssssss de=pyp>:r%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7n5" name=7L267+ct> 141      sh7ef="+79etebattery-&gdhr; ++/a> *         cha+t9dhi_dataef="+code=dep, dhi_datade=p[17]" class=eviceiL247ery * intval = 7nisref">a7+ct> 141      storde7 !cap79141="sremWstrcasecmp 3set    n (5river>y" class="sref">acpi_battery *<7" c_alarh7storde= !capacity_no<_ba7tery"79vicery *pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n>3set lasssssss low:rrrrr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7n"L250">e7"5rivers/ac5i/b3ttery3c#7191" 79" c_p">smttery47a hcis="/a> *         cha+t9dhi_dataef="+code=dep, dhi_datade=p[17]" class=elery * e=p[17]" class=elerbattth_stord>acp1s="sref">intval = 7n="+code=7_addruct acpi_batter7_is_c79f="+code=dep, 0}e=dep, 0  3set    n (5river>y" class="sref">acpi_battery *<7" class="7"sref">acpi_battery 7pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    ncyclardauty:rrrrrrrrrrrrr%i\nvers/ac5i/b3tt"rivers/ac6i/b3ttery37#L241" id="L26erty"67s="line" name="L271">ef">caycla_dautyL241" id="L26eraycla_dautytteray" class="sref">acpi_battery *<7i" class=7sref"3"   break3
      0}vef="+code=de"eq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    ncsssssss granularsss 1:rr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 7n3set    7f"sref">deviceiL247resul7 ne" 79>acpi_battery_is_chargedrivers/ac6i/b3ttery37#L241" id="L26erty"67s="line" name="L271">ef">ca class=egranularsss_1L241" id="L26era class=egranularsss_1battth_stord>acp1s="sref">intval = 7na>3
cape=, 0  3set    n (5river>y" class="sref">acpi_battery *<7"/shre_bu7t> 141      properti7e=acp79ttery->c6i/b3ttery31#Lseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    ncsssssss granularsss 2:rr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 8ery *8a  intval = 8e1y *8act> 141      storde8ZTYPE80141="sremWstrcasecmp 3set    n (5river>y" class="sref">acpi_battery *<8e2y *8atorde= !capacity_no<_ba8"ope680vicery *pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nmlasl number:rrrrrrrrrrrr%s\nvers/ac5i/b3tt+/a> *         cha+t9dhi_dataef="+code=dep, dhi_datadmlasl_number        cha+t9dmlasl_numbertteray" class="sref">acpi_battery *<8 href=de=8t> 141      properti8e=acp80 pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nserial number:rrrrrrrrrrr%s\nvers/ac5i/b3tt+/a> *         cha+t9dhi_dataef="+code=dep, dhi_datadserial_number        cha+t9dserial_numbertteray" class="sref">acpi_battery *<8 4ref=de=8taddruct acpi_batter8>batt8ry->tyef66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n4" id="Ltype:rrrrrrrrrrrr%s\nvers/ac5i/b3tt+/a> *         cha+t9dhi_dataef="+code=dep, dhi_datadtypeyp>battery-typetteray" class="sref">acpi_battery *<8 5ref=de=8tsref">acpi_battery 8ZTYPE80ode62s="line"66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nOEM 6ifo:rrrrrrrrrrrrrrrr%s\nvers/ac5i/b3tt+/a> *         cha+t9dhi_dataef="+code=dep, dhi_datadoemc6ifoeak3
acpi_battery *<8 6ref=de=8tref"3"   break3
3set na"tter:" class="sref">acpi_battery *<8 7ref=de=8t"sref">deviceiL247resul8="L2680de=pyp>batterhargedhi_href="+c67"ODEV3
cape=POWE"+coy if it is presseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nERROR: Uny deacpi_battery *<8 141      p>ode=8!capa80* devicresul  ne" name="L258">sul 67u8" class="841   8  get_propert> * 8a hrg81ypyp>battery->tyf/a>-> * battery->tyf/a>->3
pr4acyODEV " id=ss* only if it is presseq>3
3
3set    n8(6riv81bunitset    n (5rivers/ac5i/b3ttery35#L28"ry *83
3
acpi_battery *<8tery-8gttyef= * 3
-&galarh_
 acpi_battery_is_chargotoass="60s="line" na"3"CITY3set na"ttery" class="sref">acpi_battery *<8cpsysfs_r8mova>tery" c>acpi_batter8_is_c81y"6474" class="line" name="L1673KNOWNacpi_battery 8->c6i/b3ttery31#Lseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity:rrrrrrrrrrrrrrrrr%s\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 8 ) h (-&gdhr; ++/a> * 3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river?s="sref"3"CITY3set    nyesvers/ac5i/b3t:s="sref"3"CITY3set    nnovers/ac5i/b3tay" class="sref">acpi_battery *<8efset!ef"8deviceiL247ery *  acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>" class="sref">acpi_battery *<8 h (-&gery *3set na"ttery" class="sref">acpi_battery *<8fs_lock  8 h (a8p"" c82ilarh>acp * 1000)" class="sref"3"CITY->tyef66" cne" name="seq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    ncsssssss ODEV :rrrrrrrrrr%s\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 8 ery-8s/ac6i/b3ttery3c#L223        cha+t9ITOPA* *         cha+t9dhi_dataef="+code=dep, dhi_datadODEV 3set    ncrity"alvers/ac5i/b3t:s="sref"3"CITY3set    nokvers/ac5i/b3tay" class="sref">acpi_battery *<8e6="ne" n8gttyef= *  *         cha+t9dhi_dataef="+code=dep, dhi_datadODEV  * *         cha+t9dhi_dataef="+code=dep, dhi_datadODEV " class="sref">acpi_battery *<8 3set    8name="oy_nosupply_unregi8t h>a82>acpi_battery_is_char/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac52" class="sref">acpi_battery *<8 psysfs_r8pyp>battery->tyef=8*3set    nc
acpi_battery *<8 a href=d8f="utex_unlock>acpicokf"8batte82*  * *         cha+t9dhi_dataef="+code=dep, dhi_datadODEV acpi_battery *<8p>battery8/a>->tysysfs_lock  ) h8(battery-&gery * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nc
acpi_battery *<8>3set    8 (6rivers/ac6i/b3ttery328L189"831  * *         cha+t9dhi_dataef="+code=dep, dhi_datadODEV acpi_battery *<8ph (-&gery * * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nc
acpi_battery *<8>s_lock  8"sref">acpi_battp203aare8="+co833 acpi_battery *<8>3c#L222#8ref="+code=p="ni_battery8is_ch83f="+code=dep, 0}e=dep/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nc
acpi_battery *<8>ery-8b3ttery334L191" id="L16a8s="6383s="sref"3"ODEV3
        cha+t9dhi_dataef="+code=dep, dhi_datadrct _Nery * rct _Ner3
-&g>" class="sref">acpi_battery *<8oDMI_ENT 8 PORTABLhr*acpi_battery_is_char/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity rEV :rrrrrrrrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<87psysfs_r8ttdhi_dataef="+code=dep,8dhi_d838 acpi_battery *<8>a href=d8> acp8i"ons8ettery->_is_char/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity rEV :rrrrrrrrrrrr%dr%s\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 8239" id="826erty"63ne" name="L25na8e="L284etebattery-&gdhr; ++        cha+t9dhi_dataef="+code=dep, dhi_datadrct _Nery * rct _Ner3
 * 3
3ttes>acp> 1ebattery-&gxery473ttes_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<8line" nam8="L250">ne" nameef">cape8POWEU84ACKAGyp>battery->tyf/a>->67u8s*1ebattery-8gery<8a> *         cha+t9dhi_dataef="+code=dep, dhi_datad 0}67u8" class="srL203Y_NOW3
-&g>" class="sref">acpi_battery *<8n (6river8/ac6i/b3ttery3c#L242" id8"L26e84" c_p">smttery47a hci/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nremaipyp>lasssssss:rrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<8code=pyp>8attery->tycle=dep,80}acpi_battery *<8>cape=POW8UNset_bcounit    e, 0}        cha+t9IT/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nremaipyp>lasssssss:rrrrrr%dr%sh\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 86422222228222ed" class=="L267ofame8"L25c84141      >-&gdhr; ++        cha+t9dhi_dataef="+code=dep, dhi_datad 0}67u8" class="srL203Y_NOW3
 * 3
3ttes>acp> 1ebattery-&gxery473ttes_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<8lDMI_ENT 8y->tyflage=acpi_bu8itsL284de=pyp>batterhargedhi_href="+c67u8s*cl>        cha+t9dhi_dataef="+code=dep, dhi_datad=pyp>ba7u8" class="srL203Y=pyp>ba7u8" href=i/3
-&g>" class="sref">acpi_battery *<8npsysfs_r8/ac6i/b3ttery3c#L246" id8"L26e84="sref">cape=POWE"+coy if it is presseq>pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity =pyp>ba:rrrrrrrrrunknown\nvers/ac5i/b3tay" class="sref">acpi_battery *<8ca href=d8="6rivers/ac6i/b3ttery3c8L247"84* acpi_battery *<8ry3c#L2488 id="L26erty"6class=e" n8me="L85f">battery-&gery * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity =pyp>ba:rrrrrrrrr%drmV\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 8rine" nam86i/b3ttery35#L240" id="L86erty85y * -&gery *         cha+t9dhi_dataef="+code=dep, dhi_datad=pyp>ba7u8" class="srL203Y=pyp>ba7u8" hreay" class="sref">acpi_battery *<8f="6river8/ac6i/b3ttery35#L241" id8"L26e85> * ss="60s="line" na"3"CITY3set na"tter:" class="sref">acpi_battery *<8"6rivers/8c6i/b3ttery35#L242" id="826ert85  8V3
 * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nERROR: Uny deacpi_battery *<8smttRaar 8sr0xFFFFFFFF.e"ly if it 8s pre85s="sref"3"ODEV3
devicresul  ne" name="L258">sul 67u8" class="8it is pre8en3EODEV3
3set   8/a>3
-5erty"54acityne" name="L1673KNOWN3
pr4acy       cha+t9ery * 3
3
-set    n (5rivers/ac5i/b3ttery35#L28#39;t bre8k usEODef=e.e"ly if it i8 pres86ref="+code=pyde=p" class="sref"3"ODEV3
acpi_battery *<8L259ged"t8ry" c_quirke>acpi_batter8_is_c86_alarh_stord>acp1s="sref">intval = 8ry" class8"sref">acpi_battery 8 battery-&gery3set na"ttery" class="sref">acpi_battery *<8LmttRaar 8e=acpi_bunitsL25flagede=8"" cl86s="sref"3"ODEV3
 acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>3set    n (5rivers/ac5i/b3ttery35#L28Lt is pre8-&gery * pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    na hcity:rrrrrrrrrrrrrrrrrno\nvers/ac5i/b3tay" class="sref">acpi_battery *<8La>3
cape=POWE"+cogotoass="60s="line" na"3"CITY3set na"ttery" class="sref">acpi_battery *<8L/shre_bu8kf"cokf"1ebattery-&g8ry 3set   8*battery * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n     :rrrrrrrrrrrrrrrrrrr&ers/ac5i/b3tay" class="sref">acpi_battery *<8ap, 0}cape=8OWEUN87hi_href="+cod=FAUa       " idy->tyef= * 8evicery *  * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nunsupertyed\nvers/ac5i/b3tay" class="sref">acpi_battery *<8="L250">e8attery-&gery * 873 acpi_battery *<8f="+code=8ull_charge_cap, 0} <8 href87f="+code=dep, 0}e=dep/a> * pr4acf href="6rivers/seq>pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    n%ur%sh\nvers/ac5i/b3tt *         cha+t9dhi_dataef="+code=dep, dhi_datad       cha+t9ery     " idth_stord>acp1s="sref">intval = 8ef="6rive8s/ac6i/b3ttery37#L253" i8="L2687acpi>        cha+t9ITode=dep, 0}e=dep/a> * 3
3ttes>acp> 1ebattery-&gxery473ttes_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<8pi_batt0}8ef=r8s7y30acpi_batt0}vef8r8s7y87"uniolass="ss="60s="line" na"3"CITY3set na"tter:" class="sref">acpi_battery *<8*t is pre8truct batterhargedhi_href="+c67"ODEV3
3
pr4acf" id="+c/1000" classseq href="6rivers/seq/ac524s="sref"3"CITY3set    nERROR: Uny deacpi_battery *<8=/shre_bu8sref"3"   break3
 devicresul  ne" name="L258">sul 67u8" class="8href="+co8e=acpro_>(struct acp8sref"88ypyp>battery->tyf/a>->a8pi_batteuf * a88ACKAGyp>battery->tyf/a>->ef">cape8POWEUNery * <8 href888"" c5erty"5"+c/1000" classssize_sefsetss="sref">ssize_s * 3
writey       cha+t9ery * intval = 8p"L250">e8ffsefsetss="sref">devici8batte88" c_p">smttery47a hcis="line"""""""""""""""""constrc
 * acp1s="sref">intval = 8p="+code=8 245    i_bat8ery" 88f="+code=dep, 0}e=dep, 0+t9ITode=dep, 0}e=dep/a> * size_s * loff_stery3c * acp> 1ebatterypers/ac5e>acp * 1000)" class="sref"3"CITY3set    n 85rive88acpi>set    n (5rivers/ac5i/b3ttery35#L28>i_batt0}8=FAUL5"> 245    cout8ery4788acpiL247"ref=de=p" class="sref"3"ODEV3
sul 67u8" class="8ht is pre8 (5rivers/ac5i/b3ttery388L275"88>acpi_batteryc
3s cha+t9ery     _Y3acpi[12] = {4s="sref"3"CITY3set#39;\0t#39;c5i/b3t }  ne" name="L258">sul 67u8" class="8ha>3
3
m3
sul 67u8" class="8h/shre_bu8     id=f="+code=_lree= 8d=>ac88ttery->de=p" class="sref"3"ODEV3
m3
acpi_battery *<8n5" name=8L267+ct> 141      sh8ef="+89f=sysfs_lock>acp"" class="sref"3"CITYa8+ct> 141      storde8 !cap89hi_href="+cod=FAUa  3s cha+t9ery     _Y3acpi) - 1r>" class="sref">acpi_battery *<8" c_alarh8storde= !capacity_no<_ba8tery"89> * EINVALttery" class="sref">acpi_battery *<8n"L250">e8"5rivers/ac5i/b3ttery3c#8191" 89 3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>3set    n (5rivers/ac5i/b3ttery35#L28n="+code=8_addruct acpi_batter8_is_c89f="+code=dep, 0}e=dep" class="sref"3"ODEV3
ENODEVttery" class="sref">acpi_battery *<8n class="8"sref">acpi_battery 8        cha+t9ITgotoass="60s="line" na"3"CITY3set na"ttery" class="sref">acpi_battery *<8i" class=8sref"3"   break3
      pyp>battery->tyf/a>->deviceiL247resul8 ne" 89de=pyp>batterhargedhi_href="+c67copy_from_user        cha+t9dcopy_from_user_inx="+c/1000" class     _Y3s cha+t9ery     _Y3acpit *  * cape=" class="sref"3"ODEV3
EFAULTttery" class="sref">acpi_battery *<8i/shre_bu8t> 141      properti8e=acp89ttery->_is_chargotoass="60s="line" na"3"CITY3set na"ttery" class="sref">acpi_battery *<9ery *9a  3s cha+t9ery     _Y3acpi[/a> * 3set#39;\0t#39;c5i/b3ty" class="sref">acpi_battery *<9e2y *9atorde= !capacity_no<_ba9"ope690vicery *        cha+t9dhi_dataef="+code=dep, dhi_datad       cha+t9ery     " id hr#L261" id="Le6"simple_Ysimple_Y3s cha+t9ery     _Y3acpit * NULLacpit<0ay" class="sref">acpi_battery *<9 href=de=9t> 141      properti9e=acp90 3
3
secy       cha+t9ery * 3set    n (5rivery" class="sref">acpi_battery *<9 4ref=de=9taddruct acpi_batter9>batt9ry->tyss="60s="line" na"3"CITY3set na"tter:" class="sref">acpi_battery *<9 5ref=de=9tsref">acpi_battery 9ZTYPE90ode62s="line"de=pa  3
      >-&gdhr;" id="L16ass="61lass="dautyL241" id="L26eraautyttery" class="sref">acpi_battery *<9 7ref=de=9t"sref">deviceiL247resul9="L2690de=pyp>batter" id="L16ass="61lass="sroffsefsetss="sref">devicresul  ne" name="L258">sul 67u8" class="9icr_bidhr9f="+code=acpi_batdevicr_9id>ac90="srepyp>battery->tyf/a>-> 141      properti9!capa90-yp>battery->tyf/a>->   9  get_propert> * 9a hrg91ytypedef int(s="line"6name=63pr4acyfunc3
3
sul 67u8" class="9" c_get_p9opert> * battery->tyf/a>->acp> 1ebattery-acpacyfuncsacpi[/a> * acp> 1ebatteryity_now" claiNUMFILEStter] = set    n (5rivers/ac5i/b3ttery35#L29"" class=9sref"3"CITY3set    n9(6riv91 intval = 9"ry *93
 acp1s="sref">intval = 9"5ref=de=9gttyef= * acp1s="sref">intval = 9"6ref=de=9ry-&galarh_
sul 67u8" class="9>3set    9 (6r5vers/ac6i/b3ttery319L195"91>acpi ne" name="L258">sul 67u8" class="9>cr_bidhr9mova>tery" c>acpi_batter9_is_c91y"6475erty"54acityne" name="L1673KNOWN3
read  cha+t9ery * 3
acpi_battery 93
acpi_battery *<9efset!ef"9deviceiL247ery * 3
3
3pdEV _inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<9 h (-&gery3
sul 67u8" class="9fs_lock  9 h (a9p"" c92ilarhpyp>battery->tyf/a>->acp> 1ebatteryDECLARE_FILE_FUNCTIONS_inx="+c/1000" class_L223        cha+t9d_L223acpi) \yp>battery->tyf/a>-> 3
a92>acpi{ \yp>battery->tyf/a>->battery->tyef=9*acpicokf"9batte92*battery->tyf/a>->battery9/a>->tysysfs_lock  ) h9(ba5erty"54acityne" name="L1673KNOWN3
  cha+t9ery * ##_L223##_open_fs=ss* only if it is presinpre  cha+t9eryinpretery3c#L261" id="Le6"inpre  cha+t9eryinpretery24ss* only if it is pres3
battery->tyf/a>->-&gerysingle_open_inx="+c/1000" class3
inpretery)+code=dep, dhi_datadeataacpi_battp203aare9="+co93ilarhpyp>battery->tyf/a>->3c#L222#9ref="+code=p="ni_battery9is_ch93yyp>battery->tyf/a>->ery-9b3ttery334L191" id="L16a9s="6393s="srs class="sref"3DECLARE_FILE_FUNCTIONS>acp> 1ebatteryDECLARE_FILE_FUNCTIONS_inx="+c/1000" class6ifoeak3
acpi_battery *<9n3EODEV3
acp> 1ebatteryDECLARE_FILE_FUNCTIONS_inx="+c/1000" classODEV acpi_battery *<9n3set    9 PORTABLhr*acpis class="sref"3DECLARE_FILE_FUNCTIONS>acp> 1ebatteryDECLARE_FILE_FUNCTIONS_inx="+c/1000" class       cha+t9ery     " idyy" class="sref">acpi_battery *<9ncr_bidhr9ttdhi_dataef="+code=dep,9dhi_d93y"6474" class="line" name="L1673KNOWNa href=d9> acp9i"ons9ettery#undef s class="sref"3DECLARE_FILE_FUNCTIONS>acp> 1ebatteryDECLARE_FILE_FUNCTIONS_inx4" class="line" name="L1673KNOWNacp"" class="sref"3"CITYne" nameef">cape9POWEU94ACKAG#defry34s class="sref"3FILE_DESCRIPTION_RO>acp> 1ebatteryFILE_DESCRIPTION_RO_inx="+c/1000" class_L223        cha+t9d_L223acpi) \yp>battery->tyf/a>->67u8s*1ebattery-9gery<9a> * battery->tyf/a>->smtter."+c/1000" classL223        cha+t9dL223acpi = /a> * 3if"3"CITY3set __Y3if"_inx="+c/1000" class_L223        cha+t9d_L223acpi), \yp>battery->tyf/a>->->tycle=dep,90}mpretery3= /a> * acp> 1ebatteryS_IRUGOteryti\yp>battery->tyf/a>->-9UNset_bcounit    e, 0}        ."+c/1000" classops>acp> 1ebatteryopstery3= { \yp>battery->tyf/a>->      >-&gdhr;."+c/1000" classopenefsetss="sref">open_inx = /a> * 3
  cha+t9ery * ##_L223##_open_fsti\yp>battery->tyf/a>->->tyflage=acpi_bu9itsL294>acpi_battery_is_char."+c/1000" classread  cha+t9eryread_inx hr#L261" id="Le6"seq
read  cha+t9eryseq
readteryti\yp>battery->tyf/a>->cape=POWE"+co."+c/1000" classllseek  cha+t9eryllseek_inx hr#L261" id="Le6"seq
lseek  cha+t9eryseq
lseekteryti\yp>battery->tyf/a>->->_is_char."+c/1000" classrelease  cha+t9eryrelease" id hr#L261" id="Le6"single_release  cha+t9erysingle_releaseteryti\yp>battery->tyf/a>->battery-&gery<."+c/1000" classowner        cha+t9downer" id hr#L261" id="Le6"THIS_MODULE  cha+t9eryTHIS_MODULEteryti\yp>battery->tyf/a>-> * battery->tyf/a>->9V3
acp> 1ebatteryFILE_DESCRIPTION_RW_inx="+c/1000" class_L223        cha+t9d_L223acpi) \yp>battery->tyf/a>-> battery->tyf/a>-> * 3if"3"CITY3set __Y3if"_inx="+c/1000" class_L223        cha+t9d_L223acpi), \yp>battery->tyf/a>->3
mpretery3= /a> * acp> 1ebatteryS_IFREGtery3| /a> * acp> 1ebatteryS_IRUGOtery3| /a> * acp> 1ebatteryS_IWUSRteryti\yp>battery->tyf/a>->acp> 1ebatteryopstery3= { \yp>battery->tyf/a>->->_is_char."+c/1000" classopenefsetss="sref">open_inx = /a> * 3
  cha+t9ery * ##_L223##_open_fsti\yp>battery->tyf/a>->battery-&gery<."+c/1000" classread  cha+t9eryread_inx hr#L261" id="Le6"seq
read  cha+t9eryseq
readteryti\yp>battery->tyf/a>-> * llseek_inx hr#L261" id="Le6"seq
lseek  cha+t9eryseq
lseekteryti\yp>battery->tyf/a>->acpi_batter9_is_c96> * write_inx = /a> * 3
writey  cha+t9ery * ##_L223ti\yp>battery->tyf/a>->acpi_battery 9smttery47a hci."+c/1000" classrelease  cha+t9eryrelease" id hr#L261" id="Le6"single_release  cha+t9erysingle_releaseteryti\yp>battery->tyf/a>->9IRK_PERCe=Pef="+code=PO69u814c9kf">battery-&gery<."+c/1000" classowner        cha+t9downer" id hr#L261" id="Le6"THIS_MODULE  cha+t9eryTHIS_MODULEteryti\yp>battery->tyf/a>->        cha+t9IT}ti\yp>battery->tyf/a>->      pyp>battery->tyf/a>-> * sul 67u8" class="9La>3
 -&g9ry->de=p" class="sref"3"OD3
acp> 1ebatteryopsteryy" class="sref">acpi_battery *<9*battery * umpre_stery<"+c/1000" classmpre  cha+t9erympreteryy" class="sref">acpi_battery *<9*39;t bre9 cape=9OWEUN97hi_href="+codconstrc
acpi_battery *<9*259ged"t92e=dep, 0nrelass= 14ss="9ref">9evicer} /a> * 3
3
e9attery-&gery * 97 intval = 9f="+code=9ull_charge_cap, 0} <9 href97f="+code=dep,y if it is presFILE_DESCRIPTION_RO>acp> 1ebatteryFILE_DESCRIPTION_RO_inx="+c/1000" classODEV acp1s="sref">intval = 9fmttRaar 9s/ac6i/b3ttery37#L253" i9="L2697acpi>        s class="sref"3FILE_DESCRIPTION_RW>acp> 1ebatteryFILE_DESCRIPTION_RW_inx="+c/1000" class       cha+t9ery     " idyth_stord>acp1s="sref">intval = 9frivers/a9ef=r8s7y30acpi_batt0}vef9r8s7y97"unio}  ne" name="L258">sul 67u8" class="9*t is pre9truct acpi ne" name="L258">sul 67u8" class="9aa>3
acp> 1ebatteryFILE_DESCRIPTION_RO_inx ne" name="L258">sul 67u8" class="9a/shre_bu9sref"3"   break3
acp> 1ebatteryFILE_DESCRIPTION_RW_inx ne" name="L258">sul 67u8" class="9href="+co9e=acpro_>(struct acp9sref"98f=sysfs_lock>acp"" class="sref"3"CITYa9pi_batteuf * a98ACKAG5erty"54acityne" name="L1673KNOWN3
add_fs href="6rivers/73KNOWN3
add_fs_inx=de=p" class="sref"3"ODEVef">cape9POWEUNery * <9 href988"" cset    n (5rivers/ac5i/b3ttery35#L29p"L250">e9ffsefsetss="sref">devici9batte98" c_p">smtterde=p" class="sref"3"ODproc_dir_entf"3"CITY3set proc_dir_entf"tery3c#L261" id="Le6"entf"3"CITY3set entf"tery3hr#L261" id="Le6"NULLs cha+t9eryNULLacpi  ne" name="L258">sul 67u8" class="9p="+code=9 245    i_bat9ery" 98f="+code=dep,4acityne" name="L16ieak3
sul 67u8" class="9pmttRaar 9ref"3"CITY3set    n 95rive98s="sref"3"ODEV3
 245    cout9ery4798acpiL247"ref=lass="sref"3"ODpr4ack  cha+t9erypr4ack_inx="+c/1000" classKERN_WARNING>acp> 1ebatteryKERN_WARNINGtery<"+c/1000" classPREFIX  cha+t9eryPREFIXtery<"="sref"3"CITY3set    nDeprecEV d procfs I/F for54" id="Lis loaded,vers/ac5i/b3tef"3"ODEV3
acpi_battery_is_char247"ref=l="sref"3"CITY3set    n pleasea" i="Lwith CONFIG_ity_nPROCFS_POWERef"eared\nvers/ac5i/b3tay" class="sref">acpi_battery *<9ha>3
ac98ttery->_is_char   3KNOdevica_bid_inx="+c/1000" classdevica href="6rivers/devicateryeth_stord>acp1s="sref">intval = 9n5" name=9L267+ct> 141      sh9ef="+99etebattery-&gdhr; ++3
dir" idyy" class="sref">acpi_battery *<9nisref">a9+ct> 141      storde9 !cap99y *  acpi_battery *<9nef">cape9storde= !capacity_no<_ba9tery"99> * ENODEVttery" class="sref">acpi_battery *<9n"L250">e9"5rivers/ac5i/b3ttery3c#9191" 99 acpi_batter9_is_c99yyp>battery->tyf/a>->acpi_battery 9        for5="+c/1000" class6eak3
acp> 1ebatteryity_now" claiNUMFILEStter; ++tyne" name="L16ieak3
      >-&gdhr;#L261" id="Le6"entf"3"CITY3set entf"tery3hr#L261" id="Le6"proc_crect _data3
3
acp1s="sref">intval = 9nt is pre9f"sref">deviceiL247resul9 ne" 99>acpi_battery_is_char247"ref=ccccccccccccccccctyne" name="L1673KNOWN3
3
mpreteryth_stord>acp1s="sref">intval = 9na>3
cape=247"ref=ccccccccccccccccctyne" name="L1673KNOdevica_dir href="6rivers/73KNOdevica_dir_inx="+c/1000" classdevica href="6rivers/devicateryeth_stord>acp1s="sref">intval = 9n/shre_bu9t> 141      properti9e=acp99ttery->_is_charrrrrrrrrrrrrrrrrrrrrrrrrrry3
3
acp> 1ebatteryopsteryth_stord>acp1s="sref">intval = 10ery *10ery<41      properti10ery>10er" class="sref">cape=247"ref=ccccccccccccccccctyne" name="L1673KNOd1s="s_data 91/c2/823c0b524bdc149744e039b53816e80ae910_3/10ery>_stord>acp1s="sref">intval = 10e1y *10ect> 141      storde10ect>10ey *  3set entf"tery>" class="sref">acpi_battery *<10e2y *10etorde= !capacity_no<_ba10eto>10e> * ENODEVttery" class="sref">acpi_battery *<10e3y *10e5rivers/ac5i/b3ttery3c#10e5r>10e  sul 67u8" class="10e5y *10esref">acpi_battery 10esr>10eacpi>pyp>battery->tyf/a>-> *10eref"3"   break3
10e6yp>battery->tyf/a>-> *10e"sref">deviceiL247resul10e"s>10e7CKAG5erty"5void3tyne" name="L1673KNOWN3
remove_fs href="6rivers/73KNOWN3
remove_fs_inx=de=p" class="sref"3"ODEV *10e href="+counit      cap10e h>10e8"" cset    n (5rivers/ac5i/b3ttery35#L210e9y *10e> 141      properti10e> >10ettery->4acityne" name="L16ieak3
sul 67u8" class="101ry *10  get_propert> * 10  g>10  " class="srede=pa  sul 67u8" class="1011y *10opert> * 10 y *  sul 67u8" class="1012y *10->ty0}vef="+code=dep, 10-&g>10 > * acp> 1ebatteryity_now" claiNUMFILEStter; ++tyne" name="L16ieak3
sul 67u8" class="1013y *10sref"3"CITY3set    n10sre>10 " c_p">smttery47a hci/a> * 3set remove_acoc_entf"_inx="+c/1000" class 3KNOWN3
3
acp1s="sref">intval = 10 4y *103
 sul 67u8" class="1015y *10gttyef= * 10 s="sref"3"ODEV3
10 acpiL247"ref=lass="sref"3"ODremove_acoc_entf"3"CITY3set remove_acoc_entf"_inx="+c/1000" class 3KNOdevica_bid  cha+t9ery 3KNOdevica_bid_inx="+c/1000" classdevica href="6rivers/devicateryetctyne" name="L1673KNOWN3
dir href="6rivers/73KNOWN3
dir" idyy" class="sref">acpi_battery *<10 7y *10 (6r5vers/ac6i/b3ttery3110 (6>10 7cpiL247"ref=lass="sref"3"OD73KNOdevica_dir href="6rivers/73KNOdevica_dir_inx="+c/1000" classdevica href="6rivers/devicaterye3hr#L261" id="Le6"NULLs cha+t9eryNULLacpi  ne" name="L258">sul 67u8" class="10 8y *10mova>tery" c>acpi_batter10mov>10 ="srepyp>battery->tyf/a>-> *10"sref">acpi_battery 10"sr>10 -yp>battery->tyf/a>-> *10ref="utex_lock>acpicokf"10ref>10retery#endifyp>battery->tyf/a>-> *10deviceiL247ery *10rACKAGyp>battery->tyf/a>-> *10f="utex_unlock>acpicokf"10f=">10r> *>/* --------------------------------------------------------------------------c5i/b3tef"3"ODEV3
>de=dep, 0}e=dep, 0+t9ITode=dep, 0Da>3
< Inivefacatei/b3tef"3"ODEV3
10r4 *>de=-------------------------------------------------------------------------- */tei/b3tef"3"ODEV3
3
3set 73KNOWN3
notif"_inx=de=p" class="sref"3"ODEVu3-&  sul 67u8" class="1027y *10name="oy_nosupply_unregi10nam>10r7"" cset    n (5rivers/ac5i/b3ttery35#L21028y *10pyp>battery->tyef=10pyp>10rw" class="srede=p" class="sref"3"OD73KNOWN33"CITY3set 73KNOWN3tery3c#L261" id="Le6"WN33"CITY3set WN3tery3= /a> * sul 67u8" class="1029y *10f="utex_unlock>acpicokf"10f=">10rttery->de=p" class="sref"3"ODdevica href="6rivers/devicatery3c#L261" id="Le6"old  cha+t9eryoldacpi  ne" name="L258">sul 67u8" class="103ry *10/a>->tysysfs_lock  ) h10/a>>10/a="sref"3"ODEV3
  ne" name="L258">sul 67u8" class="1032y *10_head h7a hline" name=dm10_he>10/> * sul 67u8" class="1033y *10"sref">acpi_battp203aare10"sr>10/ sul 67u8" class="1034y *10ref="+code=p="ni_battery10ref>10/4i_href="+cod=FAU  acp> 1ebatteryity_now" claiNOTIFY_INFOef="> ne" name="L258">sul 67u8" class="1035y *10b3ttery334L191" id="L16a10b3t>10/acpi>        cha+t9ITtyne" name="L1673KNOWN3
refresh href="6rivers/73KNOWN3
refresh_inx="+c/1000" classu8s*cl>        cha+t9dhi_dataef=">  ne" name="L258">sul 67u8" class="1036y *10>3
3
3pdEV 3set    n (5rivery" class="sref">acpi_battery *<10/7y *10 PORTABLhr*10/7cpiL247"ref=lass="sref"3"OD73KNObus_generrte_acoc_evarh>acp> 1ebattery73KNObus_generrte_acoc_evarh_inx="+c/1000" classdevica href="6rivers/devicaterytctyne" name="L16evarh>acp> 1ebatteryevarhacpith_stord>acp1s="sref">intval = 1038y *10ttdhi_dataef="+code=dep,10ttd>10/w" class="sref">cape=247"ref=ccccccccccccclass="sref"3"OD73KNOWN3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<10/9y *10> acp10> <>10/9cpiL247"ref=lass="sref"3"OD73KNObus_generrte_netunak_evarh>acp> 1ebattery73KNObus_generrte_netunak_evarh_inx="+c/1000" classdevica href="6rivers/devicateryyflage=acpi_bunitsL2Wnpintval = 104ry *1026erty"63ne" name="L25na1026e>1026" class="sref">cape=247"ref=cccccccccccccccc"+c/1000" classdev_L223        cha+t9ddev_L223_inx=ryintval = 1041y *10="L250">ne" nameef">cape10="L>102y * 3
"+ilarh>acp> 1ebattery-&gxery47a hcity_inx="+c/1000" class="sref"3"CITY3set    n (5river>y" class="sref">acpi_battery *<1042y *1067u8s*1ebattery-10102vicery *>/* 73KNOWN3
3pdEV  could remove pow"s_supely obje" c*/tei/b3tef"3"ODEV3
102 sul 67u8" class="1044y *10attery->tycle=dep,10att>102f="+code=dep, 0}e=dep" class="sref"3pow"s_supely_changed  cha+t9erypow"s_supely_changed_inx=ryacpi_battery *<1045y *10UNset_bcounit    e, 0}102acpi>pyp>battery->tyf/a>-> *10222ed" class=="L267ofame10222>1026yp>battery->tyf/a>-> *10y->tyflage=acpi_bu10y1027CKAG5erty"54acityne" name="L16WN3
notif"3"CITY3set WN3
notif"_inx=de=p" class="sref"3"ODnotifi"s_block  cha+t9erynotifi"s_blocktery3c#L261" id="Le6"nb  cha+t9erynbacpith_stord>acp1s="sref">intval = 1048y *10/ac6i/b3ttery3c#L246" id10/ac>102w" class="sref">cape=247"ref=cccccccunsigned long<"+c/1000" classmpre  cha+t9erympretery24void3c#L261" id="Le6"_unused  cha+t9ery_unusedacpi> ne" name="L258">sul 67u8" class="1049y *10="6rivers/ac6i/b3ttery3c10="6>102tteryset    n (5rivers/ac5i/b3ttery35#L2105ry *10 id="L26erty"6class=e" n10 id>10 i" class="srede=p" class="sref"3"OD73KNOWN33"CITY3set 73KNOWN3tery3c#L261" id="Le6"WN33"CITY3set WN3tery3= /a> * nbacpitede=p" class="sref"3"OD73KNOWN33"CITY3set 73KNOWN3teryth_stord>acp1s="sref">intval = 1051y *106i/b3ttery35#L240" id="L106i/>10 y * pm_nbef=">y" class="sref">acpi_battery *<1052y *10/ac6i/b3ttery35#L241" id10/ac>10 vicery *mpretery>3set    n (5rivers/ac5i/b3ttery35#L210 3y *10c6i/b3ttery35#L242" id="10c6i>10  acpi_battery *<10 4y *10V3
PM_POST_SUSPENDacpi_battery *<10 5y *10sr0xFFFFFFFF.e"ly if it 10sr0>10 acpi>        cha+t9ITde=py if it is presu8s*cl>        cha+t9dhi_dataef="+code=dep, dhi_datadhi_        cha+t9dhi_ef="."+c/1000" classdev href="6rivers/devacpi>3set    n (5rivers/ac5i/b3ttery35#L210 6y *106i/b3ttery3c#L255" id="L106i/>10 141      >-&gdhr; 0}e=dep" class="sref"3sysfs
remove_u8s*cl>        cha+t9dsysfs
remove_u8s*cl>_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<1057y *10en3EODEV3
        cha+t9dsysfs
add_u8s*cl>_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<1058y *10ef="6rivers/ac6i/b3ttery10ef=>10 w" class="sref">cape=pyp>battery->tyf/a>-> *10.cgi?rs/1597ne"ly if it 10.cg>10 ttery->_is_charbreaky" class="sref">acpi_battery *<106ry *10ac6i/b3ttery3c#L259" id=10ac6>10actery->pyp>battery->tyf/a>-> *10k usEODef=e.e"ly if it i10k u>10aACKAGyp>battery->tyf/a>-> *10ry" c_quirke>acpi_batter10ry">10a-&gerysul 67u8" class="1063y *10"sref">acpi_battery 10"sr>10ailarhpyp>battery->tyf/a>-> *10IRK_PERCe=Pef="+code=PO610IRK>10ayyp>battery->tyf/a>-> *10e=acpi_bunitsL25flagede=10e=a>10a5CKAG5erty"54acityne" name="L1673KNOWN3
add>acp> 1ebattery-&gxery47add_inx=de=p" class="sref"3"ODEVsul 67u8" class="1066y *106#L254" id="L26erty"66s=106#L>10a6teryset    n (5rivers/ac5i/b3ttery35#L21067y *10-&gery * 10ade=pyp>batterhe=p" class="sref"3"ODEV3
sul 67u8" class="1068y *10e-nref="+code=_lree=r>ae10e-n>10aw" class="srede=p" class="sref"3"OD73KNOWN33"CITY3set 73KNOWN3tery3c#L261" id="Le6"WN33"CITY3set WN3tery3= /a> * NULLacpi  ne" name="L258">sul 67u8" class="1069y *10kf"cokf"1ebattery-&g10kf">10a9cpiL247"ref=lass="sref"3"OD73KNOhandsul 67u8" class="107ry *10IRK_PERCe=Pef="+code=PO610IRK>10IRi_href="+cod=FAUa   ne" name="L258">sul 67u8" class="1071y *10 cape=10 10Iy *  sul 67u8" class="1072y *102e=dep, 0nrelass= 14ss="102e=>10Ivicery *        cha+t9dhi_dataef="3= /a> * 33"CITY3set 73KNOWN3teryetctyne" name="L16GFP_KERNELs cha+t9eryGFP_KERNELrivery" class="sref">acpi_battery *<1073y *10attery-&gery *10I         cha+t9dhi_dataef="> ne" name="L258">sul 67u8" class="1074y *10ull_charge_cap, 0} <10ull>10If="+code=dep, 0}e=depa> sul 67u8" class="1075y *10s/ac6i/b3ttery37#L253" i10s/a>10Iacpi>        s class="sref"3u8s*cl>        cha+t9dhi_dataef="+code=dep, dhi_dataddevica href="6rivers/devicatery3= /a> * sul 67u8" class="1076y *10ef=r8s7y30acpi_batt0}vef10ef=>10IacpiL247"ref=lass="sref"3"ODde=cp>        cha+t9dse=cp>_inx="+c/1000" class73KNOdevica_L223        cha+t9d73KNOdevica_L223_inx="+c/1000" classdevica href="6rivers/devicateryetctyne" name="L16ity_now" claiDEVICE_NAME>acp> 1ebatteryity_now" claiDEVICE_NAMErivery" class="sref">acpi_battery *<1077y *10truct 10I7cpiL247"ref=lass="sref"3"ODde=cp>        cha+t9dse=cp>_inx="+c/1000" class73KNOdevica_ href href="6rivers/73KNOdevica_ href_inx="+c/1000" classdevica href="6rivers/devicateryetctyne" name="L16ity_now" claiCLASS>acp> 1ebatteryity_now" claiCLASSrivery" class="sref">acpi_battery *<1078y *10nhref="5rivers/a3attery<10nhr>10I8cpiL247"ref=lass="sref"3"ODdevica href="6rivers/devicateryyflage=acpi_bunitsL2d1s="s_data *         cha+t9dhi_dataef="y" class="sref">acpi_battery *<1079y *10sref"3"   break3
10I9cpiL247"ref=lass="sref"3"ODmutex_ini3
lockteryry" class="sref">acpi_battery *<108ry *10e=acpro_>(struct acp10e=a>10e=cpiL247"ref=lass="sref"3"ODmutex_ini3
sysfs
lockteryry" class="sref">acpi_battery *<1081y *10pi_batteuf * 10ehi_href="+cod=FAUtyne" name="L16ity_nSUCCESS>acp> 1ebatteryity_nSUCCESS_inx="+c/1000" class73KNOgetOhand3set    n (5rive+code=dep, dhi_dataddevica href="6rivers/devicatery+code=dep, dhi_datadhandintval = 1082y *10POWEUNery * <10POW>10e> * 3set    n_BIXvers/ac5i/b3t,rry-)e> ne" name="L258">sul 67u8" class="1083y *10ffsefsetss="sref">devici10ffs>10e" c_p">smttery47a hci/a> * 3
acp> 1ebatteryity_now" claiXINFO_PRESENTacpiteryacpi_battery *<1084y *10 245    i_bat1010ef="+code=dep,y if it is pres"ODEV3
3
3pdEV _inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<10e5y *10ref"3"CITY3set    n 10ref>10e5i_href="+cod=FAUtyne" name="L16"ODEV3
acpi_battery *<10e6y *10=FAUL5"> 245    cout10=FA>10e141      >-&gdhr;gotoclass="sref"3"OD3ail href="6rivers/3ailef="y" class="sref">acpi_battery *<1087y *10 (5rivers/ac5i/b3ttery3810 (5>10e7cpiL#ifdef s class="sref"3CONFIG_ity_nPROCFS_POWER href="6rivers/CONFIG_ity_nPROCFS_POWERyp>battery->tyf/a>-> *10i_battery_is_charged10e8cpiL247"ref=lass="sref"3"OD"ODEV3
3
add_fs_inx="+c/1000" classdevica href="6rivers/devicateryey" class="sref">acpi_battery *<1089y *10     id=f="+code=_lree= 10   >10ettery#endifyp>battery->tyf/a>-> *10L267+ct> 141      sh10L26>10L2i_href="+cod=FAUtyne" name="L16"ODEV3
 * 3
remove_fs href="6rivers/73KNOWN3
remove_fs_inx="+c/1000" classdevica href="6rivers/devicateryey" class="sref">acpi_battery *<1093y *10"5rivers/ac5i/b3ttery3c#10"5r>10L3tery#endifyp>battery->tyf/a>-> *10_addruct acpi_batter10_ad>10Lf="+code=dep, 0}e=depgotoclass="sref"3"OD3ail href="6rivers/3ailef="y" class="sref">acpi_battery *<1095y *10"sref">acpi_battery 10"sr>10L5i_href="+codpyp>battery->tyf/a>-> *10sref"3"   break3
10L6yp>battery->tyf/a>-> *10f"sref">deviceiL247resul10f"s>10L7cpiL247"ref=lass="sref"3"ODpr4ack  cha+t9erypr4ack_inx="+c/1000" classKERN_INFO>acp> 1ebatteryKERN_INFO/a>-&  3set    n%s Slot [%s] (>->< %s)\nvers/ac5i/b3tth_stord>acp1s="sref">intval = 1098y *10y href="+counit      cap10y h>10Lw" class="sref">cape=tyne" name="L16ity_now" claiDEVICE_NAME>acp> 1ebatteryity_now" claiDEVICE_NAMErivetctyne" name="L1673KNOdevica_bid  cha+t9ery 3KNOdevica_bid_inx="+c/1000" classdevica href="6rivers/devicateryeth_stord>acp1s="sref">intval = 10L9y *10t> 141      properti10t> >10Lttery->_is_char  3
"+ilarh>acp> 1ebattery&gxery47a hcity_inx ?<"="sref"3"CITY3set    na hcityvers/ac5i/b3t :<"="sref"3"CITY3set    nabcityvers/ac5i/b3tey" class="sref">acpi_battery *<11ery *11ery<41      properti11ery>110a="sref"3"ODEV3
pm_nbef="."+c/1000" classLotifi"s_call href="6rivers/Lotifi"s_call_inx3= /a> * 
notif"3"CITY3set WN3
notif"_inxy" class="sref">acpi_battery *<11e2y *11etorde= !capacity_no<_ba11eto>110vicery *3
pm_nbef=">y" class="sref">acpi_battery *<11e3y *11e5rivers/ac5i/b3ttery3c#11e5r>110ilarh>acp * 1000)" class="sref"3"CITY *11eaddruct acpi_batter11ead>11ef="+code=dep,a> 3
acpi_battery *<11e5y *11esref">acpi_battery 11esr>110s="sref"3"ODEV3
110"unios class="sref"33ail href="6rivers/3ailef=":" class="sref">acpi_battery *<11e7y *11e"sref">deviceiL247resul11e"s>1107cpiL247"ref=lass="sref"3"ODdysfs
remove_u8s*cl>        cha+t9dsysfs
remove_u8s*cl>_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<11e8y *11e href="+counit      cap11e h>1108cpiL247"ref=lass="sref"3"ODmutex_deY3set mutex_deYlockteryry" class="sref">acpi_battery *<11e9y *11e> 141      properti11e> >1109cpiL247"ref=lass="sref"3"ODmutex_deY3set mutex_deYsysfs
lockteryry" class="sref">acpi_battery *<111ry *11  get_propert> * 11  g>111=cpiL247"ref=lass="sref"3"ODkfrea href="6rivers/kfrea_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<1111y *11opert> * 11 y * 3
acpi_battery *<1112y *11->ty0}vef="+code=dep, 11-&g>11 > *battery->tyf/a>-> *11sref"3"CITY3set    n11sre>111ilarh>acp * 1000)" class="sref"3"CITY *113
3
remove_inx=de=p" class="sref"3"ODEVacpi_battery *<1115y *11gttyef= * 11 s="srset    n (5rivers/ac5i/b3ttery35#L211 6y *11ry-&galarh_
11 acpiL247"ref=de=p" class="sref"3"OD73KNOWN33"CITY3set 73KNOWN3tery3c#L261" id="Le6"WN33"CITY3set WN3tery3= /a> * NULLacpi  ne" name="L258">sul 67u8" class="11 7y *11 (6r5vers/ac6i/b3ttery3111 (6>111>acpi ne" name="L258">sul 67u8" class="1118y *11mova>tery" c>acpi_batter11mov>111w" class="srede=pa   sul 67u8" class="1119y *11"sref">acpi_battery 11"sr>111ttery->_is_chara> sul 67u8" class="112ry *11ref="utex_lock>acpicokf"11ref>112=cpiL247"ref=lass="sref"3"ODWN33"CITY3set WN3tery3= /a> * sul 67u8" class="1121y *11deviceiL247ery *112y *3
pm_nbef=">y" class="sref">acpi_battery *<11r2y *11f="utex_unlock>acpicokf"11f=">11r> *3
remove_fs href="6rivers/73KNOWN3
remove_fs_inx="+c/1000" classdevica href="6rivers/devicateryey" class="sref">acpi_battery *<11r4y *11fdef2l6ss="l62s="line" n11fde>11r4 *battery->tyf/a>-> *11s/ac6i/b3ttery3c#L223112acpi>        s class="sref"3dysfs
remove_u8s*cl>        cha+t9dsysfs
remove_u8s*cl>_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<1126y *11gttyef= * 112acpiL247"ref=lass="sref"3"ODmutex_deY3set mutex_deYlockteryry" class="sref">acpi_battery *<1127y *11name="oy_nosupply_unregi11nam>1127cpiL247"ref=lass="sref"3"ODmutex_deY3set mutex_deYsysfs
lockteryry" class="sref">acpi_battery *<1128y *11pyp>battery->tyef=11pyp>1128cpiL247"ref=lass="sref"3"ODkfrea href="6rivers/kfrea_inx="+c/1000" class="sref"3"CITY3set    n (5rivery" class="sref">acpi_battery *<1129y *11f="utex_unlock>acpicokf"11f=">11rttery->" id="L0  ne" name="L258">sul 67u8" class="113ry *11/a>->tysysfs_lock  ) h11/a>>11/a="srpyp>battery->tyf/a>-> *11 (6rivers/ac6i/b3ttery3211 (6>113ACKAGyp>battery->tyf/a>-> *11_head h7a hline" name=dm11_he>113> *acpi_battp203aare11"sr>1133 *>/* thisLis needed to "earn aboutrc
3
113f="+c5erty"54acityne" name="L1673KNOWN3
resu23        cha+t9d73KNOWN3
resu23_inx=de=p" class="sref"3"ODdevica href="6rivers/devicatery3c#L261" id="Le6"dev href="6rivers/devacpi> ne" name="L258">sul 67u8" class="1135y *11b3ttery334L191" id="L16a11b3t>113s="srset    n (5rivers/ac5i/b3ttery35#L21136y *11>3
33"CITY3set 73KNOWN3tery3c#L261" id="Le6"WN33"CITY3set WN3tery  ne" name="L258">sul 67u8" class="1137y *11 PORTABLhr*113>acpi ne" name="L258">sul 67u8" class="1138y *11ttdhi_dataef="+code=dep,11ttd>113w" class="srede=pa   ne" name="L258">sul 67u8" class="1139y *11> acp11> <>113ttery->_is_chara> sul 67u8" class="114ry *1126erty"63ne" name="L25na1126e>114a="sref"3"ODEV3
ne" nameef">cape11="L>114y * * acpi_battery *<1142y *1167u8s*1ebattery-11112vicery *  ne" name="L258">sul 67u8" class="1143y *11/ac6i/b3ttery3c#L242" id11/ac>114" c_p">smttery47a hcia> sul 67u8" class="1144y *11attery->tycle=dep,11att>114yyp>battery->tyf/a>-> *11UNset_bcounit    e, 0}114acpi>        s class="sref"3u8s*cl>        cha+t9dhi_dataef="+code=dep, dhi_datad3pdEV _ti23        cha+t9d3pdEV _ti23ef="3= 0  ne" name="L258">sul 67u8" class="1146y *11222ed" class=="L267ofame11222>114acpiL247"ref=lass="sref"3"OD73KNOWN3
3pdEV 3set    n (5rivery" class="sref">acpi_battery *<1147y *11y->tyflage=acpi_bu11y1147cpiL247"ref=" id="L0  ne" name="L258">sul 67u8" class="1148y *11/ac6i/b3ttery3c#L246" id11/ac>114="srepyp>battery->tyf/a>-> *11="6rivers/ac6i/b3ttery3c11="6>114ttery#endifyp>battery->tyf/a>-> *11 id="L26erty"6class=e" n11 id>115a="sref"3"ODEV3
acp> 1ebatterySIMPLE_DEV_PM_OPS_inx="+c/1000" class73KNOWN3
pmacpi_battery *<1152y *11/ac6i/b3ttery35#L241" id11/ac>11 vicer" class="sref">acpi_battery *<1153y *11c6i/b3ttery35#L242" id="11c6i>11  aaaef="3= set    n (5rivers/ac5i/b3ttery35#L211 4y *11V3
3set    n3ttery3vers/ac5i/b3tth_stord>acp1s="sref">intval = 11 5y *11sr0xFFFFFFFF.e"ly if it 11sr0>11 acpi>        ."+c/1000" classFFFFF        cha+t9d     ef="3= /a> * acp> 1ebatteryity_now" claiCLASSriveth_stord>acp1s="sref">intval = 11 6y *116i/b3ttery3c#L255" id="L116i/>11 141      ."+c/1000" classidF        cha+t9didFef="3= /a> * 3
devica_idF        cha+t9dWN3
devica_idFriveth_stord>acp1s="sref">intval = 11 7y *11en3EODEV3
intval = 11 8y *11ef="6rivers/ac6i/b3ttery11ef=>11 w" class="sre."+c/1000" classops>acp> 1ebatteryopstery3= set    n (5rivers/ac5i/b3ttery35#L211 9y *11.cgi?rs/1597ne"ly if it 11.cg>11 ttery->_is_char."+c/1000" classadd>acp> 1ebattery * 3
addintval = 116ry *11ac6i/b3ttery3c#L259" id=11ac6>1166" class="sref">cape=."+c/1000" classremove href="6rivers/remove_inx3= /a> * 3
remove href="6rivers/73KNOWN3
remove_inxth_stord>acp1s="sref">intval = 1161y *11k usEODef=e.e"ly if it i11k u>116y * 3set notif"_inx3= /a> * 3
notif"3"CITY3set 73KNOWN3
notif"_inxth_stord>acp1s="sref">intval = 1162y *11ry" c_quirke>acpi_batter11ry">116> * intval = 1163y *11"sref">acpi_battery 11"sr>1163" class="sre."+c/1000" classdrv href="6rivers/drvacpi."+c/1000" classpm3
pmriveth_stord>acp1s="sref">intval = 1164y *11IRK_PERCe=Pef="+code=PO611IRK>11ay}y" class="sref">acpi_battery *<11a5y *11e=acpi_bunitsL25flagede=11e=a>116s="sref"3"ODEV3
116"unio5erty"5void3tyne" name="L16__ini3
3
ini<_async_inx=void3c#L261" id="Le6"unused  cha+t9eryunusedacpitctyne" name="L167sync_cooki _t ne" name="L258">sul 67u8" class="1167y *11-&gery * 1167"" cset    n (5rivers/ac5i/b3ttery35#L21168y *11e-nref="+code=_lree=r>ae11e-n>116w" class="srede=plass="sref"3"ODEVEV ne" name="L258">sul 67u8" class="1169y *11kf"cokf"1ebattery-&g11kf">116ttery->_is_chara> acpi_battery *<117ry *11IRK_PERCe=Pef="+code=PO611IRK>11IRi_hr#ifdef s class="sref"3CONFIG_ity_nPROCFS_POWER href="6rivers/CONFIG_ity_nPROCFS_POWERyp>battery->tyf/a>-> *11 cape=11 117y *3
dir" id3= /a> * 3
dir href="6rivers/73KNOlockOWN3
dir_inx=ry" class="sref">acpi_battery *<1172y *112e=dep, 0nrelass= 14ss="112e=>117vicery * 3
dir" id> ne" name="L258">sul 67u8" class="1173y *11attery-&gery *117" c_p">smttery47a hcia> acpi_battery *<1174y *11ull_charge_cap, 0} <11ull>1174 *battery->tyf/a>-> *11s/ac6i/b3ttery37#L253" i11s/a>11Iacpi>        de=plass="sref"3"ODEVaa_inx=ryaaef=") < i0e3set    n (5rivers/ac5i/b3ttery35#L21176y *11ef=r8s7y30acpi_batt0}vef11ef=>11IacpiL#ifdef s class="sref"3CONFIG_ity_nPROCFS_POWER href="6rivers/CONFIG_ity_nPROCFS_POWERyp>battery->tyf/a>-> *11truct 117>acpi_battery_is_chartyne" name="L1673KNOunlockOWN3
dir href="6rivers/73KNOunlockOWN3
dir_inx="+c/1000" class73KNOWN3
dir href="6rivers/73KNOWN3
dir" idyy" class="sref">acpi_battery *<1178y *11nhref="5rivers/a3attery<11nhr>11I8cpiL#endifyp>battery->tyf/a>-> *11sref"3"   break3
117ttery->_is_chara> acpi_battery *<118ry *11e=acpro_>(struct acp11e=a>118ctery->pyp>battery->tyf/a>-> *11pi_batteuf * 118y * acpi_battery *<1182y *11POWEUNery * <11POW>118> *battery->tyf/a>-> *11ffsefsetss="sref">devici11ffs>118ilarh>acp * 1000)" class="sref"3"CITY *11 245    i_bat11118f="+c5erty"54acityne" name="L16__ini3
3
ini<_inx=void> ne" name="L258">sul 67u8" class="11e5y *11ref"3"CITY3set    n 11ref>118s="srset    n (5rivers/ac5i/b3ttery35#L211e6y *11=FAUL5"> 245    cout11=FA>118acpiL247"ref=lass="sref"3"OD7sync_schedu3
ini<_asyncacpi_battery *<1187y *11 (5rivers/ac5i/b3ttery3811 (5>1187cpiL247"ref=" id="L0  ne" name="L258">sul 67u8" class="1188y *11i_battery_is_charged118="srepyp>battery->tyf/a>-> *11     id=f="+code=_lree= 11   >118-yp>battery->tyf/a>-> *11L267+ct> 141      sh11L26>11L2i_hr5erty"5void3tyne" name="L16__exi3
3
exi<_inx=void> ne" name="L258">sul 67u8" class="1191y *11+ct> 141      storde11+ct>11L1cpiLset    n (5rivers/ac5i/b3ttery35#L21192y *11storde= !capacity_no<_ba11sto>119vicery *aa_inx=ryaaef=")  ne" name="L258">sul 67u8" class="1193y *11"5rivers/ac5i/b3ttery3c#11"5r>11L3tery#ifdef s class="sref"3CONFIG_ity_nPROCFS_POWER href="6rivers/CONFIG_ity_nPROCFS_POWERyp>battery->tyf/a>-> *11_addruct acpi_batter11_ad>119f="+code=dep,y if it is pres73KNOunlockOWN3
dir href="6rivers/73KNOunlockOWN3
dir_inx="+c/1000" class73KNOWN3
dir href="6rivers/73KNOWN3
dir" idyy" class="sref">acpi_battery *<1195y *11"sref">acpi_battery 11"sr>11L5i_hr#endifyp>battery->tyf/a>-> *11sref"3"   break3
11L6pyp>battery->tyf/a>-> *11f"sref">deviceiL247resul11f"s>119>acpi ne" name="L258">sul 67u8" class="1198y *11y href="+counit      cap11y h>11Lw" cl"+c/1000" classmodu3
3
ini<acpi_battery *<1199y *11t> 141      properti11t> >11Lttery"+c/1000" classmodu3
3
exi3
acpi_battery *<12ery *12ery<41      properti12ery>120a="sr


fooy The original LXR software by theay if it ihttp://sourceforge.net/proje" s/lx/">LXR communi<"_inxt thisLexperimarhal ">acion by y if it imailto:lx/@ ux.no">lx/@ ux.noacpi.
subfooy lx/. ux.no kindly hosyRedpill L pro ASrivet provider of L ux conversing and operrtions servicas since 1Lt5.