Commit 7786fb36 authored by Ben Skeggs's avatar Ben Skeggs Committed by Dave Airlie
Browse files

drm/nouveau/disp: collapse nvkm_dp into nvkm_outp



There should be no changes to code here other than modifying the
dereferences.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 89ed996b
Loading
Loading
Loading
Loading
+209 −226

File changed.

Preview size limit exceeded, changes collapsed.

+0 −33
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
#ifndef __NVKM_DISP_DP_H__
#define __NVKM_DISP_DP_H__
#define nvkm_dp(p) container_of((p), struct nvkm_dp, outp)
#include "outp.h"

#include <core/notify.h>
#include <subdev/bios.h>
#include <subdev/bios/dp.h>

struct nvkm_dp {
	struct nvkm_outp outp;

	struct nvbios_dpout info;
	u8 version;

	struct nvkm_i2c_aux *aux;

	struct nvkm_notify hpd;
	bool present;
	u8 lttpr[6];
	u8 lttprs;
	u8 dpcd[16];

	struct {
		int dpcd; /* -1, or index into SUPPORTED_LINK_RATES table */
		u32 rate;
	} rate[8];
	int rates;
	int links;

	struct mutex mutex;
	struct {
		atomic_t done;
		bool mst;
	} lt;
};

int nvkm_dp_new(struct nvkm_disp *, int index, struct dcb_output *,
		struct nvkm_outp **);
void nvkm_dp_disable(struct nvkm_outp *, struct nvkm_ior *);
+30 −0
Original line number Diff line number Diff line
@@ -2,9 +2,11 @@
#ifndef __NVKM_DISP_OUTP_H__
#define __NVKM_DISP_OUTP_H__
#include <engine/disp.h>
#include <core/notify.h>

#include <subdev/bios.h>
#include <subdev/bios/dcb.h>
#include <subdev/bios/dp.h>

struct nvkm_outp {
	const struct nvkm_outp_func *func;
@@ -23,6 +25,34 @@ struct nvkm_outp {
#define NVKM_OUTP_USER 2
	u8 acquired:2;
	struct nvkm_ior *ior;

	union {
		struct {
			struct nvbios_dpout info;
			u8 version;

			struct nvkm_i2c_aux *aux;

			struct nvkm_notify hpd;
			bool present;
			u8 lttpr[6];
			u8 lttprs;
			u8 dpcd[16];

			struct {
				int dpcd; /* -1, or index into SUPPORTED_LINK_RATES table */
				u32 rate;
			} rate[8];
			int rates;
			int links;

			struct mutex mutex;
			struct {
				atomic_t done;
				bool mst;
			} lt;
		} dp;
	};
};

int nvkm_outp_ctor(const struct nvkm_outp_func *, struct nvkm_disp *,
+1 −3
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@
 */
#include "rootnv50.h"
#include "channv50.h"
#include "dp.h"
#include "head.h"
#include "ior.h"

@@ -227,7 +226,6 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
	}
		break;
	case NV50_DISP_MTHD_V1_SOR_DP_MST_LINK: {
		struct nvkm_dp *dp = nvkm_dp(outp);
		union {
			struct nv50_disp_sor_dp_mst_link_v0 v0;
		} *args = data;
@@ -236,7 +234,7 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
		if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) {
			nvif_ioctl(object, "disp sor dp mst link vers %d state %d\n",
				   args->v0.version, args->v0.state);
			dp->lt.mst = !!args->v0.state;
			outp->dp.lt.mst = !!args->v0.state;
			return 0;
		} else
			return ret;