nand_set_features(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ nand_set_features(9) β€” Kernel API Manual πŸ‘‘

okay so bestie, welcome to nand_set_features(9), a page straight out of the Kernel API Manual. this is genuinely the tiniest little wrapper function and i'm obsessed with how unbothered it is. it does one thing. it slays. periodt.


✨ NAME ✨

nand_set_features β€” the wrapper that performs a SET_FEATURE, no cap. it's giving "middle management but make it NAND."


🌸 SYNOPSIS 🌸

int nand_set_features (struct nand_chip *chip , int addr , u8
*subfeature_param );

literally that's the whole signature. yes the spacing is Like That, i don't make the rules πŸ’…


πŸ’– ARGUMENTS πŸ’–

  • chip β€” the NAND chip info structure. it's the whole personality of your flash chip, treat it with respect 🫢
  • addr β€” the feature address. this is where you're pointing your little feature request ✨
  • subfeature_param β€” the subfeature parameters, and hear me out: it's a four bytes array. four. bytes. that's it. that's the array πŸŽ€

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the whole tea: this returns 0 for success, and a negative error otherwise. no big dramatic monologue, just vibes and an int.

and if the operation just can't be handled at all? it returns -ENOTSUPP. like bestie it's literally saying "not supported," respect the honesty 😭

that's it. that's the function. it's short, it's sweet, it's a wrapper, and it ate πŸ‘‘


🌈 SEE ALSO 🌈

the lore is deep and the cross-references are LONG, so buckle up bestie. the kernel file is ./drivers/mtd/nand/raw/nand_base.c and everything here lives rent-free in that neighborhood 🧚

nand_extract_bits(9), nand_select_target(9), nand_deselect_target(9), nand_release_device(9), nand_bbm_get_next_page(9), nand_block_bad(9), nand_region_is_secured(9), nand_get_device(9), nand_check_wp(9), nand_fill_oob(9), nand_do_write_oob(9), nand_default_block_markbad(9), nand_markbad_bbm(9), nand_block_markbad_lowlevel(9), nand_block_isreserved(9), nand_block_checkbad(9), nand_soft_waitrdy(9), nand_gpio_waitrdy(9), panic_nand_wait(9), nand_reset_interface(9), nand_setup_interface(9), nand_choose_best_sdr_timings(9), nand_choose_best_nvddr_timings(9), nand_choose_best_timings(9), nand_choose_interface_config(9), nand_fill_column_cycles(9), nand_read_page_op(9), nand_read_param_page_op(9), nand_change_read_column_op(9), nand_read_oob_op(9), nand_prog_page_begin_op(9), nand_prog_page_end_op(9), nand_prog_page_op(9), nand_change_write_column_op(9), nand_readid_op(9), nand_status_op(9), nand_exit_status_op(9), nand_erase_op(9), nand_set_features_op(9), nand_get_features_op(9), nand_reset_op(9), nand_read_data_op(9), nand_write_data_op(9), struct nand_op_parser_ctx(9), nand_op_parser_must_split_instr(9), nand_op_parser_match_pat(9), nand_op_parser_exec_op(9), nand_subop_get_addr_start_off(9), nand_subop_get_num_addr_cyc(9), nand_subop_get_data_start_off(9), nand_subop_get_data_len(9), nand_reset(9), nand_get_features(9), nand_read_page_raw_notsupp(9), nand_read_page_raw(9), nand_monolithic_read_page_raw(9), nand_read_page_raw_syndrome(9), nand_read_page_swecc(9), nand_read_subpage(9), nand_read_page_hwecc(9), nand_read_page_hwecc_oob_first(9), nand_read_page_syndrome(9), nand_transfer_oob(9), nand_setup_read_retry(9), nand_do_read_ops(9), nand_read_oob_std(9), nand_read_oob_syndrome(9), nand_write_oob_std(9), nand_write_oob_syndrome(9), nand_do_read_oob(9), nand_read_oob(9), nand_write_page_raw_notsupp(9), nand_write_page_raw(9), nand_monolithic_write_page_raw(9), nand_write_page_raw_syndrome(9), nand_write_page_swecc(9), nand_write_page_hwecc(9), nand_write_subpage_hwecc(9), nand_write_page_syndrome(9), nand_write_page(9), nand_do_write_ops(9), panic_nand_write(9), nand_write_oob(9), nand_erase(9), nand_erase_nand(9), nand_sync(9), nand_block_isbad(9), nand_block_markbad(9), nand_suspend(9), nand_resume(9), nand_shutdown(9), nand_lock(9), nand_unlock(9), rawnand_dt_parse_gpio_cs(9), nand_scan_ident(9), nand_check_ecc_caps(9), nand_match_ecc_req(9), nand_maximize_ecc(9), nand_ecc_choose_conf(9), nand_scan_tail(9), nand_scan_with_ids(9), nand_cleanup(9)

like i said. deep lore. every single one of them is in there, i did not skip a crumb πŸ“


reminder bestie: 0 means yay, negative means nay, and -ENOTSUPP means the operation literally cannot be handled. that's the whole plot πŸŽ€

and that's the page!! this gem comes from ./drivers/mtd/nand/raw and it's dated October 2026, so it's basically from the future and still iconic πŸ’œ stay safe, read your NAND docs, and remember β€” it's giving wrapper. mwah πŸ’‹

πŸ“¦ where this page comes from