- 20 Dec, 2011 1 commit
-
-
Christian Schmidt authored
My EFI BIOS starts the graphics card up in my projector's preferred EDID mode, 1080@60i. The Intel driver does not clear all the interlaced bits. This patch introduces a new PIPECONF_INTERLACE_MASK define and uses it to restore progressive mode. Signed-of-by:
Christian Schmidt <schmidt@digadd.de> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 01 Dec, 2011 1 commit
-
-
Ville Syrjälä authored
Name the formats as DRM_FORMAT_X instead of DRM_FOURCC_X. Use consistent names, especially for the RGB formats. Component order and byte order are now strictly specified for each format. The RGB format naming follows a convention where the components names and sizes are listed from left to right, matching the order within a single pixel from most significant bit to least significant bit. The YUV format names vary more. For the 4:2:2 packed formats and 2 plane formats use the fourcc. For the three plane formats the name includes the plane order and subsampling information using the standard subsampling notation. Some of those also happen to match the official fourcc definition. The fourccs for for all the RGB formats and some of the YUV formats I invented myself. The idea was that looking at just the fourcc you get some idea what the format is about without having to decode it using some external reference. Signed-off-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 15 Nov, 2011 1 commit
-
-
Jesse Barnes authored
To properly support the various plane formats supported by different hardware, the kernel must know the pixel format of a framebuffer object. So add a new ioctl taking a format argument corresponding to a fourcc name from the new drm_fourcc.h header file. Implement the fb creation hooks in terms of the new mode_fb_cmd2 using helpers where the old bpp/depth values are needed. v2: create DRM specific fourcc header file for sharing with libdrm etc v3: fix rebase failure and use DRM fourcc codes in intel_display.c and update commit message v4: make fb_cmd2 handle field into an array for multi-object formats pull in Ville's fix for the memcpy in drm_plane_init apply Ville's cleanup to zero out fb_cmd2 arg in drm_mode_addfb v5: add 'flags' field for interlaced support (from Ville) Signed-off-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by:
Alan Cox <alan@lxorguk.ukuu.org.uk> Reviewed-by:
Rob Clark <rob.clark@linaro.org> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 21 Oct, 2011 8 commits
-
-
Jesse Barnes authored
Belongs in PCH enable instead. The duplication is worrying and the specs explicitly list transcoder select *after* actual PLL enable, which doesn't occur until later. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Just some extra debug output. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
The watermark reg for the third pipe is in an unusual offset; add support for it and set watermarks for 3 pipe configs. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
At the point where we check, we can't do much about the failure, but it can aid debugging. Note that the auto-train override bit will be reset as part of normal mode setting with this patch if a pipe ever does get stuck, but that's consistent with the workaround for CPT provided by the hardware team. This patch helped catch the fact that the pipe wasn't running in the !composite sync FDI case on my IVB SDV, so has already shown to be useful. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Transcoder A will always use PLL A and transcoder B will use PLL B. But transcoder C could use either, so always mask the select bits off before or'ing in a new value. Reported-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
The cursor regs have moved around, add the offsets and new macros for getting at them. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
We can have more than just A and B these days. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Add two new fields to the intel_crtc struct for 3 pipe support: no_pll and use_pll_a. The no_pll field is only set on the 3rd pipe to indicate that it doesn't have a PLL of its own and so shouldn't try to write the main PLL regs. The use_pll_a field controls which PLL pipe 3 will share, A or B. The core code will try to share PLLs with whichever pipe has the same timings, rejecting the mode set if none is found. This means that pipe 3 must always be set after one of the other pipes has been configured with real PLL settings. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 20 Oct, 2011 6 commits
-
-
Jesse Barnes authored
Add a couple of checks now that we're using the 3rd transcoder: 1) make sure the transcoder PLL enable bit is set for the transcoder in question 2) when checking actual PLL enable, use the selected PLL number rather than the transcoder number (they could be different now) Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Just a cleanup to make the mode_set function more manageable. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Well almost anyway. IVB has 3 planes, pipes, transcoders, and FDI interfaces, but only 2 pipe PLLs. So two of the pipes must use the same pipe timings (e.g. 2 DP plus one other, or two HDMI with the same mode and one other, etc.). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
Add a macro for accessing the two pipe PLLs and add a check to make sure we don't access a non-existent one in the enable/disable functions. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
It's needed for 3 pipe support as well as just regular functionality (e.g. DisplayPort). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-by:
Adam Jackson <ajax@redhat.com> Tested-by:
Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Daniel Vetter authored
The rps disabling code wasn't properly cancelling outstanding work items. Also add a comment that explains why we're not racing with the work item that could unmask interrupts - that piece of code confused me quite a bit. v2: Ben Widawsky pointed out that the first patch would deadlock (and a few lesser problems). All corrected. Signed-off-by:
Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by:
Ben Widawsky <ben@bwidawsk.net> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 28 Sep, 2011 3 commits
-
-
Keith Packard authored
The reference clock configuration must be done before any mode setting can occur as all outputs must be disabled to change anything. Initialize the clocks after turning everything off during the initialization process. Also, re-initialize the refclk at resume time. Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
I can't find any reference clocks which run at 96MHz as seems to be indicated from the comments in this code. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Keith Packard authored
When trying to use SSC on Ibex Peak without CK505, any non-SSC outputs (like VGA or TV) get broken. So, do not use SSC on Ibex Peak unless there is a CK505 available (as specified by the VBT). On Cougar Point, all clocking is internal, so SSC can always be used, and there will never be a CK505 available. This eliminates VGA shimmer on some Ironlake machines which have a CK505 clock source. References: https://bugzilla.kernel.org/show_bug.cgi?id=21742 References: https://bugs.freedesktop.org/show_bug.cgi?id=38750 Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 27 Sep, 2011 2 commits
-
-
Keith Packard authored
The PCH refclk settings are global, so we need to look at all of the encoders, not just the current encoder when deciding how to configure it. Also, handle systems with more than one panel (any combination of PCH/non-PCH eDP and LVDS). Disable SSC clocks when no panels are connected. Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
Allow SSC to be enabled even when the BIOS disables it for testing SSC paths. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 21 Sep, 2011 3 commits
-
-
Keith Packard authored
Make the default FBC behaviour chipset specific, allowing us to turn it on by default for Ironlake and older where it has been seen to cause trouble with screen updates. Signed-off-by:
Keith Packard <keithp@keithp.com> Tested-by:
Francis Moreau <francis.moro@gmail.com>
-
Wu Fengguang authored
Add ELD support for Intel Eaglelake, IbexPeak/Ironlake, SandyBridge/CougarPoint and IvyBridge/PantherPoint chips. ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio capabilities of the plugged monitor. It's built and passed to audio driver in 2 steps: (1) at get_modes time, parse EDID and save ELD to drm_connector.eld[] (2) at mode_set time, write drm_connector.eld[] to the Transcoder's hw ELD buffer and set the ELD_valid bit to inform HDMI/DP audio driver This patch is tested OK on G45/HDMI, IbexPeak/HDMI and IvyBridge/HDMI+DP. Test scheme: plug in the HDMI/DP monitor, and run cat /proc/asound/card0/eld* to check if the monitor name, HDMI/DP type, etc. show up correctly. Minor imperfection: the GEN5_AUD_CNTL_ST/DIP_Port_Select field always reads 0 (reserved). Without knowing the port number, I worked it around by setting the ELD_valid bit for ALL the three ports. It's tested to not be a problem, because the audio driver will find invalid ELD data and hence rightfully abort, even when it sees the ELD_valid indicator. Thanks to Zhenyu and Pierre-Louis for a lot of valuable help and testing. CC: Zhao Yakui <yakui.zhao@intel.com> CC: Wang Zhenyu <zhenyu.z.wang@intel.com> CC: Jeremy Bush <contractfrombelow@gmail.com> CC: Christopher White <c.white@pulseforce.com> CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com> CC: Paul Menzel <paulepanter@users.sourceforge.net> Signed-off-by:
Wu Fengguang <fengguang.wu@intel.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
We want to enable dithering on any pipe where the frame buffer has more color resolution than the output device. The previous code was incorrectly clamping the frame buffer bpc to the display bpc, effectively disabling dithering all of the time as the computed frame buffer bpc would never be larger than the display bpc. Signed-off-by:
Keith Packard <keithp@keithp.com> Reported-by:
Oliver Hartkopp <socketcan@hartkopp.net> Tested-by:
Oliver Hartkopp <socketcan@hartkopp.net>
-
- 19 Sep, 2011 2 commits
-
-
Keith Packard authored
We want to enable dithering on any pipe where the frame buffer has more color resolution than the output device. The previous code was incorrectly clamping the frame buffer bpc to the display bpc, effectively disabling dithering all of the time as the computed frame buffer bpc would never be larger than the display bpc. Signed-off-by:
Keith Packard <keithp@keithp.com> Reported-by:
Oliver Hartkopp <socketcan@hartkopp.net> Tested-by:
Oliver Hartkopp <socketcan@hartkopp.net>
-
Akshay Joshi authored
Various issues involved with the space character were generating warnings in the checkpatch.pl file. This patch removes most of those warnings. Signed-off-by:
Akshay Joshi <me@akshayjoshi.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 25 Aug, 2011 1 commit
-
-
Thomas Jarosch authored
Otherwise it just contains random memory. Issue detected by cppcheck. Signed-off-by:
Thomas Jarosch <thomas.jarosch@intra2net.com> Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 22 Aug, 2011 1 commit
-
-
Kamal Mostafa authored
The commit "Not all systems expose a firmware or platform mechanism for changing the backlight intensity on i915, so add native driver support" adds calls to intel_panel_setup_backlight() from intel_{lvds,dp}_init so do not call it again from intel_setup_outputs(). BugLink: http://bugs.launchpad.net/bugs/831542 Signed-off-by:
Kamal Mostafa <kamal@canonical.com> ACKed-by:
Matthew Garrett <mjg@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 09 Aug, 2011 1 commit
-
-
Jesse Barnes authored
We ought to be calling this from our DPMS routines as well as global state may change and we need to enable/disable clocks. So split out the code in preparation for further changes. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 08 Aug, 2011 2 commits
-
-
Keith Packard authored
Just an extra parameter which isn't actually needed. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org>
-
Keith Packard authored
CPT pipe select is different from previous generations (using two bits instead of one). All of the paths from intel_disable_pch_ports were not making this distinction. Mode setting with pipe A turned off would then also force all outputs on pipe B to get turned off as the disable code would mistakenly decide that all of these outputs were on pipe A and turn them off. This is an extension of the CPT DP disable fix (why didn't I fix this then?) Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Jesse Barnes <jbarnes@virtuousgeek.org>
-
- 01 Aug, 2011 1 commit
-
-
Jesse Barnes authored
The EDID parser will zero out the bpc value, and the driver needs to handle that case. In our picker, we'll just ignore 0 values as far as bpp picking goes. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39323 . Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 29 Jul, 2011 3 commits
-
-
Jesse Barnes authored
These bits moved around on SNB and above. v2: again with the git send-email fail v3: add macros for getting per-pipe override & enable bits v4: enable phase sync pointer on SNB and IVB configs as well Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Michel Alexandre Salim authored
Using the new quirk added to support disabling SSC on Lenovo U160 (#36656, commit 435793df), also register the Vaio as a special case and disable SSC for it. This patch fixes #34437 on fdo bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34437 Signed-off-by:
Michel Alexandre Salim <salimma@fedoraproject.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
If a mode set fails we may get a message from drm_crtc_helper if we're lucky, but it won't tell us anything about *why* we failed to set a mode. So add a few DRM_ERRORs for the cases that shouldn't happen so we can debug things more easily. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 28 Jul, 2011 4 commits
-
-
Jesse Barnes authored
CB tuning is needed to handle potential process variations that might cause clock jitter for certain PLL settings. However, we were setting it incorrectly since we were using the wrong M value as a check (M1 when we needed to use the whole M value). Fix it up, making my HDMI attached display a little prettier (used to have occasional dots crawl across the display). Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
Writes to the plane control register are buffered in the chip until a write to the DSPADDR (pre-965) or DSPSURF (post-965) register occurs. This patch adds flushes in: intel_enable_plane gen6_init_clock_gating ivybridge_init_clock_gating Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
After writing to the plane control reg we need to write to the surface reg to trigger the double buffered register latch. On previous chipsets, writing to DSPADDR was enough, but on ILK+ DSPSURF is the reg that triggers the double buffer latch. v2: write DSPADDR too to cover pre-965 chipsets v3: use flush_display_plane instead, that's what it's for v4: send the right patch Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Tested-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Jesse Barnes authored
On CougarPoint and PantherPoint PCH chips, the timing generator may fail to start after DP training completes. This is due to a bug in the FDI autotraining detect logic (which will stall the timing generator and re-enable it once training completes), so disable it to avoid silent DP mode setting failures. Signed-off-by:
Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-