store_protocols(9)
store_protocols(9) π
okay bestie, this is the Kernel API Manual page for store_protocols(9), and it's literally the function that changes the current/wakeup IR protocol(s). periodt.
β¨ NAME β¨
store_protocols β changes the current/wakeup IR protocol(s)
πΈ SYNOPSIS πΈ
ssize_t store_protocols (struct device *device , struct device_attribute *mattr , const char *buf , size_t len );
π¦ ARGUMENTS π¦
deviceβ the device descriptor. the whole device vibe.mattrβ the device attribute struct. yes, that one.bufβ a pointer to the input buffer. the input lives here.lenβ length of the input buffer. how much input we're working with.
π DESCRIPTION π
So this routine is for changing the IR protocol type. it gets triggered by writing to /sys/class/rc/rc?/[wakeup_]protocols. for the valid commands, go check parse_protocol_change β iykyk. it returns len on success, or a negative error code if things are not giving.
dev->lock is taken to guard against races between store_protocols and show_protocols. no cap, that lock is doing important work.
π₯ SEE ALSO π₯
Kernel file ./drivers/media/rc/rc-main.c β and the whole see-also friend group:
scancode_to_u64(9)ir_create_table(9)ir_free_table(9)ir_resize_table(9)ir_update_mapping(9)ir_establish_scancode(9)ir_setkeycode(9)ir_setkeytable(9)ir_lookup_by_scancode(9)ir_getkeycode(9)rc_g_keycode_from_table(9)ir_do_keyup(9)rc_keyup(9)ir_timer_keyup(9)ir_timer_repeat(9)rc_repeat(9)ir_do_keydown(9)rc_keydown(9)rc_keydown_notimeout(9)rc_validate_scancode(9)rc_validate_filter(9)struct rc_filter_attribute(9)show_protocols(9)parse_protocol_change(9)show_filter(9)store_filter(9)show_wakeup_protocols(9)store_wakeup_protocols(9)
π that's the whole page, bestie β sourced from ./drivers/media/rc, dated October 2026. go off, kernel queen π
π¦ 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