Commit 2a62dc74 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/dpt: move create/destroy to parent interface



Move the DPT create/destroy calls to the display parent interface.

With this, we can remove the dummy xe implementation.

Reviewed-by: default avatarJuha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Link: https://patch.msgid.link/9753b21466c668872f468ccff827eab7be034b0c.1772030909.git.jani.nikula@intel.com


Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent b3e523e5
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -8,18 +8,15 @@

#include <linux/types.h>

struct drm_gem_object;
struct i915_address_space;
struct i915_vma;
struct intel_display;

void intel_dpt_destroy(struct i915_address_space *vm);
struct i915_vma *intel_dpt_pin_to_ggtt(struct i915_address_space *vm,
				       unsigned int alignment);
void intel_dpt_unpin_from_ggtt(struct i915_address_space *vm);
void intel_dpt_suspend(struct intel_display *display);
void intel_dpt_resume(struct intel_display *display);
struct i915_address_space *intel_dpt_create(struct drm_gem_object *obj, size_t size);
u64 intel_dpt_offset(struct i915_vma *dpt_vma);

#endif /* __INTEL_DPT_H__ */
+4 −4
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
#include "intel_display_core.h"
#include "intel_display_types.h"
#include "intel_display_utils.h"
#include "intel_dpt.h"
#include "intel_fb.h"
#include "intel_fb_bo.h"
#include "intel_frontbuffer.h"
@@ -2104,12 +2103,13 @@ int intel_plane_compute_gtt(struct intel_plane_state *plane_state)

static void intel_user_framebuffer_destroy(struct drm_framebuffer *fb)
{
	struct intel_display *display = to_intel_display(fb->dev);
	struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);

	drm_framebuffer_cleanup(fb);

	if (intel_fb_uses_dpt(fb))
		intel_dpt_destroy(intel_fb->dpt_vm);
		intel_parent_dpt_destroy(display, intel_fb->dpt_vm);

	intel_fb_bo_framebuffer_fini(intel_fb_bo(fb));

@@ -2311,7 +2311,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
		if (intel_fb_needs_pot_stride_remap(intel_fb))
			size = intel_remapped_info_size(&intel_fb->remapped_view.gtt.remapped);

		vm = intel_dpt_create(obj, size);
		vm = intel_parent_dpt_create(display, obj, size);
		if (IS_ERR(vm)) {
			drm_dbg_kms(display->drm, "failed to create DPT\n");
			ret = PTR_ERR(vm);
@@ -2331,7 +2331,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,

err_free_dpt:
	if (intel_fb_uses_dpt(fb))
		intel_dpt_destroy(intel_fb->dpt_vm);
		intel_parent_dpt_destroy(display, intel_fb->dpt_vm);
err_bo_framebuffer_fini:
	intel_fb_bo_framebuffer_fini(obj);
err_frontbuffer_put:
+17 −0
Original line number Diff line number Diff line
@@ -23,6 +23,23 @@
#include "intel_display_core.h"
#include "intel_parent.h"

/* dpt */
struct i915_address_space *intel_parent_dpt_create(struct intel_display *display,
						   struct drm_gem_object *obj,
						   size_t size)
{
	if (display->parent->dpt)
		return display->parent->dpt->create(obj, size);

	return NULL;
}

void intel_parent_dpt_destroy(struct intel_display *display, struct i915_address_space *vm)
{
	if (display->parent->dpt)
		display->parent->dpt->destroy(vm);
}

/* hdcp */
ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
				       struct intel_hdcp_gsc_context *gsc_context,
+8 −0
Original line number Diff line number Diff line
@@ -7,12 +7,20 @@
#include <linux/types.h>

struct dma_fence;
struct drm_gem_object;
struct drm_scanout_buffer;
struct i915_address_space;
struct intel_display;
struct intel_hdcp_gsc_context;
struct intel_panic;
struct intel_stolen_node;

/* dpt */
struct i915_address_space *intel_parent_dpt_create(struct intel_display *display,
						   struct drm_gem_object *obj,
						   size_t size);
void intel_parent_dpt_destroy(struct intel_display *display, struct i915_address_space *vm);

/* hdcp */
ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
				       struct intel_hdcp_gsc_context *gsc_context,
+8 −3
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
 */

#include <drm/drm_print.h>
#include <drm/intel/display_parent_interface.h>

#include "display/intel_display_core.h"
#include "display/intel_display_rpm.h"
@@ -242,8 +243,7 @@ void intel_dpt_suspend(struct intel_display *display)
	mutex_unlock(&display->drm->mode_config.fb_lock);
}

struct i915_address_space *
intel_dpt_create(struct drm_gem_object *obj, size_t size)
static struct i915_address_space *i915_dpt_create(struct drm_gem_object *obj, size_t size)
{
	struct drm_i915_private *i915 = to_i915(obj->dev);
	struct drm_i915_gem_object *dpt_obj;
@@ -308,7 +308,7 @@ intel_dpt_create(struct drm_gem_object *obj, size_t size)
	return &dpt->vm;
}

void intel_dpt_destroy(struct i915_address_space *vm)
static void i915_dpt_destroy(struct i915_address_space *vm)
{
	struct i915_dpt *dpt = i915_vm_to_dpt(vm);

@@ -320,3 +320,8 @@ u64 intel_dpt_offset(struct i915_vma *dpt_vma)
{
	return i915_vma_offset(dpt_vma);
}

const struct intel_display_dpt_interface i915_display_dpt_interface = {
	.create = i915_dpt_create,
	.destroy = i915_dpt_destroy,
};
Loading