summaryrefslogtreecommitdiff
path: root/drivers/video
AgeCommit message (Collapse)Author
2010-04-05Merge branch 'master' into export-slabhTejun Heo
2010-04-04sunxvr500: Ignore secondary output PCI devices.David S. Miller
These just represent the secondary and further heads attached to the card, and they have different sets of PCI bar registers to map. So don't try to drive them in the main driver. Reported-by: Frans van Berckel <fberckel@xs4all.nl> Tested-by: Frans van Berckel <fberckel@xs4all.nl> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-30include cleanup: Update gfp.h and slab.h includes to prepare for breaking ↵Tejun Heo
implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-24Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linuxLinus Torvalds
* 'for-linus' of git://gitorious.org/linux-omap-dss2/linux: OMAP: DSS2: panel-generic: re-implement mode changing OMAP: DSS2: initialize dss clk sources properly OMAP: DSS2: VRAM: Fix early_param for vram
2010-03-24Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] Orion5x: replace KEY_WLAN with KEY_WPS_BUTTON [ARM] Kirkwood: WPS button keycode mapping pxa168fb: fix incorrect resource calculation [ARM] pxa/raumfeld: fix button name [ARM] pxa/raumfeld: remove duplicated #include [ARM] locomo: fix unpaired spin_lock_irqsave [ARM] locomo: fix SPI register offset [ARM] pxa/sharpsl: add dependency of max1111 driver to sharpsl_pm [ARM] pxa: remove unnecessary 'select FB_W100' from some platforms [ARM] pxa: remove spi cs gpio direction to avoid clash with driver [ARM] mmp: fix for variables in uncompress.h being discarded [ARM] pxa: fix for variables in uncompress.h being discarded ARM: Update mach-types ARM: Fix IXP23xx build error in mach/memory.h
2010-03-24lxfb: set the H- and V-SYNC polarity of the flatpanel outputMichael Grzeschik
Fixup for the flatpanel output. The geode_modedb attribute flags are used to set the SYNC polarity of the flatpanel. Without this patch our flatpanel registers stayed unconfigured, so we just saw garbage output. Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Cc: Andres Salomon <dilinger@collabora.co.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-22pxa168fb: fix incorrect resource calculationDan Carpenter
The size calculation is not correct. It should be end - start + 1. Use resource_size() to caculate it. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2010-03-18Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* master.kernel.org:/home/rmk/linux-2.6-arm: (23 commits) ARM: Fix RiscPC decompressor build errors ARM: Fix sorting of platform group config options and includes ARM: 5991/1: Fix regression in restore_user_regs macro ARM: 5989/1: ARM: KGDB: add support for SMP platforms ARM: 5990/1: ARM: use __armv5tej_mmu_cache_flush for V5TEJ instead of __armv4_mmu_cache_flush ARM: Add final piece to fix XIP decompressor in read-only memory video: enable sh_mobile_lcdc on SH-Mobile ARM ARM: mach-shmobile: ap4evb SDHI0 platform data V2 ARM: mach-shmobile: sh7372 SDHI vector merge ARM: mach-shmobile: sh7377 SDHI vector merge ARM: mach-shmobile: sh7367 SDHI vector merge ARM: mach-shmobile: G4EVM KEYSC platform data mtd: enable sh_flctl on SH-Mobile ARM ARM: mach-shmobile: G3EVM FLCTL platform data ARM: mach-shmobile: G3EVM KEYSC platform data Video: ARM CLCD: Better fix for swapped IENB and CNTL registers ARM: Add L2 cache handling to smp boot support ARM: 5960/1: ARM: perf-events: fix v7 event selection mask ARM: 5959/1: ARM: perf-events: request PMU interrupts with IRQF_NOBALANCING ARM: 5988/1: pgprot_dmacoherent() for non-mmu builds ...
2010-03-18Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlightLinus Torvalds
* 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight: backlight: panasonic-laptop - Fix incomplete registration failure handling backlight: msi-laptop, msi-wmi: fix incomplete registration failure handling backlight: blackfin - Fix missing registration failure handling backlight: classmate-laptop - Fix missing registration failure handling backlight: mbp_nvidia_bl - add five more MacBook variants backlight: Allow properties to be passed at registration backlight: Add backlight_device parameter to check_fb video: backlight/progear, fix pci device refcounting backlight: l4f00242t03: Fix module licence absence. backlight: Revert some const qualifiers backlight: Add Epson L4F00242T03 LCD driver
2010-03-18Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sunxvr1000: Add missing FB=y depenency. MAINTAINERS: Add entry for sparc serial drivers. drivers/serial/sunsab.c: adjust the constant used to initialize the interrupt_mask0 fields
2010-03-16sunxvr1000: Add missing FB=y depenency.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-16backlight: blackfin - Fix missing registration failure handlingBruno Prémont
Check newly registered backlight_device for error and properly return error to parent Mark struct backlight_ops as const. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Acked-by: Mike Frysinger <vapier@gentoo.org> (constify struct backlight_ops) Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16backlight: mbp_nvidia_bl - add five more MacBook variantsEvan McClain
This adds the MacBook 1,1 2,1 3,1 4,1 and 4,2 to the DMI tables. Signed-off-by: Evan McClain <evan.mcclain@gatech.edu> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16backlight: Allow properties to be passed at registrationMatthew Garrett
Values such as max_brightness should be set before backlights are registered, but the current API doesn't allow that. Add a parameter to backlight_device_register and update drivers to ensure that they set this correctly. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16backlight: Add backlight_device parameter to check_fbBruno Prémont
check_fb from backlight_ops lacks a reference to the backlight_device that's being referred to. Add this parameter so a backlight_device can be mapped to a single framebuffer, especially if the same driver handles multiple devices on a single system. Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16video: backlight/progear, fix pci device refcountingJiri Slaby
Stanse found an ommitted pci_dev_puts on error path in progearbl_probe. pmu_dev and sb_dev are gotten, but never put when backlight_device_register fails. So unify fail paths and put the devs when the failure occurs. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16backlight: l4f00242t03: Fix module licence absence.Alberto Panizzo
Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16backlight: Add Epson L4F00242T03 LCD driverAlberto Panizzo
The Epson LCD L4F00242T03 is mounted on the Freescale i.MX31 PDK board. Based upon Marek Vasut work in l4f00242t03.c, this driver provides basic init and power on/off functionality for this device through the sysfs lcd interface. Unfortunately Datasheet for this device are not available and all the control sequences sent to the display were copied from the freescale driver that in the i.MX31 Linux BSP. As in the i.MX31PDK board the core and io suppliers are voltage regulators, that functionality is embedded here, but not strict. Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-15Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/genesis-2.6Russell King
2010-03-15OMAP: DSS2: panel-generic: re-implement mode changingTomi Valkeinen
Mode changing code was left out with the DSS driver remodeling. Add the code back. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-03-15OMAP: DSS2: initialize dss clk sources properlyTomi Valkeinen
Clk sources were not initialized, leading to kernel crash, or possibly to strange behaviour if DSI was compiled in. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-03-15video: enable sh_mobile_lcdc on SH-Mobile ARMMagnus Damm
This patch enables the sh_mobile_lcdc driver on SH-Mobile ARM. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2010-03-14Video: ARM CLCD: Better fix for swapped IENB and CNTL registersRussell King
On PL111, as found on Realview and other platforms, these registers are always arranged as CNTL then IENB. On PL110, these registers are IENB then CNTL, except on Versatile platforms. Re-arrange the handling of these register swaps so that PL111 always gets it right without resorting to ifdefs, leaving the only case needing special handling being PL110 on Versatile. Fill out amba/clcd.h with the PL110/PL111 register definition differences in case someone tries to use the PL110 specific definitions on PL111. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-03-14Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Add very basic XVR-1000 framebuffer driver. qlogicpti: Remove slash in QlogicPTI irq name
2010-03-14sparc64: Add very basic XVR-1000 framebuffer driver.David S. Miller
Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Frans van Berckel <fberckel@xs4all.nl>
2010-03-13Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits) doc: fix typo in comment explaining rb_tree usage Remove fs/ntfs/ChangeLog doc: fix console doc typo doc: cpuset: Update the cpuset flag file Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed Remove drivers/parport/ChangeLog Remove drivers/char/ChangeLog doc: typo - Table 1-2 should refer to "status", not "statm" tree-wide: fix typos "ass?o[sc]iac?te" -> "associate" in comments No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h devres/irq: Fix devm_irq_match comment Remove reference to kthread_create_on_cpu tree-wide: Assorted spelling fixes tree-wide: fix 'lenght' typo in comments and code drm/kms: fix spelling in error message doc: capitalization and other minor fixes in pnp doc devres: typo fix s/dev/devm/ Remove redundant trailing semicolons from macros fix typo "definetly" -> "definitely" in comment tree-wide: s/widht/width/g typo in comments ... Fix trivial conflict in Documentation/laptops/00-INDEX
2010-03-13Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (370 commits) ARM: S3C2443: Add set_rate and round_rate calls for armdiv clock ARM: S3C2443: Remove #if 0 for clk_mpll ARM: S3C2443: Update notes on MPLLREF clock ARM: S3C2443: Further clksrc-clk conversions ARM: S3C2443: Change to using plat-samsung clksrc-clk implementation USB: Fix s3c-hsotg build following Samsung platform header moves ARM: S3C64XX: Reintroduce unconditional build of audio device ARM: 5961/1: ux500: fix CLKRST addresses ARM: 5977/1: arm: Enable backtrace printing on oops when PC is corrupted ASoC: Fix S3C64xx IIS driver for Samsung header reorg ARM: S3C2440: Fix plat-s3c24xx move of s3c2440/s3c2442 support [ARM] pxa: fix typo in mxm8x10.h [ARM] pxa/raumfeld: set GPIO drive bits for LED pins [ARM] pxa/zeus: Add support for mcp2515 CAN bus [ARM] pxa/zeus: Add support for onboard max6369 watchdog [ARM] pxa/zeus: Add Eurotech as the manufacturer [ARM] pxa/zeus: Correct the USB host initialisation flags [ARM] pxa/zeus: Allow usage of 8250-compatible UART in uncompress [ARM] pxa: refactor uncompress.h for non-PXA uarts [ARM] mmp2: fix incorrect calling of chip->mask_ack() for 2nd level cascaded IRQs ...
2010-03-12fbdev: bfin-lq035q1-fb: remove duplicated #includeHuang Weiyi
Remove duplicated #include('s) in drivers/video/bfin-lq035q1-fb.c Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12video: fix first line of kernel-doc for a few functionsBen Hutchings
The function name must be followed by a space, hypen, space, and a short description. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12obsolete config in kernel source: LWMON5Christoph Egger
There was some conditionalizing for the LWMON5 boards in kernel source. However infrastructure for enabling this isn't here so probably the special case code can go as well. Signed-off-by: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de> Acked-by: Alexander Shishkin <virtuoso@slind.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12drivers/video/via: fix continuation line formatsJoe Perches
String constants that are continued on subsequent lines with \ will cause spurious whitespace in the resulting output. Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12NUC900 LCD Controller DriverWang Qiang
An LCD controller driver for nuc900s. The Linux LOGO is just fine and the FB-Test application was ok, too. Signed-off-by: Wang Qiang <rurality.linux@gmail.com> Cc: Wang Zongshun <mcuos.com@gmail.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12fbdev: remove obsolete CONFIG_FB_SOFT_CURSORChristoph Egger
The config Option FB_SOFT_BUFFER was removed in c465e05a03209651078b95686158648fd7ed84c5 ("fbcon/fbdev: Move softcursor out of fbdev to fbcon"). While moving to fbcon this single driver has it left as a select in KConfig / #ifdef in source. This last occurence is removed here so the option is really gone Signed-off-by: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12broadsheetfb: support storing waveformJaya Kumar
This patch adds waveform storing capability to broadsheetfb. It uses the firmware class to retrieve the waveform, and the request to initiate the waveform storing is done via a driver sysfs entry, loadstore_waveform. Broadsheet is a framebuffer device. It is slightly different from a typical framebuffer controller that drives a normal TFT-LCD display. Most E-Ink display panels require a waveform in order to function. That is, in order to drive the state of a pixel to black, gray, or white, a specific waveform is utilized. Basically, that waveform represents the specific E-field wiggling needed to get the pixel to its optimal state given current temperature, and its previous state. TN/IPS-LCDs use a similar concept but the driving waveform is sufficiently simple that it is internalized in the TFT source/gate driver. These E-Ink waveforms are specific to a production batch. That is, a batch of display films are produced, then they get characterized and a waveform is generated for that batch. Broadsheet, typically, is attached to its private SPI flash which is then flashed with this waveform. Users won't be able to see the waveform and typically won't ever need to know about it. If however, the display panel attached to broadsheet is changed out, then they will need to update their waveform. That would typically be done at a factory or repair facility rather than by a user. [akpm@linux-foundation.org: fix printk warning] Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12broadsheetfb: add MMIO hooksJaya Kumar
Allow boards with GP-MMIO controllers to provide hooks to broadsheetfb in order to offload cmd/data writes and data reads instead of relying only on host based GPIO wiggling. Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: support color depth 15 and 30Florian Tobias Schandinat
Add support for the color depth 15 on IGA1 and 30 on IGA1 and IGA2. To allow the usage of those the driver now refuses color depth that are totally off and otherwise the selection in viafb_check_var is used. Therefore the first call to this for the first framebuffer was delayed a bit. It only enables the new formats if they are requested exactly (viafb_bpp=15|30). As this is a new feature, no regressions are expected. The color depth 15 was successfully tested. Didn't get anything usable for 30 but that might be the programs fault. I would like to get some feedback whether it works as expected or not if somebody knows a program/configuration where it should. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: rework color settingFlorian Tobias Schandinat
This is a rewritten version of viafb_setcolreg. The hardware register writes were split up and moved to hw.c where they belong as this is really low level stuff. It was made dual fb aware. Furthermore viafb_setcmap was removed as the problem with 8bpp originated from a bug in writing multiple color registers at once. The removal of viafb_setcmap might introduce a small performance regression but its certainly better to receive the correct result a bit slower than a garbled picture fast. It should give us a working 8bpp mode and is more extensible than the old hardcoded code. No other regressions are expected but as the hardware might be a bit picky it might cause some regressions in 8bpp mode on some hardware although I doubt that. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: some virtual_xres handling fixesFlorian Tobias Schandinat
Do not require the virtual_xres to be aligned as line length is for such purposes. Calculate always the smallest line length required. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: rework color checkingFlorian Tobias Schandinat
Make color checking a bit more tolerant in what values it allows and more fine grained to later support 15 and 30 bits formats. It splits the filling of the color information in var to a seperate function and sets some color related values in var that where previously untouched. This could be a bug fix but at least I don't know any applications that was fooled by not correctly setting the fields in var. At least no regressions are expected. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: make some variables a bit less globalFlorian Tobias Schandinat
Move some variables closer to their usage. 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-12viafb: remove dead code due to IGA1_IGA2Florian Tobias Schandinat
Some code depended on IGA1_IGA2 which was never set (at least with the symbolic name). Remove this dead code although it might one day be useful to get a hint on how some things might work. However as this is dead it is likely full of bugs and would prevent a clean structure (as it has some very strange things). Dead code -> no regressions, at least if VIA doesn't do anything very ugly. 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-12viafb: split color mode setting upFlorian Tobias Schandinat
This patch splits color mode setting up in seperate functions. Some hardware initialization that was previously mixed with it is moved to viafb_setmode. As are the calls to the newly created function. This is yet another little step towards controlling each IGA on its own. As this patch really aims too mimic the old behaviour no regressions are expected. However I noticed that 8bpp (or 6bpp?) seems actually a bit broken before and after the patch. 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-12viafb: introduce strict parameter checkingFlorian Tobias Schandinat
Refuse to work if wrong parameters are given. This should improve the user experience as it will be clear that something is wrong and not silently ignored. 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-12viafb: make viafb_set_par more dual framebuffer compatibleFlorian Tobias Schandinat
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-12viafb: video address setting revisitedFlorian Tobias Schandinat
Set always the correct video address. Especially do panning right on multiple IGAs. This should have no effect on single monitor mode (no SAMM, no dual fb). For SAMM without dual fb this might break something as I really cannot image what we are supposed to do for different resolutions with a single framebuffer as we can't get data out of nowhere (no, they are not set up in something one would call "expanded"). Previously I got for that funny colored pictures as the second IGA pointed to video memory that was never written to. After the patch it'll work as cloning if the first and second mode are identical (this was working already without SAMM). Finally for dual fb this should push us a step in the right direction. 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-12viafb: reorder initialization for dual framebuffer modeFlorian Tobias Schandinat
This patch reorders the initialization for dual framebuffer mode to not ignore the settings for the first mode. Previously they were overwritten with the settings for the second one before they were applied. This should have no effect on non dual framebuffer mode and do what the user intended (initalization to desired modes) in dual framebuffer mode. 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-12viafb: yet another dead code removalFlorian Tobias Schandinat
Remove some functions that were never executed and a related undocumented module parameter. 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-12viafb: some dvi cleanupFlorian Tobias Schandinat
Remove some unused variables, move some dvi code around and store the detected maximum resolution for later use. The vertical resolution is handled as the old code did it but I hope it can be read from the hardware some day. No runtime change expected. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: remove the remaining VIA_RES_* usesFlorian Tobias Schandinat
Remove the rest of the VIA_RES_* use cases. Obviously this was no longer useful. Keep the related infrastructure/functions for later use. No runtime impact expected. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12viafb: split global index upFlorian Tobias Schandinat
This is the first step to remove an artificial global index that was used in two ways: 1. As a pseudo index in the mode table. Pseudo as you had to search through the table to find the referenced entry. This was replaced by using a pointer to the entry. 2. As a shortcut to compare a combination of horizontal and vertical resolution at the same time. This was replaced by a "(hres<<16) | vres" which is good enough for now and the near future. If vres or hres become greater than 2^16 this might indeed cause problems but this solution allows to split this indexing mess up without the requirement to do even more code changes. This is a big change that will allow more clean ups. It should be a bit faster but that is probably not relevant for normal operation. No regressions expected but as this is a relatively big step heavy testing is appreciated. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Scott Fang <ScottFang@viatech.com.cn> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>