| .. | .. |
|---|
| 510 | 510 | const struct nand_page_io_req *req, |
|---|
| 511 | 511 | bool ecc_enabled) |
|---|
| 512 | 512 | { |
|---|
| 513 | | - u8 status; |
|---|
| 513 | + u8 status = 0; |
|---|
| 514 | 514 | int ret; |
|---|
| 515 | 515 | |
|---|
| 516 | 516 | ret = spinand_load_page_op(spinand, req); |
|---|
| .. | .. |
|---|
| 518 | 518 | return ret; |
|---|
| 519 | 519 | |
|---|
| 520 | 520 | ret = spinand_wait(spinand, &status); |
|---|
| 521 | + /* |
|---|
| 522 | + * When there is data outside of OIP in the status, the status data is |
|---|
| 523 | + * inaccurate and needs to be reconfirmed |
|---|
| 524 | + */ |
|---|
| 525 | + if (spinand->id.data[0] == 0x01 && status && !ret) |
|---|
| 526 | + ret = spinand_wait(spinand, &status); |
|---|
| 521 | 527 | if (ret < 0) |
|---|
| 522 | 528 | return ret; |
|---|
| 523 | 529 | |
|---|
| .. | .. |
|---|
| 837 | 843 | #ifdef CONFIG_SPI_NAND_ESMT |
|---|
| 838 | 844 | &esmt_spinand_manufacturer, |
|---|
| 839 | 845 | #endif |
|---|
| 846 | +#ifdef CONFIG_SPI_NAND_XINCUN |
|---|
| 847 | + &xincun_spinand_manufacturer, |
|---|
| 848 | +#endif |
|---|
| 840 | 849 | #ifdef CONFIG_SPI_NAND_XTX |
|---|
| 841 | 850 | &xtx_spinand_manufacturer, |
|---|
| 842 | 851 | #endif |
|---|
| .. | .. |
|---|
| 867 | 876 | #ifdef CONFIG_SPI_NAND_SKYHIGH |
|---|
| 868 | 877 | &skyhigh_spinand_manufacturer, |
|---|
| 869 | 878 | #endif |
|---|
| 879 | +#ifdef CONFIG_SPI_NAND_GSTO |
|---|
| 880 | + &gsto_spinand_manufacturer, |
|---|
| 881 | +#endif |
|---|
| 870 | 882 | }; |
|---|
| 871 | 883 | |
|---|
| 872 | 884 | static int spinand_manufacturer_match(struct spinand_device *spinand, |
|---|