regmap_read...meout_atomic(9)
hiii bestie π okay so this is the Kernel API Manual glow-up for regmap_read_poll_timeout_atomic. Itβs giving kernel polling, but make it cute. Buckle up. π
π NAME π
regmap_read_poll_timeout_atomic β poll until a condition is met or a timeout occurs. periodt. β¨
β¨ SYNOPSIS β¨
the signature, verbatim:
regmap_read_poll_timeout_atomic (map , addr , val , cond , delay_us ,
timeout_us );
π ARGUMENTS π
the cast, in order:
mapβ the regmap to read from. π«Άaddrβ address to poll. πvalβ unsigned integer variable to read the value into. πcondβ break condition (usually involvingval). πdelay_usβ time toudelaybetween reads in us (0tight-loops). Please read theudelayfunction description for details and limitations, fr fr. πtimeout_usβ timeout in us,0means never timeout. β°
πΈ DESCRIPTION πΈ
This macro is modelled after the readx_poll_timeout_atomic macros in linux/iopoll.h. literally thatβs the blueprint, bestie. π¦
π NOTE π
real talk: in general regmap cannot be used in atomic context. If you want to use this macro then first setup your regmap for atomic use (flat or no cache and MMIO regmap). iykyk π
π RETURN π
hereβs the tea:
0β success, slay. β-ETIMEDOUTβ a timeout happened. β°- the
regmap_readerror return value β in case of a error read. π¬
In the two former cases (timeout and error read), the last read value at addr is stored in val. thatβs the important bit. π«Ά
π SEE ALSO π
the whole squad, all of it β no skips:
- Kernel file
./include/linux/regmap.h struct reg_default(9),struct reg_sequence(9),regmap_read_poll_timeout(9),regmap_field_read_poll_timeout(9),struct regmap_range(9),struct regmap_access_table(9),struct regmap_config(9),struct regmap_range_cfg(9),struct regmap_sdw_mbq_cfg(9),struct regmap_bus(9)regmap_init(9),regmap_init_i2c(9),regmap_init_mdio(9),regmap_init_sccb(9),regmap_init_slimbus(9),regmap_init_spi(9),regmap_init_spmi_base(9),regmap_init_spmi_ext(9),regmap_init_w1(9),regmap_init_mmio_clk(9),regmap_init_mmio(9),regmap_init_ac97(9),regmap_init_sdw(9),regmap_init_sdw_mbq(9),regmap_init_sdw_mbq_cfg(9),regmap_init_i3c(9),regmap_init_spi_avmm(9),regmap_init_fsi(9)devm_regmap_init(9),devm_regmap_init_i2c(9),devm_regmap_init_mdio(9),devm_regmap_init_sccb(9),devm_regmap_init_spi(9),devm_regmap_init_spmi_base(9),devm_regmap_init_spmi_ext(9),devm_regmap_init_w1(9),devm_regmap_init_mmio_clk(9),devm_regmap_init_mmio(9),devm_regmap_init_ac97(9),devm_regmap_init_sdw(9),devm_regmap_init_sdw_mbq(9),devm_regmap_init_sdw_mbq_cfg(9),devm_regmap_init_slimbus(9),devm_regmap_init_i3c(9),devm_regmap_init_spi_avmm(9),devm_regmap_init_fsi(9)struct reg_field(9),struct regmap_irq_type(9),struct regmap_irq(9),struct regmap_irq_chip(9)
xoxo, your kernel bestie π β source/version: ./include/linux; date: October 2026. πβ¨
π¦ 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