linux/drivers/video/via
Florian Tobias Schandinat 5c9443ed28 viafb: make viafb_set_par more dual framebuffer compatible
This patch is an attempt to make viafb_set_par work correctly with more
than one framebuffer.  As modesetting is not (yet/easily) possible for
each individual IGA it uses the (normally to be avoided) global variables
viafbinfo{,1} to ensure that each function is called with the correct
values.

This patch (finally) allows usable dual framebuffer setups and should not
affect non dual fb ones.  It works in some (most?) configurations as
sometimes the driver still gets device connections wrong.  It can be worth
to try the devices in reverse order (in viafb_active_dev).

The user experience is still not very nice as:

- on the second fb you'll normally have a garbled picture as long as
  no application draws to it
  goal: auto on/off devices depending on reference counting
- as the whole machinery is always done you can see mode changes also
  in an unaffected framebuffer
  goal: split modesetting up for each individual IGA

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Scott Fang <ScottFang@viatech.com.cn>
Cc: Joseph Chan <JosephChan@via.com.tw>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12 15:52:33 -08:00
..
accel.c viafb: fix acceleration for some chips 2010-01-16 12:15:37 -08:00
accel.h viafb: hardware acceleration initialization cleanup 2009-09-23 07:39:53 -07:00
chip.h viafb: some dvi cleanup 2010-03-12 15:52:33 -08:00
debug.h
dvi.c viafb: some dvi cleanup 2010-03-12 15:52:33 -08:00
dvi.h viafb: some dvi cleanup 2010-03-12 15:52:33 -08:00
global.c viafb: yet another dead code removal 2010-03-12 15:52:33 -08:00
global.h viafb: yet another dead code removal 2010-03-12 15:52:33 -08:00
hw.c viafb: video address setting revisited 2010-03-12 15:52:33 -08:00
hw.h viafb: split global index up 2010-03-12 15:52:33 -08:00
ioctl.c viafb: iface.c, iface.h, ioctl.c, ioctl.h 2008-10-16 11:21:41 -07:00
ioctl.h viafb: remove unused video device stuff 2009-09-23 07:39:52 -07:00
lcd.c viafb: remove the remaining VIA_RES_* uses 2010-03-12 15:52:33 -08:00
lcd.h viafb: lcd.c, lcd.h, lcdtbl.h 2008-10-16 11:21:41 -07:00
lcdtbl.h viafb: lcd.c, lcd.h, lcdtbl.h 2008-10-16 11:21:41 -07:00
Makefile viafb: yet another dead code removal 2010-03-12 15:52:33 -08:00
share.h viafb: remove the remaining VIA_RES_* uses 2010-03-12 15:52:33 -08:00
tbl1636.c viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tbl1636.h viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tblDPASetting.c viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tblDPASetting.h viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
via_i2c.c viafb: improve viafb_par 2009-09-23 07:39:52 -07:00
via_i2c.h viafb: via_i2c.c, via_i2c.h, viamode.c, viamode.h 2008-10-16 11:21:42 -07:00
via_utility.c viafb: remove dead code 2010-03-12 15:52:33 -08:00
via_utility.h viafb: remove dead code 2010-03-12 15:52:33 -08:00
viafbdev.c viafb: make viafb_set_par more dual framebuffer compatible 2010-03-12 15:52:33 -08:00
viafbdev.h viafb: yet another dead code removal 2010-03-12 15:52:33 -08:00
viamode.c viafb: split global index up 2010-03-12 15:52:33 -08:00
viamode.h viafb: split global index up 2010-03-12 15:52:33 -08:00
vt1636.c viafb: improve viafb_par 2009-09-23 07:39:52 -07:00
vt1636.h viafb: via_utility.c, via_utility.h, vt1636.c, vt1636.h 2008-10-16 11:21:42 -07:00