summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/omapdrm/dss
AgeCommit message (Collapse)AuthorFilesLines
2016-05-31drm/omap: Fix missing includesTomi Valkeinen2-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 <tomi.valkeinen@ti.com> Reported-by: Dan Murphy <dmurphy@ti.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2016-05-31drm/omapdrm: include pinctrl/consumer.h where neededArnd Bergmann1-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 <arnd@arndb.de> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: DPI: rename "DSI" related namesTomi Valkeinen1-22/+22
Originally DSS only had DSI PLLs, and thus the DPI driver has functions and variables that refer to DSI or DSI PLL. Now we support DSI, VIDEO and HDMI PLLs, so it's time to remove the DSI references from the code. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: support type B PLL for DPITomi Valkeinen1-9/+22
Type A and B PLLs require a bit different calculations for the clock rates. DPI driver supports only type A PLLs. This patch adds support for the type B PLL. Type B PLLs are simpler than type A, as type B can produce a good clock for almost any rate. Thus we can just ask it to produce the pixel clock and use one as LCK and PCK dividers. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: add comments for PLL calculationsTomi Valkeinen1-0/+7
Add comments showing how the PLL clock rates are calculated. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: generalize dss_pll_calc_b()Tomi Valkeinen4-8/+17
dss_pll_calc_b() takes HDMI TMDS clock rate as a parameter. To make dss_pll_calc_b() usable for non-HDMI users, change the function to take clkout rate as parameter, and also change the current users of dss_pll_calc_b() to accommodate that. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: move HDMI PLL calc function to pll.cTomi Valkeinen6-64/+67
Move hdmi_pll_compute(), used to calculate the config for HDMI PLL, from hdmi_pll.c to pll.c, with the name of dss_pll_calc_b(), to make it available to non-HDMI users. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: rename PLL calc functionsTomi Valkeinen4-10/+10
Add a "_a" postfix to the type A PLL calc functions, to differentiate them from the type B PLL calculations which we will add shortly. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: HDMI PLL: use runtime pmTomi Valkeinen2-0/+10
To make it possible to use HDMI PLL for other video outputs than HDMI, the HDMI PLL code needs to do runtime_get/put for the HDMI IP, so that the IP (include the PLL) is enabled. To do that we also need to store the HDMI pdev in the hdmi_pll_data. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: fix DPI clkout index handlingTomi Valkeinen1-6/+6
DPI driver uses a fixed clkout index, 0. This has worked fine as the first clkout is usually used. To generalize the code and to support additional clock sources, change the code to use dss_pll_get_clkout_idx_for_src() to get the clkout index. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: cleanup DPI clock source handlingTomi Valkeinen1-30/+18
We can clean up the DPI driver's clock source handling by using the dss_clk_source instead of only a dss_pll pointer. This will also make it possible to use additional clock sources, like PLL1_3 or HDMI_PLL, which the code did not support earlier. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: cleanup dispc_fclk_rate()Tomi Valkeinen1-20/+11
With the new PLL helpers, we can clean up the dispc_fclk_rate(). This will also make dispc_fclk_rate() support clock sources it didn't support earlier. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: cleanup dispc_mgr_lclk_rate()Tomi Valkeinen1-29/+17
With the new PLL helpers, we can clean up the dispc_mgr_lclk_rate(). This will also make dispc_mgr_lclk_rate() support clock sources it didn't support earlier. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: add PLL helper funcsTomi Valkeinen2-0/+55
Add two PLL helper functions: dss_pll_find_by_src() which returns the dss_pll for the given dss_clk_source. dss_pll_get_clkout_idx_for_src() which returns the clkout index for the given dss_clk_source. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: clean up the LCD clk mux codeTomi Valkeinen3-51/+141
The code to set the clock muxes for DISPC's LCD clock inputs is very confusing. Especially on DRA7, there's an additional clock muxing that needs to be done, which at the moment is done in dpi.c using dss_ctrl_pll_set_control_mux(). Clean this all up by: - Using dss_clk_source instead of dss_pll_id, as dss_pll_id doesn't specify the clock source quite correctly. - Splitting the dss_select_lcd_clk_source() up into DSS version specific helper functions. - Using dss_ctrl_pll_set_control_mux() from the helper functions, so that dpi.c doesn't have to call it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-05-19drm/omap: add field for PLL typeTomi Valkeinen4-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: Add missing clock sourcesTomi Valkeinen2-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: rename dss_clk_source enumsTomi Valkeinen5-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: rename dss_get_generic_clk_source_name()Tomi Valkeinen4-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: remove dss_feat_get_clk_source_name()Tomi Valkeinen5-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: rename omap_dss_clk_sourceTomi Valkeinen7-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: copy enum omap_dss_clk_sourceTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: video-pll: add missing data for clkout2 & 3Tomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-05-19drm/omap: fix wrong variable typeTomi Valkeinen1-1/+1
'r' is supposed to be int, not u16, so fix it. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-03-03drm/omap: remove dispc_ovl_check()Tomi Valkeinen2-46/+0
dispc_ovl_check() is not used anywhere, so it can be removed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2016-03-03drm/omap: remove dss compat codeTomi Valkeinen11-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: DSI: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: VENC: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: SDI: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: HDMI4: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: HDMI5: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: DPI: remove uses of omap_overlay_managerTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: remove extra manager checks on disconnectTomi Valkeinen6-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: remove extra check in dpi and sdiTomi Valkeinen2-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_unregister_framedone_handler to accept omap_channelTomi Valkeinen3-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_register_framedone_handler to accept omap_channelTomi Valkeinen3-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_start_update to accept omap_channelTomi Valkeinen3-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_disable to accept omap_channelTomi Valkeinen9-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_enable to accept omap_channelTomi Valkeinen9-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_set_lcd_config to accept omap_channelTomi Valkeinen5-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_set_timings to accept omap_channelTomi Valkeinen8-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_disconnect to accept omap_channelTomi Valkeinen8-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_connect to accept omap_channelTomi Valkeinen8-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: use dispc_channel_connected in output driversTomi Valkeinen7-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: convert dss_mgr_ops to use omap_channelTomi Valkeinen3-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: remove use of omapdss_find_mgr_from_display()Tomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: Add dispc_mgr_get_supported_outputs()Tomi Valkeinen2-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: move dss_mgr_* declarations to omapdrm/omapfbTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap: move struct dss_mgr_ops to omapdrm/omapfbTomi Valkeinen1-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 <tomi.valkeinen@ti.com>
2016-03-03drm/omap, omapfb: move exported dispc function declarations to omapdrm/omapfbTomi Valkeinen2-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 <tomi.valkeinen@ti.com>