All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Hans de Goede <hdegoede@redhat.com>
Cc: linux-usb@vger.kernel.org
Subject: Re: [PATCH 6/7] usb: typec: ucsi: Start using struct typec_operations
Date: Tue, 1 Oct 2019 06:35:26 -0700	[thread overview]
Message-ID: <65812811-2696-d4a9-5ed0-7fd33690e83e@roeck-us.net> (raw)
In-Reply-To: <20191001094858.68643-7-heikki.krogerus@linux.intel.com>

On 10/1/19 2:48 AM, Heikki Krogerus wrote:
> Supplying the operation callbacks as part of a struct
> typec_operations instead of as part of struct
> typec_capability during port registration.
> 
> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>   drivers/usb/typec/ucsi/ucsi.c | 22 +++++++++++-----------
>   1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index ba288b964dc8..edd722fb88b8 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -17,9 +17,6 @@
>   #include "ucsi.h"
>   #include "trace.h"
>   
> -#define to_ucsi_connector(_cap_) container_of(_cap_, struct ucsi_connector, \
> -					      typec_cap)
> -
>   /*
>    * UCSI_TIMEOUT_MS - PPM communication timeout
>    *
> @@ -713,10 +710,9 @@ static int ucsi_role_cmd(struct ucsi_connector *con, struct ucsi_control *ctrl)
>   	return ret;
>   }
>   
> -static int
> -ucsi_dr_swap(const struct typec_capability *cap, enum typec_data_role role)
> +static int ucsi_dr_swap(struct typec_port *port, enum typec_data_role role)
>   {
> -	struct ucsi_connector *con = to_ucsi_connector(cap);
> +	struct ucsi_connector *con = typec_get_drvdata(port);
>   	struct ucsi_control ctrl;
>   	int ret = 0;
>   
> @@ -748,10 +744,9 @@ ucsi_dr_swap(const struct typec_capability *cap, enum typec_data_role role)
>   	return ret < 0 ? ret : 0;
>   }
>   
> -static int
> -ucsi_pr_swap(const struct typec_capability *cap, enum typec_role role)
> +static int ucsi_pr_swap(struct typec_port *port, enum typec_role role)
>   {
> -	struct ucsi_connector *con = to_ucsi_connector(cap);
> +	struct ucsi_connector *con = typec_get_drvdata(port);
>   	struct ucsi_control ctrl;
>   	int ret = 0;
>   
> @@ -788,6 +783,11 @@ ucsi_pr_swap(const struct typec_capability *cap, enum typec_role role)
>   	return ret;
>   }
>   
> +static const struct typec_operations ucsi_ops = {
> +	.dr_set = ucsi_dr_swap,
> +	.pr_set = ucsi_pr_swap
> +};
> +
>   static struct fwnode_handle *ucsi_find_fwnode(struct ucsi_connector *con)
>   {
>   	struct fwnode_handle *fwnode;
> @@ -843,8 +843,8 @@ static int ucsi_register_port(struct ucsi *ucsi, int index)
>   		*accessory = TYPEC_ACCESSORY_DEBUG;
>   
>   	cap->fwnode = ucsi_find_fwnode(con);
> -	cap->dr_set = ucsi_dr_swap;
> -	cap->pr_set = ucsi_pr_swap;
> +	cap->driver_data = con;
> +	cap->ops = &ucsi_ops;
>   
>   	/* Register the connector */
>   	con->port = typec_register_port(ucsi->dev, cap);
> 


  reply	other threads:[~2019-10-01 13:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-01  9:48 [PATCH 0/7] usb: typec: Small API improvement Heikki Krogerus
2019-10-01  9:48 ` [PATCH 1/7] usb: typec: Copy everything from struct typec_capability during registration Heikki Krogerus
2019-10-01 13:08   ` Guenter Roeck
2019-10-02 16:06     ` Heikki Krogerus
2019-10-02 16:36       ` Guenter Roeck
2019-10-02 18:29         ` Heikki Krogerus
2019-10-03  3:45           ` Guenter Roeck
2019-10-03  8:03             ` Heikki Krogerus
2019-10-02 19:16       ` Heikki Krogerus
2019-10-03  3:51         ` Guenter Roeck
2019-10-03 13:29           ` Heikki Krogerus
2019-10-01  9:48 ` [PATCH 2/7] usb: typec: Introduce typec_get_drvdata() Heikki Krogerus
2019-10-01  9:48 ` [PATCH 3/7] usb: typec: Separate the operations vector Heikki Krogerus
2019-10-01 13:22   ` Guenter Roeck
2019-10-04  8:45     ` Heikki Krogerus
2019-10-01  9:48 ` [PATCH 4/7] usb: typec: tcpm: Start using struct typec_operations Heikki Krogerus
2019-10-01 13:30   ` Guenter Roeck
2019-10-04  8:46     ` Heikki Krogerus
2019-10-01  9:48 ` [PATCH 5/7] usb: typec: tps6598x: " Heikki Krogerus
2019-10-01 13:34   ` Guenter Roeck
2019-10-01 13:35   ` Guenter Roeck
2019-10-04  8:49     ` Heikki Krogerus
2019-10-01  9:48 ` [PATCH 6/7] usb: typec: ucsi: " Heikki Krogerus
2019-10-01 13:35   ` Guenter Roeck [this message]
2019-10-01  9:48 ` [PATCH 7/7] usb: typec: Remove the callback members from struct typec_capability Heikki Krogerus
2019-10-01 13:37   ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=65812811-2696-d4a9-5ed0-7fd33690e83e@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=hdegoede@redhat.com \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.