Patch "usb: musb: core: fix order of arguments to ulpi write" has been added to the 3.10-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
usb: musb: core: fix order of arguments to ulpi write
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-musb-core-fix-order-of-arguments-to-ulpi-write.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
705e63d2b29c8bbf091119084544d353bda70393Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <[email protected]>
Date: Fri, 23 Oct 2015 09:53:50 +0200
Subject: usb: musb: core: fix order of arguments to ulpi write
callback
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <[email protected]>
commit 705e63d2b29c8bbf091119084544d353bda70393 upstream.
There is a bit of a mess in the order of arguments to the ulpi write callback. There is
int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val)
in drivers/usb/common/ulpi.c;
struct usb_phy_io_ops {
...
int (*write)(struct usb_phy *x, u32 val, u32 reg);
}in include/linux/usb/phy.h.
The callback registered by the musb driver has to comply to the latter, but up to now had "offset" first which effectively made the function broken for correct users. So flip the order and while at it also switch to the parameter names of struct usb_phy_io_ops's write.
--- drivers/usb/musb/musb_core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/usb/musb/musb_core.c +5 -5
@@ -133,7 +133,7 @@ static inline struct musb *dev_to_musb(s/*-------------------------------------------------------------------------*/ #ifndef CONFIG_BLACKFIN -static int musb_ulpi_read (struct usb_phy *phy,u32 offset) +static int musb_ulpi_read (struct usb_phy *phy,u32 reg) {void __iomem *addr = phy->io_priv;int i =0 ;
@@ -152,7 +152,7 @@ static int musb_ulpi_read(struct usb_phy* ULPICarKitControlDisableUTMI after clearing POWER_SUSPENDM. */ -musb_writeb (addr,MUSB_ULPI_REG_ADDR , (u8 )offset); +musb_writeb (addr,MUSB_ULPI_REG_ADDR , (u8 )reg);musb_writeb (addr,MUSB_ULPI_REG_CONTROL ,MUSB_ULPI_REG_REQ |MUSB_ULPI_RDN_WR );
@@ -177,7 +177,7 @@ out:return ret; } -static int musb_ulpi_write (struct usb_phy *phy,u32 offset,u32 data) +static int musb_ulpi_write (struct usb_phy *phy,u32 val,u32 reg) {void __iomem *addr = phy->io_priv;int i =0 ;
@@ -192,8 +192,8 @@ static int musb_ulpi_write(struct usb_ph power &= ~MUSB_POWER_SUSPENDM ;musb_writeb (addr,MUSB_POWER , power); -musb_writeb (addr,MUSB_ULPI_REG_ADDR , (u8 )offset); -musb_writeb (addr,MUSB_ULPI_REG_DATA , (u8 )data); +musb_writeb (addr,MUSB_ULPI_REG_ADDR , (u8 )reg); +musb_writeb (addr,MUSB_ULPI_REG_DATA , (u8 )val);musb_writeb (addr,MUSB_ULPI_REG_CONTROL ,MUSB_ULPI_REG_REQ ); while (!(musb_readb(addr, MUSB_ULPI_REG_CONTROL)
Patches currently in stable-queue which might be from [email protected] are
queue-3.10/usb-musb-core-fix-order-of-arguments-to-ulpi-write.patch