- 11 Oct, 2012 1 commit
-
-
Florian Tobias Schandinat authored
The patch "drivers/video/gbefb.c: use devm_ functions" caused a compile error. drivers/video/gbefb.c:1159:16: error: implicit declaration of function 'devm_ioremap' [-Werror=implicit-function-declaration] drivers/video/gbefb.c:1179:3: error: implicit declaration of function 'devm_ioremap_nocache' [-Werror=implicit-function-declaration] Fix it by including linux/io.h which defines those functions. Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Damien Cassou <damien.cassou@lifl.fr>
-
- 10 Oct, 2012 10 commits
-
-
git://gitorious.org/linux-omap-dss2/linuxFlorian Tobias Schandinat authored
Omapdss driver changes for the 3.7 merge window. Notable changes: * Basic writeback support for DISPC level. Writeback is not yet usable, though, as we need higher level code to actually expose the writeback feature to userspace. * Rewriting the omapdss output drivers. We're trying to remove the hard links between the omapdss and the panels, and this rewrite work moves us closer to that goal. * Cleanup and restructuring patches that have been made while working on device tree support for omapdss. Device tree support is still some way ahead, but these patches are good cleanups in themselves. * Basic OMAP5 DSS support for DPI and DSI outputs. * Workaround for the problem that GFX overlay's fifo is too small for high resolution scenarios, causing underflows. * Cleanups that remove dependencies to omap platform code.
-
Arnd Bergmann authored
nuc900fb_map_video_memory is called by an devinit function that may be called at run-time, but the function itself is marked __init and will be discarded after boot. To avoid calling into a function that may have been overwritten, mark nuc900fb_map_video_memory itself as __devinit. Without this patch, building nuc950_defconfig results in: WARNING: drivers/video/built-in.o(.devinit.text+0x26c): Section mismatch in reference from the function nuc900fb_probe() to the function .init.text:nuc900fb_map_video_memory() The function __devinit nuc900fb_probe() references a function __init nuc900fb_map_video_memory(). If nuc900fb_map_video_memory is only used by nuc900fb_probe then annotate nuc900fb_map_video_memory with a matching annotation. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Uwe Kleine-König authored
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Jingoo Han authored
Convert clk_enable/clk_disable to clk_prepare_enable/clk_disable_unprepare calls as required by common clock framework. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Peter Senna Tschudin authored
Convert a nonnegative error return code to a negative one, as returned elsewhere in the function. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> ( if@p1 (\(ret < 0\|ret != 0\)) { ... return ret; } | ret@p1 = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // </smpl> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Acked-by: Donghwa Lee <dh09.lee@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Peter Senna Tschudin authored
Convert a nonnegative error return code to a negative one, as returned elsewhere in the function. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> ( if@p1 (\(ret < 0\|ret != 0\)) { ... return ret; } | ret@p1 = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // </smpl> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Thomas Abraham authored
Convert clk_enable/clk_disable to clk_prepare_enable/clk_disable_unprepare calls as required by common clock framework. Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Manjunathappa, Prakash authored
Save and restore register context of LCDC respectively before suspend and after resume. Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Manjunathappa, Prakash authored
Add pm_runtime support to the da8xx-fb frame buffer driver. Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
Alexander Holler authored
Line 0 and 1 were both written to line 0 (on the display) and all subsequent lines had an offset of -1. The result was that the last line on the display was never overwritten by writes to /dev/fbN. Cc: stable@vger.kernel.org Signed-off-by: Alexander Holler <holler@ahsoftware.de> Acked-by: Bernie Thompson <bernie@plugable.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
- 28 Sep, 2012 1 commit
-
-
Tomi Valkeinen authored
Both dpi.c and sdi.c use strcmp(), but do not include string.h. With some Kconfig options string.h is included implicitly, but with some other the compilation fails: drivers/video/omap2/dss/dpi.c:407:5: error: implicit declaration of function 'strcmp' Include string.h in both dpi.c and sdi.c Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-
- 26 Sep, 2012 28 commits
-
-
Tomi Valkeinen authored
Merge omapdss writeback work. These patches implement the low level writeback features in the DISPC, but do not yet add a way to actually use the writeback from the userspace. * archit/wb-dispc-for-3.7: OMAPDSS: DISPC: Configure color conversion coefficients for writeback OMAPDSS: DISPC: Add manager like functions for writeback OMAPDSS: DISPC: Configure writeback FIFOs OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup() OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup OMAPDSS: DISPC: Add function to set channel in for writeback OMAPDSS: DISPC: Don't set chroma resampling bit for writeback OMAPDSS: DISPC: Downscale chroma if plane is writeback OMAPDSS: DISPC: Configure input and output sizes for writeback OMAPDSS: DISPC: Add writeback register offsets and dss features structs OMAPDSS: DISPC: Allow both upscaling and downscaling of chroma OMAPDSS: DIPSC: Relax scaling limitations when in memory to memory mode OMAPDSS: DISPC: Don't pass channel out when configuring overlays OMAPDSS: DISPC: Make dispc_ovl_setup call dispc_ovl_setup_common OMAPDSS: OVERLAY: Add position and replication as overlay caps OMAPDSS: DISPC: Pass overlay caps as a parameter to dispc plane functions OMAPDSS: DISPC: Simplify function names for setting pipeline input and output sizes OMAPDSS: DISPC: Constify omap_overlay_info in dispc_ovl_setup()
-
Tomi Valkeinen authored
Merge omapdss output work, that creates a new entity "output" to represent the outputs (DPI, DSI, HDMI, ...) from DSS. An output sits in between an overlay manager and a panel, and helps us to remove references to panel devices from the omapdss core. * archit/outputs-for-3.7: (23 commits) OMAPDSS: Remove old way of setting manager and device links OMAPDSS: APPLY: Remove omap_dss_device references from dss_ovl_enable/disable OMAPDSS: OVERLAY/MANAGER: Get device via output OMAPDSS: MANAGER: Update display sysfs store OMAPFB: Change dssdev->manager references OMAPDSS: HDMI: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: VENC: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: RFBI: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: SDI: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: DSI: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: DSI: Remove dsi_pdev_map global struct OMAPDSS: DPI: Replace dssdev->manager with dssdev->output->manager references OMAPDSS: Create links between managers, outputs and devices OMAPDRM: Remove manager->device references OMAPFB: remove manager->device references OMAP_VOUT: Remove manager->device references OMAPDSS: Remove manager->device references OMAPDSS: APPLY: Add manager set/unset output ops for omap_overlay_manager OMAPDSS: output: Add set/unset device ops for omap_dss_output OMAPDSS: outputs: Create and register output instances ...
-
Archit Taneja authored
Writeback pipeline receives RGB data from one of the overlays or one of the overlay managers. If the target color mode is YUV422 or NV12, we need to convert the RGB pixels to YUV. The scaler in WB then converts it to the target color mode. Hence, the color conversion coefficients that need to be programmed are the ones which convert a RGB24 pixel to YUV444. Program these coefficients for writeback pipeline. Rearrange the code a bit to configure different coefficients for overlays and writeback. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Add functions to enable writeback, and set/check state of GO bit. These bits are identical in behaviour with the corresponding overlay manager bits. Configure them in a similar way to mgr_enable() and mgr_go_* functions. Add a helper to get the FRAMEDONE irq corresponding to writeback. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Extend the DISPC fifo functions to also configure the writeback FIFO thresholds. The most optimal configuration for writeback is to push out data to the interconnect the moment writeback pushes enough pixels in the FIFO to form a burst. This reduces the chance of writeback overflowing it's FIFO. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Configure some of the writeback specific parameters in dispc_wb_setup(). The writeback parameters configured are: truncation: This needs to be set if the color depth input to writeback is more than the color depth of the color mode we want to store in memory. writeback mode: This configures whether we want to use writeback in mem to mem or capture mode. This information will be directly passed by APPLY later. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Create struct omap_dss_writeback_info, this is similar to omap_overlay_info, the major difference is that there is no parameter which describes the input size to writeback, this is because this is always fixed, and decided by the connected overlay or overlay manager. One more difference is that screen_width is renamed to buf_width, to give the value of stride the writeback buffer has. Call dispc_ovl_setup_common() through dispc_wb_setup() to configure overlay-like parameters. The parameters in dispc_ovl_setup_common() which do not hold for writeback are filled passed as zeroes or false, the code takes care of not configuring them as they won't possess the needed overlay caps. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Writeback can take input from either one of the overlays, or one of the overlay managers. Add an enum which represents the channel_in for writeback, and maps to the register field programming. Add a function to configure channel in for writeback. This will be used later in APPLY. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
The bit YUVCHROMARESAMPLING isn't there for writeback in DISPC_WB_ATTRIBUTES2. It isn't there because we don't upsample chroma like for video pipelines, we downsample chroma in writeback to get YUV422 or NV12 formats from the YUV444 input. Ignore this bit in dispc_ovl_set_scaling_uv() if the plane is OMAP_DSS_WB. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
When converting YUYV444 content to YUV422 or NV12 formats through writeback pipeline, the scaler needs to downscale the chroma plane. Ensure that chroma is downscaled when the pipeline is writeback. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Writeback uses the WB_PICTURE_SIZE register to define the size of the content written to memory, this is the output of the scaler. It uses the WB_SIZE register to define the size of the content coming from the overlay/manager to which it is connected, this is the input to the scaler. This naming is different as compared to overlays. Add checks for writeback in dispc_ovl_set_input_size() and dispc_ovl_set_output_size() to write to the correct registers. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Since writeback has many overlay like properties, and most of it's registers are similar to that of overlays, it's possible to reuse most of the overlay related DISPC code for writeback when considering it as a plane. Writeback was added as a plane in the omap_plane field as OMAP_DSS_WB. Add the writeback register offsets in dispc.h, add minimal WB plane related info needed in dss_features. Add a function which returns the number of writeback pipelines an OMAP version has. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
In the function dispc_plane_set_scaling_uv(), create a parameter which tells if we want to upscale or downscale the chroma plane. Downscaling of chroma is required by writeback pipeline for converting the input YUV444 color format to YUV422 or NV12. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
The scalers of overlays and writeback do not have any constraints on downscale ratio when operating in memory to memory mode. This is because in memory to memory mode, we aren't connected to a display which needs data output at the rate of pixel clock. The scalers can perform as much downscaling as needed, the rate at which the scaler outputs is adjusted accordingly. Relax constraints related to downscaling based on whether the input overlays are connected to writeback in memory to memory mode. We pass a mem_to_mem boolean parameter to dispc_ovl_setup() from APPLY. This is currently set to false, this will later be configured to the correct value based on whether the overlay is connected to writeback or not. Do the same later for writeback when writeback is configured. In the scaling calculation code, we calculate the minimum amount of core clock we need to achieve the required downscaling. If we are in memory to memory mode, we set this to a very small value(1 in this case), this value would always be lesser than the actual DISPC core clock value, and hence the scaling checks would succeed. We take care that pixel clock isn't calculated for writeback and the overlays connected to it when in memory to memory mode. A pixel clock in such cases doesn't make sense. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
dispc_ovl_setup_common() is to be used by both overlays and writeback. We pass channel out to figure out what manager the overlay is connected to, to determine the pixel clock rate. This is used to decide the scaling limitations for that overlay. writeback doesn't have a channel out, it has a channel in field which tells where writeback gets its input from. These are 2 different fields, and this prevents us reusing the overlay configuration code for writeback. To overcome this, we now pass omap_plane to overlay related functions rather than passing channel out. We create helper functions which can derive pclk/lclk from the omap_plane id. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Add a new static function called dispc_ovl_setup_common(). This function is used by dispc_ovl_setup() to configure the overlay registers. This split is done so that dispc_wb_setup() can reuse overlay register configuration related code. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Add position and replication as overlay caps, and pass overlay caps as an argument to the corresponding functions. Adding position and replication to overlay caps seems a bit unnecessary, but it allows us to use the corresponding functions for writeback too. These caps will be set for all overlays, but not for writeback. This is done so writeback can reuse dispc_ovl_setup() to the maximum. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Currently, the functions below take the omap_plane parameter and derive the overlay caps within them. Pass the overlay caps as a parameter to the function to allow these to be used by writeback too. - dispc_ovl_set_zorder() - dispc_ovl_set_pre_mult_alpha() - dispc_ovl_setup_global_alpha() - dispc_ovl_calc_scaling() - dispc_ovl_setup() These functions will be used for writeback later, and the caps will help in deciding if they are to be used for writeback or not. This allows reuse of overlay caps for writeback. Using omap_overlay_caps for writeback seems a bit incorrect, but caps is something already in use by users of OMAPDSS(omapfb/omap_vout), so we use overlay caps for overlay like features of writeback too. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
The DISPC pipeline register names in the TRM for setting the buffer size and the output size are a bit misleading, for example, there are different register names for setting the buffer size for VID and GFX pipes. Things get more confusing when considering writeback pipeline. Rename the functions so that they tell whether they are configuring the input to the scalar or the output. These will be extended later to support writeback registers. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
The struct omap_overlay_info passed to dispc_ovl_setup() is used to configure DISPC registers. It shouldn't modify the overlay_info structure. The pos_y field was being changed in dispc_ovl_setup in the case of interlaced displays. Fix this and const qualifier to the omap_overlay_info argument. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
Now that an omap_dss_output can be used to link between managers and devices, we can remove the old way of setting manager and device links. This involves removing the device and manager pointers from omap_overlay_manager and omap_dss_device respectively, and removing the set_device/unset_device ops from omap_overlay_manager. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
An overlay isn't allowed to be enabled/disabled if it isn't connected to an omap_dss_device. This requirement isn't needed any more. An overlay can be enabled/disabled as long as it has an output connected to it. The output may not be connected to a device, but we can be assured that the connected manager's output is in use by an output interface. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
A manager is not connected to a device directly any more. It first connects to an output, and then to the display. Update overlay and manager get_device ops to return the device via the connected output. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
The display sysfs attribute's store function needs to be changed with the introduction of outputs. The DSS driver ensures that there is one display per output, and that a registered omap_dss_device will have an output connected to it. The display sysfs store function unsets the current output connected to the manager, and sets it with the output connected to the new display. If the new display doesn't have an output for some reason, we just bail out. The function doesn't set/unset output->device links. These remain the same as when the omap_dss_device was registered. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
To retrieve the manager pointer via a device, we need to now access it via the output to which the device is connected. Make this change in omapfb_ioctl() where the WAITFORVSYNC ioctl tries to access the manager's device. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
With addition of output entities, a device connects to an output, and an output connects to overlay manager. Replace the dssdev->manager references with dssdev->output->manager to access the manager correctly. When enabling the HDMI output, check whether the output entity connected to display is not NULL. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
With addition of output entities, a device connects to an output, and an output connects to overlay manager. Replace the dssdev->manager references with dssdev->output->manager to access the manager correctly. When enabling the VENC output, check whether the output entity connected to display is not NULL. Signed-off-by: Archit Taneja <archit@ti.com>
-
Archit Taneja authored
With addition of output entities, a device connects to an output, and an output connects to overlay manager. Replace the dssdev->manager references with dssdev->output->manager to access the manager correctly. When enabling the RFBI output, check whether the output entity connected to display is not NULL. Signed-off-by: Archit Taneja <archit@ti.com>
-