Daniel Vetter
ca9bfa7eed
drm/i915: fixup interlaced vertical timings confusion, part 1
...
We have a pretty decent confusion about vertical timings of interlaced
modes. Peter Ross has written a patch that makes interlace modes work
on a lot more platforms/output combinations by doubling the vertical
timings.
The issue with that patch is that core drm _does_ support specifying
whether we want these vertical timings in fields or frames, we just
haven't managed to consistently use this facility. The relavant
function is drm_mode_set_crtcinfo, which fills in the crtc timing
information.
The first thing to note is that the drm core keeps interlaced modes in
frames, but displays modelines in fields. So when the crtc modeset
helper copies over the mode into adjusted_mode it will already contain
vertical timings in half-frames. The result is that the fixup code in
intel_crtc_mode_fixup doesn't actually do anything (in most cases at
least).
Now gen3+ natively supports interlaced modes and wants the vertical
timings in frames. Which is what sdvo already fixes up, at least under
some conditions.
There are a few other place that demand vertical timings in fields
but never actually deal with interlaced modes, so use frame timings
for consistency, too. These are:
- lvds panel,
- dvo encoders - dvo is the only way gen2 could support interlaced
mode, but currently we don't support any encoders that do.
- tv out - despite that the tv dac sends out an interlaced signal it
expects a progressive mode pipe configuration.
All these encoders enforce progressive modes by resetting
interlace_allowed.
Hence we always want crtc vertical timings in frames. Enforce this in
our crtc mode_fixup function and rip out any redudant timing
computations from the encoders' mode_fixup function.
v2-4: Adjust the vertical timings a bit.
v5: Split out the 'subtract-one for interlaced' fixes.
v6: Clarify issues around tv-out and gen2.
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Tested-by: Christopher Egert <cme3000@gmail.com>
Tested-by: Alfonso Fiore <alfonso.fiore@gmail.com>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-02-10 17:24:06 +01:00
..
accessibility
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
acpi
Merge branches 'atomicio-apei', 'hotplug', 'sony-nvs-nosave' and 'thermal-netlink' into release
2012-01-23 19:47:06 -05:00
amba
Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
2012-01-08 13:10:57 -08:00
ata
[libata] ata_piix: Add Toshiba Satellite Pro A120 to the quirks list
2012-01-17 20:50:53 -05:00
atm
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
auxdisplay
base
Here are some patches for the 3.3-rc1 tree.
2012-01-28 18:20:48 -08:00
bcma
bcma: connect the bcma bus suspend/resume to the bcma driver suspend/resume
2012-01-17 09:54:08 -05:00
block
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
2012-02-02 15:47:33 -08:00
bluetooth
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
cdrom
block: add and use scsi_blk_cmd_ioctl
2012-01-14 15:07:24 -08:00
char
Merge remote-tracking branch 'airlied/drm-fixes' into drm-intel-next-queued
2012-02-10 17:14:49 +01:00
clk
clk: add config option HAVE_CLK_PREPARE into Kconfig
2011-12-28 21:35:06 +08:00
clocksource
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
2012-01-06 18:15:25 -08:00
connector
cpufreq
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq
2012-01-11 18:53:33 -08:00
cpuidle
cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem
2011-12-21 14:29:42 -08:00
crypto
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2012-01-10 22:01:27 -08:00
dca
devfreq
dio
dma
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-01-17 18:40:24 -08:00
edac
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
eisa
firewire
firewire: ohci: disable MSI on Ricoh controllers
2012-01-30 21:33:34 +01:00
firmware
Merge commit ' 0706802183' into stable/for-linus-fixes-3.3
2012-01-12 11:53:55 -05:00
gpio
gpio: tps65910: Use correct offset for gpio initialization
2012-01-18 13:48:43 -07:00
gpu
drm/i915: fixup interlaced vertical timings confusion, part 1
2012-02-10 17:24:06 +01:00
hid
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
hv
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
2012-01-09 12:09:47 -08:00
hwmon
hwmon: (w83627ehf) Disable setting DC mode for pwm2, pwm3 on NCT6776F
2012-01-29 13:06:07 -08:00
hwspinlock
i2c
Merge branches 'for-33/i2c/eg20t' and 'for-33/i2c/omap' into for-linus/i2c-33
2012-01-17 23:30:41 +00:00
ide
block: add and use scsi_blk_cmd_ioctl
2012-01-14 15:07:24 -08:00
idle
ACPI processor hotplug: Delay acpi_processor_start() call for hotplugged cores
2012-01-19 21:26:32 -05:00
ieee802154
infiniband
Merge branches 'cma', 'ipath', 'misc', 'mlx4', 'nes' and 'qib' into for-next
2012-01-30 16:18:21 -08:00
input
Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1
2012-01-14 12:32:16 -08:00
iommu
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
2012-01-10 11:08:21 -08:00
isdn
Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1
2012-01-14 12:32:16 -08:00
leds
leds: add led driver for Bachmann's ot200
2012-01-23 08:38:47 -08:00
lguest
lguest: Make sure interrupt is allocated ok by lguest_setup_irq
2012-01-12 15:44:47 +10:30
macintosh
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
mca
md
Merge branch 'for-3.3/core' of git://git.kernel.dk/linux-block
2012-01-15 12:24:45 -08:00
media
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
2012-01-26 17:04:47 -08:00
memstick
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
message
SCSI updates for post 3.2 merge window
2012-01-10 10:36:08 -08:00
mfd
MFD: ucb1x00-ts: fix resume failure
2012-01-22 21:10:40 +00:00
misc
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-01-17 18:40:24 -08:00
mmc
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-01-17 18:40:24 -08:00
mtd
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-01-17 18:40:24 -08:00
net
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2012-01-27 20:40:18 -05:00
nfc
Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
2012-01-07 12:03:30 -08:00
nubus
of
2nd set of device tree changes for v3.3
2012-01-14 13:25:55 -08:00
oprofile
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2012-01-06 08:02:58 -08:00
parisc
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci
2012-01-11 18:50:26 -08:00
parport
Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1
2012-01-14 12:32:16 -08:00
pci
kernel-doc: fix new warnings in pci
2012-01-23 08:44:53 -08:00
pcmcia
PCMCIA: fix sa1111 oops on remove
2012-01-24 21:33:26 +00:00
pinctrl
pinctrl: add checks for empty function names
2012-01-26 14:13:11 +01:00
platform
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
pnp
PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB
2012-01-06 12:11:20 -08:00
power
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
pps
ps3
ptp
rapidio
regulator
This fixes an integration issue with the regulator device tree bindings
2012-01-30 10:16:25 -08:00
rtc
Revert "RTC: sa1100: remove redundant code of setting alarm"
2012-01-19 17:26:26 +00:00
s390
[S390] dasd: revalidate server for new pathgroup
2012-01-18 18:03:42 +01:00
sbus
scsi
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
2012-01-26 12:43:57 -08:00
sfi
sh
SH/R-Mobile updates for 3.3 merge window.
2012-01-11 23:29:20 -08:00
sn
spi
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
2012-01-17 18:40:24 -08:00
ssb
staging
staging: fix go7007-usb license
2012-02-01 18:29:33 -08:00
target
tc
telephony
thermal
thermal: Rename generate_netlink_event
2012-01-23 03:15:25 -05:00
tty
serial: Kill off Moorestown code
2012-01-26 11:19:46 -08:00
uio
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci
2012-01-11 18:50:26 -08:00
usb
Here are a bunch of USB patches for 3.3-rc1.
2012-01-30 11:38:28 -08:00
uwb
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
2012-01-09 12:09:47 -08:00
vhost
vhost-net: add module alias (v2.1)
2012-01-13 10:12:23 -08:00
video
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
2012-01-26 12:43:57 -08:00
virt
virtio
virtio: correct the memory barrier in virtqueue_kick_prepare()
2012-01-28 08:10:23 +10:30
vlynq
w1
watchdog
watchdog: iTCO_wdt: add Intel Lynx Point DeviceIDs
2012-01-27 10:01:16 +01:00
xen
xen/granttable: Disable grant v2 for HVM domains.
2012-01-27 11:14:16 -05:00
zorro
misc latin1 to utf8 conversions
2012-01-02 13:04:55 +01:00
Kconfig
Makefile
mmc: sdhci-pci: add platform data
2012-01-11 23:58:47 -05:00