STRUCT GB_BEAGLEPLAY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ struct gb_beagleplay(9) β€” BeaglePlay Greybus driver

okay bestie, welcome to the struct gb_beagleplay(9) glow-up page ✨ this is from the Kernel API Manual, and it's literally the main character struct of the BeaglePlay Greybus driver. congrats, you're about to be obsessed with a kernel struct πŸ’…


πŸ¦‹ SYNOPSIS

here's the whole vibe, no edits, fr fr:

struct gb_beagleplay {
    struct serdev_device *sd;
    struct gb_host_device *gb_hd;
    struct work_struct tx_work;
    spinlock_t tx_producer_lock;
    spinlock_t tx_consumer_lock;
    struct circ_buf tx_circ_buf;
    u16 tx_crc;
    u16 rx_buffer_len;
    bool rx_in_esc;
    u8 rx_buffer[MAX_RX_HDLC];
    struct fw_upload *fwl;
    struct gpio_desc *bootloader_backdoor_gpio;
    struct gpio_desc *rst_gpio;
    bool flashing_mode;
    struct completion fwl_ack_com;
    u8 fwl_ack;
    struct completion fwl_cmd_response_com;
    u32 fwl_cmd_response;
    u32 fwl_crc32;
    bool fwl_reset_addr;
 };

πŸŽ€ Members

grab a snack πŸ“, we're doing a full tour:

  • sd β€” the underlying serdev device. the little base camp this whole thing sits on πŸ•οΈ
  • gb_hd β€” the greybus host device. yes queen πŸ‘‘
  • tx_work β€” the hdlc transmit work. the lil worker bee 🐝
  • tx_producer_lock β€” the hdlc transmit data producer lock. it gets acquired when you're appending data to the buffer, so like, nobody stomps on your append game πŸ’…
  • tx_consumer_lock β€” the hdlc transmit data consumer lock. acquired when sending data over uart. two locks, two jobs, no chaos 🫢
  • tx_circ_buf β€” the hdlc transmit circular buffer. it goes round and round 🌈
  • tx_crc β€” the hdlc transmit crc-ccitt fcs. checksum era ✨
  • rx_buffer_len β€” length of the receive buffer that's been filled. how full is the cup πŸ₯€
  • rx_in_esc β€” hdlc rx flag, indicates an ESC frame. just a lil flag 🚩
  • rx_buffer β€” the hdlc frame receive buffer. size is MAX_RX_HDLC, iykyk
  • fwl β€” the underlying firmware upload device. firmware girlie πŸ’Ύ
  • bootloader_backdoor_gpio β€” cc1352p7 boot gpio. the backdoor πŸ‘€
  • rst_gpio β€” cc1352p7 reset gpio. press it, reset it πŸ”„
  • flashing_mode β€” flag that says flashing is currently in progress. pls don't interrupt her mid-flash 😭
  • fwl_ack_com β€” completion used to signal an Ack/Nack. the "did it work" notification ✨
  • fwl_ack β€” the Ack/Nack byte that was received. one single byte carrying so much emotional weight πŸ’€
  • fwl_cmd_response_com β€” completion used to signal a bootloader command response. ping! πŸ“©
  • fwl_cmd_response β€” the bootloader command response data.
  • fwl_crc32 β€” the crc32 of the firmware you're about to flash. integrity queen πŸ”₯
  • fwl_reset_addr β€” flag that indicates whether we need to send COMMAND_DOWNLOAD again. lowkey important 🚨

🌸 SEE ALSO

go read these next, bestie, they're all in the kernel file ./drivers/greybus/gb-beagleplay.c:


and that's the whole page, bestie 🧚 you ate that ngl πŸ’–

this one lives at ./drivers/greybus and the date on it is October 2026 β€” so like, keep that in mind when you're citing her, mwah 🫢
πŸ“¦ where this page comes from