mirror of https://gitee.com/openkylin/linux.git
fbdev fixes for v4.5
* 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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWvb3dAAoJEPo9qoy8lh71UREP/39iw5a2pvZtKC4tbeIWGntJ +wP0Hp6hCxAVh8S+SsSEF2i2oZzs4/ZYgRFoGGKK3j2CcizRxG9WMvaqbb3C8s4r 3aoj02oDyw/kpui+0O+eSUpLvc75c1nrVh31SrLK5zhx0fg59UEJZYlO/VkLTKTJ mN22y0VUtffx61plAs/e9EU3x6+Y3UEhDd6nuxJ+J5e9ruzjNDE5IVzyPjpP+kvA 2ry/cjvmDKTqw2jJGYJ7CbBuAtCXz7BgT5XXKAeNLPFqewF5CN2Jck2k9Ix7M1Tv rAcLLEl9vrUIO5Ss3BI0VK4IXa0CYPQkPxsdVFvf26QaDXDGTdOkOAkZGMAi6jXZ SulDABha5VThbJUQSskBUoMF6f2l2A3MX6Gr5cNJazPagMBYCNG++HoLA17cEnH9 a3+ujaGgdhBJqCYrJ7Wjif1wL77eHvby4xYdxdyssTVbd3MWcRqK1Nws8YBn4bw9 jE8TOy4RAYqA/LA7QjXCel4sI6cbYejJfz1/mH31MgjWC96tRBr0NhkT7W5zQvll toycESYP6STwKTDfuntfo0PUwMOOxhZwVzSQD5Ov2cQvl3eEKWR1WRZLIOwWtz5/ L4HkpCAQzIPNDOpnV7nS/jdTwwoV3bKjYluHHIeByvLrFaOQuKy/zO69pj7vUtpU 2XgQJcu6UHLYDAwDFCuV =kfw6 -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
14379cdc76
|
@ -292,24 +292,23 @@ CONFIG_FB=y
|
|||
CONFIG_FIRMWARE_EDID=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_OMAP2_DSS=m
|
||||
CONFIG_OMAP5_DSS_HDMI=y
|
||||
CONFIG_OMAP2_DSS_SDI=y
|
||||
CONFIG_OMAP2_DSS_DSI=y
|
||||
CONFIG_FB_OMAP5_DSS_HDMI=y
|
||||
CONFIG_FB_OMAP2_DSS_SDI=y
|
||||
CONFIG_FB_OMAP2_DSS_DSI=y
|
||||
CONFIG_FB_OMAP2=m
|
||||
CONFIG_DISPLAY_ENCODER_TFP410=m
|
||||
CONFIG_DISPLAY_ENCODER_TPD12S015=m
|
||||
CONFIG_DISPLAY_CONNECTOR_DVI=m
|
||||
CONFIG_DISPLAY_CONNECTOR_HDMI=m
|
||||
CONFIG_DISPLAY_CONNECTOR_ANALOG_TV=m
|
||||
CONFIG_DISPLAY_PANEL_DPI=m
|
||||
CONFIG_DISPLAY_PANEL_DSI_CM=m
|
||||
CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
|
||||
CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m
|
||||
CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m
|
||||
CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1=m
|
||||
CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m
|
||||
CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m
|
||||
CONFIG_FB_OMAP2_ENCODER_TFP410=m
|
||||
CONFIG_FB_OMAP2_ENCODER_TPD12S015=m
|
||||
CONFIG_FB_OMAP2_CONNECTOR_DVI=m
|
||||
CONFIG_FB_OMAP2_CONNECTOR_HDMI=m
|
||||
CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV=m
|
||||
CONFIG_FB_OMAP2_PANEL_DPI=m
|
||||
CONFIG_FB_OMAP2_PANEL_DSI_CM=m
|
||||
CONFIG_FB_OMAP2_PANEL_SONY_ACX565AKM=m
|
||||
CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02=m
|
||||
CONFIG_FB_OMAP2_PANEL_SHARP_LS037V7DW01=m
|
||||
CONFIG_FB_OMAP2_PANEL_TPO_TD028TTEC1=m
|
||||
CONFIG_FB_OMAP2_PANEL_TPO_TD043MTEA1=m
|
||||
CONFIG_FB_OMAP2_PANEL_NEC_NL8048HL11=m
|
||||
CONFIG_BACKLIGHT_LCD_SUPPORT=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_LCD_PLATFORM=y
|
||||
|
|
|
@ -152,7 +152,7 @@ static void lcdc_write(unsigned int val, unsigned int addr)
|
|||
|
||||
struct da8xx_fb_par {
|
||||
struct device *dev;
|
||||
resource_size_t p_palette_base;
|
||||
dma_addr_t p_palette_base;
|
||||
unsigned char *v_palette_base;
|
||||
dma_addr_t vram_phys;
|
||||
unsigned long vram_size;
|
||||
|
@ -1428,7 +1428,7 @@ static int fb_probe(struct platform_device *device)
|
|||
|
||||
par->vram_virt = dma_alloc_coherent(NULL,
|
||||
par->vram_size,
|
||||
(resource_size_t *) &par->vram_phys,
|
||||
&par->vram_phys,
|
||||
GFP_KERNEL | GFP_DMA);
|
||||
if (!par->vram_virt) {
|
||||
dev_err(&device->dev,
|
||||
|
@ -1448,7 +1448,7 @@ static int fb_probe(struct platform_device *device)
|
|||
|
||||
/* allocate palette buffer */
|
||||
par->v_palette_base = dma_zalloc_coherent(NULL, PALETTE_SIZE,
|
||||
(resource_size_t *)&par->p_palette_base,
|
||||
&par->p_palette_base,
|
||||
GFP_KERNEL | GFP_DMA);
|
||||
if (!par->v_palette_base) {
|
||||
dev_err(&device->dev,
|
||||
|
|
|
@ -829,8 +829,7 @@ static int s6e8ax0_probe(struct mipi_dsim_lcd_device *dsim_dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int s6e8ax0_suspend(struct mipi_dsim_lcd_device *dsim_dev)
|
||||
static int __maybe_unused s6e8ax0_suspend(struct mipi_dsim_lcd_device *dsim_dev)
|
||||
{
|
||||
struct s6e8ax0 *lcd = dev_get_drvdata(&dsim_dev->dev);
|
||||
|
||||
|
@ -843,7 +842,7 @@ static int s6e8ax0_suspend(struct mipi_dsim_lcd_device *dsim_dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int s6e8ax0_resume(struct mipi_dsim_lcd_device *dsim_dev)
|
||||
static int __maybe_unused s6e8ax0_resume(struct mipi_dsim_lcd_device *dsim_dev)
|
||||
{
|
||||
struct s6e8ax0 *lcd = dev_get_drvdata(&dsim_dev->dev);
|
||||
|
||||
|
@ -855,10 +854,6 @@ static int s6e8ax0_resume(struct mipi_dsim_lcd_device *dsim_dev)
|
|||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#define s6e8ax0_suspend NULL
|
||||
#define s6e8ax0_resume NULL
|
||||
#endif
|
||||
|
||||
static struct mipi_dsim_lcd_driver s6e8ax0_dsim_ddi_driver = {
|
||||
.name = "s6e8ax0",
|
||||
|
@ -867,8 +862,8 @@ static struct mipi_dsim_lcd_driver s6e8ax0_dsim_ddi_driver = {
|
|||
.power_on = s6e8ax0_power_on,
|
||||
.set_sequence = s6e8ax0_set_sequence,
|
||||
.probe = s6e8ax0_probe,
|
||||
.suspend = s6e8ax0_suspend,
|
||||
.resume = s6e8ax0_resume,
|
||||
.suspend = IS_ENABLED(CONFIG_PM) ? s6e8ax0_suspend : NULL,
|
||||
.resume = IS_ENABLED(CONFIG_PM) ? s6e8ax0_resume : NULL,
|
||||
};
|
||||
|
||||
static int s6e8ax0_init(void)
|
||||
|
|
|
@ -902,6 +902,21 @@ static int imxfb_probe(struct platform_device *pdev)
|
|||
goto failed_getclock;
|
||||
}
|
||||
|
||||
/*
|
||||
* The LCDC controller does not have an enable bit. The
|
||||
* controller starts directly when the clocks are enabled.
|
||||
* If the clocks are enabled when the controller is not yet
|
||||
* programmed with proper register values (enabled at the
|
||||
* bootloader, for example) then it just goes into some undefined
|
||||
* state.
|
||||
* To avoid this issue, let's enable and disable LCDC IPG clock
|
||||
* so that we force some kind of 'reset' to the LCDC block.
|
||||
*/
|
||||
ret = clk_prepare_enable(fbi->clk_ipg);
|
||||
if (ret)
|
||||
goto failed_getclock;
|
||||
clk_disable_unprepare(fbi->clk_ipg);
|
||||
|
||||
fbi->clk_ahb = devm_clk_get(&pdev->dev, "ahb");
|
||||
if (IS_ERR(fbi->clk_ahb)) {
|
||||
ret = PTR_ERR(fbi->clk_ahb);
|
||||
|
|
|
@ -503,8 +503,7 @@ static int mmphw_probe(struct platform_device *pdev)
|
|||
ctrl->reg_base = devm_ioremap_nocache(ctrl->dev,
|
||||
res->start, resource_size(res));
|
||||
if (ctrl->reg_base == NULL) {
|
||||
dev_err(ctrl->dev, "%s: res %x - %x map failed\n", __func__,
|
||||
res->start, res->end);
|
||||
dev_err(ctrl->dev, "%s: res %pR map failed\n", __func__, res);
|
||||
ret = -ENOMEM;
|
||||
goto failed;
|
||||
}
|
||||
|
|
|
@ -123,11 +123,11 @@ static int ocfb_setupfb(struct ocfb_dev *fbdev)
|
|||
|
||||
/* Horizontal timings */
|
||||
ocfb_writereg(fbdev, OCFB_HTIM, (var->hsync_len - 1) << 24 |
|
||||
(var->right_margin - 1) << 16 | (var->xres - 1));
|
||||
(var->left_margin - 1) << 16 | (var->xres - 1));
|
||||
|
||||
/* Vertical timings */
|
||||
ocfb_writereg(fbdev, OCFB_VTIM, (var->vsync_len - 1) << 24 |
|
||||
(var->lower_margin - 1) << 16 | (var->yres - 1));
|
||||
(var->upper_margin - 1) << 16 | (var->yres - 1));
|
||||
|
||||
/* Total length of frame */
|
||||
hlen = var->left_margin + var->right_margin + var->hsync_len +
|
||||
|
|
Loading…
Reference in New Issue