sifive_serial_clk_notifier(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

sifive_serial_clk_notifier β€” clock post-rate-change notifier, bestie. This is the Kernel API Manual page for sifive_serial_clk_notifier(9), and yes she is lowkey iconic. πŸ’…

✨ SYNOPSIS ✨

int sifive_serial_clk_notifier (struct notifier_block *nb , unsigned
       long event , void *data );

🫢 ARGUMENTS 🫢

  • nb β€” pointer to the struct notifier_block, straight from the notifier code. πŸŽ€
  • event β€” event mask from the notifier code. ✨
  • data β€” pointer to the struct clk_notifier_data from the notifier code. πŸ¦‹

🌸 DESCRIPTION 🌸

On the V0 SoC, the UART IP block is derived from the CPU clock source after a synchronous divide-by-two divider, so any CPU clock rate change requires the UART baud rate to be updated. The way that this presumably corrupts any serial word currently being transmitted or received is not the vibe, fr fr. 😭

In order to avoid corrupting the output data stream, we drain the transmit queue before allowing the clock's rate to be changed. Slay, queue-draining main character energy. πŸ‘‘βœ¨

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/tty/serial/sifive.c, plus these besties:


Source/version: ./drivers/tty/serial β€’ date: October 2026 β€’ page: sifive_serial_clk_notifier(9). Byeee bestie, stay hydrated and may your transmit queue always drain cleanly πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from