Skip to content

Commit

Permalink
drm/sun4i: mixer: Simplify the get_id logic
Browse files Browse the repository at this point in the history
Using the new helpers introduced since we wrote that code, we can simplify
the code to retrieve the mixer ID significantly.

The new code will also allow us to deal nicely with endpoints that don't
have a reg property, as expected in the case where there's a single
endpoint for a given port.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://patchwork.freedesktop.org/patch/msgid/3da40505e18a981c5ad626127e14ff594a826ef5.1552594551.git-series.maxime.ripard@bootlin.com
  • Loading branch information
Maxime Ripard committed Mar 15, 2019
1 parent eb40bae commit 527261d
Showing 1 changed file with 12 additions and 28 deletions.
40 changes: 12 additions & 28 deletions drivers/gpu/drm/sun4i/sun8i_mixer.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,38 +325,22 @@ static struct regmap_config sun8i_mixer_regmap_config = {

static int sun8i_mixer_of_get_id(struct device_node *node)
{
struct device_node *port, *ep;
int ret = -EINVAL;
struct device_node *ep, *remote;
struct of_endpoint of_ep;

/* output is port 1 */
port = of_graph_get_port_by_id(node, 1);
if (!port)
/* Output port is 1, and we want the first endpoint. */
ep = of_graph_get_endpoint_by_regs(node, 1, -1);
if (!ep)
return -EINVAL;

/* try to find downstream endpoint */
for_each_available_child_of_node(port, ep) {
struct device_node *remote;
u32 reg;

remote = of_graph_get_remote_endpoint(ep);
if (!remote)
continue;

ret = of_property_read_u32(remote, "reg", &reg);
if (!ret) {
of_node_put(remote);
of_node_put(ep);
of_node_put(port);

return reg;
}

of_node_put(remote);
}

of_node_put(port);
remote = of_graph_get_remote_endpoint(ep);
of_node_put(ep);
if (!remote)
return -EINVAL;

return ret;
of_graph_parse_endpoint(remote, &of_ep);
of_node_put(remote);
return of_ep.id;
}

static int sun8i_mixer_bind(struct device *dev, struct device *master,
Expand Down

0 comments on commit 527261d

Please sign in to comment.