27 Oct, 2011
3 commits
-
This patch adds APIs to register and unregister wait for vsync
callback.Signed-off-by: Manjunathappa, Prakash
Signed-off-by: Vaibhav Hiremath -
During LCDC initialization, there is the potential for a FIFO
underflow condition to occur. A FIFO underflow condition
occurs when the input FIFO is completely empty and the LCDC
raster controller logic that drives data to the output pins
attempts to fetch data from the FIFO. When a FIFO underflow
condition occurs, incorrect data will be driven out on the
LCDC data pins.Software should poll the FUF bit field in the LCD_STAT register
to check if an error condition has occurred or service the
interrupt if FUF_EN is enabled when FUF occurs. If the FUF bit
field has been set to 1, this will indicate an underflow
condition has occurred and then the software should execute a
reset of the LCDC via the LPSC.This problem may occur if the LCDC FIFO threshold size
(LCDDMA_CTRL[TH_FIFO_READY]) is left at its default value after
reset. Increasing the FIFO threshold size will reduce or
eliminate underflows. Setting the threshold size to 256 double
words or larger is recommended.Signed-off-by: Rajashekhara, Sudhakar
-
Adding pinmux, platform resource information. Also add
AM335X panel inforamtion.Signed-off-by: Manjunathappa, Prakash
25 Jul, 2011
2 commits
-
opt_clock_available() is no longer needed, so remove it.
Signed-off-by: Tomi Valkeinen
-
The function to get device's context loss count has changed from
omap_pm_get_last_off_on_transaction_id() to
omap_pm_get_dev_context_loss_count()Change name of the function pointer in omapdss.h accordingly, and use
the term "context loss count" instead of "context id" in the code.Restructure the context loss count functions to handle errors properly,
and ensure that context is always considered lost if an error happens.Signed-off-by: Tomi Valkeinen
01 Jul, 2011
3 commits
-
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
-
Remove the whole update_mode stuff from omapdss driver. If automatic
update for manual update displays is needed, it's better implemented in
higher layers.Signed-off-by: Tomi Valkeinen
-
omapdss.h included platform_device.h and atomic.h, neither of which is
needed by omapdss.h. Remove those includes from omapdss.h, and fix the
affected .c files which did not include platform_device.h even though
they should.Signed-off-by: Tomi Valkeinen
24 May, 2011
2 commits
-
…/scm/linux/kernel/git/lethal/sh-2.6
-
Conflicts:
drivers/video/omap2/dss/dsi.c
drivers/video/omap2/dss/dss_features.c
drivers/video/omap2/dss/dss_features.hSigned-off-by: Paul Mundt
23 May, 2011
4 commits
-
Since the NV24 framebuffer has a CbCr plane that is twice as wide
as the Y plane, it needs to be handled as a special case.Signed-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt -
Based on the patch by Takanari Hayama
Adds support framework necessary to use Media RAM (MERAM)
caching functionality with the LCDC. The MERAM is accessed
through up to 4 Interconnect Buffers (ICBs).ICB numbers and MERAM address ranges to use are specified in
by filling in the .meram_cfg member of the LCDC platform dataSigned-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt -
Add the support for NV12 color format.
Configure base address for UV component of NV12 color format.
Change the way chroma scaling is handled for YUV formats on OMAP4 by enabling
chroma-resampling for video pipeline and hence using FIR2 register set for
scaling UV.
Changes to _dispc_set_scaling(), because of the reason above, are:
- call _dispc_set_scaling_common() to handle scaling for all color formats
except for OMAP4 where it only handles scaling for RGB or Y-component
- call _dispc_set_scaling_uv() for special handling required for UV
component on OMAP4.
- dispc_set_scaling_uv() also resets chroma-resampling bit for RGB color modes.Contains chroma scaling (_dispc_set_scaling_uv) design and implemented by
Lajos MolnarSigned-off-by: Amber Jain
Signed-off-by: Tomi Valkeinen -
Add new color formats supported by OMAP4: NV12, RGBA16, RGBX16,
ARGB16_1555, XRGB16_1555.
NV12 color format is defined here, its support in DSS will be added separately.Signed-off-by: Amber Jain
Signed-off-by: Tomi Valkeinen
16 May, 2011
1 commit
-
On OMAP3, the DSI module has 2 data lanes. On OMAP4, DSI1 has 4 data lanes
and DSI2 has 2 data lanes. Introduce function dsi_get_num_data_lanes() which
returns the number of data lanes on the dsi interface, introduce function
dsi_get_num_data_lanes_dssdev() which returns the number of data lanes used by
the omap_dss_device connected to the lanes.Use the DSI_GNQ register on OMAP4 to get the number of data lanes, modify
dsi.c to use the number of lanes and the extra data lanes on DSI1.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen
13 May, 2011
5 commits
-
Add omap_rfbi_configure() which the panel driver can use to reconfigure
the data element size and the number of data lines in the RFBI bus.Signed-off-by: Tomi Valkeinen
-
Add similar bus lock to RFBI as is in DSI. The panel driver can use the
bus lock to mark that the RFBI bus is currently in use.Signed-off-by: Tomi Valkeinen
-
Introduce DSI2 PLL clock sources needed by LCD2 channel and DSI2 Protocol
engine and DISPC Functional clock. Do the following:- Modify dss_get_dsi_clk_source() and dss_select_dsi_clk_source() to take the
dsi module number as an argument.
- Create debugfs files for dsi2, split the corresponding debugfs functions.
- Allow DPI to use these new clock sources.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen -
The DSI interface is represented as a platform device, using the DSI platform
driver(dsi.c). The current DSI driver design is capable of running only one
instance of a DSI device. On OMAP4, there are 2 very similar DSI modules which
can be represented as instances of "omapdss_dsi" platform device.Add member "module" in "dssdev.phy.dsi" that tells us which DSI module's lanes
the panel is connected to. Modify dsi.c functions to take the device's
platform_device struct pointer, provide functions dsi_get_dsidev_from_dssdev()
and dsi_get_dsidev_from_id() take the panel's omap_dss_device and module number
respectively, and return the platform_device pointer. Currently, the dsi struct
is declared globally and is accessed when dsi data is needed. The new pdev
argument will be used later to provide the platform device's dsi related data.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen -
Add pointer to omap_dss_device struct as an argument in the functions which
are exported to dsi panel drivers. This argument will tell the DSI driver
which DSI interface's data it has to choose.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen
11 May, 2011
14 commits
-
ULPS is a low power state where the DSI lanes are kept at ground. This
patch implements ULPS by having a DSI bus inactivity timer which
triggers the entry to ULPS. ULPS exit will happen automatically when the
driver needs to do something on the DSI lanes.The ulps_timeout is configurable from board file or via sysfs.
Additionally another sysfs file, "ulps", can be used to check the
current ULPS state, or to manually enter or exit ULPS.Signed-off-by: Tomi Valkeinen
-
ESD check in Taal driver is currently on/off feature with hardcoded
interval. This patch changes it to a configurable interval, which can be
set from the board file.Signed-off-by: Tomi Valkeinen
-
Add dsi_mux_pads function pointer to omap_dss_board_info, and use the
function pointer in DSI code to configure the DSI pads either to normal
DSI operation, or to pull down when in ULPS.Signed-off-by: Tomi Valkeinen
-
Add parameter to omapdss_dsi_display_disable() which the panel driver
can use to tell if the DSI lanes should be put to ULPS before disabling
the interface.This can be used to skip ULPS entry in cases where the panel doesn't
care about ULPS state, for example when the panel will be reset, or when
the display interface will be enabled again right after the disable.This will speed up the operation considerably in cases where entering
ULPS would fail with timeout, and the panel driver isn't even interested
in entering ULPS.Signed-off-by: Tomi Valkeinen
-
The DSI pins are powered by VDDS_DSI. If VDDS_DSI is off, the DSI pins
are floating even if they are pinmuxed to, say, safe mode and there's a
pull down/up.This patch gives the panel drivers an option to leave the VDDS_DSI power
enabled while the DSS itself is turned off. This can be used to keep the
DSI lanes in a valid state while DSS is off, if the DSI pins are muxed
for pull down (not done in this patch).There will be a slight power consumption increase (~100 uA?) when the
VDDS_DSI is left on, but because this option is used when the panel is
left on, the regulator consumption is negligible compared to panel power
consumption.When the panel is fully turned off the VDDS_DSI is also turned off.
As an added bonus this will give us faster start up time when starting
up the DSS and the regulator is already enabled.Signed-off-by: Tomi Valkeinen
-
Move some of the configurable HDMI PLL parameters to dssdev.clock struct.
Cleanup the function hdmi_compute_pll() by using the parameters defined in the
board file and do some cosmetic modifications.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen -
Add enum dss_clock_source in dssdev.clocks struct so that the clock sources can
be specified in the board file.
Replace hard coded clock sources in dsi.c, dpi.c and replace them with the new
clock source members in dssdev.clocks. Modify the sdp4430_lcd_device struct in
board-4430sdp.c to specify clock sources for DISPC_FCLK, LCD1_CLK and DSI1_FCLK.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen -
Change enum dss_clk_source to omap_dss_clock_source and move it to
'plat/display.h'. Change the enum members to attach "OMAP_" in the beginning.
These changes are done in order to specify the clock sources for DSS in the
board file.Signed-off-by: Archit Taneja
Signed-off-by: Tomi Valkeinen -
omap_dss_register_device and omap_dss_unregister_device can only be
called from core.c, so we can make it static.Signed-off-by: Tomi Valkeinen
-
Add get_dimensions() to struct omap_dss_driver. Use the call, if supported
by the driver, in OMAPFB.Signed-off-by: Jani Nikula
Signed-off-by: Tomi Valkeinen -
Clock configuration was defined inside dssdev.phy.dsi struct. The clock
config doesn't really belong there, and so it's moved to dssdev.clock
struct.Now the explicit clock configuration could also be used for other
interfaces than DSI, although there's no support for it currently.Signed-off-by: Tomi Valkeinen
-
arch/arm/plat-omap/include/plat/nokia-dsi-panel.h is an include for the
OMAP DSS panel driver for Nokia's DSI displays. A more logical place for
it is in include/video.Signed-off-by: Tomi Valkeinen
-
arch/arm/plat-omap/include/plat/panel-generic-dpi.h is an include for
the OMAP DSS panel driver for generic DPI displays. A more logical place
for it is in include/video.Signed-off-by: Tomi Valkeinen
-
arch/arm/plat-omap/include/plat/display.h is an include for the OMAP DSS
driver. A more logical place for it is in include/video.Signed-off-by: Tomi Valkeinen
26 Apr, 2011
1 commit
-
Fast-forwarded to current state of Linus' tree as there are patches to be
applied for files that didn't exist on the old branch.
06 Apr, 2011
1 commit
-
Signed-off-by: Justin P. Mattock
Acked-by: David S. Miller
Signed-off-by: Jiri Kosina
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
22 Mar, 2011
1 commit
-
This patch introduces lcdc->lcdcon_pol_negative which set CONTRAST_CTR
register to inverted polarity.Signed-off-by: Andreas Bießmann
Signed-off-by: Paul Mundt
16 Mar, 2011
1 commit
-
Supports YCbCr420sp, YCbCr422sp, and YCbCr44sp, formats
(bpp = 12, 16, and 24) respectively.When double-buffering both Y planes appear before the C planes (Y-Y-C-C),
as opposed to Y-C-Y-C.Set .nonstd in struct sh_mobile_lcdc_chan_cfg to enable YUV mode, and use
.bpp to distiguish between the 3 modes.
The value of .nonstd is copied to bits 16-31 of LDDFR in the LCDC and
should be set accordingly.
.nonstd must be set to 0 for RGB mode.Due to the encoding of YUV data, the framebuffer will clear to green
instead of black.In YUV 420 mode, panning is only possible in 2 line increments.
Additionally in YUV 420 mode the vertical resolution of the framebuffer
must be an even number.Signed-off-by: Damian Hobson-Garcia
Signed-off-by: Paul Mundt
10 Mar, 2011
1 commit
-
Support for backlight devices controlled through board-specific
routines. Backlights can be defined per-channel and follow fbdev
directives to switch off as the LCD blanks or is turned on/off.Signed-off-by: Alexandre Courbot
Signed-off-by: Paul Mundt