diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c index 52a51b5e1c1..8efe458287a 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -865,11 +866,21 @@ static int vidconsole_post_probe(struct udevice *dev) return stdio_register(sdev); } +static int vidconsole_pre_remove(struct udevice *dev) +{ + struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev); + + free(vc_priv->curs.save_data); + + return 0; +} + UCLASS_DRIVER(vidconsole) = { .id = UCLASS_VIDEO_CONSOLE, .name = "vidconsole0", .pre_probe = vidconsole_pre_probe, .post_probe = vidconsole_post_probe, + .pre_remove = vidconsole_pre_remove, .per_device_auto = sizeof(struct vidconsole_priv), };