@@ -47,10 +47,10 @@ static int tvc_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(ddata->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(ddata->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -61,10 +61,10 @@ static int dvic_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -57,10 +57,10 @@ static int hdmic_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(ddata->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(ddata->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(ddata->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -37,7 +37,7 @@ static int opa362_connect(struct omap_dss_device *dssdev,
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
if (IS_ERR(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
return PTR_ERR(src);
@@ -33,7 +33,7 @@ static int tfp410_connect(struct omap_dss_device *dssdev,
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
if (IS_ERR(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
return PTR_ERR(src);
@@ -42,7 +42,7 @@ static int tpd_connect(struct omap_dss_device *dssdev,
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
if (IS_ERR(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
return PTR_ERR(src);
@@ -39,10 +39,10 @@ static int panel_dpi_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -763,10 +763,10 @@ static int dsicm_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -121,10 +121,10 @@ static int lb035q02_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -116,10 +116,10 @@ static int nec_8048_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -62,10 +62,10 @@ static int sharp_ls_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -511,10 +511,10 @@ static int acx565akm_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -170,10 +170,10 @@ static int td028ttec1_panel_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -341,10 +341,10 @@ static int tpo_td043_connect(struct omap_dss_device *dssdev)
struct omap_dss_device *src;
int r;
- src = omapdss_of_find_source_for_first_ep(dssdev->dev->of_node);
- if (IS_ERR(src)) {
+ src = omapdss_of_find_connected_device(dssdev->dev->of_node, 0);
+ if (IS_ERR_OR_NULL(src)) {
dev_err(dssdev->dev, "failed to find video source\n");
- return PTR_ERR(src);
+ return src ? PTR_ERR(src) : -EINVAL;
}
r = omapdss_device_connect(dssdev->dss, src, dssdev);
@@ -47,7 +47,7 @@ dss_of_port_get_parent_device(struct device_node *port)
}
struct omap_dss_device *
-omapdss_of_find_source_for_first_ep(struct device_node *node)
+omapdss_of_find_connected_device(struct device_node *node, unsigned int port)
{
struct device_node *src_node;
struct device_node *src_port;
@@ -56,27 +56,27 @@ omapdss_of_find_source_for_first_ep(struct device_node *node)
u32 port_number = 0;
/* Get the endpoint... */
- ep = of_graph_get_endpoint_by_regs(node, 0, 0);
+ ep = of_graph_get_endpoint_by_regs(node, port, 0);
if (!ep)
- return ERR_PTR(-EINVAL);
+ return NULL;
/* ... and its remote port... */
src_port = of_graph_get_remote_port(ep);
of_node_put(ep);
if (!src_port)
- return ERR_PTR(-EINVAL);
+ return NULL;
/* ... and the remote port's number and parent... */
of_property_read_u32(src_port, "reg", &port_number);
src_node = dss_of_port_get_parent_device(src_port);
of_node_put(src_port);
if (!src_node)
- return NULL;
+ return ERR_PTR(-EINVAL);
- /* ... and finally the source. */
+ /* ... and finally the connected device. */
src = omapdss_find_device_by_port(src_node, port_number);
of_node_put(src_node);
return src ? src : ERR_PTR(-EPROBE_DEFER);
}
-EXPORT_SYMBOL_GPL(omapdss_of_find_source_for_first_ep);
+EXPORT_SYMBOL_GPL(omapdss_of_find_connected_device);
@@ -532,7 +532,7 @@ static inline bool omapdss_device_is_enabled(struct omap_dss_device *dssdev)
}
struct omap_dss_device *
-omapdss_of_find_source_for_first_ep(struct device_node *node);
+omapdss_of_find_connected_device(struct device_node *node, unsigned int port);
enum dss_writeback_channel {
DSS_WB_LCD1_MGR = 0,