aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_plane.c
Commit message (Collapse)AuthorAgeFilesLines
...
* drm/omap: cleanup omap_plane_atomic_check()Tomi Valkeinen2016-11-021-9/+12
| | | | | | | | | | Clean up omap_plane_atomic_check() with: - Check state->fb first. If no fb, return 0. - use drm_atomic_get_existing_crtc_state() instead of drm_atomic_get_crtc_state() Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: fix plane check when crtc is disabledTomi Valkeinen2016-11-021-0/+3
| | | | | | | | | | | | | | | | | | I sometimes see: [drm:drm_framebuffer_remove [drm]] *ERROR* failed to reset crtc ed2a6c00 when fb was deleted: -22 which comes from drm_framebuffer_remove() when it's disabling the crtc with zeroed drm_mode_set. The problem in omap_plane_atomic_check() is that it will use those zeroed fields to verify if the setup is correct. This patch makes omap_plane_atomic_check() return 0 if the crtc is disabled. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: Use per-plane rotation propertyVille Syrjälä2016-10-211-2/+10
| | | | | | | | | | | | | | | | | | | The global mode_config.rotation_property is going away, switch over to per-plane rotation_property. Not sure I got the annoying crtc rotation_property handling right. Might work, or migth not. v2: Drop the BIT() Don't create rotation property twice for each primary plane Cc: Tomi Valkeinen <[email protected]> Cc: Rob Clark <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> [danvet: Add comment per discussion between Tomi&Ville.] Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/omap: Set rotation property initial value to BIT(DRM_ROTATE_0) insted of 0Ville Syrjälä2016-10-211-1/+1
| | | | | | | | | | | | | | 0 isn't a valid rotation property value, so let's set the initial value of the property to BIT(DRM_ROTATE_0) instead. v2: Drop the BIT() Cc: Tomi Valkeinen <[email protected]> Cc: Rob Clark <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Tomi Valkeinen <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm: Add drm_rotation_90_or_270()Ville Syrjälä2016-10-211-6/+2
| | | | | | | | | | | | | | | | We have intel_rotation_90_or_270() in i915 to check if the rotation is 90 or 270 degrees. Similar checks are elsewhere in drm, so let's move the helper into a central place and use it everwhere. v2: Drop the BIT() Convert all new intel_rotation_90_or_270() calls Deal with superfluous code shuffling Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Chris Wilson <[email protected]> (v1) Reviewed-by: Joonas Lahtinen <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm: Allow drivers to modify plane_state in prepare_fb/cleanup_fbChris Wilson2016-08-191-2/+2
| | | | | | | | | | | | | The drivers have to modify the atomic plane state during the prepare_fb callback so they track allocations, reservations and dependencies for this atomic operation involving this fb. In particular, how else do we set the plane->fence from the framebuffer! Signed-off-by: Chris Wilson <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: [email protected] Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm: BIT(DRM_ROTATE_?) -> DRM_ROTATE_?Joonas Lahtinen2016-08-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | Only property creation uses the rotation as an index, so convert the to figure the index when needed. v2: Use the new defines to build the _MASK defines (Sean) Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: David Airlie <[email protected]> Cc: Daniel Vetter <[email protected]> Cc: Ville Syrjälä <[email protected]> Cc: Liviu Dudau <[email protected]> Cc: Sean Paul <[email protected]> Acked-by: Liviu Dudau <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> (v1) Signed-off-by: Joonas Lahtinen <[email protected]> Signed-off-by: Sean Paul <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/1469771405-17653-1-git-send-email-joonas.lahtinen@linux.intel.com
* drm: Drop plane argument from __drm_atomic_helper_plane_destroy_stateDaniel Vetter2016-05-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's unused, and really this helper should only look at the state structure and nothing else. v2: Fix commit message (Laurent). v3: Rebase onto mtk driver merge. Cc: Maarten Lankhorst <[email protected]> Cc: Thierry Reding <[email protected]> Cc: Eric Anholt <[email protected]> Cc: Laurent Pinchart <[email protected]> Cc: Inki Dae <[email protected]> Cc: Tomi Valkeinen <[email protected]> Cc: Mark Yao <[email protected]> Acked-by: Thierry Reding <[email protected]> Acked-by: Maarten Lankhorst <[email protected]> Acked-by: Laurent Pinchart <[email protected]> Acked-by: Eric Anholt <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm/omap: check if rotation is supported before commitTomi Valkeinen2016-03-031-0/+6
| | | | | | | | | | | omapdrm is missing a check on the validity of the rotation property. This leads to omapdrm possibly trying to use rotation on non-rotateable framebuffer, which causes the overlay setup to fail. This patch adds the necessary check to omap_plane_atomic_check(). Signed-off-by: Tomi Valkeinen <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Fix plane state free in plane reset handlerLaurent Pinchart2015-12-311-5/+4
| | | | | | | | | | | | | The plane reset handler frees the plane state and allocates a new default state, but when doing so attempt to free the plane state using the base plane state pointer instead of casting it to the driver-specific state object that has been allocated. Fix it by using the omap_plane_atomic_destroy_state() function to destroy the plane state instead of duplicating the code. Signed-off-by: Laurent Pinchart <[email protected]> [[email protected]: move of the func into separate patch] Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: move omap_plane_reset()Tomi Valkeinen2015-12-311-27/+27
| | | | | | | Move omap_plane_reset() function to avoid forward declarations in the next patch. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: Pass 'name' to drm_universal_plane_init()Ville Syrjälä2015-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done with coccinelle for the most part. It choked on msm/mdp/mdp5/mdp5_plane.c like so: "BAD:!!!!! enum drm_plane_type type;" No idea how to deal with that, so I just fixed that up by hand. Also it thinks '...' is part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder in its place and got rid of it with sed afterwards. I didn't convert drm_plane_init() since passing the varargs through would mean either cpp macros or va_list, and I figured we don't care about these legacy functions enough to warrant the extra pain. @@ typedef uint32_t; identifier dev, plane, possible_crtcs, funcs, formats, format_count, type; @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, unsigned long possible_crtcs, const struct drm_plane_funcs *funcs, const uint32_t *formats, unsigned int format_count, enum drm_plane_type type + ,const char *name, int DOTDOTDOT ) { ... } @@ identifier dev, plane, possible_crtcs, funcs, formats, format_count, type; @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, unsigned long possible_crtcs, const struct drm_plane_funcs *funcs, const uint32_t *formats, unsigned int format_count, enum drm_plane_type type + ,const char *name, int DOTDOTDOT ); @@ expression E1, E2, E3, E4, E5, E6, E7; @@ drm_universal_plane_init(E1, E2, E3, E4, E5, E6, E7 + ,NULL ) v2: Split crtc and plane changes apart Pass NUL for no-name instead of "" Leave drm_plane_init() alone v3: Add ', or NULL...' to @name kernel doc (Jani) Annotate the function with __printf() attribute (Jani) Signed-off-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* drm: Use DRM_ROTATE_MASK and DRM_REFLECT_MASKJoonas Lahtinen2015-10-051-1/+1
| | | | | | | | | Avoid magic numbers and use the introduced defines. Cc: Ville Syrjälä <[email protected]> Signed-off-by: Joonas Lahtinen <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
* drm/atomic: Make prepare_fb/cleanup_fb only take state, v3.Maarten Lankhorst2015-09-081-4/+6
| | | | | | | | | | | | | | | | | | This removes the need to separately track fb changes i915. That will be done as a separate commit, however. Changes since v1: - Add dri-devel to cc. - Fix a check in intel's prepare and cleanup fb to take rotation into account. Changes since v2: - Split out i915 changes to a separate commit. Cc: [email protected] Signed-off-by: Maarten Lankhorst <[email protected]> Reviewed-by: Daniel Stone <[email protected]> [danvet: Squash in msm fixup from Maarten.] Signed-off-by: Daniel Vetter <[email protected]>
* drm/omap: check that plane is inside crtcTomi Valkeinen2015-07-021-0/+26
| | | | | | | | | DRM allows planes to be partially off-screen, but DSS hardware does not. This patch adds the necessary check to reject plane configs if the plane is not fully inside the crtc. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: if omap_plane_atomic_update fails, disable planeTomi Valkeinen2015-06-121-1/+3
| | | | | | | | | | omap_plane_atomic_update() calls dispc_ovl_setup(), which can fail (but shouldn't). To make the code a bit more robust, make sure the plane gets disabled if dispc_ovl_setup() fails, as otherwise we might get illegal HW configuration leading to error interrupts. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: inline omap_plane_setup into update/disableTomi Valkeinen2015-06-121-27/+17
| | | | | | | | | | | | At the moment we have omap_plane_setup() function which handles both enabling (and configuring) and disabling the plane. With atomic modesetting we have separate hooks for plane enable/config and disable. This patch moves the code from omap_plane_setup() to omap_plane_atomic_update() and omap_plane_atomic_disable(). Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: omap_plane_setup() cannot fail, use WARNTomi Valkeinen2015-06-121-9/+4
| | | | | | | | | | | | With atomic modesetting, omap_plane_setup()'s return value is ignored as the functions using it cannot fail. dispc_ovl_setup(), called by omap_plane_setup(), can fail (but shouldn't). Instead of returning an error from omap_plane_setup() which gets ignored, return void and use WARN if dispc_ovl_setup() fails. Signed-off-by: Tomi Valkeinen <[email protected]> Acked-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Don't setup planes manually from CRTC .enable()/.disable()Laurent Pinchart2015-06-121-1/+1
| | | | | | | | | Planes setup is handled by the DRM core through the atomic helpers, there's no need to duplicate the code in the CRTC .enable() and .disable() operations. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Remove omap_plane enabled fieldLaurent Pinchart2015-06-121-37/+8
| | | | | | | | | | | | | | | | | | | The field tracks the plane state to avoid double-enable or -disable. This isn't required anymore, as - the DRM atomic core guarantees that the plane atomic_update and atomic_disable functions will never be called on an enabled/disabled plane - the CRTC enable/disable operations that enable/disable the plane are already guarded against double enable/disable We can thus remove the enabled field completely. The omap_plane_set_enable() function then becomes a wrapper around omap_plane_setup() which can be called directly. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Move plane info and win out of the plane structureLaurent Pinchart2015-06-121-51/+41
| | | | | | | | | The plane info and win structures are only used to setup the plane through the DSS API. Move them from the plane structure to local variables in omap_plane_setup(). Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Switch crtc and plane set_property to atomic helpersLaurent Pinchart2015-06-121-61/+119
| | | | | | | | | | | | | Allow setting up plane properties atomically using the plane set_property atomic helper. The properties are now stored in the plane state (requiring subclassing it) and applied when updating the planes. The CRTC exposes the properties of its primary plane for legacy reason. We can't get rid of that API, so simply delegate it to the primary plane. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Drop manual framebuffer pin handlingLaurent Pinchart2015-06-121-41/+0
| | | | | | | | | | Since the removal of omap_plane_mode_set(), framebuffers are now pinned exclusively through the plane .prepare_fb() and .cleanup_fb() operations as the remaining callers of omap_plane_setup() don't modify the framebuffer. Remove the manual pin/unpin infrastructure. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Switch page flip to atomic helpersLaurent Pinchart2015-06-121-23/+0
| | | | | | | | | | | The atomic page flip helper implements the page flip operation using asynchronous commits. As the legacy page flip was the last caller of omap_plane_mode_set(), remove the function. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Switch plane update to atomic helpersLaurent Pinchart2015-06-121-2/+2
| | | | | | | | | This removes the legacy plane update code. Wire up the default atomic check and atomic commit mode config helpers as needed by the plane update atomic helpers. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Implement planes atomic operationsLaurent Pinchart2015-06-121-47/+78
| | | | | | | | | | Implement the CRTC .atomic_begin() and .atomic_flush() operations, the plane .atomic_check(), .atomic_update() and operations, and use the transitional atomic helpers to implement the plane update and disable operations on top of the new atomic operations. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Wire up atomic state object scaffoldingLaurent Pinchart2015-06-121-0/+5
| | | | | | | | | | | | | | Hook up the default .reset(), .atomic_duplicate_state() and .atomic_free_state() helpers to ensure that state objects are properly created and destroyed, and call drm_mode_config_reset() at init time to create the initial state objects. Framebuffer reference count also gets maintained automatically by the transitional helpers except for the legacy page flip operation. Maintain it explicitly there. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Clean up #include'sLaurent Pinchart2015-06-121-1/+1
| | | | | | | | Use the <...> include style instead of "..." for DRM headers and sort the headers alphabetically to ease detection of duplicates. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Apply settings synchronouslyLaurent Pinchart2015-06-121-130/+81
| | | | | | | | | | | | | | | | | The omapdrm driver implements a mechanism to apply new settings (due to plane update, plane disable, plane property set, CRTC mode set or CRTC DPMS) asynchronously. While this improves performance, it adds a level of complexity that makes transition to the atomic update API close to impossible. Furthermore the atomic update API requires part of the apply operations to be synchronous (such as pinning the framebuffers), so the current implementation needs to be changed. Simplify the CRTC and plane code by making updates synchronous to prepare for the switch to the atomic update API. Asynchronous update will be implemented in a second step. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Store the rotation property in dev->mode_configLaurent Pinchart2015-06-121-23/+4
| | | | | | | | | | Rotation is a standard property, store it in dev->mode_config.rotation_property. While at it, extract the properties initialization code to a separate function instead of running it for every plane. Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: use DRM_ERROR_RATELIMITED() for error irqsTomi Valkeinen2015-03-241-1/+2
| | | | | | | | omapdrm uses normal DRM_ERROR() print when the HW reports an error. As we sometimes may get a flood of errors, let's rather use DRM_ERROR_RATELIMITED(). Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: fix plane's channel selectionTomi Valkeinen2015-03-241-1/+2
| | | | | | | | | | | omap_plane_pre_apply() sets the plane's output channel too late, only after the plane has already been otherwise configured and enabled. This causes problems, as at the configuration stage we need to make decisions based on the output channel. This may lead to bad plane settings or failing to setup the plane. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm/omap: add a comment why locking is missingTomi Valkeinen2015-03-241-0/+4
| | | | | | | | | | unpin_worker() calls omap_framebuffer_unpin() without any locks, which looks very suspicious. However, both pin and unpin are always called via the driver's private workqueue, so the access is synchronized that way. Add a comment to make this clear. Signed-off-by: Tomi Valkeinen <[email protected]>
* drm: omapdrm: Planes are already disabled when destroyedLaurent Pinchart2015-03-201-1/+0
| | | | | | | | Planes are destroyed after framebuffers, which has the side effect of disabling all planes. There is thus no need to disable planes explicitly when destroying them. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Pass integer source coordinates to omap_plane_mode_set()Laurent Pinchart2015-03-201-12/+12
| | | | | | | The function will convert the Q16 source coordinates to integers, avoid converting integers to Q16 first and perform the opposite conversion. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Prefix all plane functions with omap_plane_Laurent Pinchart2015-03-201-9/+10
| | | | | | This matches the rest of the file and clarifies the functions' purpose. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Remove manual update display supportLaurent Pinchart2015-03-201-6/+0
| | | | | | | | | All the manual update display code implements eventually ends up to just calls to omap_connector_flush(), currently implemented as an empty TODO stub. Remove it, the code can always be revived and implemented later if interest in manual update displays becomes a reality. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Reset the zorder property when disabling a planeLaurent Pinchart2015-03-201-0/+3
| | | | | | | | | Whether to reset plane properties at disable time isn't well-defined in DRM, but resetting only part of them is probably as bad as it can get. Make the behaviour coherent by resetting the zorder property in addition to the rotation property. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Rename omap_plane_dpms() to omap_plane_set_enable()Laurent Pinchart2015-03-201-9/+7
| | | | | | | The planes don't care about DPMS states, don't propagate it unnecessarily to the plane functions. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Switch to the universal plane APILaurent Pinchart2015-03-201-14/+22
| | | | | | | | | | | | | Remove the CRTC private planes by switching to the universal plane API. This results in a merge of the CRTC private plane created by the driver (omap_crtc->plane) and the CRTC primary plane created by the DRM core (crtc->primary). Reference counting of the framebuffers in the update plane operation is thus simplified as no reference needs to be stored in the private plane anymore. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Remove unused variablesLaurent Pinchart2015-03-201-7/+2
| | | | | | | The ilace variable is unused and the replication variable is assigned to false and just passed to a function. Remove them. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Refactor CRTC creation codeLaurent Pinchart2015-03-201-1/+1
| | | | | | | Create a omap_modeset_create_crtc() function to avoid duplicating plane and CRTC creation code. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: Fix indentation of structure and array initializersLaurent Pinchart2015-03-201-12/+12
| | | | | | Indenting by one tab is enough. Signed-off-by: Laurent Pinchart <[email protected]>
* drm: omapdrm: remove unused variableBoris BREZILLON2014-11-201-1/+0
| | | | | | | | | Commit f9b9faf6d94dd29eab8c128905c7d091f955481d "drm: flip-work: change drm_flip_work_init prototype" changed the drm_flip_work_init prototype to a void function, which makes 'ret' an unused variable. Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* drm: flip-work: change drm_flip_work_init prototypeBoris BREZILLON2014-11-141-12/+2
| | | | | | | | | | | | | | | | Now that we're using lists instead of kfifo to store drm flip-work tasks we do not need the size parameter passed to drm_flip_work_init function anymore. Moreover this function cannot fail anymore, we can thus remove the return code. Modify drm_flip_work_init users to take account of these changes. [airlied: fixed two unused variable warnings] Signed-off-by: Boris BREZILLON <[email protected]> Reviewed-by: Rob Clark <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* Merge remote-tracking branch 'airlied/drm-next' into drm-intel-nextDaniel Vetter2014-07-291-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | Pull in drm-next with Dave's DP MST support so that I can merge some conflicting patches which also touch the driver load sequencing around interrupt handling. Conflicts: drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_dp.c Signed-off-by: Daniel Vetter <[email protected]>
| * drm: omapdrm: fix compiler errorsRussell King2014-07-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regular randconfig nightly testing has detected problems with omapdrm. omapdrm fails to build when the kernel is built to support 64-bit DMA addresses and/or 64-bit physical addresses due to an assumption about the width of these types. Use %pad to print DMA addresses, rather than %x or %Zx (which is even more wrong than %x). Avoid passing a uint32_t pointer into a function which expects dma_addr_t pointer. drivers/gpu/drm/omapdrm/omap_plane.c: In function 'omap_plane_pre_apply': drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' [-Werror=format] drivers/gpu/drm/omapdrm/omap_plane.c:145:2: error: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t' [-Werror=format] make[5]: *** [drivers/gpu/drm/omapdrm/omap_plane.o] Error 1 drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_get_paddr': drivers/gpu/drm/omapdrm/omap_gem.c:794:4: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'dma_addr_t' [-Werror=format] drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_describe': drivers/gpu/drm/omapdrm/omap_gem.c:991:4: error: format '%Zx' expects argument of type 'size_t', but argument 7 has type 'dma_addr_t' [-Werror=format] drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_init': drivers/gpu/drm/omapdrm/omap_gem.c:1470:4: error: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t' [-Werror=format] make[5]: *** [drivers/gpu/drm/omapdrm/omap_gem.o] Error 1 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c: In function 'dmm_txn_append': drivers/gpu/drm/omapdrm/omap_dmm_tiler.c:226:2: error: passing argument 3 of 'alloc_dma' from incompatible pointer type [-Werror] make[5]: *** [drivers/gpu/drm/omapdrm/omap_dmm_tiler.o] Error 1 make[5]: Target `__build' not remade because of errors. make[4]: *** [drivers/gpu/drm/omapdrm] Error 2 Signed-off-by: Russell King <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* | drm/omap: Switch omapdrm over to drm_mode_create_rotation_property()Ville Syrjälä2014-07-111-13/+7
| | | | | | | | | | | | | | | | | | | | | | Use the new drm_mode_create_rotation_property() in omapdrm. Cc: [email protected] Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Rob Clark <[email protected]> Reviewed-by: Imre Deak <[email protected]> Reviewed-by: Sagar Kamble <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
* | drm: Add support_bits parameter to drm_property_create_bitmask()Ville Syrjälä2014-07-111-1/+4
|/ | | | | | | | | | | | | | | | | | Make drm_property_create_bitmask() a bit more generic by allowing the caller to specify which bits are in fact supported. This allows multiple callers to use the same enum list, but still create different versions of the same property with different list of supported bits. v2: Populate values[] array as non-sparse Make supported_bits 64bit Fix up omapdrm call site (Rob) Cc: [email protected] Signed-off-by: Ville Syrjälä <[email protected]> Reviewed-by: Imre Deak <[email protected]> Reviewed-by: Sagar Kamble <[email protected]> Acked-by: Dave Airlie <[email protected]> Signed-off-by: Daniel Vetter <[email protected]>
* drm/omap: fix the handling of fb ref countsTomi Valkeinen2014-04-151-5/+5
| | | | | | | | | | | | | With the recent primary-plane changes for drm, the primary plane's framebuffer needs to be ref counted the same way as for non-primary-planes. This was not done by the omapdrm driver, which caused the ref count to drop to 0 too early, causing problems. This patch moves the fb unref and ref from omap_plane_update to omap_plane_mode_set. This way the fb refs are updated for both primary and non-primary cases, as omap_plane_update calls omap_plane_mode_set. Signed-off-by: Tomi Valkeinen <[email protected]>