aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
Commit message (Collapse)AuthorAgeFilesLines
* OMAP4: DSSCOMP: move early suspend to after STOP_DRAWINGErik Gilling2011-07-211-1/+1
| | | | | Change-Id: Ie04e3bcae4aa23a9c11f37347d110e61a141f9fb Signed-off-by: Erik Gilling <konkers@android.com>
* OMAP:OMAPDSS: Add dependency on PVR_SGX for DSSCOMPLajos Molnar2011-07-201-1/+1
| | | | | | | DSSCOMP required PVR_SGX, so add a dependency in Kconfig. Change-Id: Ieba8c475688bf6845e160b0eb4f5821eca1d8fd6 Signed-off-by: Lajos Molnar <molnar@ti.com>
* OMAP:DSSCOMP: Fix issue in cropping.Lajos Molnar2011-07-181-4/+4
| | | | | | | | | | | Cropping logic was using the wrong variables for picture size. Thus, cropping sometimes failed if crop region was outside the incorrectly set picture size. This is now fixed. Change-Id: I0d4427d0ba1899011c46e44c09997ffdcd8766fe Signed-off-by: Lajos Molnar <molnar@ti.com>
* OMAP:OMAPLFB: Added reference counting for NV12 buffers on displayLajos Molnar2011-07-182-2/+32
| | | | | | | | | | | | | | | | | | | | Added reference count for each time an NV12 buffer is queued to the display. It is decremented when the buffer is swapped with another one (including the same one queued again). This is a crude solution since SGX is not keeping proper readops count for displayed buffers. Using atomic operations to change the reference count as the incrementing and decrementing are done in different blocks (graphics and display) under different locks. This should still be OK because the incrementing and the checking is in the graphics context. Requires corresponding change in DDK. Change-Id: I361577a3104e002cf9e5c5452fb2ce967545766b Signed-off-by: Lajos Molnar <molnar@ti.com>
* OMAP:DSSCOMP: Added support for swapping red and blue componentsLajos Molnar2011-07-184-0/+42
| | | | | | | | | | | Using color-phase rotation we can swap red and blue color components on LCD outputs to support BGRA and ABGR color formats. YUV color conversion matrices are also adjusted so YUV colors are not affected after color field swapping. Change-Id: Iffd24ad0355b52bd76ff7dd783b25f694fef3d1c Signed-off-by: Lajos Molnar <molnar@ti.com>
* OMAP:DSSCOMP: Added support for setting color-phase rotationLajos Molnar2011-07-181-0/+3
| | | | | | | | Added support for setting color-phase rotation coefficients for (LCD) managers. Change-Id: Id4f32c70cf6b6502d3a98a12b9d871670f4997b0 Signed-off-by: Lajos Molnar <molnar@ti.com>
* OMAP:DSSCOMP: Added support for setting color conversion coefsLajos Molnar2011-07-181-1/+1
| | | | | | | Now can set color conversion coefficients for YUV pipelines. Change-Id: If0b7f8c0f2828367e84513a8f8b44a227dbb7c22 Signed-off-by: Lajos Molnar <molnar@ti.com>
* Merge branch 'linux-omap-dss-3.0' into linux-omap-3.0Erik Gilling2011-07-184-52/+175
|\ | | | | | | Change-Id: I9123d2c339b3118ff0b8158ae5d2bb706147e3ea
| * OMAP:DSS2: Add support for setting color conversion coefficientsLajos Molnar2011-07-184-52/+19
| | | | | | | | | | | | | | Added color conversion coefficients to overlay info structures. Change-Id: If8fe3127d94d5e41fef3bc64505fbd19fbf830cf Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP: DSS2: Add Color Phase Rotation supportTomi Valkeinen2011-07-183-0/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | Add Color Phase Rotation (CPR) support and sysfs files to enable CPR and to set the CPR coefficient matrix. CPR is enabled via manager?/cpr_enable file, and the coefficient matrix is set via manager?/cpr_coef file. The values in cpr_coef are in the following order: RR RG RB GR GG GB BR BG BB Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* | OMAP4: DSSCOMP: make early suspend timeout non-interruptableErik Gilling2011-07-141-10/+6
| | | | | | | | | | | | | | early suspend has no way of erroring out. Change-Id: I3a6dc7059ed989792d9f28ea88dd1f7b1273f012 Signed-off-by: Erik Gilling <konkers@android.com>
* | OMAP4: DSSCOMP: add timeout to earlysuspendErik Gilling2011-07-141-1/+10
| | | | | | | | | | | | | | If there are DSS errors, DSSCOMP's early suspend could block forever. Change-Id: I0adc8008696033abf1f9b9fef628d7f7ffcfa9ca Signed-off-by: Erik Gilling <konkers@android.com>
* | OMAP:DSSCOMP: Make invalid compositions and states BUGSLajos Molnar2011-07-111-120/+59
| | | | | | | | | | | | | | | | | | | | | | We should not queue or get callbacks from invalid compositions, or compositions in invalid states, so these can be BUGs. Also made composition validating safer by not dereferencing the composition in unknown state (while being validated). Change-Id: I6327aee8ece622eab18b94050d3c427401879951 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Fix concurrency issues with delayed applyLajos Molnar2011-07-112-5/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Multiple compositions now can be waiting to be applied, and apply was completing potentially an earlier composition. This happened mainly during blanking. Added an APPLYING state to mark compositions to be in the queue. Also fixed a concurrency issue with tiler slot freeing. Change-Id: I99cf99f1b57e12a5c0bacebf06593086ae5da09a Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Protect composition state during callbackLajos Molnar2011-07-112-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keep mutex on during callback to avoid using a stale composition pointer. Also fixed an issue during dsscomp_apply() where the callback might have already been programmed even though apply() or wait_for_vsync() fails. In this case, we cannot automatically call the RELEASED callback because DSS will also call the now registered callback. This results in accessing a freed composition handle. Change-Id: Iee13591e1079074270eecf3e7a6f90f16c365775 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Fix wait_for_vsync in dsscomp_applyLajos Molnar2011-07-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | waiting for a tiler slot to become available is already (effectively) waiting for a vsync. Calling wait_for_vsync() in dsscomp_apply() creates an effective swap interval of 2. We can wait for vsync after applying DSS settings to get the same smoothing effect (resulting in effective swap interval of 1.) Change-Id: I4a0526ee1f0983f44cf3f53e340679ddf92c8227 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Added early_suspend handler to allow blankingLajos Molnar2011-07-111-1/+68
| | | | | | | | | | | | | | | | | | Prior compositions are completed in the early suspend handler, and new compositions are ignored (immediately completed) while display is blanked. Change-Id: I436e8a804ed1f5ed14c3ab90e43a5c26a9501ae3 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Gralloc compositions must complete in orderLajos Molnar2011-07-113-14/+33
| | | | | | | | | | | | | | | | | | Therefore, each composition must apply. Disable overlays that are not configured correctly so composition applies. Also ignore failing manager settings. Change-Id: Ia93b6a321c9554fd043aed70458fe6300beb43e9 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Fix composition list concurrency errors.Lajos Molnar2011-07-112-57/+69
| | | | | | | | | | | | | | | | | | | | | | - Made dsscomp_mgr_callback delayed (in workqueue) - Added mutex in dsscomp_mgr_callback - Fixed double deletion issue when composition is blank - Removed delay in dsscomp_gralloc_cb since mgr_callback will call it in a workqueue now. Change-Id: I5bd3dea46a83c2caf5376a5ed722342605312b4b Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Disable overlays not specified in a compositionLajos Molnar2011-07-111-0/+19
| | | | | | | | | | | | | | | | Disable overlays that were part of the previous frame, but are not part of the current frame. Change-Id: I9fb2be9c451c18aa8be23d4b4a348b21283e0d99 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSSCOMP: Added dsscomp_delayed_apply()Lajos Molnar2011-07-112-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | We may want to delay apply() as it is blocking. However, we will not get the error code if the apply failed, only an ECLIPSED_SET callback. This should be enough to handle the lifecycle of this composition. dsscomp_gralloc_queue() now calls delayed apply. Change-Id: I494073a338b75fc85d570a7f030a9bb73dcec6a3 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP: DSSCOMP: Added gralloc adaptation layerLajos Molnar2011-07-115-28/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added dsscomp_gralloc_queue() to queue a DSS composition from gralloc. This allows passing page list information for non-contiguous buffers, and a callback funtion. This gralloc layer automatically uses TILER1D areas to pin non-contiguous buffers, so that they become contiguous and can can be displayed by DSS. We only use dsscomp_gralloc_queue() for displaying a composition, so set the mode for DISPLAY. Also added new ioctl to test gralloc adaptaion layer. dsscomp_gralloc_init() does two things: it receives pointer to the device, and allocates TILER container areas. DSSCOMP is initialized before TILER, which causes problems. Thus, dsscomp_gralloc_init() stores the device pointer separately from allocating the memory. This way each part can fail independently. Added dsscomp_gralloc_init() within dsscomp_gralloc_queue() as it may be called before using the dsscomp device vs the file pointer. Using semaphore to keep track of available tiler slots. This is needed because we are releasing tiler slots in a work queue, that may get scheduled too late: - we release tiler slots when a composition is eclipsed in a work queue, as tiler_unpin_memory may be blocking. - we also release tiler slots if a composition has failed to be set. PVRSVC's callback is called when the composition is first displayed or eclipsed. It also gets called if a composition fails to queue to avoid a similar check and call from the called of queue(). Change-Id: I69d0a0c9fe452f05d846c6a38e314c5ac52d70e6 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP: DSS: DSSCOMP: Remove random access (sync_id), move to simple queueLajos Molnar2011-07-113-186/+69
| | | | | | | | | | | | | | | | | | | | | | | | Removed sync_id because compositions will be specified at once. Moved to simple queue as all compositions will get displayed. Delete composition in dsscomp_drop() Print composition address instead of sync-id, which is now 0. Change-Id: Ic5078f3da4d10d0d5a27c3df0d33e9ad5de362b6 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | OMAP:DSS:DSSCOMP: Add DSS composition module to build/config systemLajos Molnar2011-07-112-0/+2
| | | | | | | | | | | | | | | | | | This patch links in the DSS composition (dsscomp) module into the build and configuration system. DSS composition is enabled by default. Change-Id: Ic9fe20416116997541bbc043ab4681d52db61a5b Signed-off-by: Lajos Molnar <molnar@ti.com> Signed-off-by: Mark Tyler <mark.tyler@ti.com>
* | OMAP:DSS:DSSCOMP: New composition moduleLajos Molnar2011-07-116-0/+1792
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a new DSS composition module. DSSCOMP allows specifying a whole composition for a DSS display: 1. set overlay information for all overlays on a manager 2. reroute the overlays to the manager (overlay must be disabled just as when using sysfs) 3. set manager information 4. optionally call manager->apply() that programs the DISPC 4. optionally do an update (after a sync call) DSS already implements coordinated updates by separating overlay information setting from the applicaion of those settings (which happens only in manager->apply()). However current users of DSS call manager->apply() for each change, which make coordinated change impossible. This API also implements auto cropping of all layers to the display region. This makes switching displays and handling display resolution changes easier (without getting "failed to setup overlay" messages.) DSSCOMP operates on 3 levels. base.c contains the basic DSS operations, such as setting DSS overlay and managers using DSSCOMP's setting structures. Theoretically, DSSCOMP could be used via only these operations. queue.c contains the queuing mechanism. This module maintains compositions queued to each overlay manager (the basic DSS composition entity). Each composition is referred to by a unique sync-id. Queueing operations consist of creating a composition, setting/getting manager/overlay information for the composition, applying the composition to the display (which also displays it on manually updated panels), waiting on various states of a composition. For now the basic queuing mechanism of DSSCOMP is "queue and forget". Therefore, it is not necessary to dequeue each frame queued. A consequence of this methodology is that if one applies a composition to a display, any prior unapplied compositions will be dropped. The queuing interface tracks which overlay is assigned to which manager. This is done at the DSS programming level, as that is the most reliable place to monitor overlay ownership. Nonetheless, the device interface uses overlay information to verify overlay ownership - which may be slightly out of sync. The user of DSSCOMP should maintain overlay ownership to ensure flawless sharing of overlays between managers. (E.g. should not use an overlay on a new manager, until the overlay has been disabled on the previous manager, and that composition has been programmed.) device.c contains the device hooks to operating system, and the file interface (via /dev/dsscomp's ioctls). /dev/dsscomp works on top of the queueing mechanism. There are 3 levels of header files. linux/dsscomp.h: basic dsscomp structures and ioctls plat/dsscomp.h: kernel dsscomp interface (on top of linux/dsscomp.h) local dsscomp.h: common implementation structures and shared methods Note: plat/dsscomp.h defines a handle typedef that causes a checkpatch warning. I feel that the creation of a handle typedef is warranted. Limitations: - no WB support - unsure whether to call sync on non-manual update panels - cannot get overlay/manager information on a composition without first having set it - not fully operational - still debugging some unit test issues Change-Id: Ie62e8eeccfd6f3cae9e39e30d5105fa2bad68c62 Signed-off-by: Lajos Molnar <molnar@ti.com>
* | Merge remote branch 'omap/linux-omap-dss-3.0' into linux-omap-3.0Rebecca Schultz Zavin2011-07-118-424/+1031
|\ \ | |/ | | | | Change-Id: Ida1a3053c2e75c4bfa554319bade0e78011b5e4c
| * OMAP4:DSS: Jumbo patch to enable predecimationLajos Molnar2011-07-114-66/+364
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Includes the following fixes: - fixed color format modes for non-GFX pipelines - fixed NV12 support in 1D mode buffer - added all color formats to configure_overlay() - fix maxdownscale limits for OMAP4 in DISPC setup plane. Predecimation - added predecimation support for NV12/YUV/rotated/SDMA buffers - added scaling decision (predecimation) - added conservative fclk calculation - added sysfs controls - tied into DSSCOMP Change-Id: Ie730ac2b2da48b5de8e27f03035a8213696612a8 Signed-off-by: Lajos Molnar <molnar@ti.com> Signed-off-by: Mark Tyler <mark.tyler@ti.com>
| * OMAP: DSS2: Add callback for tracking overlay/manager changesLajos Molnar2011-07-113-2/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows tracking when a particular overlay or manager change has taken place, and when it is eclipsed (no longer used). In DSS2 overlay/manager information travels through 4 stages: 1: (software) overlay/manager info 2: (software) cache (on manager->apply()) 3: (hardware) shadow registers (on configure()) 4: (hardware) DISPC (on vsync or go/enable) Callback information for each settings can be passed as part of the info structure (info->cb), which is the following struct: struct omapdss_ovl_cb { void (*fn)(void *data, int id, int status); void *data; }; id contains to the overlay/manager index. If fn is NULL, no callback will take place. Otherwise, callbacks will be generated on programming (when settings get into the DISPC), when the settings are displayed, and on eclipse (when settings are overwritten by newer settings). Depending on the stage where the eclipse happens, a different callback is generated. Status is one of the DSS_COMPLETION_... enum values specifying the event. DSS_COMPLETION_ECLIPSED_SET - info was overwritten at stage 1 DSS_COMPLETION_ECLIPSED_CACHE - info was overwritten at stage 2 DSS_COMPLETION_ECLIPSED_SHADOW - info was overwritten at stage 3 DSS_COMPLETION_RELEASED - info was overwritten at stage 4 (after successfully being displayed)DSS_COMPLETION_TORN - info was overwritten at stage 4 (before it was successfully displayed) DSS_COMPLETION_PROGRAMMED - info moved from stage 3 to stage 4 (this follows the prior info's callback of DSS_COMPLETION_RELEASED/TORN) DSS_COMPLETION_DISPLAYED - info in stage 4 has been successfully displayed. This callback is received on every frame refresh. If only the first display is required, it needs to be filtered out in the callback. You can use the DSS_COMPLETION_RELEASED flag to see if an info has been eclipsed (so you don't have to check for all 5 values). There is a fundamental issue with tracking DSS settings in the current DSS2 framework. Pipeline/manager settings are programmed first into an info structure that stays around. These settins can be modified piece-by-piece - as they are done using the sysfs framework. Theoretically, these cause the old settings to be eclipsed by the new settings. However, sysfs interface is used to augment the other DSS2 users that would register for these callbacks. Therefore, we need to treat these partial updates specially. For now - if the callback function and data are the same - a different status is used: DSS_COMPLETION_CHANGED_SET. Now these auxiliary interfaces also apply the changes automatically, so a similar method needs to be used at level 2. (DSS_COMPLETION_CHANGED_CACHE) This, however, causes callback info to stay around at the level 1 interface making it not useful for tracking the status. We cannot guarantee that the information is tracked from setting to release/eclipse if future settings may end up reusing (ignorantly) the same callback info. For now the callback info is cleared at level 1 when transferred to level 2. If other - callback unaware - DSS2 users modify overlay/manager settings, (e.g. using sysfs controls in any way), they will not reset the callback. We err on the side of sysfs, and we will not treat a settings application (transferring level 1 info to level 2) as eclipsed if the level-1 callback method is empty. This works for sysfs changes, but we will be a missed callback if V4L2 or FB is changing the base address, and we are using the callbacks to track buffer usage. The other issue is using sysfs to enable/disable an overlay. We may get a RELEASED event on disable, but no usage callback is done on subsequent enable because sysfs will not request a callback. Change-Id: Iebc2551ad1d5bce94bd668cf2c885c895809d416 Signed-off-by: Lajos Molnar <molnar@ti.com> Signed-off-by: Mark Tyler <mark.tyler@ti.com>
| * OMAP4:DSS: Added TILER support for DSSLajos Molnar2011-07-111-2/+77
| | | | | | | | | | | | | | | | Added support for displaying buffers located in the TILER 2D containers. Buffers in TILER 1D containers can be displayed using OMAP_DSS_ROT_DMA. Change-Id: Ibd8eb2c8c705cb4c2a1aec4b78ef63d238af50ae Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP4: DSS: Making the deault color format of framebuffer ARGB32Lajos Molnar2011-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier the default color format,frmamebuffer has,was xRGB24U but SGX is producing data in ARGB32. Also,SGX,the FB driver user,doesnt negotiates with FB driver for the format and thus FB needs to provide ARGB32 to align with SGX format. Based on original commit from http://git.omapzoom.org/?p=kernel/omap.git;a=commit;h=c75a7e1b83d446650b0f393746f8a810242a8739 Change-Id: I086ebeec0ccd00ffff9ddf3e5fd2e69d2074e99b Signed-off-by: Mark Tyler <mark.tyler@ti.com> Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP: DSS2: Add zorder support on OMAP4Lajos Molnar2011-07-116-2/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add zorder Support on OMAP4, this feature allows deciding the visibility order of the overlays based on the zorder value provided as a sysfs attribute of the overlay object. Since this feature is not supported on OMAP3 and OMAP2, the sysfs attibutes always return zorder as 0 and do not write to dispc registers for non OMAP4 architectures. Based on original commit from Archit Taneja on k38. Change-Id: I3a11d6294352983e4feeeecf269f7811d56c29ff Signed-off-by: Sumit Semwal <sumit.semwal@ti.com> Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Mark Tyler <mark.tyler@ti.com> Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP: DSS2: Add DISPC VIDEO3 pipeline supportLajos Molnar2011-07-115-355/+269
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VID3 and Writeback pipeline registers have a linear relation, introduce these registers and access these registers in DISPC functions. Add a dss_feature for VIDEO3 pipeline. Configure color conversion and global alpha for this new pipeline. Also, create overlay object for the new video pipe. Based on original k38 patch from Archit Taneja. Change-Id: Ia7115eaa325289269121ab916c92f19cd0d4a7fb Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP4: DSS: Fix incorrect OMAP3-alpha compatibility settingLajos Molnar2011-07-114-11/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alpha blending is always enabled on OMAP4. The meaning of the alpha enabled bits in DISPC_CONFIG registers now enabled OMAP3 compatibility mode which disables ZORDER settings. This is not what we want when we set alpha blending. This patch sets alpha blending always to true on OMAP4. It also turns off OMAP3 compatibility mode for now, and reports the compatibility mode results when querying dispc_alpha_blending. Change-Id: Id8239cafdc6b6b55ab2c29454edd0108b9d69c6e Signed-off-by: Lajos Molnar <molnar@ti.com>
| * OMAP:DSS: Add global alpha settings for video 1 overlayLajos Molnar2011-07-111-0/+2
| | | | | | | | | | | | | | | | Add global alpha settings for video 1 overlay in _dispc_setup_global_alpha. On OMAP4 VID1 has global alpha. Change-Id: If89777de7f877027c0bd6652facf1fe0ff3c266d Signed-off-by: Lajos Molnar <molnar@ti.com>
* | Revert "(TEMP) OMAP: DSS: enable video decoding"Lajos Molnar2011-07-1116-2825/+424
| | | | | | | | | | | | | | | | This will be reapplied using individual patches. This reverts commit a7e96985ea15176a46ed3d767c58baf3c36d510e. Signed-off-by: Lajos Molnar <molnar@ti.com>
* | Revert "OMAP: DSSCOMP: Fix apply command to wait for vsync"Iliyan Malchev2011-07-111-1/+1
| | | | | | | | This reverts commit ba54e8d28c5d1735897bbfefcd4e499dd7c26b49.
* | Merge commit 'v3.0-rc6' into linux-omap-3.0Colin Cross2011-07-118-28/+20
|\ \
| * | vesafb: fix memory leakDaniel J Blueman2011-07-041-0/+1
| | | | | | | | | | | | | | | | | | | | | When releasing framebuffer, free colourmap allocations. Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | fbdev: amba: Link fb device to its parentLoïc Minier2011-06-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some pieces of userspace like debian-installer expect to find the fb0 driver name by readlink-ing /sys/class/graphics/fb0/device/driver but this was broken with amba-clcd as it sets up fb_info manually and missed the .device parent pointer. Signed-off-by: Loïc Minier <loic.minier@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | fsl-diu-fb: remove check for pixel clock rangesTimur Tabi2011-06-241-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Freescale DIU framebuffer driver defines two constants, MIN_PIX_CLK and MAX_PIX_CLK, that are supposed to represent the lower and upper limits of the pixel clock. These values, however, are true only for one platform clock rate (533MHz) and only for the MPC8610. So the actual range for the pixel clock is chip-specific, which means the current values are almost always wrong. The chance of an out-of-range pixel clock being used are also remote. Rather than try to detect an out-of-range clock in the DIU driver, we depend on the board-specific pixel clock function (e.g. p1022ds_set_pixel_clock) to clamp the pixel clock to a supported value. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | udlfb: Correct sub-optimal resolution selection.William Katsak2011-06-241-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The situation in which the problem occurred was with a Plugable UGA-2K-A connected to a Samsung EX2220X display. The driver indicates that 1920x1080 is a valid mode (the first mode available, in fact), but proceeds to set the framebuffer size to 1600x1200. The patch corrects what seems to be a logic error, regarding unsetting the FB_MISC_1ST_DETAIL flag, if the first (top/best) mode is invalid. The existing code unset the flag if ANY mode was invalid. Signed-off-by: William Katsak <william.katsak@alcatel-lucent.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | Merge branch 'common/fbdev-meram' of ↵Paul Mundt2011-06-241-1/+1
| |\ \ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-3.x into fbdev-fixes-for-linus
| | * | fbdev: sh_mobile_meram: Correct pointer check for YCbCr chroma planeDamian Hobson-Garcia2011-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The check was intended to test if we have a valid pointer to write into, but it mistakenly checks the pointer contents instead. Since a valid pointer is mandatory for the chroma data if a YCbCr format is used, the pointer check has been removed. Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | hecubafb: add module_put on error path in hecubafb_probe()Pavel Shved2011-06-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In hecubafb_probe(), after a successful try_module_get, vzalloc may fail and make the hecubafb_probe return, but the module is not put on this error path. This patch adds an exit point that calls module_put in such situation. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Pavel Shved <shved@ispras.ru> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sm501fb: fix section mismatch warningRandy Dunlap2011-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix section mismatch warning in sm501fb: WARNING: drivers/video/sm501fb.o(.text+0x21d6): Section mismatch in reference from the function sm501fb_init_fb() to the variable .devinit.data:sm501_default_mode The function sm501fb_init_fb() references the variable __devinitdata sm501_default_mode. This is often because sm501fb_init_fb lacks a __devinitdata annotation or the annotation of sm501_default_mode is wrong. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | gx1fb: Fix section mismatch warningsRandy Dunlap2011-06-241-7/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a chain of section mismatches in geode driver, beginning with: WARNING: drivers/video/geode/gx1fb.o(.data+0x70): Section mismatch in reference from the variable gx1fb_driver to the function .init.text:gx1fb_probe() The variable gx1fb_driver references the function __init gx1fb_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 Making the changes that Paul pointed out resulted in a few more changes being needed, so they are all included here. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | Merge remote branch 'omap/linux-omap-dss-3.0' into linux-omap-3.0Rebecca Schultz Zavin2011-06-301-1/+6
|\ \ \ | | |/ | |/|
| * | OMAP: DSS2: DSI: Support non-dcs long readArve Hjønnevåg2011-06-291-1/+6
| | | | | | | | | | | | | | | Change-Id: I18168c887e1384c07dc033a1ffc57abdacb26073 Signed-off-by: Arve Hjønnevåg <arve@android.com>
* | | OMAP: DSSCOMP: Fix apply command to wait for vsyncSunita Nadampalli2011-06-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | DSSCOMP apply method is corrected to make sure that the requested composition structure is applied before returning from the method. Signed-off-by: Sunita Nadampalli <sunitan@ti.com> Signed-off-by: Iliyan Malchev <malchev@google.com>
* | | Merge remote branch 'omap/linux-omap-dss-3.0' into linux-omap-3.0Dima Zavin2011-06-281-0/+6
|\ \ \ | |/ /