ab8500_charger_ac_work(9)
π ab8500_charger_ac_work(9) π
okay so you're reading the Kernel API Manual, section 9, and the star of the show is ab8500_charger_ac_work β say that five times fast, i swear π she's a kernel function and she's booked, busy, and about to check on your main charger. let's get into it bestie π«Ά
β¨ NAME β¨
ab8500_charger_ac_work β the work item that gets and sets the main charger's status π
like, she literally goes and finds out what's up with the main charger and then sets it. dual threat. main character energy fr fr π
πΈ SYNOPSIS πΈ
void ab8500_charger_ac_work (struct work_struct *work );
that's it. that's the whole vibe. returns nothing (it's void, she gives nothing back and honestly? iconic) and takes one single pointer. minimal. clean. slay β¨
π¦ ARGUMENTS π¦
workβ pointer to thework_structstructure π§ no cap, this is the work item structure she's attached to, and she wants that pointer. just hand it over bestie.
π DESCRIPTION π
so basically this is a work queue function β like the queue at your fave cafΓ© but for kernel work instead of iced matcha π β and its whole job is checking the main charger status. that's the assignment. she checks it. she's good at it. periodt.
lowkey reminder that she's avoidfunction taking astruct work_struct *workβ that's the whole signature, don't come for her with extra args π
π SEE ALSO π
if you're obsessed with this one (and you should be), there's a whole friend group. the kernel file lives at ./drivers/power/supply/ab8500_charger.c β go say hi π. and then there's:
struct ab8500_charger_interrupts(9)struct ab8500_charger(9)ab8500_power_supply_changed(9)ab8500_charger_get_ac_voltage(9)ab8500_charger_ac_cv(9)ab8500_charger_get_vbus_voltage(9)ab8500_charger_get_usb_current(9)ab8500_charger_get_ac_current(9)ab8500_charger_usb_cv(9)ab8500_charger_detect_chargers(9)ab8500_charger_max_usb_curr(9)ab8500_charger_read_usb_type(9)ab8500_charger_detect_usb_type(9)ab8500_charger_get_usb_cur(9)ab8500_charger_check_continue_stepping(9)ab8500_charger_set_current(9)ab8500_charger_set_vbus_in_curr(9)ab8500_charger_set_main_in_curr(9)ab8500_charger_set_output_curr(9)ab8500_charger_led_en(9)ab8500_charger_ac_en(9)ab8500_charger_usb_en(9)ab8500_charger_usb_check_enable(9)ab8500_charger_ac_check_enable(9)ab8500_charger_watchdog_kick(9)ab8500_charger_update_charger_current(9)ab8500_charger_check_vbat_work(9)ab8500_charger_check_hw_failure_work(9)ab8500_charger_kick_watchdog_work(9)ab8500_charger_detect_usb_type_work(9)ab8500_charger_usb_link_attach_work(9)ab8500_charger_usb_link_status_work(9)ab8500_charger_check_usbchargernotok_work(9)ab8500_charger_check_main_thermal_prot_work(9)ab8500_charger_check_usb_thermal_prot_work(9)ab8500_charger_mainchunplugdet_handler(9)ab8500_charger_mainchplugdet_handler(9)ab8500_charger_mainextchnotok_handler(9)ab8500_charger_mainchthprotr_handler(9)ab8500_charger_mainchthprotf_handler(9)ab8500_charger_vbusdetf_handler(9)ab8500_charger_vbusdetr_handler(9)ab8500_charger_usblinkstatus_handler(9)ab8500_charger_usbchthprotr_handler(9)ab8500_charger_usbchthprotf_handler(9)ab8500_charger_usbchargernotokr_handler(9)ab8500_charger_chwdexp_handler(9)ab8500_charger_vbuschdropend_handler(9)ab8500_charger_vbusovv_handler(9)ab8500_charger_ac_get_property(9)ab8500_charger_usb_get_property(9)ab8500_charger_init_hw_registers(9)
like. that's the whole extended universe right there. iykyk ππ₯ go read all of them, no skipping, i'll know π
okay bye bestie, ily, go check that main charger status π
and for the receipts: this came out of ./drivers/power/supply, dated October 2026, and the version tag is just the function's own name, ab8500_charger_ac_work(9) β cute, consistent, on brand πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms