diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0700-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0700-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0700-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch b/target/linux/bcm27xx/patches-5.4/950-0700-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch new file mode 100644 index 0000000000..90cb5e276e --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0700-video-bcm2708_fb-Disable-FB-if-no-displays-found.patch @@ -0,0 +1,34 @@ +From e005a4db95a48e8b14a2017bf56a0e3f3dccfa6d Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.com> +Date: Tue, 5 May 2020 19:45:41 +0100 +Subject: [PATCH] video: bcm2708_fb: Disable FB if no displays found + +If the firmware hasn't detected a display, the driver would assume +one display was available, but because it had failed to retrieve the +display size it would try to allocate a zero-sized buffer. + +Avoid the allocation failure by bailing out early if no display is +found. + +See: https://github.com/raspberrypi/linux/issues/3598 + +Signed-off-by: Phil Elwell <phil@raspberrypi.com> +--- + drivers/video/fbdev/bcm2708_fb.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/drivers/video/fbdev/bcm2708_fb.c ++++ b/drivers/video/fbdev/bcm2708_fb.c +@@ -1104,10 +1104,9 @@ static int bcm2708_fb_probe(struct platf + * set one display + */ + if (ret || num_displays == 0) { +- num_displays = 1; + dev_err(&dev->dev, +- "Unable to determine number of FB's. Assuming 1\n"); +- ret = 0; ++ "Unable to determine number of FBs. Disabling driver.\n"); ++ return -ENOENT; + } else { + fbdev->firmware_supports_multifb = 1; + } |