1. 20 Sep, 2024 1 commit
    • Lorenzo Bianconi's avatar
      spi: airoha: remove read cache in airoha_snand_dirmap_read() · fffca269
      Lorenzo Bianconi authored
      Current upstream driver reports errors running mtd_oobtest kernel module
      test:
      
      root@OpenWrt:/# insmod mtd_test.ko
      root@OpenWrt:/# insmod mtd_oobtest.ko dev=5
      [ 7023.730584] =================================================
      [ 7023.736399] mtd_oobtest: MTD device: 5
      [ 7023.740160] mtd_oobtest: MTD device size 3670016, eraseblock size 131072, page size 2048, count of eraseblocks 28, pages per eraseblock 64, OOB size 128
      [ 7023.753837] mtd_test: scanning for bad eraseblocks
      [ 7023.758636] mtd_test: scanned 28 eraseblocks, 0 are bad
      [ 7023.763861] mtd_oobtest: test 1 of 5
      [ 7024.042076] mtd_oobtest: writing OOBs of whole device
      [ 7024.682069] mtd_oobtest: written up to eraseblock 0
      [ 7041.962077] mtd_oobtest: written 28 eraseblocks
      [ 7041.966626] mtd_oobtest: verifying all eraseblocks
      [ 7041.972276] mtd_oobtest: error @addr[0x0:0x0] 0xff -> 0xe diff 0xf1
      [ 7041.978550] mtd_oobtest: error @addr[0x0:0x1] 0xff -> 0x10 diff 0xef
      [ 7041.984932] mtd_oobtest: error @addr[0x0:0x2] 0xff -> 0x82 diff 0x7d
      [ 7041.991293] mtd_oobtest: error @addr[0x0:0x3] 0xff -> 0x10 diff 0xef
      [ 7041.997659] mtd_oobtest: error @addr[0x0:0x4] 0xff -> 0x0 diff 0xff
      [ 7042.003942] mtd_oobtest: error @addr[0x0:0x5] 0xff -> 0x8a diff 0x75
      [ 7042.010294] mtd_oobtest: error @addr[0x0:0x6] 0xff -> 0x20 diff 0xdf
      [ 7042.016659] mtd_oobtest: error @addr[0x0:0x7] 0xff -> 0x1 diff 0xfe
      [ 7042.022935] mtd_oobtest: error @addr[0x0:0x8] 0xff -> 0x2e diff 0xd1
      [ 7042.029295] mtd_oobtest: error @addr[0x0:0x9] 0xff -> 0x40 diff 0xbf
      [ 7042.035661] mtd_oobtest: error @addr[0x0:0xa] 0xff -> 0x0 diff 0xff
      [ 7042.041935] mtd_oobtest: error @addr[0x0:0xb] 0xff -> 0x89 diff 0x76
      [ 7042.048300] mtd_oobtest: error @addr[0x0:0xc] 0xff -> 0x82 diff 0x7d
      [ 7042.054662] mtd_oobtest: error @addr[0x0:0xd] 0xff -> 0x15 diff 0xea
      [ 7042.061014] mtd_oobtest: error @addr[0x0:0xe] 0xff -> 0x90 diff 0x6f
      [ 7042.067380] mtd_oobtest: error @addr[0x0:0xf] 0xff -> 0x0 diff 0xff
      ....
      [ 7432.421369] mtd_oobtest: error @addr[0x237800:0x36] 0xff -> 0x5f diff 0xa0
      [ 7432.428242] mtd_oobtest: error @addr[0x237800:0x37] 0xff -> 0x21 diff 0xde
      [ 7432.435118] mtd_oobtest: error: verify failed at 0x237800
      [ 7432.440510] mtd_oobtest: error: too many errors
      [ 7432.445053] mtd_oobtest: error -1 occurred
      
      The above errors are due to the buggy logic in the 'read cache' available
      in airoha_snand_dirmap_read() routine since there are some corner cases
      where we are missing data updates. Since we do not get any read/write speed
      improvement using the cache (according to the mtd_speedtest kernel
      module test), in order to fix the mtd_oobtest test, remove the 'read cache'
      in airoha_snand_dirmap_read routine. Now the driver is passing all the
      tests available in mtd_test suite.
      
      Fixes: a403997c ("spi: airoha: add SPI-NAND Flash controller driver")
      Tested-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
      Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
      Link: https://patch.msgid.link/20240919-airoha-spi-fixes-v2-1-cb0f0ed9920a@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      fffca269
  2. 19 Sep, 2024 2 commits
  3. 18 Sep, 2024 2 commits
  4. 12 Sep, 2024 2 commits
  5. 10 Sep, 2024 7 commits
  6. 09 Sep, 2024 2 commits
  7. 05 Sep, 2024 6 commits
  8. 04 Sep, 2024 1 commit
  9. 03 Sep, 2024 5 commits
  10. 02 Sep, 2024 4 commits
  11. 30 Aug, 2024 4 commits
  12. 29 Aug, 2024 4 commits