Commit 05812b97 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm/tegra/for-5.15-rc3' of ssh://git.freedesktop.org/git/tegra/linux into drm-fixes



drm/tegra: Fixes for v5.15-rc3

This contains a fix for an UAPI error that happens when no IOMMU is
enabled, as well as a few build warning fixes and plugs a potential
memory leak.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thierry Reding <thierry.reding@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210924143537.1341882-1-thierry.reding@gmail.com
parents 5816b3e6 c3dbfb9c
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1845,7 +1845,6 @@ tegra_crtc_update_memory_bandwidth(struct drm_crtc *crtc,
				   bool prepare_bandwidth_transition)
{
	const struct tegra_plane_state *old_tegra_state, *new_tegra_state;
	const struct tegra_dc_state *old_dc_state, *new_dc_state;
	u32 i, new_avg_bw, old_avg_bw, new_peak_bw, old_peak_bw;
	const struct drm_plane_state *old_plane_state;
	const struct drm_crtc_state *old_crtc_state;
@@ -1858,8 +1857,6 @@ tegra_crtc_update_memory_bandwidth(struct drm_crtc *crtc,
		return;

	old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc);
	old_dc_state = to_const_dc_state(old_crtc_state);
	new_dc_state = to_const_dc_state(crtc->state);

	if (!crtc->state->active) {
		if (!old_crtc_state->active)
+0 −6
Original line number Diff line number Diff line
@@ -35,12 +35,6 @@ static inline struct tegra_dc_state *to_dc_state(struct drm_crtc_state *state)
	return NULL;
}

static inline const struct tegra_dc_state *
to_const_dc_state(const struct drm_crtc_state *state)
{
	return to_dc_state((struct drm_crtc_state *)state);
}

struct tegra_dc_stats {
	unsigned long frames;
	unsigned long vblank;
+1 −1
Original line number Diff line number Diff line
@@ -222,7 +222,7 @@ int tegra_drm_ioctl_channel_map(struct drm_device *drm, void *data, struct drm_f
		mapping->iova = sg_dma_address(mapping->sgt->sgl);
	}

	mapping->iova_end = mapping->iova + host1x_to_tegra_bo(mapping->bo)->size;
	mapping->iova_end = mapping->iova + host1x_to_tegra_bo(mapping->bo)->gem.size;

	err = xa_alloc(&context->mappings, &args->mapping, mapping, XA_LIMIT(1, U32_MAX),
		       GFP_KERNEL);
+4 −2
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
#include "intr.h"
#include "syncpt.h"

DEFINE_SPINLOCK(lock);
static DEFINE_SPINLOCK(lock);

struct host1x_syncpt_fence {
	struct dma_fence base;
@@ -152,8 +152,10 @@ struct dma_fence *host1x_fence_create(struct host1x_syncpt *sp, u32 threshold)
		return ERR_PTR(-ENOMEM);

	fence->waiter = kzalloc(sizeof(*fence->waiter), GFP_KERNEL);
	if (!fence->waiter)
	if (!fence->waiter) {
		kfree(fence);
		return ERR_PTR(-ENOMEM);
	}

	fence->sp = sp;
	fence->threshold = threshold;