sifive_serial_clk_notifier(9)
π 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 thestruct notifier_block, straight from the notifier code. πeventβ event mask from the notifier code. β¨dataβ pointer to thestruct clk_notifier_datafrom 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:
struct sifive_serial_port(9)__ssp_early_writel(9)__ssp_early_readl(9)__ssp_writel(9)__ssp_readl(9)sifive_serial_is_txfifo_full(9)__ssp_transmit_char(9)__ssp_transmit_chars(9)__ssp_enable_txwm(9)__ssp_enable_rxwm(9)__ssp_disable_txwm(9)__ssp_disable_rxwm(9)__ssp_receive_char(9)__ssp_receive_chars(9)__ssp_update_div(9)__ssp_update_baud_rate(9)__ssp_set_stop_bits(9)__ssp_wait_for_xmitr(9)
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
- 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