public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tal Shorer <tal.shorer@gmail.com>
To: gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
	heikki.krogerus@linux.intel.com
Cc: linux-kernel@vger.kernel.org, balbi@kernel.org,
	Tal Shorer <tal.shorer@gmail.com>
Subject: [PATCH v3 2/8] usb: ulpi: add new api functions, {read|write}_dev()
Date: Tue, 16 Aug 2016 19:04:47 +0300	[thread overview]
Message-ID: <1471363493-7836-3-git-send-email-tal.shorer@gmail.com> (raw)
In-Reply-To: <1471363493-7836-1-git-send-email-tal.shorer@gmail.com>

Add these two new api callbacks to struct ulpi_ops. These are different
than read, write in that they pass the parent device directly instead
of via the ops argument.
They are intended to replace the old api functions.

If the new api callbacks are missing, revert to calling the old ones
as before.

Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
 drivers/usb/common/ulpi.c      | 8 ++++++--
 include/linux/ulpi/interface.h | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index c6ce92b..15e4a14 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -21,13 +21,17 @@
 
 int ulpi_read(struct ulpi *ulpi, u8 addr)
 {
-	return ulpi->ops->read(ulpi->ops, addr);
+	if (!ulpi->ops->read_dev)
+		return ulpi->ops->read(ulpi->ops, addr);
+	return ulpi->ops->read_dev(ulpi->dev.parent, addr);
 }
 EXPORT_SYMBOL_GPL(ulpi_read);
 
 int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val)
 {
-	return ulpi->ops->write(ulpi->ops, addr, val);
+	if (!ulpi->ops->write_dev)
+		return ulpi->ops->write(ulpi->ops, addr, val);
+	return ulpi->ops->write_dev(ulpi->dev.parent, addr, val);
 }
 EXPORT_SYMBOL_GPL(ulpi_write);
 
diff --git a/include/linux/ulpi/interface.h b/include/linux/ulpi/interface.h
index 4de8ab4..d8189d0 100644
--- a/include/linux/ulpi/interface.h
+++ b/include/linux/ulpi/interface.h
@@ -15,6 +15,8 @@ struct ulpi_ops {
 	struct device *dev;
 	int (*read)(struct ulpi_ops *ops, u8 addr);
 	int (*write)(struct ulpi_ops *ops, u8 addr, u8 val);
+	int (*read_dev)(struct device *dev, u8 addr);
+	int (*write_dev)(struct device *dev, u8 addr, u8 val);
 };
 
 struct ulpi *ulpi_register_interface(struct device *, struct ulpi_ops *);
-- 
2.7.4

  parent reply	other threads:[~2016-08-16 16:07 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-16 16:04 [PATCH v3 0/8] usb: ulpi: remove "dev" field from struct ulpi_ops Tal Shorer
2016-08-16 16:04 ` [PATCH v3 1/8] usb: ulpi: move setting of ulpi->dev parent up in ulpi_register() Tal Shorer
2016-08-17 11:11   ` Heikki Krogerus
2016-08-16 16:04 ` Tal Shorer [this message]
2016-08-17 11:11   ` [PATCH v3 2/8] usb: ulpi: add new api functions, {read|write}_dev() Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 3/8] usb: dwc3: ulpi: use new api Tal Shorer
2016-08-17 11:14   ` Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 4/8] usb: ulpi: remove calls to old api callbacks Tal Shorer
2016-08-17 11:14   ` Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 5/8] usb: ulpi: rename operations {read|write}_dev to simply {read|write} Tal Shorer
2016-08-17 11:15   ` Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 6/8] usb: ulpi: remove "dev" field from struct ulpi_ops Tal Shorer
2016-08-17 11:15   ` Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 7/8] usb: ulpi: make ops struct constant Tal Shorer
2016-08-17 11:16   ` Heikki Krogerus
2016-08-16 16:04 ` [PATCH v3 8/8] usb: dwc3: ulpi: make dwc3_ulpi_ops constant Tal Shorer
2016-08-17 11:17   ` Heikki Krogerus
2016-08-29  7:58 ` [PATCH v3 0/8] usb: ulpi: remove "dev" field from struct ulpi_ops Felipe Balbi
2016-08-29 11:15   ` Greg KH

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=1471363493-7836-3-git-send-email-tal.shorer@gmail.com \
    --to=tal.shorer@gmail.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox