Loading drivers/video/mxsfb.c +16 −34 Original line number Diff line number Diff line Loading @@ -802,23 +802,19 @@ static int mxsfb_probe(struct platform_device *pdev) return -ENODEV; } if (!request_mem_region(res->start, resource_size(res), pdev->name)) return -EBUSY; fb_info = framebuffer_alloc(sizeof(struct mxsfb_info), &pdev->dev); if (!fb_info) { dev_err(&pdev->dev, "Failed to allocate fbdev\n"); ret = -ENOMEM; goto error_alloc_info; return -ENOMEM; } host = to_imxfb_host(fb_info); host->base = ioremap(res->start, resource_size(res)); if (!host->base) { host->base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(host->base)) { dev_err(&pdev->dev, "ioremap failed\n"); ret = -ENOMEM; goto error_ioremap; ret = PTR_ERR(host->base); goto fb_release; } host->pdev = pdev; Loading @@ -829,13 +825,13 @@ static int mxsfb_probe(struct platform_device *pdev) pinctrl = devm_pinctrl_get_select_default(&pdev->dev); if (IS_ERR(pinctrl)) { ret = PTR_ERR(pinctrl); goto error_getpin; goto fb_release; } host->clk = clk_get(&host->pdev->dev, NULL); host->clk = devm_clk_get(&host->pdev->dev, NULL); if (IS_ERR(host->clk)) { ret = PTR_ERR(host->clk); goto error_getclock; goto fb_release; } panel_enable = of_get_named_gpio_flags(pdev->dev.of_node, Loading @@ -850,14 +846,15 @@ static int mxsfb_probe(struct platform_device *pdev) dev_err(&pdev->dev, "failed to request gpio %d: %d\n", panel_enable, ret); goto error_panel_enable; goto fb_release; } } fb_info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); fb_info->pseudo_palette = devm_kzalloc(&pdev->dev, sizeof(u32) * 16, GFP_KERNEL); if (!fb_info->pseudo_palette) { ret = -ENOMEM; goto error_pseudo_pallette; goto fb_release; } INIT_LIST_HEAD(&fb_info->modelist); Loading @@ -866,7 +863,7 @@ static int mxsfb_probe(struct platform_device *pdev) ret = mxsfb_init_fbinfo(host); if (ret != 0) goto error_init_fb; goto fb_release; for (i = 0; i < pdata->mode_count; i++) fb_add_videomode(&pdata->mode_list[i], &fb_info->modelist); Loading @@ -883,7 +880,7 @@ static int mxsfb_probe(struct platform_device *pdev) ret = register_framebuffer(fb_info); if (ret != 0) { dev_err(&pdev->dev,"Failed to register framebuffer\n"); goto error_register; goto fb_destroy; } if (!host->enabled) { Loading @@ -896,22 +893,12 @@ static int mxsfb_probe(struct platform_device *pdev) return 0; error_register: fb_destroy: if (host->enabled) clk_disable_unprepare(host->clk); fb_destroy_modelist(&fb_info->modelist); error_init_fb: kfree(fb_info->pseudo_palette); error_pseudo_pallette: error_panel_enable: clk_put(host->clk); error_getclock: error_getpin: iounmap(host->base); error_ioremap: fb_release: framebuffer_release(fb_info); error_alloc_info: release_mem_region(res->start, resource_size(res)); return ret; } Loading @@ -920,19 +907,14 @@ static int mxsfb_remove(struct platform_device *pdev) { struct fb_info *fb_info = platform_get_drvdata(pdev); struct mxsfb_info *host = to_imxfb_host(fb_info); struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (host->enabled) mxsfb_disable_controller(fb_info); unregister_framebuffer(fb_info); kfree(fb_info->pseudo_palette); mxsfb_free_videomem(host); iounmap(host->base); clk_put(host->clk); framebuffer_release(fb_info); release_mem_region(res->start, resource_size(res)); platform_set_drvdata(pdev, NULL); Loading Loading
drivers/video/mxsfb.c +16 −34 Original line number Diff line number Diff line Loading @@ -802,23 +802,19 @@ static int mxsfb_probe(struct platform_device *pdev) return -ENODEV; } if (!request_mem_region(res->start, resource_size(res), pdev->name)) return -EBUSY; fb_info = framebuffer_alloc(sizeof(struct mxsfb_info), &pdev->dev); if (!fb_info) { dev_err(&pdev->dev, "Failed to allocate fbdev\n"); ret = -ENOMEM; goto error_alloc_info; return -ENOMEM; } host = to_imxfb_host(fb_info); host->base = ioremap(res->start, resource_size(res)); if (!host->base) { host->base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(host->base)) { dev_err(&pdev->dev, "ioremap failed\n"); ret = -ENOMEM; goto error_ioremap; ret = PTR_ERR(host->base); goto fb_release; } host->pdev = pdev; Loading @@ -829,13 +825,13 @@ static int mxsfb_probe(struct platform_device *pdev) pinctrl = devm_pinctrl_get_select_default(&pdev->dev); if (IS_ERR(pinctrl)) { ret = PTR_ERR(pinctrl); goto error_getpin; goto fb_release; } host->clk = clk_get(&host->pdev->dev, NULL); host->clk = devm_clk_get(&host->pdev->dev, NULL); if (IS_ERR(host->clk)) { ret = PTR_ERR(host->clk); goto error_getclock; goto fb_release; } panel_enable = of_get_named_gpio_flags(pdev->dev.of_node, Loading @@ -850,14 +846,15 @@ static int mxsfb_probe(struct platform_device *pdev) dev_err(&pdev->dev, "failed to request gpio %d: %d\n", panel_enable, ret); goto error_panel_enable; goto fb_release; } } fb_info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); fb_info->pseudo_palette = devm_kzalloc(&pdev->dev, sizeof(u32) * 16, GFP_KERNEL); if (!fb_info->pseudo_palette) { ret = -ENOMEM; goto error_pseudo_pallette; goto fb_release; } INIT_LIST_HEAD(&fb_info->modelist); Loading @@ -866,7 +863,7 @@ static int mxsfb_probe(struct platform_device *pdev) ret = mxsfb_init_fbinfo(host); if (ret != 0) goto error_init_fb; goto fb_release; for (i = 0; i < pdata->mode_count; i++) fb_add_videomode(&pdata->mode_list[i], &fb_info->modelist); Loading @@ -883,7 +880,7 @@ static int mxsfb_probe(struct platform_device *pdev) ret = register_framebuffer(fb_info); if (ret != 0) { dev_err(&pdev->dev,"Failed to register framebuffer\n"); goto error_register; goto fb_destroy; } if (!host->enabled) { Loading @@ -896,22 +893,12 @@ static int mxsfb_probe(struct platform_device *pdev) return 0; error_register: fb_destroy: if (host->enabled) clk_disable_unprepare(host->clk); fb_destroy_modelist(&fb_info->modelist); error_init_fb: kfree(fb_info->pseudo_palette); error_pseudo_pallette: error_panel_enable: clk_put(host->clk); error_getclock: error_getpin: iounmap(host->base); error_ioremap: fb_release: framebuffer_release(fb_info); error_alloc_info: release_mem_region(res->start, resource_size(res)); return ret; } Loading @@ -920,19 +907,14 @@ static int mxsfb_remove(struct platform_device *pdev) { struct fb_info *fb_info = platform_get_drvdata(pdev); struct mxsfb_info *host = to_imxfb_host(fb_info); struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (host->enabled) mxsfb_disable_controller(fb_info); unregister_framebuffer(fb_info); kfree(fb_info->pseudo_palette); mxsfb_free_videomem(host); iounmap(host->base); clk_put(host->clk); framebuffer_release(fb_info); release_mem_region(res->start, resource_size(res)); platform_set_drvdata(pdev, NULL); Loading