1. 21 7月, 2015 1 次提交
  2. 10 4月, 2015 1 次提交
    • V
      drm/i915: Fix the VBT child device parsing for BSW · 90e4f159
      Ville Syrjälä 提交于
      Recent BSW VBT has a VBT child device size 37 bytes instead of the 33
      bytes our code assumes. This means we fail to parse the VBT and thus
      fail to detect eDP ports properly and just register them as DP ports
      instead.
      
      Fix it up by using the reported child device size from the VBT instead
      of assuming it matches out struct defintions.
      
      The latest spec I have shows that the child device size should be 36
      bytes for rev >= 195, however on my BSW the size is actually 37 bytes.
      And our current struct definition is 33 bytes.
      
      Feels like the entire VBT parses would need to be rewritten to handle
      changes in the layout better, but for now I've decided to do just the
      bare minimum to get my eDP port back.
      
      Cc: Vijay Purushothaman <vijay.a.purushothaman@linux.intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      90e4f159
  3. 25 2月, 2015 1 次提交
  4. 07 1月, 2015 1 次提交
  5. 15 12月, 2014 1 次提交
    • D
      drm/i915: Parsing LFP brightness control from VBT · 371abae8
      Deepak M 提交于
      LFP brighness control from the VBT block 43 indicates which
      controller is used for brightness.
      LFP1 brightness control method:
      Bit 7-4 = This field controller number of the brightnes controller.
      0 = Controller 0
      1 = Controller 1
      2 = Controller 2
      3 = Controller 3
      Others = Reserved
      Bits 3-0 = This field specifies the brightness control pin to be used on the
      platform.
      0 = PMIC pin is used for brightness control
      1 = LPSS PWM is used for brightness control
      2 = Display DDI is used for brightness control
      3 = CABC method to control brightness
      Others = Reserved
      
      Adding the above fields in dev_priv->vbt and corresponding changes in
      parse_backlight()
      
      v2: Jani's review comments addressed
      	- Move PWM definitions to intel_bios.h
      	- Moving vbt_version to intel_vbt_data
      	- Rename brightness to bl_ctrl_data
      	- Logging just control_pin instead of string
      	- Avoid adding vbt_version in dev_priv
      	- Since only DDI option is available as of now, let control pin DDI
      	affect dev_priv->vbt.backlight.present
      
      v3: Jani's review comments addressed
      	- Drop control_pin
      	- Use bdb->version
      	- set controller to 0 instead of using control pin define
      	- check controller bounds
      	- remove superfluous changes in intel_parse_bios
      Signed-off-by: NDeepak M <m.deepak@intel.com>
      Signed-off-by: NVandana Kannan <vandana.kannan@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      371abae8
  6. 05 12月, 2014 1 次提交
  7. 03 12月, 2014 1 次提交
  8. 19 9月, 2014 1 次提交
  9. 08 8月, 2014 1 次提交
  10. 05 6月, 2014 1 次提交
    • S
      drm/i915: Detect if MIPI panel based on VBT and initialize only if present · 3e6bd011
      Shobhit Kumar 提交于
      It seems by default the VBT has MIPI configuration block as well. The
      Generic driver will assume always MIPI if MIPI configuration block is found.
      This is causing probelm when actually there is eDP. Fix this by looking
      into general definition block which will have device configurations. From here
      we can figure out what is the LFP type and initialize MIPI only if MIPI
      is found.
      
      v2: Addressed review comments by Damien
          - Moved PORT definitions to intel_bios.h and renamed as DVO_PORT_MIPIA
          - renamed is_mipi to has_mipi and moved definition as suggested
          - Check has_mipi inside parse_mipi and intel_dsi_init insted of outside
      
      v3: Make has_mipi as a bitfield as suggested
      Signed-off-by: NShobhit Kumar <shobhit.kumar@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      [danvet: fold in conditions to pack everything neatly below 80 chars.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3e6bd011
  11. 14 4月, 2014 1 次提交
  12. 11 4月, 2014 1 次提交
  13. 02 4月, 2014 1 次提交
    • P
      drm/i915: Adding VBT fields to support eDP DRRS feature · 83a7280e
      Pradeep Bhat 提交于
      This patch reads the DRRS support and Mode type from VBT fields.
      The read information will be stored in VBT struct during BIOS
      parsing. The above functionality is needed for decision making
      whether DRRS feature is supported in i915 driver for eDP panels.
      This information helps us decide if seamless DRRS can be done
      at runtime to support certain power saving features. This patch
      was tested by setting necessary bit in VBT struct and merging
      the new VBT with system BIOS so that we can read the value.
      
      v2: Incorporated review comments from Chris Wilson
      Removed "intel_" as a prefix for DRRS specific declarations.
      
      v3: Incorporated Jani's review comments
      Removed function which deducts drrs mode from panel_type. Modified some
      print statements. Made changes to use DRRS_NOT_SUPPORTED as 0 instead of -1.
      
      v4: Incorporated Jani's review comments.
      Modifications around setting vbt drrs_type.
      Signed-off-by: NPradeep Bhat <pradeep.bhat@intel.com>
      Signed-off-by: NVandana Kannan <vandana.kannan@intel.com>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      [danvet: Drop the misleading/redundant comment about the added drrs
      field in the vbt struct as discussed with Jani on irc.]
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      83a7280e
  14. 06 3月, 2014 1 次提交
  15. 16 12月, 2013 1 次提交
  16. 04 12月, 2013 1 次提交
  17. 05 11月, 2013 2 次提交
  18. 01 10月, 2013 2 次提交
    • P
      drm/i915: use the HDMI DDI buffer translations from VBT · 6acab15a
      Paulo Zanoni 提交于
      We currently use the recommended values from BSpec, but the VBT
      specifies the correct value to use for the hardware we have, so use
      it. We also fall back to the recommended value in case we can't find
      the VBT.
      
      In addition, this code also provides some infrastructure to parse more
      information about the DDI ports. There's a lot more information we
      could extract and use in the future.
      
      v2: - Move some code to init_vbt_defaults.
      v3: - Rebase
          - Clarify the "DVO Port" matching code
      v4: - Use I915_MAX_PORTS
          - Change the HAS_DDI checks
          - Replace DRM_ERROR with DRM_DEBUG_KMS
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6acab15a
    • P
      drm/i915: VBT's child_device_config changes over time · 768f69c9
      Paulo Zanoni 提交于
      We currently treat the child_device_config as a simple struct, but
      this is not correct: new BDB versions change the meaning of some
      offsets, so the struct needs to be adjusted for each version.
      
      Since there are too many changes (today we're in version 170!), making
      a big versioned union would be too complicated, so child_device_config
      is now a union of 3 things: (i) a "raw" byte array that's safe to use
      anywhere; (ii)  an "old" structure that's the one we've been using and
      should be safe to keep in the SDVO and TV code; and (iii) a "common"
      structure that should contain only fields that are common for all the
      known VBT versions.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      768f69c9
  19. 04 9月, 2013 1 次提交
  20. 18 4月, 2013 1 次提交
  21. 03 10月, 2012 1 次提交
  22. 27 6月, 2012 1 次提交
  23. 14 1月, 2012 1 次提交
  24. 21 10月, 2011 1 次提交
  25. 06 10月, 2011 1 次提交
    • K
      drm/i915: Correct eDP panel power sequencing delay computations · f01eca2e
      Keith Packard 提交于
      Store the panel power sequencing delays in the dp private structure,
      rather than the global device structure. Who knows, maybe we'll get
      more than one eDP device in the future.
      
      From the eDP spec, we need the following numbers:
      
       T1 + T3	Power on to Aux Channel operation (panel_power_up_delay)
      
      		This marks how long it takes the panel to boot up and
      		get ready to receive aux channel communications.
      
       T8		Video signal to backlight on (backlight_on_delay)
      
      		Once a valid video signal is being sent to the device,
      		it can take a while before the panel is actuall
      		showing useful data. This delay allows the panel
      		to get something reasonable up before the backlight
      		is turned on.
      
       T9		Backlight off to video off (backlight_off_delay)
      
      		Turning the backlight off can take a moment, so
      		this delay makes sure there is still valid video
      		data on the screen.
      
       T10		Video off to power off (panel_power_down_delay)
      
      		Presumably this delay allows the panel to perform
      		an orderly shutdown of the display.
      
       T11 + T12	Power off to power on (panel_power_cycle_delay)
      
      		So, once you turn the panel off, you have to wait a
      		while before you can turn it back on. This delay is
      		usually the longest in the entire sequence.
      
      Neither the VBIOS source code nor the hardware documentation has a
      clear mapping between the delay values they provide and those required
      by the eDP spec. The VBIOS code actually uses two different labels for
      the delay values in the five words of the relevant VBT table.
      
      **** MORE LATER ***
      
      Look at both the current hardware register settings and the VBT
      specified panel power sequencing timings. Use the maximum of the two
      delays, to make sure things work reliably. If there is no VBT data,
      then those values will be initialized to zero, so we'll just use the
      values as programmed in the hardware. Note that the BIOS just fetches
      delays from the VBT table to place in the hardware registers, so we
      should get the same values from both places, except for rounding.
      
      VBT doesn't provide any values for T1 or T2, so we'll always just use
      the hardware value for that.
      
      The panel power up delay is thus T1 + T2 + T3, which should be
      sufficient in all cases.
      
      The panel power down delay is T1 + T2 + T12, using T1+T2 as a proxy
      for T11, which isn't available anywhere.
      
      For the backlight delays, the eDP spec says T6 + T8 is the delay from the
      end of link training to backlight on and T9 is the delay from
      backlight off until video off. The hardware provides a 'backlight on'
      delay, which I'm taking to be T6 + T8 while the VBT provides something
      called 'T7', which I'm assuming is s
      
      On the macbook air I'm testing with, this yields a power-up delay of
      over 200ms and a power-down delay of over 600ms. It all works now, but
      we're frobbing these power controls several times during mode setting,
      making the whole process take an awfully long time.
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      f01eca2e
  26. 28 9月, 2011 2 次提交
  27. 20 9月, 2011 1 次提交
  28. 22 2月, 2011 1 次提交
  29. 19 1月, 2011 1 次提交
    • C
      drm/i915: Disable SSC for outputs other than LVDS or DP · 633f2ea2
      Chris Wilson 提交于
      For CRT and SDVO/HDMI, we need to use a normal, non-SSC, clock and so we
      must clear any enabling bits left-over from earlier outputs. And also
      seems to correct the LVDS panel on the Lenovo U160.
      
      However, at one point, it did cause an "ERROR failed to disable
      trancoder". So prolonged testing on top of Jesse's refactored and
      error-checking CRTC logic is desired.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      633f2ea2
  30. 19 10月, 2010 1 次提交
  31. 28 9月, 2010 1 次提交
  32. 16 1月, 2010 1 次提交
  33. 01 12月, 2009 1 次提交
    • Z
      drm/i915: parse child device from VBT · 6363ee6f
      Zhao Yakui 提交于
      On some laptops there is no HDMI/DP. But the xrandr still reports
      several disconnected HDMI/display ports. In such case the user will be
      confused.
       >DVI1 disconnected (normal left inverted right x axis y axis)
       >DP1 disconnected (normal left inverted right x axis y axis)
       >DVI2 disconnected (normal left inverted right x axis y axis)
       >DP2 disconnected (normal left inverted right x axis y axis)
       >DP3 disconnected (normal left inverted right x axis y axis)
      
      This patch set is to use the child device parsed in VBT to decide whether
      the HDMI/DP/LVDS/TV should be initialized.
      
      Parse the child device from VBT.
      
      The device class type is also added for LFP, TV, HDMI, DP output.
      
      https://bugs.freedesktop.org/show_bug.cgi?id=22785Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Reviewed-by: NAdam Jackson <ajax@redhat.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      6363ee6f
  34. 30 7月, 2009 1 次提交
  35. 05 6月, 2009 1 次提交
  36. 23 5月, 2009 1 次提交
  37. 28 3月, 2009 1 次提交