mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-11 03:52:39 -04:00
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: Dave Airlie <airlied@redhat.com> From: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20240815131751.GA151031@linux.fritz.box
This commit is contained in:
@@ -18,12 +18,12 @@ properties:
|
||||
# Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
|
||||
- const: samsung,atna33xc20
|
||||
- items:
|
||||
- enum:
|
||||
# Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
|
||||
- samsung,atna45af01
|
||||
# Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
|
||||
- samsung,atna45dc02
|
||||
- const: samsung,atna33xc20
|
||||
- enum:
|
||||
# Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
|
||||
- samsung,atna45af01
|
||||
# Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
|
||||
- samsung,atna45dc02
|
||||
- const: samsung,atna33xc20
|
||||
|
||||
enable-gpios: true
|
||||
port: true
|
||||
|
||||
@@ -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"),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user