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-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux

Pull fbdev fixes from Tomi Valkeinen:
- fix omap2plus_defconfig to enable omapfb as it was in v4.4
- ocfb: fix timings for margins
- s6e8ax0, da8xx-fb: fix compile warnings
- mmp: fix build failure caused by bad printk parameters
- imxfb: fix clock issue which kept the display off

* tag 'fbdev-fixes-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
video: fbdev: imxfb: Provide a reset mechanism
fbdev: mmp: print IRQ resource using %pR format string
fbdev: da8xx-fb: remove incorrect type cast
fbdev: s6e8ax0: avoid unused function warnings
ocfb: fix tgdel and tvdel timing parameters
ARM: omap2plus_defconfig: update display configs

+41 -33
+16 -17
arch/arm/configs/omap2plus_defconfig
··· 292 292 CONFIG_FIRMWARE_EDID=y 293 293 CONFIG_FB_MODE_HELPERS=y 294 294 CONFIG_FB_TILEBLITTING=y 295 - CONFIG_OMAP2_DSS=m 296 - CONFIG_OMAP5_DSS_HDMI=y 297 - CONFIG_OMAP2_DSS_SDI=y 298 - CONFIG_OMAP2_DSS_DSI=y 295 + CONFIG_FB_OMAP5_DSS_HDMI=y 296 + CONFIG_FB_OMAP2_DSS_SDI=y 297 + CONFIG_FB_OMAP2_DSS_DSI=y 299 298 CONFIG_FB_OMAP2=m 300 - CONFIG_DISPLAY_ENCODER_TFP410=m 301 - CONFIG_DISPLAY_ENCODER_TPD12S015=m 302 - CONFIG_DISPLAY_CONNECTOR_DVI=m 303 - CONFIG_DISPLAY_CONNECTOR_HDMI=m 304 - CONFIG_DISPLAY_CONNECTOR_ANALOG_TV=m 305 - CONFIG_DISPLAY_PANEL_DPI=m 306 - CONFIG_DISPLAY_PANEL_DSI_CM=m 307 - CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m 308 - CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m 309 - CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m 310 - CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1=m 311 - CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m 312 - CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m 299 + CONFIG_FB_OMAP2_ENCODER_TFP410=m 300 + CONFIG_FB_OMAP2_ENCODER_TPD12S015=m 301 + CONFIG_FB_OMAP2_CONNECTOR_DVI=m 302 + CONFIG_FB_OMAP2_CONNECTOR_HDMI=m 303 + CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV=m 304 + CONFIG_FB_OMAP2_PANEL_DPI=m 305 + CONFIG_FB_OMAP2_PANEL_DSI_CM=m 306 + CONFIG_FB_OMAP2_PANEL_SONY_ACX565AKM=m 307 + CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02=m 308 + CONFIG_FB_OMAP2_PANEL_SHARP_LS037V7DW01=m 309 + CONFIG_FB_OMAP2_PANEL_TPO_TD028TTEC1=m 310 + CONFIG_FB_OMAP2_PANEL_TPO_TD043MTEA1=m 311 + CONFIG_FB_OMAP2_PANEL_NEC_NL8048HL11=m 313 312 CONFIG_BACKLIGHT_LCD_SUPPORT=y 314 313 CONFIG_LCD_CLASS_DEVICE=y 315 314 CONFIG_LCD_PLATFORM=y
+3 -3
drivers/video/fbdev/da8xx-fb.c
··· 152 152 153 153 struct da8xx_fb_par { 154 154 struct device *dev; 155 - resource_size_t p_palette_base; 155 + dma_addr_t p_palette_base; 156 156 unsigned char *v_palette_base; 157 157 dma_addr_t vram_phys; 158 158 unsigned long vram_size; ··· 1428 1428 1429 1429 par->vram_virt = dma_alloc_coherent(NULL, 1430 1430 par->vram_size, 1431 - (resource_size_t *) &par->vram_phys, 1431 + &par->vram_phys, 1432 1432 GFP_KERNEL | GFP_DMA); 1433 1433 if (!par->vram_virt) { 1434 1434 dev_err(&device->dev, ··· 1448 1448 1449 1449 /* allocate palette buffer */ 1450 1450 par->v_palette_base = dma_zalloc_coherent(NULL, PALETTE_SIZE, 1451 - (resource_size_t *)&par->p_palette_base, 1451 + &par->p_palette_base, 1452 1452 GFP_KERNEL | GFP_DMA); 1453 1453 if (!par->v_palette_base) { 1454 1454 dev_err(&device->dev,
+4 -9
drivers/video/fbdev/exynos/s6e8ax0.c
··· 829 829 return 0; 830 830 } 831 831 832 - #ifdef CONFIG_PM 833 - static int s6e8ax0_suspend(struct mipi_dsim_lcd_device *dsim_dev) 832 + static int __maybe_unused s6e8ax0_suspend(struct mipi_dsim_lcd_device *dsim_dev) 834 833 { 835 834 struct s6e8ax0 *lcd = dev_get_drvdata(&dsim_dev->dev); 836 835 ··· 842 843 return 0; 843 844 } 844 845 845 - static int s6e8ax0_resume(struct mipi_dsim_lcd_device *dsim_dev) 846 + static int __maybe_unused s6e8ax0_resume(struct mipi_dsim_lcd_device *dsim_dev) 846 847 { 847 848 struct s6e8ax0 *lcd = dev_get_drvdata(&dsim_dev->dev); 848 849 ··· 854 855 855 856 return 0; 856 857 } 857 - #else 858 - #define s6e8ax0_suspend NULL 859 - #define s6e8ax0_resume NULL 860 - #endif 861 858 862 859 static struct mipi_dsim_lcd_driver s6e8ax0_dsim_ddi_driver = { 863 860 .name = "s6e8ax0", ··· 862 867 .power_on = s6e8ax0_power_on, 863 868 .set_sequence = s6e8ax0_set_sequence, 864 869 .probe = s6e8ax0_probe, 865 - .suspend = s6e8ax0_suspend, 866 - .resume = s6e8ax0_resume, 870 + .suspend = IS_ENABLED(CONFIG_PM) ? s6e8ax0_suspend : NULL, 871 + .resume = IS_ENABLED(CONFIG_PM) ? s6e8ax0_resume : NULL, 867 872 }; 868 873 869 874 static int s6e8ax0_init(void)
+15
drivers/video/fbdev/imxfb.c
··· 902 902 goto failed_getclock; 903 903 } 904 904 905 + /* 906 + * The LCDC controller does not have an enable bit. The 907 + * controller starts directly when the clocks are enabled. 908 + * If the clocks are enabled when the controller is not yet 909 + * programmed with proper register values (enabled at the 910 + * bootloader, for example) then it just goes into some undefined 911 + * state. 912 + * To avoid this issue, let's enable and disable LCDC IPG clock 913 + * so that we force some kind of 'reset' to the LCDC block. 914 + */ 915 + ret = clk_prepare_enable(fbi->clk_ipg); 916 + if (ret) 917 + goto failed_getclock; 918 + clk_disable_unprepare(fbi->clk_ipg); 919 + 905 920 fbi->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); 906 921 if (IS_ERR(fbi->clk_ahb)) { 907 922 ret = PTR_ERR(fbi->clk_ahb);
+1 -2
drivers/video/fbdev/mmp/hw/mmp_ctrl.c
··· 503 503 ctrl->reg_base = devm_ioremap_nocache(ctrl->dev, 504 504 res->start, resource_size(res)); 505 505 if (ctrl->reg_base == NULL) { 506 - dev_err(ctrl->dev, "%s: res %x - %x map failed\n", __func__, 507 - res->start, res->end); 506 + dev_err(ctrl->dev, "%s: res %pR map failed\n", __func__, res); 508 507 ret = -ENOMEM; 509 508 goto failed; 510 509 }
+2 -2
drivers/video/fbdev/ocfb.c
··· 123 123 124 124 /* Horizontal timings */ 125 125 ocfb_writereg(fbdev, OCFB_HTIM, (var->hsync_len - 1) << 24 | 126 - (var->right_margin - 1) << 16 | (var->xres - 1)); 126 + (var->left_margin - 1) << 16 | (var->xres - 1)); 127 127 128 128 /* Vertical timings */ 129 129 ocfb_writereg(fbdev, OCFB_VTIM, (var->vsync_len - 1) << 24 | 130 - (var->lower_margin - 1) << 16 | (var->yres - 1)); 130 + (var->upper_margin - 1) << 16 | (var->yres - 1)); 131 131 132 132 /* Total length of frame */ 133 133 hlen = var->left_margin + var->right_margin + var->hsync_len +