1. 08 5月, 2015 7 次提交
    • S
      drm/i915: Rename dp rates array as per platform · 637a9c63
      Sonika Jindal 提交于
      Renaming gen9_rates to skl_rates because other platforms may have different
      supported rates.
      Signed-off-by: NSonika Jindal <sonika.jindal@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      637a9c63
    • T
      drm/i915: Implement the intel_dp_autotest_edid function for DP EDID complaince tests · 559be30c
      Todd Previte 提交于
      Updates the EDID compliance test function to perform the analyze and react to
      the EDID data read as a result of a hot plug event. The results of this
      analysis are handed off to userspace so that the userspace app can set the
      display mode appropriately for the test result/response.
      
      The compliance_test_active flag now appears at the end of the individual
      test handling functions. This is so that the kernel-side operations can
      be completed without the risk of interruption from the userspace app
      that is polling on that flag.
      
      V2:
      - Addressed mailing list feedback
      - Removed excess debug messages
      - Removed extraneous comments
      - Fixed formatting issues (line length > 80)
      - Updated the debug message in compute_edid_checksum to output hex values
        instead of decimal
      V3:
      - Addressed more list feedback
      - Added the test_active flag to the autotest function
      - Removed test_active flag from handler
      - Added failsafe check on the compliance test active flag
        at the end of the test handler
      - Fixed checkpatch.pl issues
      V4:
      - Removed the checksum computation function and its use as it has been
        rendered superfluous by changes to the core DRM EDID functions
      - Updated to use the raw header corruption detection mechanism
      - Moved the declaration of the test_data variable here
      V5:
      - Update test active flag variable name to match the change in the
        first patch of the series.
      - Relocated the test active flag declaration and initialization
        to this patch
      V6:
      - Updated to use the new flag for raw EDID header corruption
      - Removed the extra EDID read from the autotest function
      - Added the edid_checksum variable to struct intel_dp so that the
        autotest function can write it to the sink device
      - Moved the update to the hpd_pulse function to another patch
      - Removed extraneous constants
      V7:
      - Fixed erroneous placement of the checksum assignment. In some cases
        such as when the EDID read fails and is NULL, this causes a NULL ptr
        dereference in the kernel. Bad news. Fixed now.
      V8:
      - Updated to support the kfree() on the EDID data added previously
      V9:
      - Updated for the long_hpd flag propagation
      V10:
      - Updated to use actual checksum from the EDID read that occurs during
        normal hot plug path execution
      - Removed variables from intel_dp struct that are no longer needed
      - Updated the patch subject to more closely match the nature and contents
        of the patch
      - Fixed formatting problem (long line)
      V11:
      - Removed extra debug messages
      - Updated comments to be more informative
      - Removed extra variable
      V12:
      - Removed the 4 bit offset of the resolution setting in compliance data
      - Changed to DRM_DEBUG_KMS instead of DRM_DEBUG_DRIVER
      Signed-off-by: NTodd Previte <tprevite@gmail.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      559be30c
    • S
      drm/i915/skl: Add module parameter to select edp vswing table · 9e458034
      Sonika Jindal 提交于
      This provides an option to override the value set by VBT
      for selecting edp Vswing Pre-emph setting table.
      
      v2: Adding comment about this being a temporary workaround and
      making the parameter read-only (Jani)
      v3: Changing mode to 0400 instead of 0 (Jani)
      
      https://bugs.freedesktop.org/show_bug.cgi?id=89554Signed-off-by: NSonika Jindal <sonika.jindal@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9e458034
    • D
    • M
      drm/i915: DP link training optimization · 5fa836a9
      Mika Kahola 提交于
      This patch adds DP link training optimization by reusing the
      previously trained values.
      
      v2:
      - rebase
      
      V3:
      - rebase
      
      V4:
      - when HPD long pulse is received, the flag is cleared
        that indicates if DP link training is required or not
        (based on Sivakumar's comment)
      Signed-off-by: NMika Kahola <mika.kahola@intel.com>
      Reviewed-by: NSivakumar Thulasimani <sivakumar.thulasimani@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5fa836a9
    • M
      drm/i915: eDP link training optimization · 4e96c977
      Mika Kahola 提交于
      This is a first of series patches that optimize DP link
      training. The first patch is for eDP only where we reuse
      the previously trained link training values from cache
      i.e. voltage swing and pre-emphasis levels.
      
      In case we are not able to train the link by reusing
      the known values, the link training parameters are set
      to zero and training is restarted.
      
      V2:
      - flag that indicates if DP link is trained and valid
        renamed from 'link_trained' to 'train_set_valid'
      - removed routine 'intel_dp_reuse_link_train'
      
      V3:
      - rebased against the latest drm-intel-nightly
      
      V4:
      - removed HPD long pulse handling for eDP case to clear the
        flag that indicates to reuse the current link training
        parameters. (based on Sivakumar's comment)
      Signed-off-by: NMika Kahola <mika.kahola@intel.com>
      Reviewed-by: NSivakumar Thulasimani <sivakumar.thulasimani@intel.com>
      [danvet: s/DP/eDP/ in subject to make scope clear.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4e96c977
    • T
      drm/i915: Move Displayport test request and sink IRQ logic to intel_dp_detect() · 09b1eb13
      Todd Previte 提交于
      Due to changes in the driver and to support Displayport compliance testing,
      the test request and sink IRQ logic has been relocated from
      intel_dp_check_link_status to intel_dp_detect. This is because the bulk of the
      compliance tests that set the TEST_REQUEST bit in the DEVICE_IRQ field of the
      DPCD issue a long pulse / hot plug event to signify the start of the test.
      Currently, for a long pulse, intel_dp_check_link_status is not called for a
      long HPD pulse, so if test requests come in, they cannot be detected by the
      driver.
      
      Once located in the intel_dp_detect, in the regular hot plug event path,
      proper detection of Displayport compliance test requests occurs which then
      invokes the test handler to support them. Additionally, this places compliance
      testing in the normal operational paths, eliminating as much special case code
      as possible.
      
      The only change in intel_dp_check_link_status with this patch is that when
      the IRQ is the result of a test request from the sink, the test handler is not
      invoked during the short pulse path. Short pulse test requests are for a
      particular variety of tests (mainly link training) that will be implemented
      in the future. Once those tests are available, the test request handler will
      be called from here as well.
      
      V2:
      - Rewored the commit message to be more clear about the content and intent
        of this patch
      - Restore IRQ detection logic to intel_dp_check_link_status(). Continue to
        detect and clear sink IRQs in the short pulse case. Ignore test requests
        in the short pulses for now since they are for future test implementations.
      Signed-off-by: NTodd Previte <tprevite@gmail.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      09b1eb13
  2. 16 4月, 2015 6 次提交
    • T
      drm/i915: Add a delay in Displayport AUX transactions for compliance testing · 74ebf294
      Todd Previte 提交于
      The Displayport Link Layer Compliance Testing Specification 1.2 rev 1.1
      specifies that repeated AUX transactions after a failure (no response /
      invalid response) must have a minimum delay of 400us before the resend can
      occur. Tests 4.2.1.1 and 4.2.1.2 are two tests that require this specifically.
      
      Also, the check for DP_AUX_CH_CTL_TIME_OUT_ERROR has been moved out into a
      separate case. This case just continues with the next iteration of the loop
      as the HW has already waited the required amount of time.
      
      V2:
      - Changed udelay() to usleep_range()
      V3:
      - Removed extraneous check for timeout
      - Updated comment to reflect this change
      V4:
      - Reformatted a comment
      V5:
      - Added separate check for HW timeout on AUX transactions. A message
        is logged upon detection of this case.
      V6:
      - Add continue statement to HW timeout detect case
      - Remove the log message indicating a timeout has been
        detected (review feedback)
      V7:
      - Updated the commit message to remove verbage about the HW timeout
        case that is no longer valid.
      Signed-off-by: NTodd Previte <tprevite@gmail.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      74ebf294
    • T
      drm/i915: Add automated testing support for Displayport compliance testing · c5d5ab7a
      Todd Previte 提交于
      Add the skeleton framework for supporting automation for Displayport compliance
      testing. This patch adds the necessary framework for the source device to
      appropriately respond to test automation requests from a sink device.
      
      V2:
      - Addressed previous mailing list feedback
      - Fixed compilation issue (struct members declared in a later patch)
      - Updated debug messages to be more accurate
      - Added status checks for the DPCD read/write calls
      - Removed excess comments and debug messages
      - Fixed debug message compilation warnings
      - Fixed compilation issue with missing variables
      - Updated link training autotest to ACK
      
      V3:
      - Fixed the checks on the DPCD return code to be <= 0
        rather than != 0
      - Removed extraneous assignment of a NAK return code in the
        DPCD read failure case
      - Changed the return in the DPCD read failure case to a goto
        to the exit point where the status code is written to the sink
      - Removed FAUX test case since it's deprecated now
      - Removed the compliance flag assignment in handle_test_request
      
      V4:
      - Moved declaration of type_type here
      - Removed declaration of test_data (moved to a later patch)
      - Added reset to 0 for compliance test variables
      
      V5:
      - Moved test_active variable declaration and initialization out of
        this patch and into the patch where it's used
      - Changed variable name compliance_testing_active to
        compliance_test_active to unify the naming convention
      - Added initialization for compliance_test_type variable
      Signed-off-by: NTodd Previte <tprevite@gmail.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c5d5ab7a
    • D
      drm/i915/dp: Remove intel_ prefix from hw signal_levels functions · 5829975c
      Daniel Vetter 提交于
      intel_ is for generic code bxt_ and friends for platform specific
      functions. Remove the intel_ prefix to be consistent with our naming.
      
      Random OCD bikeshed I've spotted while merging bxt patches.
      
      v2: Oops, git add fail.
      
      Cc: Imre Deak <imre.deak@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      5829975c
    • V
      drm/i915/bxt: Update max level of vswing · 9314726b
      Vandana Kannan 提交于
      Broxton supports 3 voltage swing levels on all DP ports.
      Max level of pre-emphasis will be taken care with the existing code.
      
      v2: Patch rebased
      
      v3: (imre)
      - keep existing behavior for other platforms
      - clarify commit message
      
      Signed-off-by: Vandana Kannan <vandana.kannan@intel.com> (v2)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NSivakumar Thulasimani <sivakumar.thulasimani@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9314726b
    • V
      drm/i915/bxt: VSwing programming sequence · 96fb9f9b
      Vandana Kannan 提交于
      VSwing programming sequence as specified in the updated BXT BSpec
      
      v2: Satheesh's review comments addressed.
      - clear value before setting into registers
      - move print statement to bxt function
      Other changes
      - since signal level will not be set into DDI_BUF_CTL, the value need
        not be returned to intel_dp_set_signal_levels(). Making the bxt
        specific function to return void and setting signal_levels = 0 for
        bxt inside intel_dp_set_signal_levels()
      - instead of signal levels, printing vswing level and pre-emphasis
        level
      - in case none of the pre-emphasis levels or vswing levels are set,
        setting default of 400mV + 0dB
      
      v3: Satheesh's review comments
      - Check for mask before printing signal_levels.
      - Removing redundant register writes
      - Call intel_prepare_ddi_buffers only for HAS_PCH_SPLIT
      - Making register write part generic as it will be required for HDMI as
        well.
      
      Re-structure the code to include an array for vswing related values, set
      signal levels
      
      v4: Satheesh's review comments
      - Rebase over latest renaming patches
      - use hsw_signal_levels for HAS_DDI
      Other changes
      - Modified vswing_sequence() func definition
      - Rebased on top of register macro definitions
      
      v5: Satheesh's review comments
      - Check ddi translation table size
      
      v6: Imre's review comments
      - removed comments in vswing sequence
      - added vswing, pre-emphasis prints in intel_dp_set_signal_levels
      - added comment explaining use of DP vswing values for eDP
      - initialize n_entries and ddi_transaltion table based on encoder type
      - create bxt_ddi_buf_trans structure and use decimal values
      - adding a flag in bxt buffer translation table to indicate def entry
      
      v7: (imre)
      - squash in Vandana's "VSwing register definition",
        "HDMI VSwing programming", "Re-enable vswing programming",
        "Fix vswing sequence" patches
      - use BXT_PORT_* regs directly instead of via a temp var
      - simplify BXT_PORT_* macro definitions
      - add code comment why we read lane while write group registers
      - fix readout of DP_TRAIN_PRE_EMPHASIS in debug message
      
      Signed-off-by: Vandana Kannan <vandana.kannan@intel.com> (v6)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NSivakumar Thulasimani <sivakumar.thulasimani@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      96fb9f9b
    • S
      drm/i915/bxt: Determine programmed frequency · 977bb38d
      Satheeshakrishna M 提交于
      Add placeholder function for calculating programmed pixel clock.
      Note: Formula to back calculate link clock from dividers not
      available currently.
      
      v2:
      - rebased on upstream s/crtc_config/crtc_state/ change (imre)
      
      Signed-off-by: Satheeshakrishna M <satheeshakrishna.m@intel.com> (v1)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      977bb38d
  3. 13 4月, 2015 3 次提交
  4. 10 4月, 2015 3 次提交
  5. 07 4月, 2015 2 次提交
    • J
      drm/i915: add i915 specific connector debugfs file for DPCD · aa7471d2
      Jani Nikula 提交于
      Occasionally it would be interesting to read some of the DPCD registers
      for debug purposes, without having to resort to logging. Add an i915
      specific i915_dpcd debugfs file for DP and eDP connectors to dump parts
      of the DPCD. Currently the DPCD addresses to be dumped are statically
      configured, and more can be added trivially.
      
      The implementation also makes it relatively easy to add other i915 and
      connector specific debugfs files in the future, as necessary.
      
      This is currently i915 specific just because there's no generic way to
      do AUX transactions given just a drm_connector. However it's all pretty
      straightforward to port to other drivers.
      
      v2: Add more DPCD registers to dump.
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NBob Paauwe <bob.j.paauwe@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      aa7471d2
    • S
      drm/i915/skl: Enabling PSR2 SU with frame sync · 474d1ec4
      Sonika Jindal 提交于
      We make use of HW tracking for Selective update region and enable frame sync on
      sink. We use hardware's hardcoded data values for frame sync and GTC.
      
      v2: Add 3200x2000 resolution restriction with PSR2, move psr2_support to i915_psr
      struct, add aux_frame_sync to independently control aux frame sync, rename the
      TP2 TIME macro for 2500us (Rodrigo, Siva)
      v3: Moving the resolution restriction to intel_psr_enable so that we check it
      only once(Durga)
      
      Cc: Durgadoss R <durgadoss.r@intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NSonika Jindal <sonika.jindal@intel.com>
      Reviewed-by: NDurgadoss R <durgadoss.r@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      474d1ec4
  6. 31 3月, 2015 2 次提交
  7. 27 3月, 2015 2 次提交
  8. 26 3月, 2015 1 次提交
  9. 24 3月, 2015 1 次提交
  10. 20 3月, 2015 13 次提交