From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Prashant Malani <pmalani@chromium.org>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
chrome-platform@lists.linux.dev,
Benson Leung <bleung@chromium.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Guenter Roeck <groeck@chromium.org>
Subject: Re: [PATCH v2 1/2] usb: typec: Add partner PD object wrapper
Date: Wed, 23 Nov 2022 10:53:44 +0200 [thread overview]
Message-ID: <Y33fmFzu8j5pdJb3@kuha.fi.intel.com> (raw)
In-Reply-To: <20221122220538.2991775-2-pmalani@chromium.org>
On Tue, Nov 22, 2022 at 10:05:36PM +0000, Prashant Malani wrote:
> Some port drivers may want to set a Type-C partner as a parent for a
> USB Power Delivery object, but the Type-C partner struct isn't exposed
> outside of the Type-C class driver. Add a wrapper to
> usb_power_delivery_register() which sets the provided Type-C partner
> as a parent to the USB PD object. This helps to avoid exposing the
> Type-C partner's device struct unnecessarily.
>
> Suggested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Cc: Benson Leung <bleung@chromium.org>
> Signed-off-by: Prashant Malani <pmalani@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
>
> Changes since v1:
> - Patch first introduced in v2.
>
> drivers/usb/typec/class.c | 19 +++++++++++++++++++
> include/linux/usb/typec.h | 4 ++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index bd5e5dd70431..5897905cb4f0 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -821,6 +821,25 @@ void typec_partner_set_svdm_version(struct typec_partner *partner,
> }
> EXPORT_SYMBOL_GPL(typec_partner_set_svdm_version);
>
> +/**
> + * typec_partner_usb_power_delivery_register - Register Type-C partner USB Power Delivery Support
> + * @partner: Type-C partner device.
> + * @desc: Description of the USB PD contract.
> + *
> + * This routine is a wrapper around usb_power_delivery_register(). It registers
> + * USB Power Delivery Capabilities for a Type-C partner device. Specifically,
> + * it sets the Type-C partner device as a parent for the resulting USB Power Delivery object.
> + *
> + * Returns handle to struct usb_power_delivery or ERR_PTR.
> + */
> +struct usb_power_delivery *
> +typec_partner_usb_power_delivery_register(struct typec_partner *partner,
> + struct usb_power_delivery_desc *desc)
> +{
> + return usb_power_delivery_register(&partner->dev, desc);
> +}
> +EXPORT_SYMBOL_GPL(typec_partner_usb_power_delivery_register);
> +
> /**
> * typec_register_partner - Register a USB Type-C Partner
> * @port: The USB Type-C Port the partner is connected to
> diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h
> index 7751bedcae5d..8fa781207970 100644
> --- a/include/linux/usb/typec.h
> +++ b/include/linux/usb/typec.h
> @@ -23,6 +23,7 @@ struct fwnode_handle;
> struct device;
>
> struct usb_power_delivery;
> +struct usb_power_delivery_desc;
>
> enum typec_port_type {
> TYPEC_PORT_SRC,
> @@ -327,6 +328,9 @@ void typec_partner_set_svdm_version(struct typec_partner *partner,
> enum usb_pd_svdm_ver svdm_version);
> int typec_get_negotiated_svdm_version(struct typec_port *port);
>
> +struct usb_power_delivery *typec_partner_usb_power_delivery_register(struct typec_partner *partner,
> + struct usb_power_delivery_desc *desc);
> +
> int typec_port_set_usb_power_delivery(struct typec_port *port, struct usb_power_delivery *pd);
> int typec_partner_set_usb_power_delivery(struct typec_partner *partner,
> struct usb_power_delivery *pd);
thanks,
--
heikki
next prev parent reply other threads:[~2022-11-23 8:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-22 22:05 [PATCH v2 0/2] platform/chrome: cros_ec_typec: Link PD object to partner Prashant Malani
2022-11-22 22:05 ` [PATCH v2 1/2] usb: typec: Add partner PD object wrapper Prashant Malani
2022-11-23 8:53 ` Heikki Krogerus [this message]
2022-11-22 22:05 ` [PATCH v2 2/2] platform/chrome: cros_ec_typec: Set parent of partner PD object Prashant Malani
2022-11-23 8:54 ` Heikki Krogerus
2022-12-26 3:32 ` [PATCH v2 0/2] platform/chrome: cros_ec_typec: Link PD object to partner patchwork-bot+chrome-platform
2022-12-26 3:41 ` patchwork-bot+chrome-platform
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=Y33fmFzu8j5pdJb3@kuha.fi.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=gregkh@linuxfoundation.org \
--cc=groeck@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=pmalani@chromium.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.