STRUCT ISHTP_CL_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

hey bestie πŸ’– so we're in the Kernel API Manual today and the star of the show is struct ishtp_cl_device, which is basically the ISHTP device handle, and honestly she's doing a lot. buckle up πŸŽ€


🌸 NAME 🌸

struct ishtp_cl_device β€” the ISHTP device handle, she's iconic, she's your bus bestie πŸ’…


✨ SYNOPSIS ✨

struct ishtp_cl_device {
    struct device           dev;
    struct ishtp_device     *ishtp_dev;
    struct ishtp_fw_client  *fw_client;
    struct list_head        device_link;
    struct work_struct      event_work;
    void *driver_data;
    int reference_count;
    void (*event_cb)(struct ishtp_cl_device *device);
 };

look at her, all those fields, organized, stunning, main character energy πŸ‘‘


πŸ’– MEMBERS πŸ’–

okay so this is the part where we meet the whole squad. each field, one by one, no skipping:

  • dev β€” the device pointer. that's it, that's the vibe.
  • ishtp_dev β€” pointer to the ishtp device structure, and it's primarily there to access hw device operation callbacks and properties. basically the plug to the hardware side of things πŸ¦‹
  • fw_client β€” fw_client pointer, used to get fw info like the protocol name, max message length, etc. she knows things πŸ”₯
  • device_link β€” link to the next client in the list on a bus. it's giving group chat member list ✨
  • event_work β€” used to schedule rx events for the client. she handles the schedule fr fr πŸ™ˆ
  • driver_data β€” storage driver private data. secrets only the driver knows, iykyk πŸ”’
  • reference_count β€” used for get/put device. keep track, no cap πŸ’€
  • event_cb β€” callback to the driver to send events. she rings the driver, that's the whole job πŸ’…

🌟 DESCRIPTION 🌟

so a struct ishtp_cl_device pointer is returned from ishtp_add_device (yes, that's where she comes from, claim her 🫢) and she links ISHTP bus clients to their actual host client pointer.

and the way that drivers for ISHTP devices will get an ishtp_cl_device pointer when being probed β€” and shall use it for doing bus I/O. so like, if you're a driver, this pointer is literally your everything for bus I/O, periodt πŸ‘‘


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/hid/intel-ish-hid/ishtp/bus.h β€” go read it bestie, it's all there πŸ’œ

and that's the whole page, no cap ✨ this one came from the ./drivers/hid/intel-ish-hid/ishtp corner of the tree, dated October 2026, and it's been served up as her very own struct ishtp_cl_device(9) page. so comfy, so iconic, so kernel. πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from