ssam_controller_destroy(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

Hey bestie, welcome to ssam_controller_destroy(9) β€” a Kernel API Manual moment. This one is all about destroying the controller and freeing its resources. πŸ’…


✨ SYNOPSIS ✨

void ssam_controller_destroy (struct ssam_controller *ctrl );

πŸŽ€ ARGUMENTS πŸŽ€

  • ctrl β€” The controller. That’s the whole argument, bestie. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this function makes sure that all resources associated with the controller get freed. Cleanup era. 🧹✨

Timing check, bestie: this function should only be called after the controller has been stopped via ssam_controller_shutdown.

In general, this function should not be called directly. The only valid place to call this function directly is during initialization, before the controller has been fully initialized and passed to other processes. This function is called automatically when the reference count of the controller reaches zero. πŸ‘‘

This function must be called with the main controller lock held (i.e. by calling ssam_controller_lock). Lock first, then destroy. No cap. πŸ”’πŸ’–


πŸ’– SEE ALSO πŸ’–

Kernel file: ./drivers/platform/surface/aggregator/controller.c

The whole linked API crew, all (9) refs, fr fr:

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_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_off(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)

Bye bestie β€” this page came from the Kernel API Manual, source/version ./drivers/platform/surface/agg..., dated October 2026. Stay sparkly. πŸ’–βœ¨

πŸ“¦ where this page comes from