|
@@ -2169,7 +2169,6 @@ static int nand_set_features_op(struct nand_chip *chip, u8 feature,
|
|
|
struct mtd_info *mtd = nand_to_mtd(chip);
|
|
|
const u8 *params = data;
|
|
|
int i, ret;
|
|
|
- u8 status;
|
|
|
|
|
|
if (chip->exec_op) {
|
|
|
const struct nand_sdr_timings *sdr =
|
|
@@ -2183,26 +2182,18 @@ static int nand_set_features_op(struct nand_chip *chip, u8 feature,
|
|
|
};
|
|
|
struct nand_operation op = NAND_OPERATION(instrs);
|
|
|
|
|
|
- ret = nand_exec_op(chip, &op);
|
|
|
- if (ret)
|
|
|
- return ret;
|
|
|
-
|
|
|
- ret = nand_status_op(chip, &status);
|
|
|
- if (ret)
|
|
|
- return ret;
|
|
|
- } else {
|
|
|
- chip->cmdfunc(mtd, NAND_CMD_SET_FEATURES, feature, -1);
|
|
|
- for (i = 0; i < ONFI_SUBFEATURE_PARAM_LEN; ++i)
|
|
|
- chip->write_byte(mtd, params[i]);
|
|
|
+ return nand_exec_op(chip, &op);
|
|
|
+ }
|
|
|
|
|
|
- ret = chip->waitfunc(mtd, chip);
|
|
|
- if (ret < 0)
|
|
|
- return ret;
|
|
|
+ chip->cmdfunc(mtd, NAND_CMD_SET_FEATURES, feature, -1);
|
|
|
+ for (i = 0; i < ONFI_SUBFEATURE_PARAM_LEN; ++i)
|
|
|
+ chip->write_byte(mtd, params[i]);
|
|
|
|
|
|
- status = ret;
|
|
|
- }
|
|
|
+ ret = chip->waitfunc(mtd, chip);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
|
|
|
- if (status & NAND_STATUS_FAIL)
|
|
|
+ if (ret & NAND_STATUS_FAIL)
|
|
|
return -EIO;
|
|
|
|
|
|
return 0;
|