- 14 Jun, 2017 1 commit
-
-
Dave Airlie authored
Sync objects are new toplevel drm object, that contain a pointer to a fence. This fence can be updated via command submission ioctls via drivers. There is also a generic wait obj API modelled on the vulkan wait API (with code modelled on some amdgpu code). These objects can be converted to an opaque fd that can be passes between processes. v2: rename reference/unreference to put/get (Chris) fix leaked reference (David Zhou) drop mutex in favour of cmpxchg (Chris) v3: cleanups from danvet, rebase on drm_fops rename check fd_flags is 0 in ioctls. v4: export find/free, change replace fence to take a syncobj. In order to support lookup first, replace later semantics which seem in the end to be cleaner. Reviewed-by:
Sean Paul <seanpaul@chromium.org> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
- 06 Jun, 2017 2 commits
-
-
Dave Airlie authored
Merge tag 'exynos-drm-next-for-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next Summary: - Rework vblank handling . This patch series adds frame counter callback and removes unnecessary pipe relevnt fields and simplifies event handling. - clean up and fix up sw-trigger relevant code . This patch series moves TE relevant code from Panel and HDMI to DECON driver to fix a race between interrupt handlers and DECON disable, and to fix timeout issue at wait-for-vblank. . It removes unnecessary flags and check code specific to Exynos driver. * tag 'exynos-drm-next-for-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (27 commits) drm/exynos/decon5433: remove useless check drm/exynos/decon5433: kill BIT_SUSPENDED flag drm/exynos/decon5433: kill BIT_WIN_UPDATED flag drm/exynos/decon5433: kill BIT_CLKS_ENABLED flag drm/exynos/decon5433: kill BIT_IRQS_ENABLED flag drm/exynos/decon5433: move TE handling to DECON dt-bindings: exynos5433-decon: add TE interrupt binding dt-bindings: exynos5433-decon: fix interrupts bindings drm/exynos/decon5433: always do sw-trigger when vblanks enabled drm/exynos: mixer: document YCbCr magic numbers drm/exynos: mixer: simplify mixer_cfg_rgb_fmt() drm/exynos/dsi: fix bridge_node DT parsing drm/exynos/hdmi: fix pipeline disable order drm/exynos/decon5433: simplify shadow protect code drm/exynos/decon5433: kill BIT_IRQS_ENABLED drm/exynos/decon5433: kill DECON_UPDATE workaround drm/exynos: kill mode_set_nofb callback drm/exynos: kill pipe field from drivers contexts drm/exynos: set plane possible_crtcs in exynos_plane_init drm/exynos: kill exynos_drm_private::pipe ...
-
git://anongit.freedesktop.org/git/drm-miscDave Airlie authored
Core Changes: - Stop proliferation of drm_vblank_cleanup by adding to the docs and deleting boilerplate (Daniel) - Roll out and use mode_valid hooks across crtc/encoder/bridge (Jose) - Add drm_vblank.[hc] to isolate vblank code from optional irq helpers (Daniel) Driver Changes: - Replace drm_for_each_connector with drm_for_each_connector_iter (Gustavo) - A couple misc driver fixes Cc: Gustavo Padovan <gustavo.padovan@collabora.com> Cc: Jose Abreu <Jose.Abreu@synopsys.com> Cc: Daniel Vetter <daniel.vetter@intel.com> * tag 'drm-misc-next-2017-06-02' of git://anongit.freedesktop.org/git/drm-misc: (34 commits) drm/vc4: Mark the device as active when enabling runtime PM. drm: remove writeq/readq function definitions drm/atmel-hlcdc: Use crtc->mode_valid() callback drm/exynos: Drop drm_vblank_cleanup drm/hdlcd|mali: Drop drm_vblank_cleanup drm/doc: Polish irq helper documentation drm: Extract drm_vblank.[hc] drm/vc4: Fix comment in vc4_drv.h drm/pl111: fix warnings without CONFIG_ARM_AMBA drm/atomic: Consitfy mode parameter to drm_atomic_set_mode_for_crtc() drm/arcgpu: Drop drm_vblank_cleanup drm/atmel: Drop drm_vblank_cleanup drm/imx: Drop drm_vblank_cleanup drm/meson: Drop drm_vblank_cleanup drm/stm: Drop drm_vblank_cleanup drm/sun4i: Drop drm_vblank_cleanup drm: better document how to send out the crtc disable event drm: Use vsnprintf extension %ph drm/doc: move printf helpers out of drmP.h drm/pl111: select DRM_PANEL ...
-
- 03 Jun, 2017 1 commit
-
-
Dave Airlie authored
Merge tag 'omapdrm-4.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next omapdrm changes for v4.13 * dmabuf fence support * TILER rotation fixes * big pile of various cleanups and refactorings * tag 'omapdrm-4.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (64 commits) drm/omap: fix tiled buffer stride calculations drm/omap: fix YUV422 90/270 rotation with mirroring drm/omap: fix YUV422 rotation with TILER drm/omap: pass rotation to dispc drm/omap: DRM_MODE_REFLECT_* instead of mirror boolean drm/omap: use DRM_MODE_ROTATE_* instead of OMAP_DSS_ROT_* drm/omap: remove omap_drm_win drm/omap: add drm_rotation_to_tiler helper() drm/omap: rename color_mode to fourcc drm/omap: cleanup formats array drm/omap: remove omap_framebuffer_get_formats() drm/omap: use DRM_FORMAT_* instead of OMAP_DSS_COLOR_* drm/omap: use u32 instead of enum omap_color_mode drm/omap: change supported_modes to an array drm/omap: remove unneeded prototypes drm/omap: add format_is_yuv() helper drm/omap: cleanup offset calculation drm/omap: remove dma & vrfb rotation drm/omap: ratelimit OCP error drm/omap: remove CLUT ...
-
- 02 Jun, 2017 36 commits
-
-
Eric Anholt authored
Failing to do so meant that we got a resume() callback on first use of the device, so we would leak the bin BO that we allocated during probe. Signed-off-by:
Eric Anholt <eric@anholt.net> Fixes: 553c942f ("drm/vc4: Allow using more than 256MB of CMA memory.") Link: http://patchwork.freedesktop.org/patch/msgid/20170515171615.10168-1-eric@anholt.netReviewed-by:
Boris Brezillon <boris.brezillon@free-electrons.com>
-
Corentin Labbe authored
Instead of rewriting write/readq, use linux/io-64-nonatomic-lo-hi.h which already have them. Signed-off-by:
Corentin Labbe <clabbe.montjoie@gmail.com> Signed-off-by:
Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/20170602112510.17544-1-clabbe.montjoie@gmail.com
-
Jose Abreu authored
Now that we have a callback to check if crtc supports a given mode we can use it in atmel-hlcdc so that we restrict the number of probbed modes to the ones we can actually display. Also, remove the mode_fixup() callback as this is no longer needed because mode_valid() will be called before. Signed-off-by:
Jose Abreu <joabreu@synopsys.com> Signed-off-by:
Boris Brezillon <boris.brezillon@free-electrons.com> Link: http://patchwork.freedesktop.org/patch/msgid/95fd6c06c58bd0b957e36a8d7068e6a74b581304.1495720737.git.joabreu@synopsys.com
-
Tomi Valkeinen authored
omap_gem uses page alignment for buffer stride. The related calculations are a bit off, though, as byte stride of 4096 gets aligned to 8192, instead of 4096. This patch changes the code to use DIV_ROUND_UP(), which fixes those calculations and makes them more readable. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
When rotating 90/270 + mirroring with YUV422, the end result will have adjacent pixels swapped. The problem is that dispc_ovl_set_rotation_attrs() has wrong rotation values for these cases. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
TILER rotation with YUV422 pixelformats does not work at the moment. All other pixel formats work, because the pixelformat's pixel size is equal to tiler unit size (e.g. XR24's pixel size is 32 bits, and the TILER unit size that has to be used is 32 bits). For YUV422 formats this is not the case, as the TILER unit size has to be 32 bits, but the pixel size is 16 bits. The end result is OCP errors and sync losts. This patch adds the code to adjust the variables for YUV422 formats. We could make the code more generic by passing around the pixel format, rotation type, angle and the tiler unit size, which would allow us to do calculations without special case for YUV422. However, this would make the code more complex, and at least for now this is much more easier to handle with these two special cases for YUV422. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
The omapdrm driver has not passed the rotation value to the dispc driver. This doesn't affect RGB formats, but YUV formats don't work without dispc knowing the orientation. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Change dispc driver to use the DRM_MODE_REFLECT flags instead of a mirror boolean. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
At the moment the dispc driver uses a custom enum for rotation. Change it to use the DRM's DRM_MODE_ROTATE_*. Note that mirroring is at the moment handled as a separate boolean in the dispc driver, so we only use the DRM_MODE_ROTATE_* values. Note, DSS HW uses clockwise rotation, DRM counter-clockwise. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
struct omap_drm_window is only used to pass plane setup data to omap_framebuffer_update_scanout(). This can as well be accomplished by just passing the DRM state. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Add a helper function to convert DRM rotation to TILER rotation. Also drop a error print that can never happen, as the DRM framework makes sure the rotation is valid. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Now that we use fourccs, we can also rename the 'color_mode' variables to 'fourcc'. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
omap_fb.c has a table with DSS and DRM formats, used to convert between them. This is no longer needed, so we can change the array to a plain array of DRM_FORMAT_* values which contain all possible pixel formats supported by any DSS IP version. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
We now get a fourcc array from dispc when asking for a plane's supported pixel formats, so we can drop omap_framebuffer_get_formats() which was used to convert between DSS and DRM pixel formats. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
This patch changes omapdrm to use DRM_FORMAT_* values instead of OMAP_DSS_COLOR_* enum. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
In this step we drop 'enum omap_color_mode', and use u32 instead. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
enum omap_color_mode is a bitmask, so at the moment we present the supported color modes as mask. To be able to move to fourccs, we need to use an array to present the supported color modes. As a first step towards fourccs, this patch changes the code to use an array to store the enums. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
omapdss.h contains prototypes for three functions, which are also defined in dss_features.h. Remove the extra prototypes from omapdss.h. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
In a few places the dispc driver needs to know whether the pixel format is an YUV format. Add a helper to figure that out. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
The code to calculate offset in dispc's calc_offset() is overly complex. Simplify it. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
We have three rotation methods supported by the SoCs with DSS: DMA, VRFB and TILER. DMA rotation works in theory on all DSS platforms, but in practice it's unusable due to the huge amount of memory bandwidth it uses, and has never really been used. VRFB is available on OMAP3, but is not supported by omapdrm, even though we have some code for it in the dispc driver. TILER is supported on OMAP4/OMAP5/DRA7/AM5 platforms, but has some driver bugs. To clean up the driver to help fixing the TILER issues, this patch drops the DMA and VRFB rotation support, leaving only TILER rotation. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Use dev_err_ratelimited() when an OCP error happens, to slightly easen the flood. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
DSS IP versions 2 and 3 support CLUT modes (color lookup table), but the driver has never supported those. We still have had some code for CLUT modes. As the newer DSS IP versions have dropped CLUT support, we might as well clean up the driver by removing the CLUT related code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
The code that sets and clears DOUBLESTRIDE is only ran when using NV12. This is not correct, as we might first set the bith when using NV12, but never clear it when using other formats. Fix it so that when the bit is available (when the HW supports NV12) we always either set or clear the bit. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Laurent Pinchart authored
The omap_dss_find_output() function is unused, remove it. Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com>
-
Tomi Valkeinen authored
Structs omap_overlay and omap_overlay_manager are not used, remove them. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Remove unused fields in struct omap_dss_device. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
get_resolution is not used, remove it. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
get_dimensions function pointer is not used, remove it. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
The RFBI driver has not worked nor compiled for many years. There are very few boards out there that use RFBI, and no one has stepped up to fix it. So let's remove the RFBI code that doesn't even compile. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Remove DPI's legacy data_lines code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
recommended_bpp hasn't been used for ages, remove the code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Non-DT booting is no longer supported, so remove legacy code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Non-DT booting is no longer supported, so remove legacy code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Remove extra includes related to non-DT boot. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-
Tomi Valkeinen authored
Non-DT booting is no longer supported, so remove legacy code. Signed-off-by:
Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-