1. 03 4月, 2017 15 次提交
    • T
      drm/omap: add dispc_ops · 8a13398c
      Tomi Valkeinen 提交于
      We want to change the dispc API from plain functions to a struct with
      functions pointers, so that omapdrm can call either omapdss or omapdss6
      depending on the platform.
      
      This patch adds 'struct dispc_ops' and adds functions to omapdss-base
      to set and get the ops.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      8a13398c
    • T
      drm/omap: move dispc related dss-feat funcs to dispc · c283400a
      Tomi Valkeinen 提交于
      omapdrm still uses a few non-dispc functions: dss_feat_get_num_mgrs(),
      dss_feat_get_num_ovls() and  dss_feat_get_supported_color_modes(). We
      want to provide omapdrm a single dispc_ops function pointer struct so
      that omapdrm will use either the current omapdss or the new omapdss6
      driver depending on the platform.
      
      Those three functions are really dispc functions, but are located in the
      dss_features.c for legacy reasons.
      
      This patch adds similar functionss to the dispc, and changes omapdrm to
      use those new functions. Underneath the functions still call the
      functions from dss_feature.c.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      c283400a
    • T
      drm/omap: move display, dss-of, output to omapdss-base · 82e83f67
      Tomi Valkeinen 提交于
      This patch moves the common parts of omapdss to omapdss-base so that
      both the current omapdss driver and the new omapdss6 driver can use
      them.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      82e83f67
    • T
      drm/omap: display: don't use dsi_get_pixel_size() · 892fdcb0
      Tomi Valkeinen 提交于
      display.c uses dsi_get_pixel_size() which is implemented in the DSI
      driver, and we won't have that in the omapdss-base module, to which we
      want to move display.c
      
      This patch changes display.c not to use dsi_get_pixel_size(). The call
      can be replaced with a simple check for OMAP_DSS_DSI_FMT_RGB565.
      
      We can also make dsi_get_pixel_size() static as it's no longer used
      outside dsi.c.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      892fdcb0
    • T
      drm/omap: output: use dev_err instead of DSSERR · 39637e10
      Tomi Valkeinen 提交于
      We don't have omapdss's custom error printing functions in the common
      omapdss-base module, to which we want to move output.c.
      
      This patch changes output.c to use dev_err instead of DSSERR so that it
      doesn't depend on DSSERR.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      39637e10
    • T
      drm/omap: move dss_initialized to omapdss-base · 7c299716
      Tomi Valkeinen 提交于
      omapdss_is_initialized() is used to find out if omapdss has been probed
      successfully. This patch moves the related code to the common
      omapdss-base module, so that the same support will be there for both
      omapdss and omapdss6.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7c299716
    • T
      drm/omap: add omapdss-base.ko · a99ac0d9
      Tomi Valkeinen 提交于
      We are working towards enabling omapdss6, which will consists of a new
      dss, dispc and dpi drivers. omapdss6 will be a new module. The panel,
      encoder and omapdrm will need to use either the current omapdss driver
      or the new omapdss6 driver, depending on the platform.
      
      This will be implemented with a common base module and function
      pointers.
      
      This patch adds a skeleton omapdss-base.ko module, to which we'll be
      moving common dss functionality like registration of the panels.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      a99ac0d9
    • T
      drm/omap: fix HDMI sync polarities · d5e7efad
      Tomi Valkeinen 提交于
      While implementing writeback support, odd behavior of WBDELAYCOUNT was
      observed with the combination of WB capture and HDMI. The result of the
      debugging was that the HDMI sync polarities are not set correctly.
      
      The current code sets the sync polarities going from HDMI WP to DISPC
      according to the video mode used, which seems to work normally fine, but
      causes problems with WB as WB expects the syncs to be active-high.
      
      This patch changes the HDMI sync polarities so that the DISPC always
      gets active-high syncs from HDMI WP, and the HDMI core gets sync
      polarities according to the used video mode.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      d5e7efad
    • H
      drm/omap: Add support for render nodes · 5f6ab8ca
      Hemant Hariyani 提交于
      Add support for render nodes in omap driver and allow required
      ioctls to be accessible via render nodes.
      
      This enables unprivileged clients to allocate resources like GEM buffers
      for rendering their content into. Mode setting (KMS ioctls) is not
      allowed using render nodes. These buffers are then shared with
      a previleged process (e.g compositor) that has mode setting access.
      
      An example of this use case is Android where the hardware composer is
      the only master and has mode setting access. Every other client then
      uses render node(e.g /dev/dri/renderD128 to allocate and use its buffers.
      Signed-off-by: NHemant Hariyani <hemanthariyani@ti.com>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      5f6ab8ca
    • T
      drm/omap: improve DPI clock selection on DRA7xx · 7bbdef2b
      Tomi Valkeinen 提交于
      The clock source selection for the LCD outputs is too hardcoded at the
      moment. For example, LCD3 is set to use PLL2_1, and PLL2 doesn't exist
      on DRA72x SoCs.
      
      There are quite many ways to configure the clocks, even using HDMI PLL
      for LCD outputs, but enabling full configuration of the clocks is rather
      tricky.
      
      This patch improves the situation a bit by checking if the PLL about to
      be used exists, and if not, tries another one.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7bbdef2b
    • T
      drm/omap: decrease min width & height · 1e90711d
      Tomi Valkeinen 提交于
      mode_config's min_width and min_height are both set to 32, which is
      overly restrictive.
      
      The real limits depend on whether we're configuring a crtc or a plane,
      but a limit of 8x2 is safe for both cases.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      1e90711d
    • T
      drm/omap: remove divider constraint from hsdiv · 0e81798e
      Tomi Valkeinen 提交于
      The driver only uses even dividers for hsdiv when pclk >= 100MHz, as odd
      dividers can create uneven duty cycle. However, while this holds true
      for some dividers like DISPC's LCK and PCK dividers, it is not actually
      true for hsdiv.
      
      hsdiv always produces even duty cycle, so the constraint can be removed.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      0e81798e
    • T
      drm/omap: refactor CRTC HW property setup · 7e3d9274
      Tomi Valkeinen 提交于
      The current driver doesn't expose any of the CRTC HW properties like
      background color or transparency key, and sets them at CRTC enable time.
      
      Refactor this into a separate function and call that function from
      omap_crtc_atomic_flush(). This is the behavior we want when the
      properties can be configured, so this patch makes it easier to add
      patches later which implement those properties.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      7e3d9274
    • T
      drm/omap: work-around for errata i886 · 7d267f06
      Tomi Valkeinen 提交于
      DRA7 errata i886 (FPDLink PLL Unlocks With Certain SoC PLL M/N Values)
      says that FPDLink is sensitive to jitter on the vout clock, and that low
      PLL M and N values result in more jitter than high M and N values.
      
      This patch implements a workaround for the problem by changing the PLL
      setup to search for clocks starting from high M and N values, instead of
      low values. This should not cause any functional change, and only
      reduces the jitter.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      7d267f06
    • D
      Merge tag 'drm-misc-next-2017-03-31' of git://anongit.freedesktop.org/git/drm-misc into drm-next · 320d8c3d
      Dave Airlie 提交于
      drm-misc for 4.12:
      
      Core:
      - Removed some fb subsampling dimension checks from core (Ville)
      - Some MST slot cleanup (Dhinakaran)
      - Extracted drm_debugfs.h & drm_ioctl.h from drmP.h (Daniel)
      - Added drm_atomic_helper_shutdown() to compliment suspend/resume counterparts
        (Daniel)
      - Pipe context through legacy modeset to remove legacy_backoff nasties (Daniel)
      - Cleanups around vblank as well as allowing lockless counter reads (Chris W.)
      - VGA Switcheroo added to MAINTAINERS with Lukas Wunner as reviewer (Lukas)
      
      Drivers:
      - Enhancements to rockchip driver probe (Jeffy) and dsi (Chris Z.)
      - Thunderbolt external GPU awareness added (Lukas)
      
      * tag 'drm-misc-next-2017-03-31' of git://anongit.freedesktop.org/git/drm-misc: (63 commits)
        apple-gmux: Don't switch external DP port on 2011+ MacBook Pros
        drm/nouveau: Don't register Thunderbolt eGPU with vga_switcheroo
        drm/amdgpu: Don't register Thunderbolt eGPU with vga_switcheroo
        drm/radeon: Don't register Thunderbolt eGPU with vga_switcheroo
        PCI: Recognize Thunderbolt devices
        MAINTAINERS: Add Lukas Wunner as reviewer for vga_switcheroo
        drm: Fix locking gotcha in page_flip ioctl
        drm: Clarify the role of plane_state argument to drm_simple update().
        drm: Clear e after kfree in drm_mode_page_flip_ioctl
        drm: Convert cmpxchg(bool) back to a two step operation
        drm/bridge: ti-tfp410: support hpd via gpio
        drm: use .hword to represent 16-bit numbers
        Revert unrelated part of "drm: simplify the locking in the GETCRTC ioctl"
        drm: Fixup failure paths in drm_atomic_helper_set_config
        drm: Peek at the current counter/timestamp for vblank queries
        drm: Refactor vblank sequence number comparison
        drm: vblank cannot be enabled if dev->irq_enabled is false
        drm: Mark up accesses of vblank->enabled outside of its spinlock
        drm: Make the decision to keep vblank irq enabled earlier
        drm/atomic-helper: Remove the backoff hack from set_config
        ...
      320d8c3d
  2. 02 4月, 2017 1 次提交
    • D
      Merge branch 'drm-vmwgfx-next' of git://people.freedesktop.org/~syeh/repos_linux into drm-next · 7558ab66
      Dave Airlie 提交于
      This series enables atomic mode set for vmwgfx.  A number of features and
      larger fixes are also included.
      
      * 'drm-vmwgfx-next' of git://people.freedesktop.org/~syeh/repos_linux: (22 commits)
        drm/vmwgfx: Properly check display/scanout surface size
        drm/vmwgfx: Support topology greater than texture size
        drm/vmwgfx: Define an overlaid handle_close ioctl.
        drm/vmwgfx: Re-implement the stream resource as a simple resource.
        drm/vmwgfx: Introduce a simple resource type
        drm/vmwgfx: Revert "drm/vmwgfx: Replace numeric parameter like 0444 with macro"
        drm/vmwgfx: Fix LDU X blank screen until mode change issue
        drm/vmwgfx: Skipping fbdev fb pinning for ldu
        drm/vmwgfx: Explicityly track screen target width and height
        drm/vmwgfx: Turn on DRIVER_ATOMIC flag
        drm/vmwgfx: Switch over to internal atomic API for SOU and LDU
        drm/vmwgfx: Switch over to internal atomic API for STDU
        drm/vmwgfx: Fixes to vmwgfx_fb
        drm/vmwgfx: Add and connect atomic state object check/commit
        drm/vmwgfx: Add and connect connector helper function
        drm/vmwgfx: Add and connect plane helper functions
        drm/vmwgfx: Add and connect CRTC helper functions
        drm/vmwgfx: Connector atomic state
        drm/vmwgfx: Plane atomic state
        drm/vmwgfx: CRTC atomic state
        ...
      7558ab66
  3. 01 4月, 2017 22 次提交
  4. 31 3月, 2017 2 次提交
    • D
      Merge branch 'drm-next-4.12' of git://people.freedesktop.org/~agd5f/linux into drm-next · 8cd3ac52
      Dave Airlie 提交于
      New stuff for 4.12:
      - Preliminary vega10 support
      - Support for multi-level page tables
      - GPU sensor stuff for mesa
      - job tracing improvements
      - PRT support for sparse buffers
      - Additional SR-IOV improvements
      - ttm improvements
      - misc bug fixes and code cleanups
      
      * 'drm-next-4.12' of git://people.freedesktop.org/~agd5f/linux: (315 commits)
        drm/amdgpu: Fix 32bit x86 compilation warning
        drm/amdgpu: just disallow reading untouched registers
        drm/amdgpu: remove duplicate allowed reg CP_CPF_BUSY_STAT
        drm/amdgpu/soc15: enable psp block for SRIOV
        drm/amdgpu/soc15: bypass pp block for vf
        drm/amdgpu/psp: add check sOS sign
        drm/amd/amdgpu: Correct ring wptr address in debugfs (v2)
        drm/amdgpu: Fix multi-level page table bugs for large BOs v3
        drm/amdgpu: Fix Vega10 VM initialization
        drm/amdgpu: Make max_pfn 64-bit
        drm/amdgpu: drop GB_GPU_ID from the golden settings
        drm/amdgpu: fix vm pte pde flags to 64-bit for sdma (v3)
        drm/amd/amdgpu: fix Tonga S3 resume hang on rhel6.8
        drm/ttm: decrease ttm bo priority number
        drm/amd/amdgpu: fix performance drop when VRAM pressure
        drm/amdgpu: Couple small warning fixes
        drm/amdgpu: Clean up GFX 9 VM fault messages
        drm/amdgpu: Register UTCL2 as a source of VM faults
        drm/amdgpu/soc15: drop support for reading some registers
        drm/amdgpu/soc15: return cached values for some registers (v2)
        ...
      8cd3ac52
    • L
      apple-gmux: Don't switch external DP port on 2011+ MacBook Pros · b121b051
      Lukas Wunner 提交于
      On MacBook Pros introduced 2011 and onward, external DP ports are
      combined DP/Thunderbolt ports that are no longer fully switchable
      between GPUs, they can only be driven by the discrete GPU.
      
      More specifically, the Main Link pins (which transport the actual video
      and audio streams) are soldered to the discrete GPU, whereas the AUX
      Channel pins are switchable. Because the integrated GPU is missing the
      Main Link, external displays appear to it as phantoms which fail to
      link-train.
      
      Force the AUX channel to the discrete GPU on these models to avoid any
      confusion. Document the switching policy implemented by this commit.
      Acked-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Link: http://patchwork.freedesktop.org/patch/msgid/4d1fcc92d1960049e2cff997fbd2d74e45e84e49.1489145162.git.lukas@wunner.de
      b121b051