spi_nor_spi...k_read_pp_op(9)
π
spi_nor_spi...k_read_pp_op(9) β Kernel API Manual, but make it make sense
okay so bestie, we're deep in the kernel today β this one lives in the Kernel API Manual, section 9, and the headline is spi_nor_spimem_check_read_pp_op. Say that five times fast, I dare you π
β¨ NAME β¨
spi_nor_spimem_check_read_pp_op β the little vibe check that asks "hey, does this controller actually support this read operation or page program operation?" π
Basically it's the bouncer at the club door, but for SPI NOR flash ops. If your controller can't handle it, it does not get in. Periodt. π«
π SYNOPSIS π
int spi_nor_spimem_check_read_pp_op (struct spi_nor *nor , struct
spi_mem_op *op );
look at her. iconic signature, no notes. π
π¦ ARGUMENTS π¦
norβ pointer to a'struct spi_nor'π«Ά this is the NOR flash buddy we're checking up on. She's the main character of this whole story.opβ pointer to the op template that's getting checked β¨ yes bestie, it's a template, meaning it's the shape of the operation you're asking about, and we're gonna see if the hardware is feeling it.
πΈ DESCRIPTION πΈ
so here's the tea β β this function returns 0 if the operation is supported, and -EOPNOTSUPP otherwise. that's it. that's the whole function. no cap.
like genuinely it's giving "simple but essential" energy π₯ zero means slay, -EOPNOTSUPP means the controller said "not me, not today" π
π SEE ALSO π
the full friend group, all sixty-two of them, and yes we're listing every single one because nobody gets left out in this house π π
spi_nor_get_cmd_ext(9)spi_nor_spimem_setup_op(9)spi_nor_spimem_bounce(9)spi_nor_spimem_exec_op(9)spi_nor_spimem_read_data(9)spi_nor_read_data(9)spi_nor_spimem_write_data(9)spi_nor_write_data(9)spi_nor_read_any_reg(9)spi_nor_write_any_volatile_reg(9)spi_nor_write_enable(9)spi_nor_write_disable(9)spi_nor_read_id(9)spi_nor_read_sr(9)spi_nor_read_cr(9)spi_nor_set_4byte_addr_mode_en4b_ex4b(9)spi_nor_set_4byte_addr_mode_wren_en4b_ex4b(9)spi_nor_set_4byte_addr_mode_brwr(9)spi_nor_sr_ready(9)spi_nor_use_parallel_locking(9)spi_nor_ready(9)spi_nor_wait_till_ready_with_timeout(9)spi_nor_wait_till_ready(9)spi_nor_global_block_unlock(9)spi_nor_write_sr(9)spi_nor_write_sr1_and_check(9)spi_nor_write_16bit_sr_and_check(9)spi_nor_write_16bit_cr_and_check(9)spi_nor_write_16bit_sr_cr_and_check(9)spi_nor_write_sr_and_check(9)spi_nor_write_sr_cr_and_check(9)spi_nor_write_sr2(9)spi_nor_read_sr2(9)spi_nor_erase_die(9)spi_nor_div_by_erase_size(9)spi_nor_find_best_erase_type(9)spi_nor_init_erase_cmd(9)spi_nor_destroy_erase_cmd_list(9)spi_nor_init_erase_cmd_list(9)spi_nor_erase_multi_sectors(9)spi_nor_sr1_bit6_quad_enable(9)spi_nor_sr2_bit1_quad_enable(9)spi_nor_sr2_bit7_quad_enable(9)spi_nor_spimem_check_readop(9)spi_nor_spimem_check_pp(9)spi_nor_spimem_adjust_hwcaps(9)spi_nor_set_erase_type(9)spi_nor_mask_erase_type(9)spi_nor_init_uniform_erase_map(9)spi_nor_select_uniform_erase(9)spi_nor_manufacturer_init_params(9)spi_nor_no_sfdp_init_params(9)spi_nor_init_flags(9)spi_nor_init_fixup_flags(9)spi_nor_late_init_params(9)spi_nor_sfdp_init_params_deprecated(9)spi_nor_init_params_deprecated(9)spi_nor_init_default_params(9)spi_nor_init_params(9)spi_nor_quad_enable(9)spi_nor_set_4byte_addr_mode(9)spi_nor_soft_reset(9)
iykyk β there's a whole kernel file behind this one: ./drivers/mtd/spi-nor/core.c π that's where the magic actually happens, go read it if you're nosy like me π
and that's the page, bestie!! π§ββοΈ this lil drop came out of ./drivers/mtd/spi-nor in October 2026, filed under section 9 of the Kernel API Manual β spi_nor_spi...k_read_pp_op(9), always and forever πβ¨ go check your hwcaps, ily, bye π
π¦ 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