Hi, On Mon, Aug 24, 2020 at 09:55:14PM +0300, Dmitry Osipenko wrote: > 24.08.2020 17:07, Sebastian Reichel пишет: > >> +static int a500_battery_get_serial_number(struct a500_battery *bat, > >> + union power_supply_propval *val) > >> +{ > >> + unsigned int i; > >> + s32 ret = 0; > >> + > >> + if (bat->serial[0]) > >> + goto done; > >> + > >> + a500_ec_lock(bat->ec_chip); > >> + for (i = 0; i < BATTERY_SERIAL_LEN / 2; i++) { > >> + ret = a500_ec_read_locked(bat->ec_chip, > >> + &ec_data[REG_SERIAL_NUMBER].cmd); > >> + if (ret < 0) { > >> + bat->serial[0] = '\0'; > >> + break; > >> + } > >> + > >> + bat->serial[i * 2 + 0] = (ret >> 0) & 0xff; > >> + bat->serial[i * 2 + 1] = (ret >> 8) & 0xff; > >> + } > >> + a500_ec_unlock(bat->ec_chip); > >> +done: > >> + val->strval = bat->serial; > >> + > >> + return ret; > >> +} > > > > If battery is swapped, this will keep the old serial. > > Hello, Sebastian! The battery isn't hot-swappable on A500, but it also > should be okay to always re-read the serialno. I'll consider removing > the caching in the v2, thanks. I assumed it would be hot-swappable because of a500_battery_get_presence(). If it's not hot-swappable, the caching is fine. -- Sebastian