1. 09 6月, 2016 11 次提交
  2. 07 6月, 2016 4 次提交
    • B
      drm/nouveau/disp/sor/gm107: training pattern registers are like gm200 · 4691409b
      Ben Skeggs 提交于
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Cc: stable@vger.kernel.org
      4691409b
    • B
      drm/nouveau/disp/sor/gf119: both links use the same training register · a8953c52
      Ben Skeggs 提交于
      It appears that, for whatever reason, both link A and B use the same
      register to control the training pattern.  It's a little odd, as the
      GPUs before this (Tesla/Fermi1) have per-link registers, as do newer
      GPUs (Maxwell).
      
      Fixes the third DP output on NVS 510 (GK107).
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Cc: stable@vger.kernel.org
      a8953c52
    • M
      drm/vc4: Make pageflip completion handling more robust. · 56d1fe09
      Mario Kleiner 提交于
      Protect both the setup of the pageflip event and the
      latching of the new requested displaylist head pointer
      by the event lock, so we can't get into a situation
      where vc4_atomic_flush latches the new display list via
      HVS_WRITE, then immediately gets preempted before queueing
      the pageflip event, then the page-flip completes in hw and
      the vc4_crtc_handle_page_flip() runs and no-ops due to
      lack of a pending pageflip event, then vc4_atomic_flush
      continues and only then queues the pageflip event - after
      the page flip handling already no-oped. This would cause
      flip completion handling only at the next vblank - one
      frame too late.
      
      In vc4_crtc_handle_page_flip() check the actual DL head
      pointer in SCALER_DISPLACTX against the requested pointer
      for page flip to make sure that the flip actually really
      completed in the current vblank and doesn't get deferred
      to the next one because the DL head pointer was written
      a bit too late into SCALER_DISPLISTX, after start of
      vblank, and missed the boat. This avoids handling a
      pageflip completion too early - one frame too early.
      
      According to Eric, DL head pointer updates which were
      written into the HVS DISPLISTX reg get committed to hardware
      at the last pixel of active scanout. Our vblank interrupt
      handler, as triggered by PV_INT_VFP_START irq, gets to run
      earliest at the first pixel of HBLANK at the end of the
      last scanline of active scanout, ie. vblank irq handling
      runs at least 1 pixel duration after a potential pageflip
      completion happened in hardware.
      
      This ordering of events in the hardware, together with the
      lock protection and SCALER_DISPLACTX sampling of this patch,
      guarantees that pageflip completion handling only runs at
      exactly the vblank irq of actual pageflip completion in all
      cases.
      
      Background info from Eric about the relative timing of
      HVS, PV's and trigger points for interrupts, DL updates:
      
      https://lists.freedesktop.org/archives/dri-devel/2016-May/107510.html
      
      Tested on RPi 2B with hardware timing measurement equipment
      and shown to no longer complete flips too early or too late.
      Signed-off-by: NMario Kleiner <mario.kleiner.de@gmail.com>
      Reviewed-by: NEric Anholt <eric@anholt.net>
      56d1fe09
    • H
      drm/vc4: Fix ioctl permissions for render nodes. · b10c22e5
      Herve Jourdain 提交于
      Contrary to other flags to DRM_IOCTL_DEF_DRV(), which restrict usage,
      the flag for render node is an enabler (the IOCTL can't be used from
      render node if it's not present).  So DRM_RENDER_ALLOW needs to be
      added to all the flags that were previously 0.
      Signed-off-by: NHerve Jourdain <herve.jourdain@neuf.fr>
      Reviewed-by: NEric Anholt <eric@anholt.net>
      Fixes: 0cd3e274 ("drm/vc4: Add missing render node support")
      b10c22e5
  3. 03 6月, 2016 5 次提交
  4. 02 6月, 2016 5 次提交
  5. 01 6月, 2016 13 次提交
  6. 31 5月, 2016 2 次提交
    • A
      drm/omap: include gpio/consumer.h where needed · d0196c8d
      Arnd Bergmann 提交于
      A lot of the display drivers for OMAP use the gpio descriptor functions
      that are only available in linux/gpio.h if GPIOLIB is enabled and
      otherwise produce a build error:
      
      drivers/gpu/drm/omapdrm/displays/encoder-opa362.c: In function 'opa362_enable':
      drivers/gpu/drm/omapdrm/displays/encoder-opa362.c:101:3: error: implicit declaration of function 'gpiod_set_value_cansleep' [-Werror=implicit-function-declaration]
      drivers/gpu/drm/omapdrm/displays/panel-dpi.c: In function 'panel_dpi_probe_pdata':
      drivers/gpu/drm/omapdrm/displays/panel-dpi.c:189:23: error: implicit declaration of function 'gpio_to_desc' [-Werror=implicit-function-declaration]
      drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c: In function 'sharp_ls_enable':
      drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c:120:3: error: implicit declaration of function 'gpiod_set_value_cansleep' [-Werror=implicit-function-declaration]
      
      This replaces the existing linux/gpio.h with linux/gpio/consumer.h
      where needed. In case of panel-lgphilips-lb035q02.c however, we
      also have to include linux/gpio.h to get the definition of gpio_is_valid
      and gpio_set_value_cansleep that are used for the non-DT case.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      [tomi.valkeinen@ti.com: resolved conflicts]
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      d0196c8d
    • A
      drm/omap: include linux/seq_file.h where needed · 2d802453
      Arnd Bergmann 提交于
      The omapdrm driver relies on this header to be included
      implicitly, but this does not always work, and I get
      this error in randconfig builds:
      
      gpu/drm/omapdrm/dss/hdmi_phy.c: In function 'hdmi_phy_dump':
      gpu/drm/omapdrm/dss/hdmi_phy.c:34:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      gpu/drm/omapdrm/dss/hdmi_wp.c: In function 'hdmi_wp_dump':
      gpu/drm/omapdrm/dss/hdmi_wp.c:26:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      gpu/drm/omapdrm/dss/hdmi_pll.c: In function 'hdmi_pll_dump':
      gpu/drm/omapdrm/dss/hdmi_pll.c:30:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      
      This adds the #include statements in all files that have
      a seq_printf statement.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2d802453