Commit 75eac7e8 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2024-08-15' of...

Merge tag 'drm-misc-fixes-2024-08-15' of https://gitlab.freedesktop.org/drm/misc/kernel

 into drm-fixes

Short summary of fixes pull:

panel:
- dt-bindings style fixes

panel-orientation:
- add quirk for Any Loki Max
- add quirk for Any Loki Zero

rockchip:
- inno-hdmi: fix infoframe upload

v3d:
- fix OOB access in v3d_csd_job_run()

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

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20240815131751.GA151031@linux.fritz.box
parents 9370e430 fd45cc61
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -208,6 +208,18 @@ static const struct dmi_system_id orientation_data[] = {
		  DMI_MATCH(DMI_BOARD_NAME, "KUN"),
		},
		.driver_data = (void *)&lcd1600x2560_rightside_up,
	}, {    /* AYN Loki Max */
		.matches = {
			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ayn"),
			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Loki Max"),
		},
		.driver_data = (void *)&lcd1080x1920_leftside_up,
	}, {	/* AYN Loki Zero */
		.matches = {
			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ayn"),
			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Loki Zero"),
		},
		.driver_data = (void *)&lcd1080x1920_leftside_up,
	}, {	/* Chuwi HiBook (CWI514) */
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"),
+1 −3
Original line number Diff line number Diff line
@@ -279,7 +279,6 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
				  const u8 *buffer, size_t len)
{
	struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
	u8 packed_frame[HDMI_MAXIMUM_INFO_FRAME_SIZE];
	ssize_t i;

	if (type != HDMI_INFOFRAME_TYPE_AVI) {
@@ -291,8 +290,7 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
	inno_hdmi_disable_frame(connector, type);

	for (i = 0; i < len; i++)
		hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_ADDR + i,
			    packed_frame[i]);
		hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_ADDR + i, buffer[i]);

	return 0;
}
+11 −3
Original line number Diff line number Diff line
@@ -315,7 +315,7 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
	struct v3d_dev *v3d = job->base.v3d;
	struct drm_device *dev = &v3d->drm;
	struct dma_fence *fence;
	int i, csd_cfg0_reg, csd_cfg_reg_count;
	int i, csd_cfg0_reg;

	v3d->csd_job = job;

@@ -335,9 +335,17 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
	v3d_switch_perfmon(v3d, &job->base);

	csd_cfg0_reg = V3D_CSD_QUEUED_CFG0(v3d->ver);
	csd_cfg_reg_count = v3d->ver < 71 ? 6 : 7;
	for (i = 1; i <= csd_cfg_reg_count; i++)
	for (i = 1; i <= 6; i++)
		V3D_CORE_WRITE(0, csd_cfg0_reg + 4 * i, job->args.cfg[i]);

	/* Although V3D 7.1 has an eighth configuration register, we are not
	 * using it. Therefore, make sure it remains unused.
	 *
	 * XXX: Set the CFG7 register
	 */
	if (v3d->ver >= 71)
		V3D_CORE_WRITE(0, V3D_V7_CSD_QUEUED_CFG7, 0);

	/* CFG0 write kicks off the job. */
	V3D_CORE_WRITE(0, csd_cfg0_reg, job->args.cfg[0]);

+6 −6

File changed.

Contains only whitespace changes.