ssam_ctrl_notif_display_off(9)
π ssam_ctrl_notif_display_off β¨
okay so bestie, we're in the Kernel API Manual today and this little function is genuinely so important β it's giving "hey EC, screen's off, chill out" energy. Let me tell you everything π«Ά
πΈ NAME πΈ
ssam_ctrl_notif_display_off β it's the function that tells the EC (that's the embedded controller, your fave little chip bestie) that the display has been turned off. literally just a heads-up notification, no cap π
β¨ SYNOPSIS β¨
int ssam_ctrl_notif_display_off (struct ssam_controller *ctrl );
π ARGUMENTS π
ctrlβ the controller. that's it. that's the whole argument. she takes one (1) controller and she does her thing π
π¦ DESCRIPTION π¦
So here's the vibe: you call this and it notifies the EC that the display has been turned off and the driver may enter a lower-power state. iconic energy, honestly β everyone's trying to save battery π±
Here's the important part though, bestie, listen up π: this will prevent events from being sent directly. Instead, the EC signals an event by pulling the wakeup GPIO high for as long as there are pending events. So the events don't just vanish β they pile up, and they need to be manually released, one by one, via the GPIO callback request. iykyk π
Good news tho π β all the pending events accumulated during this state can also be released by issuing the display-on notification, e.g. via ssam_ctrl_notif_display_on, which will also reset the GPIO. so you've got options, and both of them slay.
On some devices β specifically ones with an integrated keyboard β the keyboard backlight will be turned off by this call. not me finding out my keyboard glow is a casualty of power saving π
Also, heads up π«Ά: this function will only send the display-off notification command if display notifications are supported by the EC. Currently all known devices support these notifications, so likeβ¦ you're probably fine, but she does check first β¨
And when you want to undo all of this? Use ssam_ctrl_notif_display_on to reverse the effects of this function. periodt π
β RETURN β
Here's what you're getting back:
- zero on success β or if no request has been executed (both are fine, don't stress π)
- the status of the executed SAM request if that request failed π
-EPROTOif an unexpected response has been received β like, rude, but okay π
π SEE ALSO π
Kernel file ./drivers/platform/surface/aggregator/controller.c
ssh_seq_reset(9)ssh_seq_next(9)ssh_rqid_reset(9)ssh_rqid_next(9)ssam_event_matches_notifier(9)ssam_nfblk_call_chain(9)ssam_nfblk_insert(9)ssam_nfblk_find(9)ssam_nfblk_remove(9)ssam_nf_head_init(9)ssam_nf_head_destroy(9)struct ssam_nf_refcount_key(9)struct ssam_nf_refcount_entry(9)ssam_nf_refcount_inc(9)ssam_nf_refcount_dec(9)ssam_nf_refcount_dec_free(9)ssam_nf_refcount_empty(9)ssam_nf_call(9)ssam_nf_init(9)ssam_nf_destroy(9)ssam_event_item_cache_init(9)ssam_event_item_cache_destroy(9)ssam_event_item_free(9)ssam_event_item_alloc(9)ssam_event_queue_push(9)ssam_event_queue_pop(9)ssam_event_queue_is_empty(9)ssam_cplt_get_event_queue(9)ssam_cplt_submit(9)ssam_cplt_submit_event(9)ssam_cplt_flush(9)ssam_event_queue_init(9)ssam_cplt_init(9)ssam_cplt_destroy(9)ssam_controller_device(9)ssam_controller_get(9)ssam_controller_put(9)ssam_controller_statelock(9)ssam_controller_stateunlock(9)ssam_controller_lock(9)ssam_controller_caps_load_from_acpi(9)ssam_controller_caps_load_from_of(9)ssam_controller_caps_load(9)ssam_controller_init(9)ssam_controller_start(9)ssam_controller_shutdown(9)ssam_controller_destroy(9)ssam_controller_suspend(9)ssam_controller_resume(9)ssam_request_write_data(9)ssam_request_sync_alloc(9)ssam_request_sync_free(9)ssam_request_sync_init(9)ssam_request_sync_submit(9)ssam_request_do_sync(9)ssam_request_do_sync_with_buffer(9)struct ssh_notification_params(9)ssam_ssh_event_enable(9)ssam_ssh_event_disable(9)ssam_get_firmware_version(9)ssam_ctrl_notif_display_on(9)ssam_ctrl_notif_d0_exit(9)ssam_ctrl_notif_d0_entry(9)ssam_nf_refcount_enable(9)ssam_nf_refcount_disable_free(9)ssam_notifier_register(9)__ssam_notifier_unregister(9)ssam_controller_event_enable(9)ssam_controller_event_disable(9)ssam_notifier_disable_registered(9)ssam_notifier_restore_registered(9)ssam_notifier_is_empty(9)ssam_notifier_unregister_all(9)ssam_irq_setup(9)ssam_irq_free(9)ssam_irq_arm_for_wakeup(9)ssam_irq_disarm_wakeup(9)
π§ quick reminder bestie: if you display-off without a plan to display-on again, those events are just sitting there waiting. don't leave her hanging π
okay that's the whole page!! mwah π β this came straight out of ./drivers/platform/surface/agg..., dated October 2026, and it's still serving ssam_ctrl_notif_display_off(9) realness. go forth and notify responsibly ππ¦
π¦ 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