Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1463910 > unrolled thread
| Started by | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| First post | 2016-08-16 18:10 +0200 |
| Last post | 2016-08-17 13:20 +0200 |
| Articles | 15 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v3 0/8] usb: ulpi: remove "dev" field from struct ulpi_ops Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
[PATCH v3 1/8] usb: ulpi: move setting of ulpi->dev parent up in ulpi_register() Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 1/8] usb: ulpi: move setting of ulpi->dev parent up in ulpi_register() Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 3/8] usb: dwc3: ulpi: use new api Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 3/8] usb: dwc3: ulpi: use new api Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 5/8] usb: ulpi: rename operations {read|write}_dev to simply {read|write} Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 5/8] usb: ulpi: rename operations {read|write}_dev to simply {read|write} Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 7/8] usb: ulpi: make ops struct constant Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 7/8] usb: ulpi: make ops struct constant Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 4/8] usb: ulpi: remove calls to old api callbacks Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 4/8] usb: ulpi: remove calls to old api callbacks Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 6/8] usb: ulpi: remove "dev" field from struct ulpi_ops Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 6/8] usb: ulpi: remove "dev" field from struct ulpi_ops Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
[PATCH v3 8/8] usb: dwc3: ulpi: make dwc3_ulpi_ops constant Tal Shorer <tal.shorer@gmail.com> - 2016-08-16 18:10 +0200
Re: [PATCH v3 8/8] usb: dwc3: ulpi: make dwc3_ulpi_ops constant Heikki Krogerus <heikki.krogerus@linux.intel.com> - 2016-08-17 13:20 +0200
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 0/8] usb: ulpi: remove "dev" field from struct ulpi_ops |
| Message-ID | <s6P69-5fK-3@gated-at.bofh.it> |
struct ulpi_ops is defined as follows:
struct ulpi_ops {
struct device *dev;
int (*read)(struct ulpi_ops *ops, u8 addr);
int (*write)(struct ulpi_ops *ops, u8 addr, u8 val);
};
Upon calling ulpi_register_interface(), the struct device argument is
put inside the struct ulpi_ops argument's dev field. Later, when
calling the actual read()/write() operations, the struct ulpi_ops is
passed to them and they use the stored device to access whatever
private data they need.
This means that if one wishes to reuse the same oprations for multiple
interfaces (e.g if we have multiple instances of the same controller),
any but the last interface registered will not operate properly (and
the one that does work will be at the mercy of the others to not mess
it up).
I understand that barely any driver uses this bus right now, but I
suppose it's there to be used at some point. We might as well fix the
design here before we hit this bug.
This series fixes this by passing the given struct device directly to
the operation functions via ulpi->dev.parent in ulpi_read() and
ulpi_write(). It also changes the operations struct to be constant
since now nobody has a reason to modify it.
Changes from v1:
* Split the actual api change into multiple patch as per Felipe Balbi's
suggestion. The series now first adds the new api, then migrates
everything to use and only then removes the old api.
Changes from v2:
* Merge patches 2 and 3 (now patch 2)
* Merge patches 5 and 6 (now patch 4)
* Remove comment documenting the removed dev field in struct ulpi_ops
Tal Shorer (8):
usb: ulpi: move setting of ulpi->dev parent up in ulpi_register()
usb: ulpi: add new api functions, {read|write}_dev()
usb: dwc3: ulpi: use new api
usb: ulpi: remove calls to old api callbacks
usb: ulpi: rename operations {read|write}_dev to simply {read|write}
usb: ulpi: remove "dev" field from struct ulpi_ops
usb: ulpi: make ops struct constant
usb: dwc3: ulpi: make dwc3_ulpi_ops constant
drivers/usb/common/ulpi.c | 11 ++++++-----
drivers/usb/dwc3/ulpi.c | 10 +++++-----
include/linux/ulpi/driver.h | 2 +-
include/linux/ulpi/interface.h | 9 ++++-----
4 files changed, 16 insertions(+), 16 deletions(-)
--
2.7.4
[toc] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 1/8] usb: ulpi: move setting of ulpi->dev parent up in ulpi_register() |
| Message-ID | <s6P6a-5fK-11@gated-at.bofh.it> |
| In reply to | #1463910 |
Once ulpi operations use the parent device directly, this will be
needed during the operations used in ulpi_register() itself, so set
the parent field before calling any ulpi operations.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/common/ulpi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index e04a34e..c6ce92b 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -157,6 +157,8 @@ static int ulpi_register(struct device *dev, struct ulpi *ulpi)
{
int ret;
+ ulpi->dev.parent = dev; /* needed early for ops */
+
/* Test the interface */
ret = ulpi_write(ulpi, ULPI_SCRATCH, 0xaa);
if (ret < 0)
@@ -175,7 +177,6 @@ static int ulpi_register(struct device *dev, struct ulpi *ulpi)
ulpi->id.product = ulpi_read(ulpi, ULPI_PRODUCT_ID_LOW);
ulpi->id.product |= ulpi_read(ulpi, ULPI_PRODUCT_ID_HIGH) << 8;
- ulpi->dev.parent = dev;
ulpi->dev.bus = &ulpi_bus;
ulpi->dev.type = &ulpi_dev_type;
dev_set_name(&ulpi->dev, "%s.ulpi", dev_name(dev));
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 1/8] usb: ulpi: move setting of ulpi->dev parent up in ulpi_register() |
| Message-ID | <s7733-g9-27@gated-at.bofh.it> |
| In reply to | #1463911 |
On Tue, Aug 16, 2016 at 07:04:46PM +0300, Tal Shorer wrote: > Once ulpi operations use the parent device directly, this will be > needed during the operations used in ulpi_register() itself, so set > the parent field before calling any ulpi operations. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 3/8] usb: dwc3: ulpi: use new api |
| Message-ID | <s6P6a-5fK-23@gated-at.bofh.it> |
| In reply to | #1463910 |
The old read, write callbacks in struct ulpi_ops have been deprecated
in favor of new callbacks that pass the parent device directly.
Replace the used callbacks in dwc3's ulpi component with the new api.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/dwc3/ulpi.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/dwc3/ulpi.c b/drivers/usb/dwc3/ulpi.c
index ec004c6..94eeb7a 100644
--- a/drivers/usb/dwc3/ulpi.c
+++ b/drivers/usb/dwc3/ulpi.c
@@ -35,9 +35,9 @@ static int dwc3_ulpi_busyloop(struct dwc3 *dwc)
return -ETIMEDOUT;
}
-static int dwc3_ulpi_read(struct ulpi_ops *ops, u8 addr)
+static int dwc3_ulpi_read(struct device *dev, u8 addr)
{
- struct dwc3 *dwc = dev_get_drvdata(ops->dev);
+ struct dwc3 *dwc = dev_get_drvdata(dev);
u32 reg;
int ret;
@@ -53,9 +53,9 @@ static int dwc3_ulpi_read(struct ulpi_ops *ops, u8 addr)
return DWC3_GUSB2PHYACC_DATA(reg);
}
-static int dwc3_ulpi_write(struct ulpi_ops *ops, u8 addr, u8 val)
+static int dwc3_ulpi_write(struct device *dev, u8 addr, u8 val)
{
- struct dwc3 *dwc = dev_get_drvdata(ops->dev);
+ struct dwc3 *dwc = dev_get_drvdata(dev);
u32 reg;
reg = DWC3_GUSB2PHYACC_NEWREGREQ | DWC3_ULPI_ADDR(addr);
@@ -66,8 +66,8 @@ static int dwc3_ulpi_write(struct ulpi_ops *ops, u8 addr, u8 val)
}
static struct ulpi_ops dwc3_ulpi_ops = {
- .read = dwc3_ulpi_read,
- .write = dwc3_ulpi_write,
+ .read_dev = dwc3_ulpi_read,
+ .write_dev = dwc3_ulpi_write,
};
int dwc3_ulpi_init(struct dwc3 *dwc)
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 3/8] usb: dwc3: ulpi: use new api |
| Message-ID | <s7733-g9-21@gated-at.bofh.it> |
| In reply to | #1463913 |
On Tue, Aug 16, 2016 at 07:04:48PM +0300, Tal Shorer wrote: > The old read, write callbacks in struct ulpi_ops have been deprecated > in favor of new callbacks that pass the parent device directly. > Replace the used callbacks in dwc3's ulpi component with the new api. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 5/8] usb: ulpi: rename operations {read|write}_dev to simply {read|write} |
| Message-ID | <s6P6a-5fK-35@gated-at.bofh.it> |
| In reply to | #1463910 |
With the removal of the old {read|write} operations, we can now safely
rename the new api operations {read|write}_dev to use the shorter and
clearer names {read|write}, respectively.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/common/ulpi.c | 4 ++--
drivers/usb/dwc3/ulpi.c | 4 ++--
include/linux/ulpi/interface.h | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index d682cf2..da17a74 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -21,13 +21,13 @@
int ulpi_read(struct ulpi *ulpi, u8 addr)
{
- return ulpi->ops->read_dev(ulpi->dev.parent, addr);
+ return ulpi->ops->read(ulpi->dev.parent, addr);
}
EXPORT_SYMBOL_GPL(ulpi_read);
int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val)
{
- return ulpi->ops->write_dev(ulpi->dev.parent, addr, val);
+ return ulpi->ops->write(ulpi->dev.parent, addr, val);
}
EXPORT_SYMBOL_GPL(ulpi_write);
diff --git a/drivers/usb/dwc3/ulpi.c b/drivers/usb/dwc3/ulpi.c
index 94eeb7a..51ac939 100644
--- a/drivers/usb/dwc3/ulpi.c
+++ b/drivers/usb/dwc3/ulpi.c
@@ -66,8 +66,8 @@ static int dwc3_ulpi_write(struct device *dev, u8 addr, u8 val)
}
static struct ulpi_ops dwc3_ulpi_ops = {
- .read_dev = dwc3_ulpi_read,
- .write_dev = dwc3_ulpi_write,
+ .read = dwc3_ulpi_read,
+ .write = dwc3_ulpi_write,
};
int dwc3_ulpi_init(struct dwc3 *dwc)
diff --git a/include/linux/ulpi/interface.h b/include/linux/ulpi/interface.h
index 71f3c99..ac3cd80 100644
--- a/include/linux/ulpi/interface.h
+++ b/include/linux/ulpi/interface.h
@@ -13,8 +13,8 @@ struct ulpi;
*/
struct ulpi_ops {
struct device *dev;
- int (*read_dev)(struct device *dev, u8 addr);
- int (*write_dev)(struct device *dev, u8 addr, u8 val);
+ int (*read)(struct device *dev, u8 addr);
+ int (*write)(struct device *dev, u8 addr, u8 val);
};
struct ulpi *ulpi_register_interface(struct device *, struct ulpi_ops *);
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 5/8] usb: ulpi: rename operations {read|write}_dev to simply {read|write} |
| Message-ID | <s7733-g9-1@gated-at.bofh.it> |
| In reply to | #1463915 |
On Tue, Aug 16, 2016 at 07:04:50PM +0300, Tal Shorer wrote:
> With the removal of the old {read|write} operations, we can now safely
> rename the new api operations {read|write}_dev to use the shorter and
> clearer names {read|write}, respectively.
>
> Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Thanks,
--
heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 7/8] usb: ulpi: make ops struct constant |
| Message-ID | <s6P6a-5fK-37@gated-at.bofh.it> |
| In reply to | #1463910 |
None of the core ulpi functions perform any changes to the operations
struct, and logically as a struct that contains function pointers
there's no reason it shouldn't be constant.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/common/ulpi.c | 3 ++-
include/linux/ulpi/driver.h | 2 +-
include/linux/ulpi/interface.h | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index d005c15..8b31770 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -203,7 +203,8 @@ static int ulpi_register(struct device *dev, struct ulpi *ulpi)
* Allocates and registers a ULPI device and an interface for it. Called from
* the USB controller that provides the ULPI interface.
*/
-struct ulpi *ulpi_register_interface(struct device *dev, struct ulpi_ops *ops)
+struct ulpi *ulpi_register_interface(struct device *dev,
+ const struct ulpi_ops *ops)
{
struct ulpi *ulpi;
int ret;
diff --git a/include/linux/ulpi/driver.h b/include/linux/ulpi/driver.h
index 80b36ca..a7af21a 100644
--- a/include/linux/ulpi/driver.h
+++ b/include/linux/ulpi/driver.h
@@ -15,7 +15,7 @@ struct ulpi_ops;
*/
struct ulpi {
struct ulpi_device_id id;
- struct ulpi_ops *ops;
+ const struct ulpi_ops *ops;
struct device dev;
};
diff --git a/include/linux/ulpi/interface.h b/include/linux/ulpi/interface.h
index cdedac8..a2011a9 100644
--- a/include/linux/ulpi/interface.h
+++ b/include/linux/ulpi/interface.h
@@ -16,7 +16,7 @@ struct ulpi_ops {
int (*write)(struct device *dev, u8 addr, u8 val);
};
-struct ulpi *ulpi_register_interface(struct device *, struct ulpi_ops *);
+struct ulpi *ulpi_register_interface(struct device *, const struct ulpi_ops *);
void ulpi_unregister_interface(struct ulpi *);
#endif /* __LINUX_ULPI_INTERFACE_H */
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 7/8] usb: ulpi: make ops struct constant |
| Message-ID | <s7733-g9-29@gated-at.bofh.it> |
| In reply to | #1463916 |
On Tue, Aug 16, 2016 at 07:04:52PM +0300, Tal Shorer wrote: > None of the core ulpi functions perform any changes to the operations > struct, and logically as a struct that contains function pointers > there's no reason it shouldn't be constant. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 4/8] usb: ulpi: remove calls to old api callbacks |
| Message-ID | <s6P6a-5fK-39@gated-at.bofh.it> |
| In reply to | #1463910 |
Now that all users use the new api callbacks, remove the old api
callbacks and force new interface drivers to use the new api.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/common/ulpi.c | 4 ----
include/linux/ulpi/interface.h | 2 --
2 files changed, 6 deletions(-)
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index 15e4a14..d682cf2 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -21,16 +21,12 @@
int ulpi_read(struct ulpi *ulpi, u8 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)
{
- 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 d8189d0..71f3c99 100644
--- a/include/linux/ulpi/interface.h
+++ b/include/linux/ulpi/interface.h
@@ -13,8 +13,6 @@ struct ulpi;
*/
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);
};
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 4/8] usb: ulpi: remove calls to old api callbacks |
| Message-ID | <s7733-g9-5@gated-at.bofh.it> |
| In reply to | #1463917 |
On Tue, Aug 16, 2016 at 07:04:49PM +0300, Tal Shorer wrote: > Now that all users use the new api callbacks, remove the old api > callbacks and force new interface drivers to use the new api. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 6/8] usb: ulpi: remove "dev" field from struct ulpi_ops |
| Message-ID | <s6P6b-5fK-41@gated-at.bofh.it> |
| In reply to | #1463910 |
Operations now use ulpi->dev.parent directly instead of via the
ulpi_ops struct, making this field unused. Remove it.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/common/ulpi.c | 1 -
include/linux/ulpi/interface.h | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c
index da17a74..d005c15 100644
--- a/drivers/usb/common/ulpi.c
+++ b/drivers/usb/common/ulpi.c
@@ -213,7 +213,6 @@ struct ulpi *ulpi_register_interface(struct device *dev, struct ulpi_ops *ops)
return ERR_PTR(-ENOMEM);
ulpi->ops = ops;
- ops->dev = dev;
ret = ulpi_register(dev, ulpi);
if (ret) {
diff --git a/include/linux/ulpi/interface.h b/include/linux/ulpi/interface.h
index ac3cd80..cdedac8 100644
--- a/include/linux/ulpi/interface.h
+++ b/include/linux/ulpi/interface.h
@@ -4,15 +4,14 @@
#include <linux/types.h>
struct ulpi;
+struct device;
/**
* struct ulpi_ops - ULPI register access
- * @dev: the interface provider
* @read: read operation for ULPI register access
* @write: write operation for ULPI register access
*/
struct ulpi_ops {
- struct device *dev;
int (*read)(struct device *dev, u8 addr);
int (*write)(struct device *dev, u8 addr, u8 val);
};
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 6/8] usb: ulpi: remove "dev" field from struct ulpi_ops |
| Message-ID | <s7733-g9-13@gated-at.bofh.it> |
| In reply to | #1463918 |
On Tue, Aug 16, 2016 at 07:04:51PM +0300, Tal Shorer wrote: > Operations now use ulpi->dev.parent directly instead of via the > ulpi_ops struct, making this field unused. Remove it. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [next] | [standalone]
| From | Tal Shorer <tal.shorer@gmail.com> |
|---|---|
| Date | 2016-08-16 18:10 +0200 |
| Subject | [PATCH v3 8/8] usb: dwc3: ulpi: make dwc3_ulpi_ops constant |
| Message-ID | <s6P6b-5fK-43@gated-at.bofh.it> |
| In reply to | #1463910 |
ulpi_register_interface() accepts a const struct ulpi_ops and dwc3
doesn't perform any changes to this struct at runtime, so there's no
reason it shouldn't be constant.
Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
---
drivers/usb/dwc3/ulpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/ulpi.c b/drivers/usb/dwc3/ulpi.c
index 51ac939..bd86f84 100644
--- a/drivers/usb/dwc3/ulpi.c
+++ b/drivers/usb/dwc3/ulpi.c
@@ -65,7 +65,7 @@ static int dwc3_ulpi_write(struct device *dev, u8 addr, u8 val)
return dwc3_ulpi_busyloop(dwc);
}
-static struct ulpi_ops dwc3_ulpi_ops = {
+static const struct ulpi_ops dwc3_ulpi_ops = {
.read = dwc3_ulpi_read,
.write = dwc3_ulpi_write,
};
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | Heikki Krogerus <heikki.krogerus@linux.intel.com> |
|---|---|
| Date | 2016-08-17 13:20 +0200 |
| Subject | Re: [PATCH v3 8/8] usb: dwc3: ulpi: make dwc3_ulpi_ops constant |
| Message-ID | <s7733-g9-3@gated-at.bofh.it> |
| In reply to | #1463919 |
On Tue, Aug 16, 2016 at 07:04:53PM +0300, Tal Shorer wrote: > ulpi_register_interface() accepts a const struct ulpi_ops and dwc3 > doesn't perform any changes to this struct at runtime, so there's no > reason it shouldn't be constant. > > Signed-off-by: Tal Shorer <tal.shorer@gmail.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Thanks, -- heikki
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web