Skip to content

Commit

Permalink
Merge tag 'for-5.19/fbdev-1' of git://git.kernel.org/pub/scm/linux/ke…
Browse files Browse the repository at this point in the history
…rnel/git/deller/linux-fbdev

Pull fbdev fixes and updates from Helge Deller:
 "A buch of small fixes and cleanups, including:

   - vesafb: Fix a use-after-free due early fb_info cleanup

   - clcdfb: Fix refcount leak in clcdfb_of_vram_setup

   - hyperv_fb: Allow resolutions with size > 64 MB for Gen1

   - pxa3xx-gcu: release the resources correctly in
     pxa3xx_gcu_probe/remove()

   - omapfb: Prevent compiler warning regarding
     hwa742_update_window_async()"

* tag 'for-5.19/fbdev-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
  video: fbdev: omap: Add prototype for hwa742_update_window_async()
  video: fbdev: vesafb: Fix a use-after-free due early fb_info cleanup
  video: fbdev: radeon: Fix spelling typo in comment
  video: fbdev: xen: remove setting of 'transp' parameter
  video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove()
  video: fbdev: omapfb: simplify the return expression of nec_8048_connect()
  video: fbdev: omapfb: simplify the return expression of dsi_init_pll_data()
  video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup
  video: fbdev: hyperv_fb: Allow resolutions with size > 64 MB for Gen1
  • Loading branch information
torvalds committed May 30, 2022
2 parents e11a935 + 79b6612 commit 8ab2afa
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 41 deletions.
5 changes: 4 additions & 1 deletion drivers/video/fbdev/amba-clcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -758,12 +758,15 @@ static int clcdfb_of_vram_setup(struct clcd_fb *fb)
return -ENODEV;

fb->fb.screen_base = of_iomap(memory, 0);
if (!fb->fb.screen_base)
if (!fb->fb.screen_base) {
of_node_put(memory);
return -ENOMEM;
}

fb->fb.fix.smem_start = of_translate_address(memory,
of_get_address(memory, 0, &size, NULL));
fb->fb.fix.smem_len = size;
of_node_put(memory);

return 0;
}
Expand Down
19 changes: 1 addition & 18 deletions drivers/video/fbdev/hyperv_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -992,7 +992,6 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info)
struct pci_dev *pdev = NULL;
void __iomem *fb_virt;
int gen2vm = efi_enabled(EFI_BOOT);
resource_size_t pot_start, pot_end;
phys_addr_t paddr;
int ret;

Expand Down Expand Up @@ -1043,23 +1042,7 @@ static int hvfb_getmem(struct hv_device *hdev, struct fb_info *info)
dio_fb_size =
screen_width * screen_height * screen_depth / 8;

if (gen2vm) {
pot_start = 0;
pot_end = -1;
} else {
if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM) ||
pci_resource_len(pdev, 0) < screen_fb_size) {
pr_err("Resource not available or (0x%lx < 0x%lx)\n",
(unsigned long) pci_resource_len(pdev, 0),
(unsigned long) screen_fb_size);
goto err1;
}

pot_end = pci_resource_end(pdev, 0);
pot_start = pot_end - screen_fb_size + 1;
}

ret = vmbus_allocate_mmio(&par->mem, hdev, pot_start, pot_end,
ret = vmbus_allocate_mmio(&par->mem, hdev, 0, -1,
screen_fb_size, 0x100000, true);
if (ret != 0) {
pr_err("Unable to allocate framebuffer memory\n");
Expand Down
4 changes: 4 additions & 0 deletions drivers/video/fbdev/omap/omapfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,5 +231,9 @@ extern int omapfb_update_window_async(struct fb_info *fbi,
struct omapfb_update_window *win,
void (*callback)(void *),
void *callback_data);
extern int hwa742_update_window_async(struct fb_info *fbi,
struct omapfb_update_window *win,
void (*callback)(void *),
void *callback_data);

#endif /* __OMAPFB_H */
Original file line number Diff line number Diff line change
Expand Up @@ -117,16 +117,11 @@ static int nec_8048_connect(struct omap_dss_device *dssdev)
{
struct panel_drv_data *ddata = to_panel_data(dssdev);
struct omap_dss_device *in = ddata->in;
int r;

if (omapdss_device_is_connected(dssdev))
return 0;

r = in->ops.dpi->connect(in, dssdev);
if (r)
return r;

return 0;
return in->ops.dpi->connect(in, dssdev);
}

static void nec_8048_disconnect(struct omap_dss_device *dssdev)
Expand Down
8 changes: 1 addition & 7 deletions drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,6 @@ static int dsi_init_pll_data(struct platform_device *pdev, struct hdmi_pll_data
{
struct dss_pll *pll = &hpll->pll;
struct clk *clk;
int r;

clk = devm_clk_get(&pdev->dev, "sys_clk");
if (IS_ERR(clk)) {
Expand Down Expand Up @@ -203,12 +202,7 @@ static int dsi_init_pll_data(struct platform_device *pdev, struct hdmi_pll_data
}

pll->ops = &dsi_pll_ops;

r = dss_pll_register(pll);
if (r)
return r;

return 0;
return dss_pll_register(pll);
}

int hdmi_pll_init(struct platform_device *pdev, struct hdmi_pll_data *pll,
Expand Down
12 changes: 7 additions & 5 deletions drivers/video/fbdev/pxa3xx-gcu.c
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,7 @@ static int pxa3xx_gcu_probe(struct platform_device *pdev)
for (i = 0; i < 8; i++) {
ret = pxa3xx_gcu_add_buffer(dev, priv);
if (ret) {
pxa3xx_gcu_free_buffers(dev, priv);
dev_err(dev, "failed to allocate DMA memory\n");
goto err_disable_clk;
}
Expand All @@ -662,15 +663,15 @@ static int pxa3xx_gcu_probe(struct platform_device *pdev)
SHARED_SIZE, irq);
return 0;

err_free_dma:
dma_free_coherent(dev, SHARED_SIZE,
priv->shared, priv->shared_phys);
err_disable_clk:
clk_disable_unprepare(priv->clk);

err_misc_deregister:
misc_deregister(&priv->misc_dev);

err_disable_clk:
clk_disable_unprepare(priv->clk);
err_free_dma:
dma_free_coherent(dev, SHARED_SIZE,
priv->shared, priv->shared_phys);

return ret;
}
Expand All @@ -683,6 +684,7 @@ static int pxa3xx_gcu_remove(struct platform_device *pdev)
pxa3xx_gcu_wait_idle(priv);
misc_deregister(&priv->misc_dev);
dma_free_coherent(dev, SHARED_SIZE, priv->shared, priv->shared_phys);
clk_disable_unprepare(priv->clk);
pxa3xx_gcu_free_buffers(dev, priv);

return 0;
Expand Down
5 changes: 3 additions & 2 deletions drivers/video/fbdev/vesafb.c
Original file line number Diff line number Diff line change
Expand Up @@ -490,11 +490,12 @@ static int vesafb_remove(struct platform_device *pdev)
{
struct fb_info *info = platform_get_drvdata(pdev);

/* vesafb_destroy takes care of info cleanup */
unregister_framebuffer(info);
if (((struct vesafb_par *)(info->par))->region)
release_region(0x3c0, 32);

/* vesafb_destroy takes care of info cleanup */
unregister_framebuffer(info);

return 0;
}

Expand Down
1 change: 0 additions & 1 deletion drivers/video/fbdev/xen-fbfront.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,6 @@ static int xenfb_setcolreg(unsigned regno, unsigned red, unsigned green,
red = CNVT_TOHW(red, info->var.red.length);
green = CNVT_TOHW(green, info->var.green.length);
blue = CNVT_TOHW(blue, info->var.blue.length);
transp = CNVT_TOHW(transp, info->var.transp.length);
#undef CNVT_TOHW

v = (red << info->var.red.offset) |
Expand Down
2 changes: 1 addition & 1 deletion include/video/radeon.h
Original file line number Diff line number Diff line change
Expand Up @@ -750,7 +750,7 @@
#define WAIT_DMA_GUI_IDLE (1 << 9)
#define WAIT_2D_IDLECLEAN (1 << 16)

/* SURFACE_CNTL bit consants */
/* SURFACE_CNTL bit constants */
#define SURF_TRANSLATION_DIS (1 << 8)
#define NONSURF_AP0_SWP_16BPP (1 << 20)
#define NONSURF_AP0_SWP_32BPP (1 << 21)
Expand Down

0 comments on commit 8ab2afa

Please sign in to comment.