Commit Graph

241 Commits

Author SHA1 Message Date
Peter Huewe
9f5610e20b video/via: Convert to kstrtou8_from_user
This patch replaces the code for getting an number from a
userspace buffer by a simple call to kstrou8_from_user.
This makes it easier to read and less error prone.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Acked-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-05-08 17:00:12 +00:00
Florian Tobias Schandinat
11e184756a Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6 into fbdev-next 2012-03-13 23:19:58 +00:00
Florian Tobias Schandinat
838ac785d5 viafb: avoid refresh and mode lookup in set_par
As check_var already ensures that the mode is valid there is no need
to do those expensive lookups here again. The only thing that might
change is that the deprecated interface could report slightly
different refresh rates due to rounding errors.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-03-08 18:41:38 +00:00
Florian Tobias Schandinat
9864ca20c5 viafb: modetable conversion
This patch converts the modetables used in viafb to
- remove the strange thing that sync_end and blanking_end contained
  the length and not the absolute value
- remove hundreds of useless defines
- use fb_videomode and not our own definition so modes defined in
  the subsystem and received via EDID are compatible with ours

As the modes are now stored in a flat structure and no longer in a
tree like thing the lookup time was increased but as it is a rare
event anyway it shouldn't matter. Otherwise the behaviour should be
the same as before.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-03-08 18:41:35 +00:00
Florian Tobias Schandinat
91dc1be8f6 viafb: LCD bpp cleanup
This patch removes redundant bits per pixel information by using the
one storged in var directly. Simplifies code without any functional
changes.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-03-04 12:05:15 +00:00
Florian Tobias Schandinat
e29206381a viafb: fix IGA1 modesetting on VX900
Even if the documentation calls this bit "Reserved" it has to be set
to 0 for correct modesetting on IGA1.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@vger.kernel.org
2012-02-24 00:38:14 +00:00
Florian Tobias Schandinat
050f0e02c8 viafb: select HW scaling on VX900 for IGA2
VX900 can do hardware scaling for both IGAs in contrast to previous
hardware which could do it only for IGA2. This patch ensures that
we set the parameter for IGA2 and not for IGA1. This fixes hardware
scaling on VX900 until we have the infrastructure to support it for
both IGAs.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@vger.kernel.org
2012-02-24 00:38:02 +00:00
Florian Tobias Schandinat
70a27df157 viafb: Fix bug in centering code
Obviously this is a typo and although there were no effects observed
it's probably better to fix it.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-21 08:50:27 +00:00
Florian Tobias Schandinat
78145b7a34 viafb: another workaround for OLPCs weird wiring
On OLPC we must not touch this I2C bus or it will hang.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-21 08:50:19 +00:00
Dan Carpenter
c572c8bbff viafb: NULL dereference on allocation failure in query_edid()
We should handle the allocation here, if only to keep the static
checkers happy.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-17 07:56:21 +00:00
Florian Tobias Schandinat
7b91812048 Merge branch 'viafb-aux' into viafb-next 2012-02-15 04:22:47 +00:00
Florian Tobias Schandinat
5dc5f61813 viafb: add initial EDID support
This patch adds support for using EDID data on CRT and DVP1 for
initial configuration if viafb_mode or viafb_mode1 are not present.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-13 07:28:14 +00:00
Florian Tobias Schandinat
2c4c8a8a73 viafb: fix I2C emulation on GPIO ports
This patch fixes the I2C emulation on GPIO ports by enabling it
(software controlled) and disabling the output on a GPIO line before
reading it.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-12 22:15:16 +00:00
Florian Tobias Schandinat
4e5527c9d1 viafb: make SAMM to also work on LCD
This patch enables LCD to handle SAMM without dual fb.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-12 22:12:45 +00:00
Florian Tobias Schandinat
532f9169db viafb: make single framebuffer multiple adapter mode work
This patch implementes this mode (viafb_SAMM_ON set and
viafb_dual_fb not set) in a useful way for CRT and DVI devices.
The same content is shown on both devices in different video modes.
The first (primary) resolution must not be bigger than the secondary
one and determines the visible region. The same content is shown
centered on the secondary output.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-10 19:28:39 +00:00
Florian Tobias Schandinat
561c9079ea viafb: fill xres and yres
This patch fills xres and yres in var which is required when a
temporary var is genereated when viafb_SAMM_ON is set and
viafb_dual_fb is not set. It also removes an obsolete comment.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-10 19:28:39 +00:00
Florian Tobias Schandinat
e0e12a9282 viafb: set correct polarity for second adapter
This patch sets the correct polarity for the second adapter when
viafb_SAMM_ON is set and viafb_dual_fb is not set. Just one step to
make this mode useful.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-10 19:28:37 +00:00
Florian Tobias Schandinat
e75892715d viafb: add auxiliary device management infrastructure
This patch adds the basic infrastructure and a few stub drivers for
devices that are connected via I2C busses. The infrastructure will
be used to replace and extend the support that is scattered
throughout viafb. The stub drivers are not very useful yet but they
show how the infrastructure works, provide information about the
chips integrated into a system and maybe gather some testers as it
would be very difficult for a single person to get a sane test
environment.
The only thing this actually does is probing the I2C busses which
will hopefully not cause any regressions.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-02-10 19:11:51 +00:00
Daniel Drake
a32839696a viafb: correct sync polarity for OLPC DCON
While the OLPC display appears to be able to handle either positive
or negative sync, the Display Controller only recognises positive sync.

This brings viafb (for XO-1.5) in line with lxfb (for XO-1) and
fixes a recent regression where the XO-1.5 DCON could no longer be
frozen. Thanks to Florian Tobias Schandinat for helping identify
the fix.

Test case: from a vt,
	echo 1 > /sys/devices/platform/dcon/freeze
should cause the current screen contents to freeze, rather than garbage being
displayed.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@kernel.org
2011-11-22 00:56:17 +00:00
Paul Gortmaker
a8a3593185 video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video
With module.h being implicitly everywhere via device.h, the absence
of explicitly including something for EXPORT_SYMBOL went unnoticed.
Since we are heading to fix things up and clean module.h from the
device.h file, we need to explicitly include these files now.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-10-31 19:31:33 -04:00
Wang Shaoyan
4ce36bbb04 viafb: replace strict_strtoul to kstrto* and check return value
This commit replace the function strict_strtoul(becasue commit 33ee3b2e), and check the return value to avoid such warning:

  drivers/video/via/viafbdev.c:1992: warning: ignoring return value of 'kstrtoul', declared with attribute warn_unused_result

Signed-off-by: Wang Shaoyan <wangshaoyan.pt@taobao.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-17 20:13:13 +00:00
Florian Tobias Schandinat
94bd217e2d Merge commit 'v3.1-rc2' into HEAD 2011-08-17 16:14:01 +00:00
Florian Tobias Schandinat
5dd72f12df viafb: get rid of the remaining modetable structure assumptions
This patch removes the remaining places where assumptions about the
structure of the modetable were made. Aside from some places where
assumptions are made that certain modes are in the modetable the
only code dealing with the modetable and not just a single mode is
in viamode. This will allow chaniging the modetable and use other
sources for videomodes like the subsystem or EDID.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-07 13:34:35 +00:00
Florian Tobias Schandinat
bfe7d5f939 viafb: eliminate modetable dependancy of LCD modesetting
This patch removes the need for knowing the modetable structure
within the LCD modesetting function. The magic 60Hz refresh rate was
already there as always the first entry for a resolution was choosen
based on the ascending refresh rate ordering in the modetable.
For all but one this is at least 60Hz, if only higher frequencies
available we choose those like the code before did. The exception is
OLPC but that resolution has only one frequency so we get the same
behaviour there as well.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-07 13:08:45 +00:00
Florian Tobias Schandinat
4fbf4bfe6f viafb: seperate hardware initialization
This patch splits the hardware initialization out of the modesetting
function which will make it easier to make it conditional and not
require starting from scratch for every mode change, which is
especially annoying in dual framebuffer mode.
This required some minor reordering but it should not influence its
functionality.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2011-08-07 11:22:32 +00:00