Age | Commit message (Collapse) | Author |
|
Add VGA support.
To enable VGA on second display, you can do the following:
> echo U:1280x1024p-60 > /sys/class/graphics/fb1/mode
> echo 0 > /sys/class/graphics/fb1/blank
To enable VGA on primary display, you can set bootcmd:
video=mxcdi1fb:BGR24,VGA-XGA di1_primary
or
video=mxcdi1fb:BGR24,SXGA di1_primary
Signed-off-by: Jason Chen <b02280@freescale.com>
(cherry picked from commit e6b393f8b9f32d0a982945ad6c9a54ec5f07923b)
|
|
Add VGA support for ipu basic driver and fb driver.
Signed-off-by: Jason Chen <b02280@freescale.com>
(cherry picked from commit 214d8593acc37e2d5ed32e75a6518a8e306a1246)
|
|
- Hang was caused by accessing EPDC registers without enabling clocks to the
EPDC module. Fix is to defer actual write to EPDC registers until subsequent
screen updates are requested.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
- User can specify a flag (EPDC_FLAG_FORCE_MONOCHROME) to have 8-bit grayscale
converted to monochrome (black or white) via processing in the PxP
(using the LUT).
- Added logic to check against the full videomode when identifying the
desired FB mode. This allows support for multiple modes with the same
dimensions.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Backlight value is reset at event MXS_LCDIF_PANEL_INIT after resume.
Check suspend status to avoid reset value.
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
Though users can specify 'ldb=xxx' to enable 1080P LVDS
panel when using DI1, it is not easy for them to set it
correctly. This patch will add the default LDB setting
for this case and correct the comment of ldb_setup()
function.
Signed-off-by: Liu Ying <b17645@freescale.com>
|
|
EPDC FB driver currently always reports FB_VISUAL_TRUECOLOR as the visual
element of fb_fix_screeninfo. For grayscale formats, it should report
FB_VISUAL_PSEUDOCOLOR.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Amount of memory allocated by EPDC FB driver (including that used for X Windows
acceleration) changed from a hardcoded 13MB to an amount configurable via
kernel parameter.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
- PxP processing task was always assuming that the input buffer size was
based on the frame buffer dimensions. So, it was working incorrectly
when the input buffer was an alternate buffer of different dimensions.
- Problem fixed by updating the input buffer dimensions based on whether
the input buffer is the frame buffer or an alternate buffer.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Added checks to ensure that clocks and regulators can be accessed.
Removed redundant call to clean up fb_deferred_io.
Fixed string manipulation-related crashes with firmware file string
by defining fixed string length.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
As ELCDIF copies next buffer address to current buffer address
automatically every time the current frame done interrupt comes,
we'll wait a current frame done interrupt to come to make sure
the current buffer address has been switched to the next buffer
address. Moveover, we'll release the flip semaphore when the
current frame done interrupt comes to make sure that each pan
display operation will take effect.
Signed-off-by: Liu Ying <b17645@freescale.com>
(cherry picked from commit 7426e3f8894b8ca71d44ec59ee5ac460b3cb37b0)
|
|
1) Add Seiko WVGA LCD panel driver Support.
2) Add fsl-devices.h headfile to ELCDIF FB driver and
CLAA-WVGA LCD panel driver.
Signed-off-by: Liu Ying <b17645@freescale.com>
|
|
1) Return directly if the first access to SII9022 transmitter via
I2C bus fails.
2) Remove the msleep function in probe.
Signed-off-by: Liu Ying <b17645@freescale.com>
|
|
jiffies_to_msecs used instead of msecs_to_jiffies. This mistake has been fixed.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Added "x_mem=" option (e.g. video=mxcepdcfb:E60,bpp=16,x_mem=10000)
to configure extra FB memory for X-accel.
Signed-off-by: r80085 <thomas.peng@freescale.com>
|
|
When update X coordinate is an odd number and the update region width
is a multiple of 8, the screen shows garbage due to a bug in how the
driver handles this corner case. The fix is to identify and handle
this case in the driver.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Add ePxP V4L2 output driver, which calls ePxP DMAEngine internally.
Support rotation, overlay, alpha-blending, colorkey, etc.
Signed-off-by: Robby Cai <R63905@freescale.com>
|
|
In order to provide more flexibility to the user, the pan API should not
automatically trigger a full-screen panel update. No update will
be performed, and the user will have to submit a SEND_UPDATE to update
the screen after panning.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Crash averted by preventing the case where a NULL string (representing
the panel selected via command line) is passed through strcmp().
If no command line panel selected, the default will be the first panel
defined in the platform data (the 6.0" E Ink panel for MX50 ARM2).
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Add support for 9.7" E Ink panel.
Expand driver support for multiple panels by storing platform data
containing all variable panel parameters. Removed hard-coded reg values
for 6" panel.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
In order to enable full use of GPU, framebuffer surfaces must adhere
to GPU alignment restrictions. Width must be 32-byte aligned and
height must be 128-byte aligned (4K buffer alignment). Code modified to
meet these restrictions.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
Ability added to control the delay between all updates being complete
and the EPDC powering down. This provides user space control over
how frequently the EPDC is undertaking a time-consuming enable/disable
process.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
It's easy to reproduce by run below cmd:
./mxc_v4l2_output.out -iw 320 -ih 240 -ow 1024 -oh 768 -fr 80 -d 3
qvga.yuv
For performance, we did not check display in IC interrupt handle before.
Output must sync to display.
In this patch:
1. make stream begin with one buffer.
2. change timer_work name to icbypass_work.
3. add display sync to timer interrupt handler.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
Add sii9022 driver support.
Signed-off-by: Jason Chen <b02280@freescale.com>
|
|
Add ability to claim/release EPDC pins when turning
enabling/disabling EPDC. This is important for EPDC
power management.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
When FB console is enabled, the EPDC will perform a full-screen update
after completing register_framebuffer(). This update will show
the Linux logo if it has been selected.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
This patch keeps TVE variable screeninfo when the TVE driver
reconfigures TVE framebuffer so that the pixel format of the
framebuffer will not be changed.
This patch fixes the wrong pixel format issue when start to
play video on TVE framebuffer with TVE framebuffer in blanked
status.
Signed-off-by: Liu Ying <b17645@freescale.com>
|
|
Modified mxc_epdc_fb_remove() to prevent crashes and errors when
the FB driver is removed. deferred_io must be unloaded before FB
memory is freed.
Signed-off-by: Danny Nold <dannynold@freescale.com>
|
|
This patch contains driver fixes for mx25.
Contains all checkpatch and copyright fixes.
Signed-off-by: Alan Tull <r80115@freescale.com>
|
|
Fix build error because kernel upgrade
Signed-off-by: Frank Li <Frank.Li@freescale.com>
|
|
This patch contains changes to /drivers files
Contains all checkpatch and copyright fixes.
Acked-by: Rob Herring <r.herring@freescale.com>
Signed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com>
|
|
Don't trun off the pwm backlight when blanking the fore-ground.
Signed-off-by: William Lai <b04597@freescale.com>
|
|
|
|
* master.kernel.org:/home/rmk/linux-2.6-arm:
cyber2000fb: fix console in truecolor modes
cyber2000fb: fix machine hang on module load
SA1111: Eliminate use after free
ARM: Fix Versatile/Realview/VExpress MMC card detection sense
ARM: 6279/1: highmem: fix SMP preemption bug in kmap_high_l1_vipt
ARM: Add barriers to io{read,write}{8,16,32} accessors as well
ARM: 6273/1: Add barriers to the I/O accessors if ARM_DMA_MEM_BUFFERABLE
ARM: 6272/1: Convert L2x0 to use the IO relaxed operations
ARM: 6271/1: Introduce *_relaxed() I/O accessors
ARM: 6275/1: ux500: don't use writeb() in uncompress.h
ARM: 6270/1: clean files in arch/arm/boot/compressed/
ARM: Fix csum_partial_copy_from_user()
|
|
Return value was not set to 0 in setcolreg() with truecolor modes. This causes
fb_set_cmap() to abort after first color, resulting in blank palette - and
blank console in 24bpp and 32bpp modes.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
I was testing two CyberPro 2000 based PCI cards on x86 and the machine always
hanged completely when the cyber2000fb module was loaded. It seems that the
card hangs when some registers are accessed too quickly after writing RAMDAC
control register. With this patch, both card work.
Add delay after RAMDAC control register write to prevent hangs on module load.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
WARNING: drivers/video/built-in.o(.data+0x360): Section mismatch in reference from the variable au1100fb_driver to the function .init.text:au1100fb_drv_probe()
The variable au1100fb_driver references
the function __init au1100fb_drv_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
Fixing which triggers of a slew of further mismatches:
WARNING: drivers/video/built-in.o(.devinit.text+0xc0): Section mismatch in reference from the function au1100fb_drv_probe() to the variable .init.data:au1100fb_fix
The function __devinit au1100fb_drv_probe() references
a variable __initdata au1100fb_fix.
If au1100fb_fix is only used by au1100fb_drv_probe then
annotate au1100fb_fix with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x21c): Section mismatch in reference from the function au1100fb_drv_probe() to the variable .init.data:au1100fb_var
The function __devinit au1100fb_drv_probe() references
a variable __initdata au1100fb_var.
If au1100fb_var is only used by au1100fb_drv_probe then
annotate au1100fb_var with a matching annotation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
WARNING: drivers/built-in.o(.devinit.text+0xc0): Section mismatch in reference from the function pmagbafb_probe() to the variable .init.data:pmagbafb_fix
The function __devinit pmagbafb_probe() references
a variable __initdata pmagbafb_fix.
If pmagbafb_fix is only used by pmagbafb_probe then
annotate pmagbafb_fix with a matching annotation.
Fixing this one triggers a few more mismatches in order:
WARNING: drivers/video/built-in.o(.devinit.text+0x414): Section mismatch in reference from the function pmagbbfb_probe() to the variable .init.data:pmagbbfb_fix
The function __devinit pmagbbfb_probe() references
a variable __initdata pmagbbfb_fix.
If pmagbbfb_fix is only used by pmagbbfb_probe then
annotate pmagbbfb_fix with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x45c): Section mismatch in reference from the function pmagbbfb_probe() to the variable .init.data:pmagbbfb_defined
The function __devinit pmagbbfb_probe() references
a variable __initdata pmagbbfb_defined.
If pmagbbfb_defined is only used by pmagbbfb_probe then
annotate pmagbbfb_defined with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x5fc): Section mismatch in reference from the function pmagbbfb_probe() to the function .init.text:pmagbbfb_screen_setup()
The function __devinit pmagbbfb_probe() references
a function __init pmagbbfb_screen_setup().
If pmagbbfb_screen_setup is only used by pmagbbfb_probe then
annotate pmagbbfb_screen_setup with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x6f4): Section mismatch in reference from the function pmagbbfb_probe() to the function .init.text:pmagbbfb_osc_setup()
The function __devinit pmagbbfb_probe() references
a function __init pmagbbfb_osc_setup().
If pmagbbfb_osc_setup is only used by pmagbbfb_probe then
annotate pmagbbfb_osc_setup with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x5f8): Section mismatch in reference from the function pmagbbfb_osc_setup() to the variable .init.data:pmagbbfb_freqs.15993
The function __devinit pmagbbfb_osc_setup() references
a variable __initdata pmagbbfb_freqs.15993.
If pmagbbfb_freqs.15993 is only used by pmagbbfb_osc_setup then
annotate pmagbbfb_freqs.15993 with a matching annotation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
WARNING: drivers/video/built-in.o(.data+0x1e0): Section mismatch in reference fr
om the variable pmagbafb_driver to the function .init.text:pmagbafb_probe()
The variable pmagbafb_driver references
the function __init pmagbafb_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
Fixing this one triggers 2 more:
WARNING: drivers/video/built-in.o(.devinit.text+0xc0): Section mismatch in reference from the function pmagbafb_probe() to the variable .init.data:pmagbafb_fix
The function __devinit pmagbafb_probe() references
a variable __initdata pmagbafb_fix.
If pmagbafb_fix is only used by pmagbafb_probe then
annotate pmagbafb_fix with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x108): Section mismatch in reference from the function pmagbafb_probe() to the variable .init.data:pmagbafb_defined
The function __devinit pmagbafb_probe() references
a variable __initdata pmagbafb_defined.
If pmagbafb_defined is only used by pmagbafb_probe then
annotate pmagbafb_defined with a matching annotation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
WARNING: drivers/video/built-in.o(.devinit.text+0x54): Section mismatch in reference from the function gbefb_probe() to the function .init.text:gbefb_setup()
The function __devinit gbefb_probe() references
a function __init gbefb_setup().
If gbefb_setup is only used by gbefb_probe then
annotate gbefb_setup with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x208): Section mismatch in reference from the function gbefb_probe() to the variable .init.data:mode_option
The function __devinit gbefb_probe() references
a variable __initdata mode_option.
If mode_option is only used by gbefb_probe then
annotate mode_option with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x214): Section mismatch in reference from the function gbefb_probe() to the variable .init.data:default_mode
The function __devinit gbefb_probe() references
a variable __initdata default_mode.
If default_mode is only used by gbefb_probe then
annotate default_mode with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x23c): Section mismatch in reference from the function gbefb_probe() to the variable .init.data:default_var
The function __devinit gbefb_probe() references
a variable __initdata default_var.
If default_var is only used by gbefb_probe then
annotate default_var with a matching annotation.
Fixing these results in more mismatches:
WARNING: drivers/video/built-in.o(.devinit.text+0x3c): Section mismatch in reference from the function gbefb_setup() to the variable .init.data:default_var_LCD
The function __devinit gbefb_setup() references
a variable __initdata default_var_LCD.
If default_var_LCD is only used by gbefb_setup then
annotate default_var_LCD with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x14c): Section mismatch in reference from the function gbefb_setup() to the variable .init.data:default_mode_LCD
The function __devinit gbefb_setup() references
a variable __initdata default_mode_LCD.
If default_mode_LCD is only used by gbefb_setup then
annotate default_mode_LCD with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x150): Section mismatch in reference from the function gbefb_setup() to the variable .init.data:default_var_CRT
The function __devinit gbefb_setup() references
a variable __initdata default_var_CRT.
If default_var_CRT is only used by gbefb_setup then
annotate default_var_CRT with a matching annotation.
WARNING: drivers/video/built-in.o(.devinit.text+0x154): Section mismatch in reference from the function gbefb_setup() to the variable .init.data:default_mode_CRT
The function __devinit gbefb_setup() references
a variable __initdata default_mode_CRT.
If default_mode_CRT is only used by gbefb_setup then
annotate default_mode_CRT with a matching annotation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
Pointed out by Lucas who found the new one in a comment in
setup_percpu.c. And then I fixed the others that I grepped
for.
Reported-by: Lucas <canolucas@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
Fix a nuc900 lcd build error.
Since the 'nuc900_driver_clksrc_div()' API cannot be merged into mainline
successfully, I removed this clock source selection hook in this driver.
This means nuc900 lcd driver has to select default clock source from the
external crystal now.
Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
Cc: Qiang Wang <rurality.wq@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
WARNING: vmlinux.o(.data+0x196e8): Section mismatch in reference from the
variable lxfb_driver to the function .init.text:lxfb_probe() The variable
lxfb_driver references the function __init lxfb_probe()
This changes lxfb_probe and friends to use __devinit, and also adds
__devexit to lxfb_remove.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Cc: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
WARNING: vmlinux.o(.data+0x195d8): Section mismatch in reference from the
variable gxfb_driver to the function .init.text:gxfb_probe() The variable
gxfb_driver references the function __init gxfb_probe()
This changes gxfb_probe and friends to use __devinit, and also adds
__devexit to gxfb_remove.
Signed-off-by: Andres Salomon <dilinger@queued.net>
Cc: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
* 'for-linus' of git://gitorious.org/linux-omap-dss2/linux:
OMAP: OMAPFB: fix rfbi.c compile error
OMAPFB: LCDC: change update_mode to DISABLED when going suspend
|
|
The code in rfbi.c tried to get the omapdss platform_device via a static
member defined in dispc.c, leading to a compile error. The same
platform_device is available through rfbi-struct.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
|
|
I was observing the following error messages on my OMAP1 based Amstrad Delta
board when first changing from text to graphics mode or vice versa after the
LCD display had been blanked:
omapfb omapfb: timeout waiting for FRAME DONE
with a followup error message while unblanking it back:
omapfb omapfb: resetting (status 0xffffffb2,reset count 1)
As a visible result, image pixels happened to be shifted by a few bits,
giving wrong colors.
Examining the code, I found that this problem occures when an OMAP1 internal
LCD controller is disabled from omap_lcdc_suspend() and then a subsequent
omap_lcdc_setup_plane() calls disable_controller() again. This potentially
error provoking behaviour is triggered by the lcdc.update_mode flag being kept
at OMAP_AUTO_UPDATE, regardless of the controller and panel being suspended.
This patch tries to correct the problem by replacing both omap_lcdc_suspend()
and omap_lcdc_resume() function bodies with single calls to
omap_lcdc_set_update_mode() with a respective OMAP_UPDATE_DISABLE or
OMAP_AUTO_UPDATE argument. As a result, exactly the same lower level
operations are performed, with addition of changing the lcdc.update_mode flag
to a value better suited for the controller state. This prevents any further
calls to disable_controller() from omap_lcdc_setup_plane() while the display
is suspended.
Created against linux-2.6.34-rc7.
Tested on Amstrad Delta.
Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
|
|
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
sh: Make intc messages consistent via pr_fmt.
sh: make sure static declaration on ms7724se
sh: make sure static declaration on mach-migor
sh: make sure static declaration on mach-ecovec24
sh: make sure static declaration on mach-ap325rxa
clocksource: sh_cmt: compute mult and shift before registration
clocksource: sh_tmu: compute mult and shift before registration
sh: PIO disabling for x3proto and urquell.
sh: mach-sdk7786: conditionally disable PIO support.
sh: support for platforms without PIO.
usb: r8a66597-hcd pio to mmio accessor conversion.
usb: gadget: r8a66597-udc pio to mmio accessor conversion.
usb: gadget: m66592-udc pio to mmio accessor conversion.
sh: add romImage MMCIF boot for sh7724 and Ecovec V2
sh: add boot code to MMCIF driver header
sh: prepare MMCIF driver header file
sh: allow romImage data between head.S and the zero page
sh: Add support MMCIF for ecovec
sh: remove duplicated #include
input: serio: disable i8042 for non-cayman sh platforms.
...
|
|
Commit f601441916d1e19291d0b4f044b4a7551e2924d0 ("imxfb: add support for
i.MX25:) has inserted the symbol HAVE_FB_IMX, which does not depend on FB
after the menuconfig FB. This breaks the menu, presenting most of the
drivers outside of it, when using menuconfig.
Moving the symbol to the start of the file, just like HAVE_FB_ATMEL, fixes
the problem without breaking it for iMX25 configurations (tested with
ARCH=arm, no build).
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Baruch Siach <baruch@tkos.co.il>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
As pointed by Nick Piggin, ->page_mkwrite provides a way to keep a page
locked until the associated PTE is marked dirty.
Re-implement the fix by using this mechanism.
Signed-off-by: Albert Herranz <albert_herranz@yahoo.es>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Acked-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|