1. 10 Apr, 2014 3 commits
    • Pradeep Bhat's avatar
      drm/i915: Add support for DRRS to switch RR · 439d7ac0
      Pradeep Bhat authored
      This patch computes and stored 2nd M/N/TU for switching to different
      refresh rate dynamically. PIPECONF_EDP_RR_MODE_SWITCH bit helps toggle
      between alternate refresh rates programmed in 2nd M/N/TU registers.
      
      v2: Daniel's review comments
      Computing M2/N2 in compute_config and storing it in crtc_config
      
      v3: Modified reference to edp_downclock and edp_downclock_avail based on the
      changes made to move them from dev_private to intel_panel.
      
      v4: Modified references to is_drrs_supported based on the changes made to
      rename it to drrs_support.
      
      v5: Jani's review comments
      Removed superfluous return statements. Changed support for Gen 7 and above.
      Corrected indentation. Re-structured the code which finds crtc and connector
      from encoder. Changed some logs to be less verbose.
      
      v6: Modifying i915_drrs to include only intel connector as intel_dp can be
      derived from intel connector when required.
      
      v7: As per internal review comments, acquiring mutex just before accessing
      drrs RR. As per Chris's review comments, added documentation about the use
      of locking in the function.
      
      v8: Incorporated Jani's review comments.
      Removed reference to edp_downclock.
      
      v9: Jani's review comments. Modified comment in set_drrs. Changed index to
      type edp_drrs_refresh_rate_type. Check if PSR is enabled before setting
      registers fo DRRS.
      Signed-off-by: default avatarPradeep Bhat <pradeep.bhat@intel.com>
      Signed-off-by: default avatarVandana Kannan <vandana.kannan@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      439d7ac0
    • Pradeep Bhat's avatar
      drm/i915: Parse EDID probed modes for DRRS support · 4f9db5b5
      Pradeep Bhat authored
      This patch and finds out the lowest refresh rate supported for the resolution
      same as the fixed_mode.
      It also checks the VBT fields to see if panel supports seamless DRRS or not.
      Based on above data it marks whether eDP panel supports seamless DRRS or not.
      This information is needed for supporting seamless DRRS switch for certain
      power saving usecases. This patch is tested by enabling the DRM logs and
      user should see whether Seamless DRRS is supported or not.
      
      v2: Daniel's review comments
      Modified downclock deduction based on intel_find_panel_downclock
      
      v3: Chris's review comments
      Moved edp_downclock_avail and edp_downclock to intel_panel
      
      v4: Jani's review comments.
      Changed name of the enum edp_panel_type to drrs_support type.
      Change is_drrs_supported to drrs_support of type enum drrs_support_type.
      
      v5: Incorporated Jani's review comments
      Modify intel_dp_drrs_initialize to return downclock mode. Support for Gen7
      and above.
      
      v6: Incorporated Chris's review comments.
      Changed initialize to init in intel_drrs_initialize
      
      v7: Incorporated Jani's review comments.
      Removed edp_downclock and edp_downclock_avail. Return NULL explicitly.
      Make drrs_state and unnamed struct. Move Gen based check inside drrs_init.
      
      v8: Made changes to track PSR enable/disable throughout system use (instead
      of just in the init sequence) for disabling/enabling DRRS. Jani's review
      comments.
      
      v9: PSR tracking will be done as part of idleness detection patch. Removed
      PSR state tracker in i915_drrs. Jani's review comments.
      
      v10: Added log for DRRS not supported in drrs_init
      
      v11: Modification in drrs_init. suggested by Jani
      Signed-off-by: default avatarPradeep Bhat <pradeep.bhat@intel.com>
      Signed-off-by: default avatarVandana Kannan <vandana.kannan@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      4f9db5b5
    • Daniel Vetter's avatar
      Revert "drm/i915: fix infinite loop at gen6_update_ring_freq" · fc1744ff
      Daniel Vetter authored
      This reverts commit 4b28a1f3.
      
      This patch duct-tapes over some issue in the current bdw rps patches
      which must wait with enabling rc6/rps until the very first batch has
      been submitted by userspace.
      
      But those patches aren't merged yet, and for upstream we need to have
      an in-kernel emission of the very first batch. I shouldn't have
      merged this patch so let's revert it again.
      
      Also Imre noticed that even when rps is set up normally there's a
      small window (due to the 1s delay of the async rps init work) where we
      could runtime suspend already and blow up all over the place. Imre has
      a proper fix to block runtime pm until the rps init work has
      successfully completed.
      
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      fc1744ff
  2. 09 Apr, 2014 32 commits
  3. 08 Apr, 2014 1 commit
  4. 05 Apr, 2014 4 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel into drm-next · 9f97ba80
      Dave Airlie authored
       Merge window -fixes pull request as usual. Well, I did sneak in Jani's
      drm_i915_private_t typedef removal, need to have fun with a big sed job
      too ;-)
      
      Otherwise:
      - hdmi interlaced fixes (Jesse&Ville)
      - pipe error/underrun/crc tracking fixes, regression in late 3.14-rc (but
        not cc: stable since only really relevant for igt runs)
      - large cursor wm fixes (Chris)
      - fix gpu turbo boost/throttle again, was getting stuck due to vlv rps
        patches (Chris+Imre)
      - fix runtime pm fallout (Paulo)
      - bios framebuffer inherit fix (Chris)
      - a few smaller things
      
      * tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel: (196 commits)
        Skip intel_crt_init for Dell XPS 8700
        drm/i915: vlv: fix RPS interrupt mask setting
        Revert "drm/i915/vlv: fixup DDR freq detection per Punit spec"
        drm/i915: move power domain init earlier during system resume
        drm/i915: Fix the computation of required fb size for pipe
        drm/i915: don't get/put runtime PM at the debugfs forcewake file
        drm/i915: fix WARNs when reading DDI state while suspended
        drm/i915: don't read cursor registers on powered down pipes
        drm/i915: get runtime PM at i915_display_info
        drm/i915: don't read pp_ctrl_reg if we're suspended
        drm/i915: get runtime PM at i915_reg_read_ioctl
        drm/i915: don't schedule force_wake_timer at gen6_read
        drm/i915: vlv: reserve the GT power context only once during driver init
        drm/i915: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/overlay: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/ringbuffer: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/display: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/irq: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/gem: prefer struct drm_i915_private to drm_i915_private_t
        drm/i915/dma: prefer struct drm_i915_private to drm_i915_private_t
        ...
      9f97ba80
    • Dave Airlie's avatar
      Merge tag 'drm/tegra/for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next · 82c68b6c
      Dave Airlie authored
      drm/tegra: Changes for v3.15-rc1
      
      Implement eDP support for Tegra124 and support the PRIME vmap()/vunmap()
      operations.
      
      A symbol that is required for upcoming V4L2 support is now exported by
      the host1x driver.
      
      Relicense drivers under the GPL v2 for consistency. One exception is the
      public header file, which is relicensed under MIT to abide by the common
      rule.
      
      * tag 'drm/tegra/for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux:
        drm/tegra: Use standard GPL v2 license text
        drm/tegra: Relicense under GPL v2
        drm/tegra: Relicense public header under MIT
        drm/tegra: Add eDP support
        gpu: host1x: export host1x_syncpt_incr_max() function
        drm/tegra: prime: Add vmap support
      82c68b6c
    • Dave Airlie's avatar
      Merge tag 'drm/panel/for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next · 243b930f
      Dave Airlie authored
      drm/panel: Changes for v3.15-rc1
      
      Add support for a couple more simple panels. A few cleanups to the
      simple panel driver are also included (gpiod interface conversion,
      removal of redundant call to regulator_disable()).
      
      * tag 'drm/panel/for-3.15-rc1' of git://anongit.freedesktop.org/tegra/linux:
        drm/panel: add support for LG LD070WX3-SL01 panel
        drm/panel: add support for LG LH500WX1-SD03 panel
        drm/panel: simple: Allow DSI panels to provide mode flags
        drm/panel: simple: Allow GPIO accesses to sleep
        drm/panel: remove redundant regulator_disable()
        drm/panel: use gpiod interface for enable GPIO
        drm/panel: Add LG 12.9" LCD panel
        MAINTAINERS: Add entry for DRM panel drivers
      
      Conflicts:
      	MAINTAINERS
      243b930f
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-next' of... · 13b93892
      Dave Airlie authored
      Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
      
      Summaries:
      - Add MIPI-DSI Driver, and dt bindigs
      - Add S6E8AA0 MIPI-DSI based panel drivers, and dt bindings
      - Add LD9040 parallel panel driver
       . this driver is placed in drivers/gpu/drm/panel, and it seems
         to be used for exynos drm as of now,
      - Some fixups
      
      Changelog v2:
      - Remove super device support, and relevant dt bindings for more reviews.
      - Fix module build errors you pointed out.
      - Re-based it to drm-next again.
      
      * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
        drm/bridge: export ptn3460_init function
        drm/exynos: remove MODULE_DEVICE_TABLE definitions
        ARM: dts: exynos4412-trats2: enable exynos/fimd node
        ARM: dts: exynos4210-trats: enable exynos/fimd node
        ARM: dts: exynos4412-trats2: add panel node
        ARM: dts: exynos4210-trats: add panel node
        ARM: dts: exynos4: add MIPI DSI Master node
        drm/panel: add S6E8AA0 driver
        ARM: dts: exynos4210-universal_c210: add proper panel node
        drm/panel: add ld9040 driver
        panel/ld9040: add DT bindings
        panel/s6e8aa0: add DT bindings
        drm/exynos: add DSIM driver
        exynos/dsim: add DT bindings
        drm/exynos: disallow fbdev initialization if no device is connected
        drm/mipi_dsi: create dsi devices only for nodes with reg property
        drm/mipi_dsi: add flags to DSI messages
      13b93892