commit c51d0ac59f24 ("mtd: nand: Move Samsung specific init/detection logic in nand_samsung.c") introduced a regression for Samsung SLC NAND chips by skipping the initialization of chip->bits_per_cell that is done in nand_decode_ext_id() from which the manufacturer dependent code was extracted. The regression should also affect Hynix and Macronix chips whose code was separated out in further commits but which I cannot test. AMD/Spansion and Toshiba NAND are not affected, since they are calling nand_decode_ext_id() (which initializes bhip->bits_per_cell) in their .detect function.
Fix the regression and add a warning to nand_is_slc() to prevent further regressions of this kind.