Skip to content
Snippets Groups Projects
Select Git revision
  • 603ded16a308d0a7a17738c973e3c8cbcd5db7dd
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

sdhci.c

  • Andres Salomon's avatar
    603ded16
    olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout · 603ded16
    Andres Salomon authored
    
    The CaFe chip has a hardware bug that ends up with us getting a timeout
    value that's too small, causing the following sorts of problems:
    
    [   60.525138] mmcblk0: error -110 transferring data
    [   60.531477] end_request: I/O error, dev mmcblk0, sector 1484353
    [   60.533371] Buffer I/O error on device mmcblk0p2, logical block 181632
    [   60.533371] lost page write due to I/O error on mmcblk0p2
    
    Presumably this is an off-by-one error in the hardware.  Incrementing
    the timeout count value that we stuff into the TIMEOUT_CONTROL register
    gets us a value that works.  This bug was originally discovered by
    Pierre Ossman, I believe.
    
    [thanks to Robert Millan for proving that this was still a problem]
    
    Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
    Cc: Pierre Ossman <drzeus-list@drzeus.cx>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    603ded16
    History
    olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout
    Andres Salomon authored
    
    The CaFe chip has a hardware bug that ends up with us getting a timeout
    value that's too small, causing the following sorts of problems:
    
    [   60.525138] mmcblk0: error -110 transferring data
    [   60.531477] end_request: I/O error, dev mmcblk0, sector 1484353
    [   60.533371] Buffer I/O error on device mmcblk0p2, logical block 181632
    [   60.533371] lost page write due to I/O error on mmcblk0p2
    
    Presumably this is an off-by-one error in the hardware.  Incrementing
    the timeout count value that we stuff into the TIMEOUT_CONTROL register
    gets us a value that works.  This bug was originally discovered by
    Pierre Ossman, I believe.
    
    [thanks to Robert Millan for proving that this was still a problem]
    
    Signed-off-by: default avatarAndres Salomon <dilinger@debian.org>
    Cc: Pierre Ossman <drzeus-list@drzeus.cx>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>