aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss
Commit message (Collapse)AuthorAgeFilesLines
...
| * | drm/omap: add field for PLL typeTomi Valkeinen2016-05-194-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DSS uses two types of PLLs, type A (DSI & Video) and type B (HDMI). The two types behave slightly differently, but we don't have the type of the PLL available anywhere for the driver. This patch adds an enum for the PLL type and a field in the PLL's HW data to store it. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: Add missing clock sourcesTomi Valkeinen2016-05-192-0/+7
| | | | | | | | | | | | | | | | | | | | | enum dss_clk_source does not have values for all clock sources available on OMAP4+ DSS versions. Add the missing clock sources. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: rename dss_clk_source enumsTomi Valkeinen2016-05-195-55/+54
| | | | | | | | | | | | | | | | | | | | | The names of the enum dss_clk_source's values are legacy names, only correct for OMAP3 DSS. Rename the names to more generic ones. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: rename dss_get_generic_clk_source_name()Tomi Valkeinen2016-05-194-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | Now that there is no "non-generic" version of the function to get the clock source name, lets rename dss_get_generic_clk_source_name() to dss_get_clk_source_name(). Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: remove dss_feat_get_clk_source_name()Tomi Valkeinen2016-05-195-59/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have two functions to return a name for clock sources for debugging purposes: dss_feat_get_clk_source_name() and dss_get_generic_clk_source_name(). The former is supposed to return a DSS IP version specific name for the clock source, and the latter is supposed to return a more generic name. All this seems a bit pointless, so let's remove the former one. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: rename omap_dss_clk_sourceTomi Valkeinen2016-05-197-23/+23
| | | | | | | | | | | | | | | | | | | | | 'enum omap_dss_clk_source' is internal to dss. Let's rename it to 'dss_clk_source' match our naming convention. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: copy enum omap_dss_clk_sourceTomi Valkeinen2016-05-191-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | At the moment 'enum omap_dss_clk_source' is in omapdss.h, shared by omapdrm and omapfb. We're about to improve the omapdrm clock code, so we need to make a separate copy of the enum for each driver. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: video-pll: add missing data for clkout2 & 3Tomi Valkeinen2016-05-191-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Video pll hw data is missing bitfield definitions for clkout2 and clkout3. We don't use those clkouts at the moment, so this has not caused any issues. Add the bitfields. Signed-off-by: Tomi Valkeinen <[email protected]>
| * | drm/omap: fix wrong variable typeTomi Valkeinen2016-05-191-1/+1
| |/ | | | | | | | | | | 'r' is supposed to be int, not u16, so fix it. Signed-off-by: Tomi Valkeinen <[email protected]>
* | drm/omap: fix unused variable warning.Dave Airlie2016-06-031-1/+0
| | | | | | | | Signed-off-by: Dave Airlie <[email protected]>
* | drm/omap: include linux/seq_file.h where neededArnd Bergmann2016-05-313-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The omapdrm driver relies on this header to be included implicitly, but this does not always work, and I get this error in randconfig builds: gpu/drm/omapdrm/dss/hdmi_phy.c: In function 'hdmi_phy_dump': gpu/drm/omapdrm/dss/hdmi_phy.c:34:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration] gpu/drm/omapdrm/dss/hdmi_wp.c: In function 'hdmi_wp_dump': gpu/drm/omapdrm/dss/hdmi_wp.c:26:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration] gpu/drm/omapdrm/dss/hdmi_pll.c: In function 'hdmi_pll_dump': gpu/drm/omapdrm/dss/hdmi_pll.c:30:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration] This adds the #include statements in all files that have a seq_printf statement. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* | drm/omap: Remove regulator API abusePeter Ujfalusi2016-05-313-27/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regulator_can_change_voltage() is deprecated and it's use is not necessary as commit: 6a0028b3dd67b regulator: Deprecate regulator_can_change_voltage() describers it clearly. Also, regulator_set_voltage() is misused in the driver, as it is supposed to be used only in cases where the regulator voltage needs to be changed dynamically at runtime. In DSS's case, we always want a fixed voltage, set in the .dts files. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* | OMAPDSS: HDMI5: Change DDC timingsJim Lodes2016-05-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The DDC scl high and low times were set to the minimum values from the i2c specification, but the i2c specification takes into account the rise time and fall time to calculate the frequency. To pass HDMI certification DDC can not exceed 100kHz therefore in a system where the rise times and fall times are negligible the high and low times for scl need to be 10us. Signed-off-by: Jim Lodes <[email protected]> Signed-off-by: J.D. Schroeder <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* | OMAPDSS: HDMI5: Fix AVI infoframeJim Lodes2016-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | The AVI infoframe R0-R3 in the 2nd data byte represents the Active Format Aspect Ratio. It is four bits long not two bits. This fixes that mask used to extract the bits before writing the bits to the hardware registers. Signed-off-by: Jim Lodes <[email protected]> Signed-off-by: J.D. Schroeder <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* | drm/omap: fix OMAP4 hdmi_core_powerdown_disable()Tomi Valkeinen2016-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hdmi_core_powerdown_disable() is supposed to disable HDMI core's power-down mode. However, the function sets the power-down bit to 0, which means "enable power-down". This hasn't caused any issues as the PD seems to affect only interrupts from HDMI core, and none of those interrupts are used at the moment. CEC functionality requires core interrupts, and the PD mode needs to be fixed. This patch fixes hdmi_core_powerdown_disable() to actually disable the PD mode. Signed-off-by: Tomi Valkeinen <[email protected]> Reported-by: Hans Verkuil <[email protected]>
* | drm/omap: Fix missing includesTomi Valkeinen2016-05-312-0/+2
| | | | | | | | | | | | | | | | | | | | | | With certain kernel config options many omapdrm files fail to compile due to missing include of linux/gpio/consumer.h and linux/of.h. This patch adds those includes. Signed-off-by: Tomi Valkeinen <[email protected]> Reported-by: Dan Murphy <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]>
* | drm/omapdrm: include pinctrl/consumer.h where neededArnd Bergmann2016-05-311-0/+1
|/ | | | | | | | | | | | | | In some configurations, we can build the OMAP dss driver without implictly including the pinctrl consumer definitions, causing a build error: gpu/drm/omapdrm/dss/dss.c: In function 'dss_runtime_suspend': gpu/drm/omapdrm/dss/dss.c:1268:2: error: implicit declaration of function 'pinctrl_pm_select_sleep_state' [-Werror=implicit-function-declaration] This adds an explicit #include. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: remove dispc_ovl_check()Tomi Valkeinen2016-03-032-46/+0
| | | | | | dispc_ovl_check() is not used anywhere, so it can be removed. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: remove dss compat codeTomi Valkeinen2016-03-0311-4260/+0
| | | | | | | | We have removed all the uses of compat code from omapdrm and the non-compat parts of omapdss, so now we can remove all the compat code itself. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: DSI: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-30/+28
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes DSI driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: VENC: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-13/+11
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes VENC driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: SDI: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-17/+16
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes SDI driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: HDMI4: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-17/+13
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes HDMI4 driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: HDMI5: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-17/+13
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes HDMI5 driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: DPI: remove uses of omap_overlay_managerTomi Valkeinen2016-03-031-20/+20
| | | | | | | We are removing the uses of 'struct omap_overlay_manager'. This patch changes DPI driver to use 'omap_channel' instead. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: remove extra manager checks on disconnectTomi Valkeinen2016-03-036-12/+6
| | | | | | | | The DSS output drivers check 'dssdev->manager' in disconnect() functions. This check is not needed as the manager must always be set if the output device was connected. Remove the check. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: remove extra check in dpi and sdiTomi Valkeinen2016-03-032-2/+2
| | | | | | | | Both dpi and sdi check for 'mgr != NULL' in check_timings. This check is not necessary, as mgr must always be set before check_timings. Remove the check. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_unregister_framedone_handler to accept omap_channelTomi Valkeinen2016-03-033-5/+5
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_unregister_framedone_handler() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_register_framedone_handler to accept omap_channelTomi Valkeinen2016-03-033-4/+4
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_register_framedone_handler() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_start_update to accept omap_channelTomi Valkeinen2016-03-033-4/+4
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_start_update() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_disable to accept omap_channelTomi Valkeinen2016-03-039-13/+13
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_disable() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_enable to accept omap_channelTomi Valkeinen2016-03-039-10/+10
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_enable() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_set_lcd_config to accept omap_channelTomi Valkeinen2016-03-035-6/+6
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_set_lcd_config() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_set_timings to accept omap_channelTomi Valkeinen2016-03-038-10/+10
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_set_timings() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_disconnect to accept omap_channelTomi Valkeinen2016-03-038-15/+15
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_disconnect() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_connect to accept omap_channelTomi Valkeinen2016-03-038-9/+9
| | | | | | | | We are removing uses of 'struct omap_overlay_manager'. This patch changes dss_mgr_connect() to accept 'enum omap_channel' instead of 'struct omap_overlay_manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: use dispc_channel_connected in output driversTomi Valkeinen2016-03-037-7/+7
| | | | | | | Use 'out->dispc_channel_connected' to check if the device is connected to an overlay manager or not, instead of using 'out->manager'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: convert dss_mgr_ops to use omap_channelTomi Valkeinen2016-03-033-27/+36
| | | | | | | | | | | We are removing the use of 'struct omap_overlay_manager' from omapdrm. This patch changes the function pointers in 'dss_mgr_ops' to get 'enum omap_channel' parameter instead of 'struct omap_overlay_manager'. The change is very straightforward, as we still use 'struct omap_overlay_manager' inside the function implementations where needed. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: remove use of omapdss_find_mgr_from_display()Tomi Valkeinen2016-03-031-18/+0
| | | | | | | | | | | | | | | In order to remove uses of 'struct omap_overlay_manager' we need to get rid of using omapdss_find_mgr_from_display() when initializing omapdrm. Instead of using omapdss_find_mgr_from_display() and mgr->id to find the dispc channel used for the given display, we can instead use omapdss_find_output_from_display(), and get the output->dispc_channel from there. We can also remove omapdss_find_mgr_from_display() as it's no longer used. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: Add dispc_mgr_get_supported_outputs()Tomi Valkeinen2016-03-032-0/+8
| | | | | | | | | | | | We are removing the use of the 'struct omap_overlay_manager' from omapdrm, and one part of that is removing the use of mgr->supported_outputs field. This patch adds dispc_mgr_get_supported_outputs() function which can be used instead of mgr->supported_outputs. omap_crtc.c is changed to use the new function. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: move dss_mgr_* declarations to omapdrm/omapfbTomi Valkeinen2016-03-031-0/+16
| | | | | | | | This patch continues the work to create private versions of the omapdss.h header for omapdrm and omapfb. This one moves the dss_mgr_* function declarations. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: move struct dss_mgr_ops to omapdrm/omapfbTomi Valkeinen2016-03-031-0/+22
| | | | | | | This patch continues the work to create private versions of the omapdss.h header for omapdrm and omapfb. This one moves 'struct dss_mgr_ops'. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap, omapfb: move exported dispc function declarations to omapdrm/omapfbTomi Valkeinen2016-03-032-0/+63
| | | | | | | | | | | | | | | | omapdrm and omapfb still share the same include/video/omapdss.h. We need to change that so that we can proceed with omapdrm work. However, it's not trivial to make separate omapfb and omapdrm versions of omapdss.h, as that file is also included in other places like arch code, audio code and omap_vout code. So we'll do it piece by piece. This patch makes private versions of all the dispc function declarations that are in omapdss.h. For omapdrm we create a new file, drivers/gpu/drm/omapdrm/dss/omapdss.h, which will contain headers meant to be visible outside omapdss. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: move dss_suspend/resume_all to core.cTomi Valkeinen2016-03-033-15/+13
| | | | | | | core.c is the only caller of dss_disable_all_devices(). We can thus move the function from display.c to core.c and make it static. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: fix suspend/resume handlingTomi Valkeinen2016-03-033-67/+0
| | | | | | | | | | | | | | | | For legacy reasons omapdss handles system suspend/resume via PM notifier callback, where the driver disables/resumes all the outputs. This doesn't work well with omapdrm. What happens on suspend is that the omapdss disables the displays while omapdrm is still happily continuing its work, possibly waiting for an vsync irq, which will never come if the display output is disabled, leading to timeouts and errors sent to userspace. This patch moves the suspend/resume handling to omapdrm, and the suspend/resume is now done safely inside modeset lock. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: verify that display x-res is divisible by 8Tomi Valkeinen2016-03-031-0/+3
| | | | | | | | | | DISPC requires the x resolution to be divisible by 8 when stall mode is not used. Add a check to the DPI driver to verify this. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm/omap: HDMI5: allow interlaceTomi Valkeinen2016-03-031-4/+0
| | | | | | | | Now that interlace support has been added, we can remove the check that prevents interlace. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm/omap: HDMI5: Add interlace supportTomi Valkeinen2016-03-031-1/+26
| | | | | | | | | | | | Add the missing bits for interlace: * Set VBLANK_OSC if the videomode's vblank is fractional * Halve the vertical timings for interlace * Double the horizontal timings for double-pixel mode * Set FC_PRCONF properly for double-pixel mode Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm/omap: HDMI5: clean up timings copyTomi Valkeinen2016-03-031-11/+2
| | | | | | | | The HDMI driver copies the timing values one by one. Instead we can just copy the whole struct. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm/omap: HDMI5: Fix FC HSW valueTomi Valkeinen2016-03-031-2/+2
| | | | | | | | | | | For some reason the HDMI FC's HSW value is programmed to hsw-1. There's no indication in the documentation that this would be correct, and no other blanking value needs -1 either. So remove the -1. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>