From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Zijun Hu <zijun_hu@icloud.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"James Bottomley" <James.Bottomley@HansenPartnership.com>,
"Thomas Weißschuh" <thomas@t-8ch.de>,
linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev,
linux-sound@vger.kernel.org, sparclinux@vger.kernel.org,
linux-block@vger.kernel.org, linux-cxl@vger.kernel.org,
linux1394-devel@lists.sourceforge.net, arm-scmi@vger.kernel.org,
linux-efi@vger.kernel.org, linux-gpio@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, linux-hwmon@vger.kernel.org,
linux-media@vger.kernel.org, linux-pwm@vger.kernel.org,
linux-remoteproc@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-usb@vger.kernel.org, linux-serial@vger.kernel.org,
netdev@vger.kernel.org, "Zijun Hu" <quic_zijuhu@quicinc.com>
Subject: Re: [PATCH v4 11/11] usb: typec: class: Remove both cable_match() and partner_match()
Date: Mon, 23 Dec 2024 20:52:52 +0000 [thread overview]
Message-ID: <20241223205252.00003d6b@huawei.com> (raw)
In-Reply-To: <20241211-const_dfc_done-v4-11-583cc60329df@quicinc.com>
On Wed, 11 Dec 2024 08:08:13 +0800
Zijun Hu <zijun_hu@icloud.com> wrote:
> From: Zijun Hu <quic_zijuhu@quicinc.com>
>
> cable_match(), as matching function of device_find_child(), matches
> a device with device type @typec_cable_dev_type, and its task can be
> simplified by the recently introduced API device_match_type().
>
> partner_match() is similar with cable_match() but with a different
> device type @typec_partner_dev_type.
>
> Remove both functions and use the API plus respective device type instead.
>
> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Looks good, but there is the same trade off here between internal
detail of type identification and reducing the use of helpers
where the generic ones are fine. Here is less obvious even than
the CXL one as the helper macros do have other uses in these
files.
So, it's on for USB folk to decide on and I won't be giving a tag
as a result.
Jonathan
> ---
> drivers/usb/typec/class.c | 27 ++++++++++++---------------
> 1 file changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index 601a81aa1e1024265f2359393dee531a7779c6ea..3a4e0bd0131774afd0d746d2f0a306190219feec 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -1282,11 +1282,6 @@ const struct device_type typec_cable_dev_type = {
> .release = typec_cable_release,
> };
>
> -static int cable_match(struct device *dev, const void *data)
> -{
> - return is_typec_cable(dev);
> -}
> -
> /**
> * typec_cable_get - Get a reference to the USB Type-C cable
> * @port: The USB Type-C Port the cable is connected to
> @@ -1298,7 +1293,8 @@ struct typec_cable *typec_cable_get(struct typec_port *port)
> {
> struct device *dev;
>
> - dev = device_find_child(&port->dev, NULL, cable_match);
> + dev = device_find_child(&port->dev, &typec_cable_dev_type,
> + device_match_type);
> if (!dev)
> return NULL;
>
> @@ -2028,16 +2024,12 @@ const struct device_type typec_port_dev_type = {
> /* --------------------------------------- */
> /* Driver callbacks to report role updates */
>
> -static int partner_match(struct device *dev, const void *data)
> -{
> - return is_typec_partner(dev);
> -}
> -
> static struct typec_partner *typec_get_partner(struct typec_port *port)
> {
> struct device *dev;
>
> - dev = device_find_child(&port->dev, NULL, partner_match);
> + dev = device_find_child(&port->dev, &typec_partner_dev_type,
> + device_match_type);
> if (!dev)
> return NULL;
>
> @@ -2170,7 +2162,9 @@ void typec_set_pwr_opmode(struct typec_port *port,
> sysfs_notify(&port->dev.kobj, NULL, "power_operation_mode");
> kobject_uevent(&port->dev.kobj, KOBJ_CHANGE);
>
> - partner_dev = device_find_child(&port->dev, NULL, partner_match);
> + partner_dev = device_find_child(&port->dev,
> + &typec_partner_dev_type,
> + device_match_type);
> if (partner_dev) {
> struct typec_partner *partner = to_typec_partner(partner_dev);
>
> @@ -2334,7 +2328,9 @@ int typec_get_negotiated_svdm_version(struct typec_port *port)
> enum usb_pd_svdm_ver svdm_version;
> struct device *partner_dev;
>
> - partner_dev = device_find_child(&port->dev, NULL, partner_match);
> + partner_dev = device_find_child(&port->dev,
> + &typec_partner_dev_type,
> + device_match_type);
> if (!partner_dev)
> return -ENODEV;
>
> @@ -2361,7 +2357,8 @@ int typec_get_cable_svdm_version(struct typec_port *port)
> enum usb_pd_svdm_ver svdm_version;
> struct device *cable_dev;
>
> - cable_dev = device_find_child(&port->dev, NULL, cable_match);
> + cable_dev = device_find_child(&port->dev, &typec_cable_dev_type,
> + device_match_type);
> if (!cable_dev)
> return -ENODEV;
>
>
prev parent reply other threads:[~2024-12-23 20:52 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-11 0:08 [PATCH v4 00/11] driver core: Constify API device_find_child() Zijun Hu
2024-12-11 0:08 ` [PATCH v4 01/11] libnvdimm: Replace namespace_match() with device_find_child_by_name() Zijun Hu
2024-12-23 20:23 ` Jonathan Cameron
2025-01-02 18:17 ` Fan Ni
2025-01-03 0:29 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 02/11] slimbus: core: Constify slim_eaddr_equal() Zijun Hu
2024-12-23 20:25 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 03/11] bus: fsl-mc: Constify fsl_mc_device_match() Zijun Hu
2024-12-23 20:26 ` Jonathan Cameron
2024-12-24 12:36 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 04/11] driver core: Constify API device_find_child() then adapt for various usages Zijun Hu
2024-12-23 7:30 ` Uwe Kleine-König
2024-12-23 20:33 ` Jonathan Cameron
2024-12-24 12:47 ` Zijun Hu
2025-01-02 17:07 ` Mathieu Poirier
2024-12-11 0:08 ` [PATCH v4 05/11] driver core: Simplify API device_find_child_by_name() implementation Zijun Hu
2024-12-23 20:39 ` Jonathan Cameron
2024-12-24 12:55 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 06/11] driver core: Remove match_any() Zijun Hu
2024-12-23 20:40 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 07/11] slimbus: core: Remove of_slim_match_dev() Zijun Hu
2024-12-23 20:44 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 08/11] gpio: sim: Remove gpio_sim_dev_match_fwnode() Zijun Hu
2024-12-11 8:18 ` Bartosz Golaszewski
2024-12-23 20:45 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 09/11] driver core: Introduce an device matching API device_match_type() Zijun Hu
2024-12-23 20:46 ` Jonathan Cameron
2024-12-11 0:08 ` [PATCH v4 10/11] cxl/pmem: Replace match_nvdimm_bridge() with " Zijun Hu
2024-12-23 20:48 ` Jonathan Cameron
2024-12-24 12:58 ` Zijun Hu
2024-12-11 0:08 ` [PATCH v4 11/11] usb: typec: class: Remove both cable_match() and partner_match() Zijun Hu
2024-12-23 20:52 ` Jonathan Cameron [this message]
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=20241223205252.00003d6b@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=arm-scmi@vger.kernel.org \
--cc=brgl@bgdev.pl \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=netdev@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--cc=quic_zijuhu@quicinc.com \
--cc=sparclinux@vger.kernel.org \
--cc=thomas@t-8ch.de \
--cc=ukleinek@kernel.org \
--cc=zijun_hu@icloud.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).