Skip to content
  1. Jul 28, 2021
    • Marek Vasut's avatar
      drm: mxsfb: Increase number of outstanding requests on V4 and newer HW · 9891cb54
      Marek Vasut authored
      In case the DRAM is under high load, the MXSFB FIFO might underflow
      and that causes visible artifacts. This could be triggered on i.MX8MM
      using e.g. "$ memtester 128M" on a device with 1920x1080 panel. The
      first "Stuck Address" test of the memtester will completely corrupt
      the image on the panel and leave the MXSFB FIFO in odd state.
      
      To avoid this underflow, increase number of outstanding requests to
      DRAM from 2 to 16, which is the maximum. This mitigates the issue
      and it can no longer be triggered.
      
      Fixes: 45d59d70
      
       ("drm: Add new driver for MXSFB controller")
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Daniel Abrecht <public@danielabrecht.ch>
      Cc: Emil Velikov <emil.l.velikov@gmail.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Stefan Agner <stefan@agner.ch>
      Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210620224759.189351-1-marex@denx.de
      9891cb54
    • Marek Vasut's avatar
      drm: mxsfb: Enable recovery on underflow · 0c9856e4
      Marek Vasut authored
      There is some sort of corner case behavior of the controller,
      which could rarely be triggered at least on i.MX6SX connected
      to 800x480 DPI panel and i.MX8MM connected to DPI->DSI->LVDS
      bridged 1920x1080 panel (and likely on other setups too), where
      the image on the panel shifts to the right and wraps around.
      This happens either when the controller is enabled on boot or
      even later during run time. The condition does not correct
      itself automatically, i.e. the display image remains shifted.
      
      It seems this problem is known and is due to sporadic underflows
      of the LCDIF FIFO. While the LCDIF IP does have underflow/overflow
      IRQs, neither of the IRQs trigger and neither IRQ status bit is
      asserted when this condition occurs.
      
      All known revisions of the LCDIF IP have CTRL1 RECOVER_ON_UNDERFLOW
      bit, which is described in the reference manual since i.MX23 as
      "
        Set this bit to enable the LCDIF block to recover in the next
        field/frame if there was an underflow in the current field/frame.
      "
      Enable this bit to mitigate the sporadic underflows.
      
      Fixes: 45d59d70
      
       ("drm: Add new driver for MXSFB controller")
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Daniel Abrecht <public@danielabrecht.ch>
      Cc: Emil Velikov <emil.l.velikov@gmail.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Stefan Agner <stefan@agner.ch>
      Reviewed-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: default avatarJagan Teki <jagan@amarulasolutions.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210620224701.189289-1-marex@denx.de
      0c9856e4
  2. Jul 27, 2021
  3. Jul 26, 2021
  4. Jul 25, 2021