Skip to content

Commit 70e137e

Browse files
committed
Merge tag 'fbdev-for-6.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev
Pull fbdev fixes from Helge Deller: "A few small unspectacular fbdev fixes: - Fix for USB endpoint check in udlfb (found by syzbot fuzzer) - Small fix in error code path in omapfb - compiler warning fixes in fbmem & i810 - code removal and whitespace cleanups in stifb and atyfb" * tag 'fbdev-for-6.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: fbdev: stifb: Whitespace cleanups fbdev: udlfb: Use usb_control_msg_send() fbdev: udlfb: Fix endpoint check fbdev: atyfb: Remove unused clock determination fbdev: i810: include i810_main.h in i810_dvt.c fbdev: fbmem: mark get_fb_unmapped_area() static fbdev: omapfb: panel-tpo-td043mtea1: fix error code in probe()
2 parents e2065b8 + d9a4596 commit 70e137e

File tree

7 files changed

+20
-28
lines changed

7 files changed

+20
-28
lines changed

drivers/video/fbdev/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ config FB_PROVIDE_GET_FB_UNMAPPED_AREA
124124
depends on FB
125125
help
126126
Allow generic frame-buffer to provide get_fb_unmapped_area
127-
function.
127+
function to provide shareable character device support on nommu.
128128

129129
menuconfig FB_FOREIGN_ENDIAN
130130
bool "Framebuffer foreign endianness support"

drivers/video/fbdev/aty/atyfb_base.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3498,11 +3498,6 @@ static int atyfb_setup_generic(struct pci_dev *pdev, struct fb_info *info,
34983498
if (ret)
34993499
goto atyfb_setup_generic_fail;
35003500
#endif
3501-
if (!(aty_ld_le32(CRTC_GEN_CNTL, par) & CRTC_EXT_DISP_EN))
3502-
par->clk_wr_offset = (inb(R_GENMO) & 0x0CU) >> 2;
3503-
else
3504-
par->clk_wr_offset = aty_ld_8(CLOCK_CNTL, par) & 0x03U;
3505-
35063501
/* according to ATI, we should use clock 3 for acelerated mode */
35073502
par->clk_wr_offset = 3;
35083503

drivers/video/fbdev/core/fbmem.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1468,7 +1468,7 @@ __releases(&info->lock)
14681468
}
14691469

14701470
#if defined(CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA) && !defined(CONFIG_MMU)
1471-
unsigned long get_fb_unmapped_area(struct file *filp,
1471+
static unsigned long get_fb_unmapped_area(struct file *filp,
14721472
unsigned long addr, unsigned long len,
14731473
unsigned long pgoff, unsigned long flags)
14741474
{

drivers/video/fbdev/i810/i810_dvt.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include "i810_regs.h"
1616
#include "i810.h"
17+
#include "i810_main.h"
1718

1819
struct mode_registers std_modes[] = {
1920
/* 640x480 @ 60Hz */
@@ -276,7 +277,7 @@ void i810fb_fill_var_timings(struct fb_var_screeninfo *var)
276277
var->upper_margin = total - (yres + var->lower_margin + var->vsync_len);
277278
}
278279

279-
u32 i810_get_watermark(struct fb_var_screeninfo *var,
280+
u32 i810_get_watermark(const struct fb_var_screeninfo *var,
280281
struct i810fb_par *par)
281282
{
282283
struct mode_registers *params = &par->regs;

drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,8 @@ static int tpo_td043_probe(struct spi_device *spi)
491491

492492
ddata->vcc_reg = devm_regulator_get(&spi->dev, "vcc");
493493
if (IS_ERR(ddata->vcc_reg)) {
494-
r = dev_err_probe(&spi->dev, r, "failed to get LCD VCC regulator\n");
494+
r = dev_err_probe(&spi->dev, PTR_ERR(ddata->vcc_reg),
495+
"failed to get LCD VCC regulator\n");
495496
goto err_regulator;
496497
}
497498

drivers/video/fbdev/stifb.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ ngleClearOverlayPlanes(struct stifb_info *fb, int mask, int data)
741741
packed_len = (fb->info.var.xres << 16) | fb->info.var.yres;
742742
NGLE_SET_DSTXY(fb, packed_dst);
743743

744-
/* Write zeroes to overlay planes */
744+
/* Write zeroes to overlay planes */
745745
NGLE_QUICK_SET_IMAGE_BITMAP_OP(fb,
746746
IBOvals(RopSrc, MaskAddrOffset(0),
747747
BitmapExtent08, StaticReg(0),
@@ -1297,14 +1297,14 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref)
12971297
break;
12981298
default:
12991299
#ifdef FALLBACK_TO_1BPP
1300-
printk(KERN_WARNING
1300+
printk(KERN_WARNING
13011301
"stifb: Unsupported graphics card (id=0x%08x) "
13021302
"- now trying 1bpp mode instead\n",
13031303
fb->id);
13041304
bpp = 1; /* default to 1 bpp */
13051305
break;
13061306
#else
1307-
printk(KERN_WARNING
1307+
printk(KERN_WARNING
13081308
"stifb: Unsupported graphics card (id=0x%08x) "
13091309
"- skipping.\n",
13101310
fb->id);

drivers/video/fbdev/udlfb.c

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
#include <video/udlfb.h>
2828
#include "edid.h"
2929

30+
#define OUT_EP_NUM 1 /* The endpoint number we will use */
31+
3032
static const struct fb_fix_screeninfo dlfb_fix = {
3133
.id = "udlfb",
3234
.type = FB_TYPE_PACKED_PIXELS,
@@ -1541,24 +1543,16 @@ static const struct device_attribute fb_device_attrs[] = {
15411543
static int dlfb_select_std_channel(struct dlfb_data *dlfb)
15421544
{
15431545
int ret;
1544-
void *buf;
15451546
static const u8 set_def_chn[] = {
15461547
0x57, 0xCD, 0xDC, 0xA7,
15471548
0x1C, 0x88, 0x5E, 0x15,
15481549
0x60, 0xFE, 0xC6, 0x97,
15491550
0x16, 0x3D, 0x47, 0xF2 };
15501551

1551-
buf = kmemdup(set_def_chn, sizeof(set_def_chn), GFP_KERNEL);
1552-
1553-
if (!buf)
1554-
return -ENOMEM;
1555-
1556-
ret = usb_control_msg(dlfb->udev, usb_sndctrlpipe(dlfb->udev, 0),
1557-
NR_USB_REQUEST_CHANNEL,
1552+
ret = usb_control_msg_send(dlfb->udev, 0, NR_USB_REQUEST_CHANNEL,
15581553
(USB_DIR_OUT | USB_TYPE_VENDOR), 0, 0,
1559-
buf, sizeof(set_def_chn), USB_CTRL_SET_TIMEOUT);
1560-
1561-
kfree(buf);
1554+
&set_def_chn, sizeof(set_def_chn), USB_CTRL_SET_TIMEOUT,
1555+
GFP_KERNEL);
15621556

15631557
return ret;
15641558
}
@@ -1652,7 +1646,7 @@ static int dlfb_usb_probe(struct usb_interface *intf,
16521646
struct fb_info *info;
16531647
int retval;
16541648
struct usb_device *usbdev = interface_to_usbdev(intf);
1655-
struct usb_endpoint_descriptor *out;
1649+
static u8 out_ep[] = {OUT_EP_NUM + USB_DIR_OUT, 0};
16561650

16571651
/* usb initialization */
16581652
dlfb = kzalloc(sizeof(*dlfb), GFP_KERNEL);
@@ -1666,9 +1660,9 @@ static int dlfb_usb_probe(struct usb_interface *intf,
16661660
dlfb->udev = usb_get_dev(usbdev);
16671661
usb_set_intfdata(intf, dlfb);
16681662

1669-
retval = usb_find_common_endpoints(intf->cur_altsetting, NULL, &out, NULL, NULL);
1670-
if (retval) {
1671-
dev_err(&intf->dev, "Device should have at lease 1 bulk endpoint!\n");
1663+
if (!usb_check_bulk_endpoints(intf, out_ep)) {
1664+
dev_err(&intf->dev, "Invalid DisplayLink device!\n");
1665+
retval = -EINVAL;
16721666
goto error;
16731667
}
16741668

@@ -1927,7 +1921,8 @@ static int dlfb_alloc_urb_list(struct dlfb_data *dlfb, int count, size_t size)
19271921
}
19281922

19291923
/* urb->transfer_buffer_length set to actual before submit */
1930-
usb_fill_bulk_urb(urb, dlfb->udev, usb_sndbulkpipe(dlfb->udev, 1),
1924+
usb_fill_bulk_urb(urb, dlfb->udev,
1925+
usb_sndbulkpipe(dlfb->udev, OUT_EP_NUM),
19311926
buf, size, dlfb_urb_completion, unode);
19321927
urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
19331928

0 commit comments

Comments
 (0)