Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit edf15b4d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull fbdev fixes from Tomi Valkeinen:
 - fix display regression on Versatile boards
 - fix OF node refcount bugs on omapdss
 - fix WARN about clock prepare on pxa3xx_gcu
 - fix mem leak in videomode helpers
 - fix fbconsole related boot problem on sun7i-a20-olinuxino-micro

* tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
  fbcon: unconditionally initialize cursor blink interval
  video: Fix possible leak in of_get_videomode()
  video: fbdev: pxa3xx_gcu: prepare the clocks
  OMAPDSS: Fix omap_dss_find_output_by_port_node() port refcount decrement
  OMAPDSS: Fix node refcount leak in omapdss_of_get_next_port()
  fbdev: select versatile helpers for the integrator
parents 7a834ba5 2a17d7e8
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -1306,10 +1306,11 @@ static void fbcon_cursor(struct vc_data *vc, int mode)
	int y;
	int y;
 	int c = scr_readw((u16 *) vc->vc_pos);
 	int c = scr_readw((u16 *) vc->vc_pos);


	ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);

	if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1)
	if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1)
		return;
		return;


	ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
	if (vc->vc_cursor_type & 0x10)
	if (vc->vc_cursor_type & 0x10)
		fbcon_del_cursor_timer(info);
		fbcon_del_cursor_timer(info);
	else
	else
+1 −1
Original line number Original line Diff line number Diff line
@@ -298,7 +298,7 @@ config FB_ARMCLCD


# Helper logic selected only by the ARM Versatile platform family.
# Helper logic selected only by the ARM Versatile platform family.
config PLAT_VERSATILE_CLCD
config PLAT_VERSATILE_CLCD
	def_bool ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS
	def_bool ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || ARCH_INTEGRATOR
	depends on ARM
	depends on ARM
	depends on FB_ARMCLCD && FB=y
	depends on FB_ARMCLCD && FB=y


+3 −1
Original line number Original line Diff line number Diff line
@@ -60,6 +60,8 @@ omapdss_of_get_next_port(const struct device_node *parent,
			}
			}
			prev = port;
			prev = port;
		} while (of_node_cmp(port->name, "port") != 0);
		} while (of_node_cmp(port->name, "port") != 0);

		of_node_put(ports);
	}
	}


	return port;
	return port;
@@ -94,7 +96,7 @@ struct device_node *dss_of_port_get_parent_device(struct device_node *port)
	if (!port)
	if (!port)
		return NULL;
		return NULL;


	np = of_get_next_parent(port);
	np = of_get_parent(port);


	for (i = 0; i < 2 && np; ++i) {
	for (i = 0; i < 2 && np; ++i) {
		struct property *prop;
		struct property *prop;
+2 −2
Original line number Original line Diff line number Diff line
@@ -653,7 +653,7 @@ static int pxa3xx_gcu_probe(struct platform_device *pdev)
		goto err_free_dma;
		goto err_free_dma;
	}
	}


	ret = clk_enable(priv->clk);
	ret = clk_prepare_enable(priv->clk);
	if (ret < 0) {
	if (ret < 0) {
		dev_err(dev, "failed to enable clock\n");
		dev_err(dev, "failed to enable clock\n");
		goto err_misc_deregister;
		goto err_misc_deregister;
@@ -685,7 +685,7 @@ static int pxa3xx_gcu_probe(struct platform_device *pdev)
	misc_deregister(&priv->misc_dev);
	misc_deregister(&priv->misc_dev);


err_disable_clk:
err_disable_clk:
	clk_disable(priv->clk);
	clk_disable_unprepare(priv->clk);


	return ret;
	return ret;
}
}
+1 −3
Original line number Original line Diff line number Diff line
@@ -44,11 +44,9 @@ int of_get_videomode(struct device_node *np, struct videomode *vm,
		index = disp->native_mode;
		index = disp->native_mode;


	ret = videomode_from_timings(disp, vm, index);
	ret = videomode_from_timings(disp, vm, index);
	if (ret)
		return ret;


	display_timings_release(disp);
	display_timings_release(disp);


	return 0;
	return ret;
}
}
EXPORT_SYMBOL_GPL(of_get_videomode);
EXPORT_SYMBOL_GPL(of_get_videomode);