summaryrefslogtreecommitdiffstats
path: root/drivers/video/via
Commit message (Collapse)AuthorAgeFilesLines
...
* | | viafb: try to map less memory in case of failureFlorian Tobias Schandinat2011-04-251-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code might result in trying to remap 512MB video ram on a 32 bit system which is quite likely to fail. This patch tries to map less of it down to 8MB as this should still be enough to get a reasonably well working framebuffer. This should make viafb work for many people without requiring them to manually allocate more space. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | viafb: use write combining for video ramFlorian Tobias Schandinat2011-04-241-1/+1
| | | | | | | | | | | | | | | | | | This can give a speed up of factor 6-9, which is quite notable. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | Merge branch 'viafb-pll' into viafb-nextFlorian Tobias Schandinat2011-04-247-408/+577
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/video/via/viamode.c Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: add X server compatibility modeFlorian Tobias Schandinat2011-04-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a config option to be compatible with X servers like OpenChrome. This is required as for example the X server does not handle things like disabled IGAs/PLLs resulting in a potential freeze on X startup. With this option disabled we can provide some nice features like power management and not reinitializing the hardware on every mode switch (taking long time, causing flickering). Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: delete clock and PLL initializationFlorian Tobias Schandinat2011-04-011-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We do this also in the real program code so there is no reason to do it here too (and here it's hardly readable). Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: add engine clock supportFlorian Tobias Schandinat2011-03-263-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for enabling and configuring the engine on VIAs IGPs. This is the main clock used for everything but pixel output. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: add VIA slapping capabilityFlorian Tobias Schandinat2011-03-242-6/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces dummy functions to execute when we don't know what we should do (due to missing documentation). They do nothing but print a nice message in the log explaining the situation. To trigger this message initial power management support is activated which might save a bit energy by disabling PLL and clock if no device is configured to use them. Note: The message is only shown for the oldest IGPs CLE266 and K400 as for the other platforms there are reasonable assumptions how it does (hopefully) work. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: split clock and PLL code to an extra fileFlorian Tobias Schandinat2011-03-245-281/+368
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a huge move operation with some rename and introduces an interface to still use the functions. This should be a step in the right direction to reuse the code whenever possible but cleanly separate code that differs on different platform and keeping the complexity as low as possible. pll_config was renamed to via_pll_config to keep the naming scheme. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: add primary/secondary clock on/off switchesFlorian Tobias Schandinat2011-03-241-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds functions to enable/disable the display clocks. It also fixes a tiny bug that slipped in with a previous commit but could not yet have caused any problems. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: add clock source selection and PLL power management supportFlorian Tobias Schandinat2011-03-231-0/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds some support for clock source selection as well as PLL power management. The code is unused at the moment but was successfully tested as far as possible. The implementation is according to the documentation for VX700, VX800, VX855, VX900. Probably the source selection works like this starting with K800 and the power managemennt at least since VX700. (guessed based on the initialization in viamode.c) Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: prepare for PLL separationFlorian Tobias Schandinat2011-03-231-43/+84
| | | | | | | | | | | | | | | | | | | | | | | | This patch splits some functionality to extra functions. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: call viafb_get_clk_value only in viafb_set_vclockFlorian Tobias Schandinat2011-03-233-21/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As no caller is interested in the result call viafb_get_clk_value directly from viafb_set_vclock to encapsulate the hardware dependend stuff there. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: allow some pll calculationsFlorian Tobias Schandinat2011-03-232-282/+106
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows calculating the pll multiplier within limits based on the previous table. All available information supports that it should be possible/sane to choose the multiplier free within some ranges. Storing the multiplier ranges instead of lots of pll configurations reduces the memory needed and may as well improve the performance. It is also expected to provide better pll values resulting in better frequencies for the connected devices. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | Merge branch 'viafb-cleanup' into viafb-nextFlorian Tobias Schandinat2011-04-2413-251/+84
|\ \ \
| * | | viafb: replace custom return valuesFlorian Tobias Schandinat2011-03-275-33/+17
| | | | | | | | | | | | | | | | | | | | | | | | This patch replaces OK/FAIL by true/false which is simpler and saner. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: some small cleanup for global variablesFlorian Tobias Schandinat2011-03-275-18/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not need viafb_second{,_virtual}_{xres,yres} outside of viafbdev.c so move them there and eliminate the virtual ones where the only sane usage is done during initalization. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: gather common good, old VGA initialization in one placeFlorian Tobias Schandinat2011-03-262-31/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves all unprotected VGA initialization in one table and provides some documentation for those values. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: remove unused max_hres/vresFlorian Tobias Schandinat2011-03-232-137/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the max_hres and max_vres which are not used at the moment. In general they could be useful but it would be better to get them via any standard EDID implementation and not the buggy incomplete one currently used which is also removed as far as possible. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: kill crt_setting_informationFlorian Tobias Schandinat2011-03-214-26/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As the iga path is the only remaining information which is also handled by the active devices there is no reason to keep it. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: no need to write CRTC values twiceFlorian Tobias Schandinat2011-03-211-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Later the correct values will be written so there is no need to write early some values which might be wrong. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * | | viafb: move initialization codeFlorian Tobias Schandinat2011-03-211-5/+7
| |/ / | | | | | | | | | | | | | | | | | | This moves some mode independend initialization code to the function where the other parts of the initialization are. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | viafb: reduce OLPC refresh a bitFlorian Tobias Schandinat2011-04-233-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When allowing some PLL calculation we get a frequency that seems to be a bit higher than what the OLPC DCON likes resulting in a still readable but not so good image. We don't really know whether this is a problem with the calculation formula or the OLPC but as other displays seem to be happy with the other modes adjusting the OLPC refresh looks like the better thing. This patch prevents a regression when dynamic PLL calculation is allowed. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | viafb: fix OLPC XO 1.5 device connectionFlorian Tobias Schandinat2011-04-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the devices connected on OLPC. The OLPC panel seems to be connected to DVP1 and LVDS2 for some reasons and if not both are handled correct the display does not work correct or not at all. This patch prevents regressions on the OLPC where it worked by accident but would break in future as the driver did not know the correct devices connected. This might also fix hardware scaling. Hopefully the OLPC is the only device with such a requirement but it will be certainly better to actually know what devices are actually connected and to not work by accident. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | | viafb: fix OLPC DCON refresh rateFlorian Tobias Schandinat2011-04-152-3/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a regression introduced by fd3cc69848b7e1873e5f12bbcdd572b20277ecf3a "viafb: remove duplicated clock storage" caused by an incosistent mode which pretended to have a higher refresh rate than it actually had. The wrong refresh rate resulted in a calculated higher pixclock which the OLPC DCON could not handle. By reducing the refresh rate to 50Hz we get close to the old pixclock which makes the OLPC display usable again. Minor other adjustments are needed as 60Hz is assumed to be a safe value which is not true for OLPC DCON. This is no problem as we only support 1200x900 on the OLPC. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Reported-by: Daniel Drake <dsd@laptop.org>
* | viafb: initialize margins correctFlorian Tobias Schandinat2011-03-211-20/+11
| | | | | | | | | | | | | | | | This patch initializes the margins for the initial mode correct. This is required to get the desired initial refresh rate. Also do more verbose sanity checking to prevent misbehavior. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | viafb: refresh rate bug collectionFlorian Tobias Schandinat2011-03-164-30/+36
|/ | | | | | | | This patch fixes multiple issues with the handling of refresh rates especially for multi-display setups. If you experienced problems with wrong refresh rates this patch might fix them. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* Merge branch 'viafb-pll' into viafb-nextFlorian Tobias Schandinat2011-03-127-747/+479
|\
| * viafb: split pll configs upFlorian Tobias Schandinat2011-03-121-347/+301
| | | | | | | | | | | | | | | | | | | | This patch splits the pll configs up on pll versions. This allows easy adding of other known good pll values. Additionally it made it possible to remove invalid configurations resulting in better behaviour for such cases. The resulting clocks are no longer stored resulting in some computing overhead on each mode change. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * viafb: remove duplicated clock storageFlorian Tobias Schandinat2011-03-125-212/+133
| | | | | | | | | | | | | | | | The clocks can be easily recalculated by the timing and refresh value. This brings us one step closer to removing VIAs modetable and use generic ones and being easier extensible. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * viafb: always return the best possible clockFlorian Tobias Schandinat2011-03-122-34/+28
| | | | | | | | | | | | | | | | | | | | Before this patch only clocks that perfectly match were used and if none existed this was not handled properly. This patch changes this to always use the closest clock supported. This should behave like before for clocks that have a perfect match but be much saner for clocks which are slightly off. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * viafb: remove duplicated clock informationFlorian Tobias Schandinat2011-03-124-166/+29
| | | | | | | | | | | | | | | | | | This patch removes the direct lookup table for resolution+refresh and pixclock by calculating this information from the mode table. Removes a lot of dupllication and error potential by just doing a little more calculations on each mode change. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | viafb: factor lcd scaling parameters outFlorian Tobias Schandinat2011-03-092-85/+19
| | | | | | | | | | | | | | | | These parameters are the same for all currently known VIA IGPs so it does not make any sense to store them with IGP specific data. This saves a few bytes and helps a bit in dicovering the real differences. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | viafb: strip some structuresFlorian Tobias Schandinat2011-03-092-15/+0
| | | | | | | | | | | | | | This patch removes some write-only variables from the device management structures. Just a small cleanup. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | viafb: remove unused data_mode and device_typeFlorian Tobias Schandinat2011-03-091-3/+0
| | | | | | | | | | | | This patch is a little cleanup for the chip_info structures. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | viafb: kill lcd_panel_idFlorian Tobias Schandinat2011-03-095-107/+13
|/ | | | | | | | | | This patch removes all internal uses of another mostly artificial value. It does duplicate the information of the maximum resolution and it is not flexible as only a few resolutions exist. Hence it is better to remove it and clean the mess up. No runtime change expected. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video via: make local variables staticStephen Hemminger2011-03-095-59/+61
| | | | | | | | Many local variables should be declared static. Found by sparse, compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video via: fix iomem accessStephen Hemminger2011-03-091-8/+7
| | | | | | | | | | | | | This driver is not respecting the iomem memory space restrictions and does direct access. This works on x86 but is non-portable and should not be done. Converted memcpy() of 2 to readw. Last post increment of romptr was unnecessary since pointer never used after that. Found by sparse, compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video/via: drop deprecated (and unused) i2c_adapter.idPeter Huewe2011-03-021-1/+0
| | | | | | | | | | This patch removes an assignment to the deprecated i2c_adapter.id field. Since the field isn't used anywhere else in the driver it is save to remove it. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* console: rename acquire/release_console_sem() to console_lock/unlock()Torben Hohn2011-01-261-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | The -rt patches change the console_semaphore to console_mutex. As a result, a quite large chunk of the patches changes all acquire/release_console_sem() to acquire/release_console_mutex() This commit makes things use more neutral function names which dont make implications about the underlying lock. The only real change is the return value of console_trylock which is inverted from try_acquire_console_sem() This patch also paves the way to switching console_sem from a semaphore to a mutex. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert] Signed-off-by: Torben Hohn <torbenh@gmx.de> Cc: Thomas Gleixner <tglx@tglx.de> Cc: Greg KH <gregkh@suse.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6Paul Mundt2010-11-104-23/+138
|\
| * viafb: Add OLPC XO-1.5 port configsDaniel Drake2010-11-091-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | The OLPC XO-1.5 does not use the standard port wiring suggested in the viafb driver. This is required for the upcoming OLPC DCON and via-camera drivers, to be submitted soon. Signed-off-by: Daniel Drake <dsd@laptop.org> [fts: removed useless ifdef's and corrected comment] Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * viafb: suspend/resume for GPIOsJonathan Corbet2010-11-091-0/+29
| | | | | | | | | | | | | | | | | | Be sure to re-enable GPIO lines on resume. Users still have to be sure to set them properly. Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
| * viafb: General power management infrastructureDaniel Drake2010-11-093-23/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | Multiple devices need S/R hooks (framebuffer, GPIO, camera). Add infrastructure and convert existing framebuffer code to the new model. This patch should create no functional change. Based on earlier work by Jonathan Corbet. Signed-off-by: Daniel Drake <dsd@laptop.org> Acked-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* | Merge branch 'v4l_for_linus' of ↵Linus Torvalds2010-10-282-3/+15
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (505 commits) [media] af9015: Fix max I2C message size when used with tda18271 [media] IR: initialize ir_raw_event in few more drivers [media] Guard a divide in v4l1 compat layer [media] imon: fix nomouse modprobe option [media] imon: remove redundant change_protocol call [media] imon: fix my egregious brown paper bag w/rdev/idev split [media] cafe_ccic: Configure ov7670 correctly [media] ov7670: allow configuration of image size, clock speed, and I/O method [media] af9015: support for DigitalNow TinyTwin v3 [1f4d:9016] [media] af9015: map DigitalNow TinyTwin v2 remote [media] DigitalNow TinyTwin remote controller [media] af9015: RC fixes and improvements videodev2.h.xml: Update to reflect the latest changes at videodev2.h [media] v4l: document new Bayer and monochrome pixel formats [media] DocBook/v4l: Add missing formats used on gspca cpia1 and sn9c2028 [media] firedtv: add parameter to fake ca_system_ids in CA_INFO [media] tm6000: fix a macro coding style issue tm6000: Remove some ugly debug code [media] Nova-S-Plus audio line input [media] [RFC,1/1] V4L2: Use new CAP bits in existing RDS capable drivers ...
| * [media] Add the via framebuffer camera controller driverJonathan Corbet2010-10-212-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a driver for the video capture port on VIA integrated chipsets. This version has a remaining OLPCism or two and expects to be talking to an ov7670; those can be improved as the need arises. This work was supported by the One Laptop Per Child project. Thanks to Laurent Pinchart for a number of useful comments. Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
* | viafb: add initial VX900 supportFlorian Tobias Schandinat2010-10-247-4/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds basic support for the new VX900 IGP. Almost everything that was implemented for other IGPs is expected to work also on VX900 after this patch. The only known issue is that on the CRT output mode setting does not always work. It is clear that the possibility for regressions is zero. A big thanks to VIA Technologies for making this possible and supporting this work. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw> Cc: Jonathan Corbet <corbet@lwn.net>
* | viafb: fix hardware acceleration for suspend & resumeFlorian Tobias Schandinat2010-10-243-19/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch splits the acceleration initialization in two parts: The first is only called during probe and is used to allocate resources. The second part is also called on resume to reinitalize the 2D engine. This should fix all acceleration issues after resume most notable an "invisible" cursor and as we do nothing special it is reasonable to assume that it works on all supported IGPs. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Acked-by: Jonathan Corbet <corbet@lwn.net> Cc: Joseph Chan <JosephChan@via.com.tw>
* | viafb: make suspend and resume work (on all machines?)Florian Tobias Schandinat2010-10-242-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the dangerous suspend and resume code that was developed for VX855 only. After this the framebuffer is expected to cause no longer serious (freezing) issues on any machines. However the hardware acceleration is broken now so only doing resume with unaccelerated framebuffers is save. This did not work previously as the 2D engine is not mapped if the framebuffer is not accelerated. The acceleration issue will be addressed later. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Acked-by: Jonathan Corbet <corbet@lwn.net> Cc: Joseph Chan <JosephChan@via.com.tw>
* | viafb: restore display on resumeFlorian Tobias Schandinat2010-10-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes viafb restore the display on resume by calling viafb_set_par. Resumeing has still its issues: - will probably freeze most machines (for me on VX800 reliable on the second resume) - under some configurations the screen appears on the wrong output device (reason unknown) Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Acked-by: Jonathan Corbet <corbet@lwn.net> Cc: Joseph Chan <JosephChan@via.com.tw>
* | Minimal support for viafb suspend/resumeDeepak Saxena2010-10-243-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds minimal support for suspend/resume of the VIA framebuffer device. It requires a version of OFW that restores the video mode. This patch is OLPC-specific as the proper upstream solution is to move the VIA video path to using the kernel modesetting infrastructure and doing a proper save/restore in the kernel. [jc: extensive changes for 2.6.34 merge] Signed-off-by: Deepak Saxena <dsaxena@laptop.org> [fts: viafb_driver moved from viafbdev.c to via-core.c] Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Acked-by: Jonathan Corbet <corbet@lwn.net> Cc: Joseph Chan <JosephChan@via.com.tw>
OpenPOWER on IntegriCloud