Skip to content

Commit 201a32e

Browse files
committed
Merge tag 'drm-misc-fixes-2025-11-20' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
Short summary of fixes pull: atomic: - Return error codes on failed blob creation for planes nouveau: - Fix memory leak tegra: - Fix device ref counting - Fix pid ref counting - Revert booting on Pixel C Signed-off-by: Dave Airlie <[email protected]> From: Thomas Zimmermann <[email protected]> Link: https://patch.msgid.link/[email protected]
2 parents 9b571b3 + cead55e commit 201a32e

File tree

5 files changed

+10
-13
lines changed

5 files changed

+10
-13
lines changed

drivers/gpu/drm/drm_plane.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ static struct drm_property_blob *create_in_format_blob(struct drm_device *dev,
210210
formats_size = sizeof(__u32) * plane->format_count;
211211
if (WARN_ON(!formats_size)) {
212212
/* 0 formats are never expected */
213-
return 0;
213+
return ERR_PTR(-EINVAL);
214214
}
215215

216216
modifiers_size =
@@ -226,7 +226,7 @@ static struct drm_property_blob *create_in_format_blob(struct drm_device *dev,
226226

227227
blob = drm_property_create_blob(dev, blob_size, NULL);
228228
if (IS_ERR(blob))
229-
return NULL;
229+
return blob;
230230

231231
blob_data = blob->data;
232232
blob_data->version = FORMAT_BLOB_CURRENT;

drivers/gpu/drm/nouveau/nvkm/falcon/fw.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,8 @@ nvkm_falcon_fw_dtor(struct nvkm_falcon_fw *fw)
159159
nvkm_memory_unref(&fw->inst);
160160
nvkm_falcon_fw_dtor_sigs(fw);
161161
nvkm_firmware_dtor(&fw->fw);
162+
kfree(fw->boot);
163+
fw->boot = NULL;
162164
}
163165

164166
static const struct nvkm_firmware_func

drivers/gpu/drm/tegra/dc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3148,6 +3148,7 @@ static int tegra_dc_couple(struct tegra_dc *dc)
31483148
dc->client.parent = &parent->client;
31493149

31503150
dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));
3151+
put_device(companion);
31513152
}
31523153

31533154
return 0;

drivers/gpu/drm/tegra/dsi.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -913,15 +913,6 @@ static void tegra_dsi_encoder_enable(struct drm_encoder *encoder)
913913
u32 value;
914914
int err;
915915

916-
/* If the bootloader enabled DSI it needs to be disabled
917-
* in order for the panel initialization commands to be
918-
* properly sent.
919-
*/
920-
value = tegra_dsi_readl(dsi, DSI_POWER_CONTROL);
921-
922-
if (value & DSI_POWER_CONTROL_ENABLE)
923-
tegra_dsi_disable(dsi);
924-
925916
err = tegra_dsi_prepare(dsi);
926917
if (err < 0) {
927918
dev_err(dsi->dev, "failed to prepare: %d\n", err);

drivers/gpu/drm/tegra/uapi.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,12 @@ int tegra_drm_ioctl_channel_open(struct drm_device *drm, void *data, struct drm_
114114
if (err)
115115
goto put_channel;
116116

117-
if (supported)
117+
if (supported) {
118+
struct pid *pid = get_task_pid(current, PIDTYPE_TGID);
118119
context->memory_context = host1x_memory_context_alloc(
119-
host, client->base.dev, get_task_pid(current, PIDTYPE_TGID));
120+
host, client->base.dev, pid);
121+
put_pid(pid);
122+
}
120123

121124
if (IS_ERR(context->memory_context)) {
122125
if (PTR_ERR(context->memory_context) != -EOPNOTSUPP) {

0 commit comments

Comments
 (0)