nand_set_features(9)
π 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:0means yay, negative means nay, and-ENOTSUPPmeans 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
- 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