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

Commit 9b784e3a authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Jack Pham
Browse files

usb: typec: Introduce typec_get_drvdata()



Leaving the private driver_data pointer of the port device
to the port drivers.

Change-Id: Ib38c66e69a15904d5a8160312af6532f28712b67
Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20191104142435.29960-3-heikki.krogerus@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 8c127a42af89c39560a8c5bd5accadaaa5741f8c
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git


Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
parent 6591b482
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1488,6 +1488,16 @@ EXPORT_SYMBOL_GPL(typec_set_mode);

/* --------------------------------------- */

/**
 * typec_get_drvdata - Return private driver data pointer
 * @port: USB Type-C port
 */
void *typec_get_drvdata(struct typec_port *port)
{
	return dev_get_drvdata(&port->dev);
}
EXPORT_SYMBOL_GPL(typec_get_drvdata);

/**
 * typec_port_register_altmode - Register USB Type-C Port Alternate Mode
 * @port: USB Type-C Port that supports the alternate mode
@@ -1591,6 +1601,7 @@ struct typec_port *typec_register_port(struct device *parent,
	port->dev.fwnode = cap->fwnode;
	port->dev.type = &typec_port_dev_type;
	dev_set_name(&port->dev, "port%d", id);
	dev_set_drvdata(&port->dev, cap->driver_data);

	port->cap = kmemdup(cap, sizeof(*cap), GFP_KERNEL);
	if (!port->cap) {
+4 −0
Original line number Diff line number Diff line
@@ -179,6 +179,7 @@ struct typec_partner_desc {
 * @sw: Cable plug orientation switch
 * @mux: Multiplexer switch for Alternate/Accessory Modes
 * @fwnode: Optional fwnode of the port
 * @driver_data: Private pointer for driver specific info
 * @try_role: Set data role preference for DRP port
 * @dr_set: Set Data Role
 * @pr_set: Set Power Role
@@ -198,6 +199,7 @@ struct typec_capability {
	struct typec_switch	*sw;
	struct typec_mux	*mux;
	struct fwnode_handle	*fwnode;
	void			*driver_data;

	int		(*try_role)(const struct typec_capability *,
				    int role);
@@ -241,6 +243,8 @@ int typec_set_orientation(struct typec_port *port,
enum typec_orientation typec_get_orientation(struct typec_port *port);
int typec_set_mode(struct typec_port *port, int mode);

void *typec_get_drvdata(struct typec_port *port);

int typec_find_port_power_role(const char *name);
int typec_find_power_role(const char *name);
int typec_find_port_data_role(const char *name);