From 2340c646e6a5da658e114be2f721ff90853588d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 9 Aug 2019 19:50:30 +0200 Subject: brcm2708: update to latest patches from RPi foundation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- ...o-bcm2708_fb-Try-allocating-on-the-ARM-an.patch | 164 --------------------- 1 file changed, 164 deletions(-) delete mode 100644 target/linux/brcm2708/patches-4.19/950-0491-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch (limited to 'target/linux/brcm2708/patches-4.19/950-0491-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch') diff --git a/target/linux/brcm2708/patches-4.19/950-0491-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch b/target/linux/brcm2708/patches-4.19/950-0491-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch deleted file mode 100644 index c4fb2141ba..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0491-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 0c9e8983c1ab986a833e8b5fbe180f06957529ad Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Mon, 13 May 2019 17:34:29 +0100 -Subject: [PATCH 491/725] Revert "video: bcm2708_fb: Try allocating on the ARM - and passing to VPU" - -This reverts commit ca36c709fce57e8023d2b8b354376bf161601a49. - -The driver tries a cma_alloc to avoid using gpu_mem, but should -that fail the core code is logging an error with no easy way to -test whether it will succeed or fail first. - -Revert until we either totally give up on gpu_mem and increase -CMA always, or find a way to try an allocation. - -Signed-off-by: Dave Stevenson ---- - drivers/video/fbdev/bcm2708_fb.c | 102 +++------------------ - include/soc/bcm2835/raspberrypi-firmware.h | 1 - - 2 files changed, 12 insertions(+), 91 deletions(-) - ---- a/drivers/video/fbdev/bcm2708_fb.c -+++ b/drivers/video/fbdev/bcm2708_fb.c -@@ -98,11 +98,6 @@ struct bcm2708_fb { - struct bcm2708_fb_stats stats; - unsigned long fb_bus_address; - struct { u32 base, length; } gpu; -- -- bool disable_arm_alloc; -- unsigned int image_size; -- dma_addr_t dma_addr; -- void *cpuaddr; - }; - - #define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb) -@@ -288,88 +283,23 @@ static int bcm2708_fb_set_par(struct fb_ - .xoffset = info->var.xoffset, - .yoffset = info->var.yoffset, - .tag5 = { RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE, 8, 0 }, -- /* base and screen_size will be initialised later */ -- .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH, 4, 0 }, -- /* pitch will be initialised later */ -+ .base = 0, -+ .screen_size = 0, -+ .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH, 4, 0 }, -+ .pitch = 0, - }; -- int ret, image_size; -- -+ int ret; - - print_debug("%s(%p) %dx%d (%dx%d), %d, %d\n", __func__, info, - info->var.xres, info->var.yres, info->var.xres_virtual, - info->var.yres_virtual, (int)info->screen_size, - info->var.bits_per_pixel); - -- /* Try allocating our own buffer. We can specify all the parameters */ -- image_size = ((info->var.xres * info->var.yres) * -- info->var.bits_per_pixel) >> 3; -- -- if (!fb->disable_arm_alloc && -- (image_size != fb->image_size || !fb->dma_addr)) { -- if (fb->dma_addr) { -- dma_free_coherent(info->device, fb->image_size, -- fb->cpuaddr, fb->dma_addr); -- fb->image_size = 0; -- fb->cpuaddr = NULL; -- fb->dma_addr = 0; -- } -- -- fb->cpuaddr = dma_alloc_coherent(info->device, image_size, -- &fb->dma_addr, GFP_KERNEL); -- -- if (!fb->cpuaddr) { -- fb->dma_addr = 0; -- fb->disable_arm_alloc = true; -- } else { -- fb->image_size = image_size; -- } -- } -- -- if (fb->cpuaddr) { -- fbinfo.base = fb->dma_addr; -- fbinfo.screen_size = image_size; -- fbinfo.pitch = (info->var.xres * info->var.bits_per_pixel) >> 3; -- -- ret = rpi_firmware_property_list(fb->fw, &fbinfo, -- sizeof(fbinfo)); -- if (ret || fbinfo.base != fb->dma_addr) { -- /* Firmware either failed, or assigned a different base -- * address (ie it doesn't support being passed an FB -- * allocation). -- * Destroy the allocation, and don't try again. -- */ -- dma_free_coherent(info->device, fb->image_size, -- fb->cpuaddr, fb->dma_addr); -- fb->image_size = 0; -- fb->cpuaddr = NULL; -- fb->dma_addr = 0; -- fb->disable_arm_alloc = true; -- } -- } else { -- /* Our allocation failed - drop into the old scheme of -- * allocation by the VPU. -- */ -- ret = -ENOMEM; -- } -- -+ ret = rpi_firmware_property_list(fb->fw, &fbinfo, sizeof(fbinfo)); - if (ret) { -- /* Old scheme: -- * - FRAMEBUFFER_ALLOCATE passes 0 for base and screen_size. -- * - GET_PITCH instead of SET_PITCH. -- */ -- fbinfo.base = 0; -- fbinfo.screen_size = 0; -- fbinfo.tag6.tag = RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH; -- fbinfo.pitch = 0; -- -- ret = rpi_firmware_property_list(fb->fw, &fbinfo, -- sizeof(fbinfo)); -- if (ret) { -- dev_err(info->device, -- "Failed to allocate GPU framebuffer (%d)\n", -- ret); -- return ret; -- } -+ dev_err(info->device, -+ "Failed to allocate GPU framebuffer (%d)\n", ret); -+ return ret; - } - - if (info->var.bits_per_pixel <= 8) -@@ -384,17 +314,9 @@ static int bcm2708_fb_set_par(struct fb_ - fb->fb.fix.smem_start = fbinfo.base; - fb->fb.fix.smem_len = fbinfo.pitch * fbinfo.yres_virtual; - fb->fb.screen_size = fbinfo.screen_size; -- -- if (!fb->dma_addr) { -- if (fb->fb.screen_base) -- iounmap(fb->fb.screen_base); -- -- fb->fb.screen_base = ioremap_wc(fbinfo.base, -- fb->fb.screen_size); -- } else { -- fb->fb.screen_base = fb->cpuaddr; -- } -- -+ if (fb->fb.screen_base) -+ iounmap(fb->fb.screen_base); -+ fb->fb.screen_base = ioremap_wc(fbinfo.base, fb->fb.screen_size); - if (!fb->fb.screen_base) { - /* the console may currently be locked */ - console_trylock(); ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -128,7 +128,6 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007, -- RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b, -- cgit v1.2.3