Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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()

+20 -28
+1 -1
drivers/video/fbdev/Kconfig
··· 124 124 depends on FB 125 125 help 126 126 Allow generic frame-buffer to provide get_fb_unmapped_area 127 - function. 127 + function to provide shareable character device support on nommu. 128 128 129 129 menuconfig FB_FOREIGN_ENDIAN 130 130 bool "Framebuffer foreign endianness support"
-5
drivers/video/fbdev/aty/atyfb_base.c
··· 3498 3498 if (ret) 3499 3499 goto atyfb_setup_generic_fail; 3500 3500 #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 - 3506 3501 /* according to ATI, we should use clock 3 for acelerated mode */ 3507 3502 par->clk_wr_offset = 3; 3508 3503
+1 -1
drivers/video/fbdev/core/fbmem.c
··· 1468 1468 } 1469 1469 1470 1470 #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, 1472 1472 unsigned long addr, unsigned long len, 1473 1473 unsigned long pgoff, unsigned long flags) 1474 1474 {
+2 -1
drivers/video/fbdev/i810/i810_dvt.c
··· 14 14 15 15 #include "i810_regs.h" 16 16 #include "i810.h" 17 + #include "i810_main.h" 17 18 18 19 struct mode_registers std_modes[] = { 19 20 /* 640x480 @ 60Hz */ ··· 277 276 var->upper_margin = total - (yres + var->lower_margin + var->vsync_len); 278 277 } 279 278 280 - u32 i810_get_watermark(struct fb_var_screeninfo *var, 279 + u32 i810_get_watermark(const struct fb_var_screeninfo *var, 281 280 struct i810fb_par *par) 282 281 { 283 282 struct mode_registers *params = &par->regs;
+2 -1
drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
··· 491 491 492 492 ddata->vcc_reg = devm_regulator_get(&spi->dev, "vcc"); 493 493 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"); 495 496 goto err_regulator; 496 497 } 497 498
+3 -3
drivers/video/fbdev/stifb.c
··· 741 741 packed_len = (fb->info.var.xres << 16) | fb->info.var.yres; 742 742 NGLE_SET_DSTXY(fb, packed_dst); 743 743 744 - /* Write zeroes to overlay planes */ 744 + /* Write zeroes to overlay planes */ 745 745 NGLE_QUICK_SET_IMAGE_BITMAP_OP(fb, 746 746 IBOvals(RopSrc, MaskAddrOffset(0), 747 747 BitmapExtent08, StaticReg(0), ··· 1297 1297 break; 1298 1298 default: 1299 1299 #ifdef FALLBACK_TO_1BPP 1300 - printk(KERN_WARNING 1300 + printk(KERN_WARNING 1301 1301 "stifb: Unsupported graphics card (id=0x%08x) " 1302 1302 "- now trying 1bpp mode instead\n", 1303 1303 fb->id); 1304 1304 bpp = 1; /* default to 1 bpp */ 1305 1305 break; 1306 1306 #else 1307 - printk(KERN_WARNING 1307 + printk(KERN_WARNING 1308 1308 "stifb: Unsupported graphics card (id=0x%08x) " 1309 1309 "- skipping.\n", 1310 1310 fb->id);
+11 -16
drivers/video/fbdev/udlfb.c
··· 27 27 #include <video/udlfb.h> 28 28 #include "edid.h" 29 29 30 + #define OUT_EP_NUM 1 /* The endpoint number we will use */ 31 + 30 32 static const struct fb_fix_screeninfo dlfb_fix = { 31 33 .id = "udlfb", 32 34 .type = FB_TYPE_PACKED_PIXELS, ··· 1543 1541 static int dlfb_select_std_channel(struct dlfb_data *dlfb) 1544 1542 { 1545 1543 int ret; 1546 - void *buf; 1547 1544 static const u8 set_def_chn[] = { 1548 1545 0x57, 0xCD, 0xDC, 0xA7, 1549 1546 0x1C, 0x88, 0x5E, 0x15, 1550 1547 0x60, 0xFE, 0xC6, 0x97, 1551 1548 0x16, 0x3D, 0x47, 0xF2 }; 1552 1549 1553 - buf = kmemdup(set_def_chn, sizeof(set_def_chn), GFP_KERNEL); 1554 - 1555 - if (!buf) 1556 - return -ENOMEM; 1557 - 1558 - ret = usb_control_msg(dlfb->udev, usb_sndctrlpipe(dlfb->udev, 0), 1559 - NR_USB_REQUEST_CHANNEL, 1550 + ret = usb_control_msg_send(dlfb->udev, 0, NR_USB_REQUEST_CHANNEL, 1560 1551 (USB_DIR_OUT | USB_TYPE_VENDOR), 0, 0, 1561 - buf, sizeof(set_def_chn), USB_CTRL_SET_TIMEOUT); 1562 - 1563 - kfree(buf); 1552 + &set_def_chn, sizeof(set_def_chn), USB_CTRL_SET_TIMEOUT, 1553 + GFP_KERNEL); 1564 1554 1565 1555 return ret; 1566 1556 } ··· 1646 1652 struct fb_info *info; 1647 1653 int retval; 1648 1654 struct usb_device *usbdev = interface_to_usbdev(intf); 1649 - struct usb_endpoint_descriptor *out; 1655 + static u8 out_ep[] = {OUT_EP_NUM + USB_DIR_OUT, 0}; 1650 1656 1651 1657 /* usb initialization */ 1652 1658 dlfb = kzalloc(sizeof(*dlfb), GFP_KERNEL); ··· 1660 1666 dlfb->udev = usb_get_dev(usbdev); 1661 1667 usb_set_intfdata(intf, dlfb); 1662 1668 1663 - retval = usb_find_common_endpoints(intf->cur_altsetting, NULL, &out, NULL, NULL); 1664 - if (retval) { 1665 - dev_err(&intf->dev, "Device should have at lease 1 bulk endpoint!\n"); 1669 + if (!usb_check_bulk_endpoints(intf, out_ep)) { 1670 + dev_err(&intf->dev, "Invalid DisplayLink device!\n"); 1671 + retval = -EINVAL; 1666 1672 goto error; 1667 1673 } 1668 1674 ··· 1921 1927 } 1922 1928 1923 1929 /* urb->transfer_buffer_length set to actual before submit */ 1924 - usb_fill_bulk_urb(urb, dlfb->udev, usb_sndbulkpipe(dlfb->udev, 1), 1930 + usb_fill_bulk_urb(urb, dlfb->udev, 1931 + usb_sndbulkpipe(dlfb->udev, OUT_EP_NUM), 1925 1932 buf, size, dlfb_urb_completion, unode); 1926 1933 urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; 1927 1934