STRUCT KIM_DATA_S(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

Bestie, meet struct kim_data_s(9) from the Kernel API Manual β€” it's the KIM internal data, embedded as the platform's drv data. One for each ST device in the system. Periodt. πŸ’…βœ¨


✨ SYNOPSIS ✨

Okay so here's the whole struct, exactly as it appears β€” no edits, no vibes-based renaming, bestie:

       struct kim_data_s {
           long uim_pid;
           struct platform_device *kim_pdev;
           struct completion kim_rcvd, ldisc_installed;
           char resp_buffer[30];
           const struct firmware *fw_entry;
           unsigned nshutdown;
           unsigned long rx_state;
           unsigned long rx_count;
           struct sk_buff *rx_skb;
           struct st_data_s *core_data;
           struct chip_version version;
           unsigned char ldisc_install;
           unsigned char dev_name[UART_DEV_NAME_LEN + 1];
           unsigned flow_cntrl;
           unsigned baud_rate;
        };

πŸ’– Members πŸ’–

Now the member-by-member tea β˜• β€” every blurb on the page, kept cute but accurate:

  • uim_pid β€” KIM needs to communicate with UIM to request to install the ldisc by opening UART when protocol drivers register. Communication is the blueprint, no cap. πŸ’¬
  • kim_pdev β€” the platform device added in one of the board-XX.c file in arch/XX/ directory, 1 for each ST device. Iconic per-device energy. πŸŽ€
  • kim_rcvd β€” completion handler to notify when data was received, mainly used during fw download, which involves multiple send/wait for each of the HCI-VS commands. It's giving "wait for it" energy, fr fr. ⏳
  • ldisc_installed β€” completion handler to notify that the UIM accepted the request to install ldisc; the notify comes from tty_open, which suggests the ldisc was properly installed. Properly installed = slay. πŸ’…
  • resp_buffer β€” data buffer for the .bts fw file name. Tiny buffer, big main-character energy. πŸŽ€
  • fw_entry β€” firmware class struct to request/release the fw. Request it, release it, balance. 🧚
  • rx_state β€” the rx state for kim's receive func during fw download. State check, but make it cute. πŸ¦‹
  • rx_count β€” the rx count for the kim's receive func during fw download. Counting era. πŸ”’
  • rx_skb β€” all of fw data might not come at once, and hence data storage for whole of the fw response, only HCI_EVENTs and hence diff from ST's response. Lowkey a whole-response girlie. πŸ“¦
  • core_data β€” ST core's data, which mainly is the tty's disc_data. Core data, core memory, core slay. πŸ’œ
  • version β€” chip version available via a sysfs entry. Sysfs said what it said. 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

Bestie, go read these too β€” the whole friend group:

  • Kernel file ./include/linux/ti_wilink_st.h
  • struct st_proto_s(9)
  • struct st_data_s(9)
  • st_int_write(9)
  • st_write(9)
  • struct chip_version(9)
  • struct bts_header(9)
  • struct bts_action(9)
  • struct hci_command(9)
  • struct ti_st_plat_data(9)

MWAH πŸ’‹ β€” source/version path ./include/linux, dated October 2026. Bye bestie, go read the kernel! 🫢✨

πŸ“¦ where this page comes from