summaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/hdmi_panel.c
Commit message (Collapse)AuthorAgeFilesLines
* OMAPDSS: HDMI: remove code related to old panel modelTomi Valkeinen2013-08-291-414/+0
| | | | | | | | | | Now that the old panel drivers have been removed, we can remove the old-model API and related code from the DSS encoder drivers. This patch removes the code from the HDMI driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Archit Taneja <archit@ti.com>
* OMAPDSS: HDMI: Make panel return dssdev register errorsRicardo Neri2012-11-061-3/+1
| | | | | | | Do not assume blindly that the DSS driver was registered successfully. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: HDMI: use core power on/off with edid & detectTomi Valkeinen2012-10-291-4/+4
| | | | | | | | | This patch makes use of the hdmi_power_[on|off]_core() functions added in the previous patch. The functions are used when reading EDID or detecting if a monitor is connected. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: Ricardo Neri <ricardo.neri@ti.com>
* OMAPDSS: remove omap_dss_device's suspend/resumeTomi Valkeinen2012-10-241-60/+10
| | | | | | | | | | The panel drivers contain enable, disable, suspend and resume calls. The suspend and resume are effectively identical to disable and enable. This patch removes panel suspend and enable code from omapdss and the panel drivers, and replaces their use with enable and disable. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: HDMI: fix initial HDMI enableTomi Valkeinen2012-08-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Commit 7849398fa28c21dad24292b838b059a862f99f16 introduced a bug, causing the following error to be reported: [ 370.827819] cannot lock PLL [ 370.830749] CFG1 0x1e [ 370.833160] CFG2 0x602004 [ 370.835876] CFG4 0x40000 [ 370.838562] omapdss HDMI: Failed to lock PLL However, HDMI output is still enabled. The problem is that we enable the HDMI video output temporarily when reading EDID or detecting if a HDMI cable is connected (ugh), and the commit above changes the behavior of the driver so that the video timings are not yet configured at the point when EDID is read. This patch fixes the problem by configuring the initial VGA timings at HDMI probe. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAPDSS: HDMI: Use our own omap_video_timings field when setting interface ↵Archit Taneja2012-08-151-6/+23
| | | | | | | | | | | | | | | | | | | | | | | timings The hdmi driver currently updates only the 'code' member of hdmi_config when the op omapdss_hdmi_display_set_timing() is called by the hdmi panel driver. The 'timing' field of hdmi_config is updated only when hdmi_power_on is called. It makes more sense to configure the whole hdmi_config field in the set_timing op called by the panel driver. This way, we don't need to call both functions to ensure that our hdmi_config is configured correctly. Also, we don't need to calculate hdmi_config during hdmi_power_on, or rely on the omap_video_timings in the panel's omap_dss_device struct. The default timings of the hdmi panel are represented in a cleaner form. Since the hdmi output is now configured by it's own copy of timings (in hdmi.ip_data.cfg), the panel driver needs to set it to a valid value before enabling hdmi output. We now call omapdss_hdmi_set_timing() before enabling hdmi output, this is done to atleast have the hdmi output configured to the panel's default timings if the DSS user didn't call panel driver's set_timings() op explicitly. Signed-off-by: Archit Taneja <archit@ti.com>
* OMAPDSS: Add interlace parameter to omap_video_timingsArchit Taneja2012-06-291-0/+1
| | | | | | | | | | | Add a parameter called interlace which tells whether the timings are in interlaced or progressive mode. This aligns the omap_video_timings struct with the Xorg modeline configuration. It also removes the hack needed to write to divide the manager height by 2 if the connected interface is VENC. Signed-off-by: Archit Taneja <archit@ti.com>
* OMAPDSS: Remove omap_panel_config enum from omap_dss_deviceArchit Taneja2012-06-291-2/+0
| | | | | | | | | | | omap_panel_config contains fields which are finally written to DISPC_POL_FREQo registers. These are now held by omap_video_timings and are set when the manager timings are applied. Remove the omap_panel_config enum, and remove all it's references from panel or interface drivers. Signed-off-by: Archit Taneja <archit@ti.com>
* OMAPDSS: Add some new fields to omap_video_timingsArchit Taneja2012-06-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some panel timing related fields are contained in omap_panel_config in the form of flags. The fields are: - Hsync logic level - Vsync logic level - Data driven on rising/falling edge of pixel clock - Output enable/Data enable logic level - HSYNC/VSYNC driven on rising/falling edge of pixel clock Out of these parameters, Hsync and Vsync logic levels are a part of the timings in the Xorg modeline configuration. So it makes sense to move the to omap_video_timings. The rest aren't a part of modeline, but it still makes sense to move these since they are related to panel timings. These fields stored in omap_panel_config in dssdev are configured for LCD panels, and the corresponding LCD managers in the DISPC_POL_FREQo registers. Add the above fields in omap_video_timings. Represent their state via new enums. Add these parameters to the omap_video_timings instances in the panel drivers. Keep the corresponding IVS, IHS, IPC, IEO, RF and ONOFF flags in omap_panel_config for now. The struct will be removed later. Signed-off-by: Archit Taneja <archit@ti.com>
* OMAPDSS: Remove passive matrix LCD support (part 2)Archit Taneja2012-06-291-2/+1
| | | | | | | | | | | Remove OMAP_DSS_LCD_TFT as a omap_panel_config flag. We don't support passive matrix displays any more. Remove this flag from all the panel drivers. Force the display_type to OMAP_DSS_LCD_DISPLAY_TFT in the interface drivers. Signed-off-by: Archit Taneja <archit@ti.com>
* OMAPDSS: HDMI: Implement DSS driver interface for audioRicardo Neri2012-05-111-2/+191
| | | | | | | | | | | | | | | | | | | | | Implement the DSS device driver audio support interface in the HDMI panel driver and generic driver. The implementation relies on the IP-specific functions that are defined at DSS probe time. A mixed locking strategy is used. The panel's mutex is used when the state of the panel is queried as required by the audio functions. The audio state is protected using a spinlock as users of DSS HDMI audio functionality might start/stop audio while holding a spinlock. The mutex and the spinlock are held and released as needed by each individual function to protect the panel state and the audio state. Although the panel's audio_start functions does not check whether the panel is active, the audio _ENABLED state can be reached only from audio_enable, which does check the state of the panel. Also, if the panel is ever disabled, the audio state will transition to _DISABLED. Transitions are always protected by the audio lock. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
* OMAPDSS: HDMI: Panel: Simplify the name of the HDMI mutexRicardo Neri2012-05-111-20/+21
| | | | | | | | As the hdmi_lock mutex is inside the hdmi struct, rename to simply "lock". This is only a change in the name. There are not changes in functionality. Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
* OMAP: DSS2: HDMI: implement detect()Tomi Valkeinen2011-09-301-0/+25
| | | | | | | | | | | Implement detect() by checking the hot plug detect status. The implementation is not very good, as it always turns on the HDMI output to get the detection working. HDMI driver needs improvements so that we could enable only core parts of it. Cc: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAP: DSS2: HDMI: remove error prints in check_timingsTomi Valkeinen2011-09-301-5/+1
| | | | | | | | | | | | check_timings() is supposed to be used to verify if timings are ok or not. Currently the HDMI driver prints error messages if the timings are not ok. This is not right, as it is no error to give invalid timings to check_timings(). Remove the error prints. Cc: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAP: DSS2: HDMI: remove edid parsingTomi Valkeinen2011-09-301-7/+1
| | | | | | | | OMAPFB handles EDID parsing now, using the common helper functions in fbdev. We can remove the EDID parsing from HDMI driver. Cc: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAP: DSS2: HDMI: implement read_edid()Tomi Valkeinen2011-09-301-0/+24
| | | | | | | | Implement read_edid() for HDMI by implementing necessary functions to hdmi.c and to hdmi_omap4_panel.c. Cc: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAP: DSS2: HDMI: make set_timing sanerTomi Valkeinen2011-09-301-6/+1
| | | | | | | | | | | | Currently the set_timings code for hdmi is quite strange. The display is disabled in hdmi_omap4_panel.c before setting timings, and enabled in hdmi.c after setting the timings. Furthermore, the timings were not permanent, and disabling and enabling the display would lose them. This patch makes the set_timings handling a bit better. Cc: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
* OMAP4: DSS2: Rename hdmi_omap4_panel.c to hdmi_panel.cMythri P K2011-09-301-0/+222
As the panel driver will remain generic across OMAP's renaming it to hdmi_panel.c Signed-off-by: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>