Skip to content

Commit

Permalink
usb: typec: hd3ss3220: Give the connector fwnode to the port device
Browse files Browse the repository at this point in the history
The driver already finds the node in order to get reference
to the USB role switch.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Tested-by: Biju Das <biju.das@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20191104142435.29960-11-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Heikki Krogerus authored and Greg Kroah-Hartman committed Nov 4, 2019
1 parent 61d78ee commit 24dab53
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions drivers/usb/typec/hd3ss3220.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,17 @@ static int hd3ss3220_probe(struct i2c_client *client,
return -ENODEV;

hd3ss3220->role_sw = fwnode_usb_role_switch_get(connector);
fwnode_handle_put(connector);
if (IS_ERR(hd3ss3220->role_sw))
return PTR_ERR(hd3ss3220->role_sw);
if (IS_ERR(hd3ss3220->role_sw)) {
ret = PTR_ERR(hd3ss3220->role_sw);
goto err_put_fwnode;
}

typec_cap.prefer_role = TYPEC_NO_PREFERRED_ROLE;
typec_cap.driver_data = hd3ss3220;
typec_cap.type = TYPEC_PORT_DRP;
typec_cap.data = TYPEC_PORT_DRD;
typec_cap.ops = &hd3ss3220_ops;
typec_cap.fwnode = connector;

hd3ss3220->port = typec_register_port(&client->dev, &typec_cap);
if (IS_ERR(hd3ss3220->port)) {
Expand Down Expand Up @@ -220,13 +222,17 @@ static int hd3ss3220_probe(struct i2c_client *client,
if (ret < 0)
goto err_unreg_port;

fwnode_handle_put(connector);

dev_info(&client->dev, "probed revision=0x%x\n", ret);

return 0;
err_unreg_port:
typec_unregister_port(hd3ss3220->port);
err_put_role:
usb_role_switch_put(hd3ss3220->role_sw);
err_put_fwnode:
fwnode_handle_put(connector);

return ret;
}
Expand Down

0 comments on commit 24dab53

Please sign in to comment.