firefly-linux-kernel-4.4.55.git
9 years agousb: phy: add static inline wrapper for devm_usb_get_phy_by_node
Arnd Bergmann [Thu, 28 May 2015 14:08:02 +0000 (16:08 +0200)]
usb: phy: add static inline wrapper for devm_usb_get_phy_by_node

The newly introduced devm_usb_get_phy_by_node function only has
an extern declaration, but no alternative for the case that
CONFIG_USB_PHY is disabled, which leads to a build error when
it is used anyway:

drivers/power/twl4030_charger.c: In function 'twl4030_bci_probe':
drivers/power/twl4030_charger.c:648:23: error: implicit declaration of function 'devm_usb_get_phy_by_node' [-Werror=implicit-function-declaration]
    bci->transceiver = devm_usb_get_phy_by_node(

This adds the wrapper in the same way that we have one for
all other usb-phy API functions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: e842b84c8e7 ("usb: phy: Add interface to get phy give of device_node.")
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: atmel: fix build warnings
Felipe Balbi [Wed, 27 May 2015 17:29:18 +0000 (12:29 -0500)]
usb: gadget: atmel: fix build warnings

This patch fixes the following build warnings:

drivers/usb/gadget/udc/atmel_usba_udc.c:2207:12: warning:
‘usba_udc_suspend’ defined but not used [-Wunused-function] static int
usba_udc_suspend(struct device *dev)
drivers/usb/gadget/udc/atmel_usba_udc.c:2236:12: warning:
‘usba_udc_resume’ defined but not used [-Wunused-function] static int
usba_udc_resume(struct device *dev)

Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: ux500: fix build warnings
Felipe Balbi [Wed, 27 May 2015 17:25:40 +0000 (12:25 -0500)]
usb: musb: ux500: fix build warnings

This patch fixes the following build warnings:

drivers/usb/musb/ux500.c:346:12: warning: ‘ux500_suspend’ defined but
not used [-Wunused-function]
drivers/usb/musb/ux500.c:357:12: warning: ‘ux500_resume’ defined but not
used [-Wunused-function]

Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: am35x: fix build warnings
Felipe Balbi [Wed, 27 May 2015 17:24:23 +0000 (12:24 -0500)]
usb: musb: am35x: fix build warnings

This patch fixes the following build warnings:

drivers/usb/musb/am35x.c:573:12: warning: ‘am35x_suspend’ defined but
not used [-Wunused-function]
drivers/usb/musb/am35x.c:589:12: warning: ‘am35x_resume’ defined but not
used [-Wunused-function]
drivers/usb/musb/am35x.c:573:12: warning: ‘am35x_suspend’ defined but
not used [-Wunused-function]
drivers/usb/musb/am35x.c:589:12: warning: ‘am35x_resume’ defined but not
used [-Wunused-function]

Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agophy: sun4i-usb: Add a sunxi specific function for setting squelch-detect
Hans de Goede [Sun, 29 Mar 2015 10:50:46 +0000 (12:50 +0200)]
phy: sun4i-usb: Add a sunxi specific function for setting squelch-detect

The sunxi otg phy has a bug where it wrongly detects a high speed squelch
when reset on the root port gets de-asserted with a lo-speed device.

The workaround for this is to disable squelch detect before de-asserting
reset, and re-enabling it after the reset de-assert is done. Add a sunxi
specific phy function to allow the sunxi-musb glue to do this.

Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: atmel: fix build warning
Felipe Balbi [Tue, 26 May 2015 20:34:45 +0000 (15:34 -0500)]
usb: gadget: atmel: fix build warning

This patch fixes the following build warning:

drivers/usb/gadget/udc/atmel_usba_udc.c:707:2: warning: format ‘%x’
expects argument of type ‘unsigned int’, but argument 4 has type
‘dma_addr_t’ [-Wformat=]

Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Fix platform code being unable to override ep access ops
Hans de Goede [Fri, 20 Mar 2015 19:11:14 +0000 (20:11 +0100)]
usb: musb: Fix platform code being unable to override ep access ops

musb-core was setting the ops to the default indexed or flat handlers after
checking for platform overrides. Reverse the order of this so that platform
overrides actually work.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Do not use musb_read[b|w] / _write[b|w] wrappers in generic fifo functions
Hans de Goede [Fri, 20 Mar 2015 19:11:13 +0000 (20:11 +0100)]
usb: musb: Do not use musb_read[b|w] / _write[b|w] wrappers in generic fifo functions

The generic fifo functions already use non wrapped accesses in various
cases through the iowrite#_rep functions, and all platforms which override
the default musb_read[b|w] / _write[b|w] functions also provide their own
fifo access functions, so we can safely drop the unnecessary indirection
from the fifo access functions.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Make busctl_offset an io-op rather then a define
Hans de Goede [Fri, 20 Mar 2015 19:11:12 +0000 (20:11 +0100)]
usb: musb: Make busctl_offset an io-op rather then a define

The Allwinner (sunxi) implementation of the musb has its busctl registers
indexed by the MUSB_INDEX register rather then in a flat address space.

This commit turns MUSB_BUSCTL_OFFSET from a macro into an io-op which can
be overridden from the platform ops.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Make musb_write_rxfun* and musb_write_rxhub* work like their tx versions
Hans de Goede [Fri, 20 Mar 2015 19:11:11 +0000 (20:11 +0100)]
usb: musb: Make musb_write_rxfun* and musb_write_rxhub* work like their tx versions

For some reason the musb_write_rxfun* and musb_write_rxhub* functions had
a different function prototype and some extra magic needed on the caller side
compared to their tx counterparts, this commit makes them work the same as
their tx counterparts.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agopower: twl4030_charger: find associated phy by more reliable means.
NeilBrown [Sun, 22 Mar 2015 22:52:48 +0000 (09:52 +1100)]
power: twl4030_charger: find associated phy by more reliable means.

twl4030_charger currently finds the associated phy
using usb_get_phy() which will return the first USB2 phy.
If your platform has multiple such phys (as mine does),
this is not reliable (and reliably fails on the GTA04).

Change to use devm_usb_get_phy_by_node(), having found the
node by looking for an appropriately named sibling in
device-tree.

This makes usb-charging dependent on correct device-tree
configuration.

Acked-By: Sebastian Reichel <sre@kernel.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy: Add interface to get phy give of device_node.
NeilBrown [Sun, 22 Mar 2015 22:52:48 +0000 (09:52 +1100)]
usb: phy: Add interface to get phy give of device_node.

Split the "get phy from device_node" functionality out of
"get phy by phandle" so it can be used directly.

This is useful when a battery-charger is intimately associated with a
particular phy but handled by a separate driver.  The charger
can find the device_node based on sibling relationships
without the need for a redundant declaration in the devicetree
description.

As a peripheral that gets a phy will often want to register a
notifier block, and de-register it later, that functionality
is included so the de-registration is automatic.

Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: fix pullup handling
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:39 +0000 (22:33 +0200)]
usb: gadget: net2280: fix pullup handling

Gadget must be informed about disconnection when pullup is removed.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: physically disable endpoint on disable operation
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:38 +0000 (22:33 +0200)]
usb: gadget: net2280: physically disable endpoint on disable operation

Reset configuration in ep_cfg on disable to physically disable the
endpoint.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: autoconf: net2280: match hardware and usb ep address
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:37 +0000 (22:33 +0200)]
usb: gadget: autoconf: net2280: match hardware and usb ep address

USB3380 GPEP can be used in IN and OUT directions however, both
directions should use same endpoint address. Fulfil this requirement
by mapping usb endpoint to hardware endpoint with the same address.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: fix use of GPEP in both directions
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:36 +0000 (22:33 +0200)]
usb: gadget: net2280: fix use of GPEP in both directions

USB3380 enhanced mode allows GPEP to be used in both IN and OUT
directions. However, IN and OUT endpoints must use same USB endpoint
address (bEndpointAddress). Fix this by setting the ep_cfg.ep_number
during initialization and keep it in net2280_enable()

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: check interrupts for all endpoints
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:35 +0000 (22:33 +0200)]
usb: gadget: net2280: check interrupts for all endpoints

USB3380 in enhanced mode has 4 IN and 4 OUT endpoints. Check
interrupts for all of them.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: set all byte enables on start
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:34 +0000 (22:33 +0200)]
usb: gadget: net2280: set all byte enables on start

Default 0 value can result in unintentional zlp for IN endpoints.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: don't set ep_cfg.direction bit
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:33 +0000 (22:33 +0200)]
usb: gadget: net2280: don't set ep_cfg.direction bit

USB3380 ep_cfg.direction bit is reserved in enhanced mode. Don't set
it.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: unconditionally reset dma in usb_reset
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:32 +0000 (22:33 +0200)]
usb: gadget: net2280: unconditionally reset dma in usb_reset

If ep->dma is set, abort_dma() takes care of dma clean-up. If ep->dma
is not set, unconditionally reset dma channel.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: reset sequence number on ep enable
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:31 +0000 (22:33 +0200)]
usb: gadget: net2280: reset sequence number on ep enable

Sequence number can be out of sync if endpoint is disabled after some
data transfers and enabled again. Reset it to stay in sync with host.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: net2280: fix ep_cfg for defect7374
Mian Yousaf Kaukab [Sat, 16 May 2015 20:33:30 +0000 (22:33 +0200)]
usb: gadget: net2280: fix ep_cfg for defect7374

ep_cfg.IN_EP_ENABLE is only valid in advance mode.

Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: Add support for R-Car E2
Yoshihiro Shimoda [Mon, 18 May 2015 11:04:15 +0000 (20:04 +0900)]
usb: renesas_usbhs: Add support for R-Car E2

This patch adds a compatible string to support for R-Car E2.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>" in patch 2
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: Change USBHS_TYPE_R8A779x to USBHS_TYPE_RCAR_GEN2
Yoshihiro Shimoda [Mon, 18 May 2015 11:04:14 +0000 (20:04 +0900)]
usb: renesas_usbhs: Change USBHS_TYPE_R8A779x to USBHS_TYPE_RCAR_GEN2

Since the HSUSB controllers of R-Car Gen2 are the same specification
(they have 16 pipes and usb-dmac), this patch changes USBHS_TYPE_R8A7790
and USBHS_TYPE_R8A7791 to USBHS_TYPE_RCAR_GEN2.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: f_fs: add extra check before unregister_gadget_item
Rui Miguel Silva [Wed, 20 May 2015 13:52:40 +0000 (14:52 +0100)]
usb: gadget: f_fs: add extra check before unregister_gadget_item

ffs_closed can race with configfs_rmdir which will call config_item_release, so
add an extra check to avoid calling the unregister_gadget_item with an null
gadget item.

Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: gadget: return error if command sent to DEPCMD register fails
Subbaraya Sundeep Bhatta [Thu, 21 May 2015 10:16:48 +0000 (15:46 +0530)]
usb: dwc3: gadget: return error if command sent to DEPCMD register fails

We need to return error to caller if command is not sent to
controller succesfully.

Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@xilinx.com>
Fixes: 72246da40f37 (usb: Introduce DesignWare USB3 DRD Driver)
Cc: <stable@vger.kernel.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: gadget: return error if command sent to DGCMD register fails
Subbaraya Sundeep Bhatta [Thu, 21 May 2015 10:16:47 +0000 (15:46 +0530)]
usb: dwc3: gadget: return error if command sent to DGCMD register fails

We need to return error to caller if command is not sent to
controller succesfully.

Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@xilinx.com>
Fixes: b09bb64239c8 (usb: dwc3: gadget: implement Global Command support)
Cc: <stable@vger.kernel.org> #v3.5+
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Add pre and post root port reset end callbacks
Hans de Goede [Sun, 29 Mar 2015 10:50:47 +0000 (12:50 +0200)]
usb: musb: Add pre and post root port reset end callbacks

The sunxi otg phy has a bug where it wrongly detects a high speed squelch
when reset on the root port gets de-asserted with a lo-speed device.

The workaround for this is to disable squelch detect before de-asserting
reset, and re-enabling it after the reset de-assert is done.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: avoid uninitialized variable use
Arnd Bergmann [Fri, 22 May 2015 11:06:35 +0000 (13:06 +0200)]
usb: renesas_usbhs: avoid uninitialized variable use

After the renesas_usbhs driver is enabled in ARM multi_v7_defconfig,
we now get a new warning:

renesas_usbhs/mod.c: In function 'usbhs_interrupt':
renesas_usbhs/mod.c:246:7: warning: 'intenb1' may be used uninitialized in this function [-Wmaybe-uninitialized]

gcc correctly points to a problem here, for the case that the
device is in host mode, we use the intenb1 variable without
having assigned it first. The state->intsts1 has a similar
problem, but gcc cannot know that.

This avoids the problem by initializing both sides of the
comparison to zero when we don't read them from the respective
registers.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 88a25e02f3 ("usb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register")
Acked-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: use signed type for a signed value
Andrzej Pietrasiewicz [Mon, 18 May 2015 15:40:04 +0000 (17:40 +0200)]
usb: gadget: rndis: use signed type for a signed value

rndis_get_nr() returns either a non-negative value on success
or a negative value on failure. In case of failure an error code
is returned to the caller of rndis_register().
If the "i" is unsigned, the information about error from rndis_get_nr()
is lost. If there is no error but rndis_get_nr() returns a value greater
than 256 the least significant bits of i are zero effectively limiting the
number of configs to 256.

This patch fixes that.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: don't duplicate the "i" variable
Andrzej Pietrasiewicz [Mon, 18 May 2015 15:40:03 +0000 (17:40 +0200)]
usb: gadget: rndis: don't duplicate the "i" variable

If CONFIG_USB_GADGET_DEBUG_FILES is set then a block is opened and inside
it there is a local variable "i" which hides the "i" local to the
rndis_deregister(). Consequently, a random value is formatted
into the "name" buffer.

This patch removes the block-local i.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: change the value passed to rndis_signal_(dis)connect()
Andrzej Pietrasiewicz [Mon, 18 May 2015 15:40:02 +0000 (17:40 +0200)]
usb: gadget: rndis: change the value passed to rndis_signal_(dis)connect()

The patch:

83210e59ee1527f229af6aef78c95b747bdcf9c4
usb: gadget: rndis: use rndis_params instead of configNr

should change all invocations of rndis_signal_(dis)connect().
This patch fixes that.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register
Nobuhiro Iwamatsu [Fri, 9 Jan 2015 00:28:41 +0000 (09:28 +0900)]
usb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register

INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
is Host mode.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agophy: add driver for TI TUSB1210 ULPI PHY
Heikki Krogerus [Wed, 13 May 2015 12:26:53 +0000 (15:26 +0300)]
phy: add driver for TI TUSB1210 ULPI PHY

TUSB1210 ULPI PHY has vendor specific register for eye
diagram tuning. On some platforms the system firmware has
set optimized value to it. In order to not loose the
optimized value, the driver stores it during probe and
restores it every time the PHY is powered back on.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agophy: helpers for USB ULPI PHY registering
Heikki Krogerus [Wed, 13 May 2015 12:26:52 +0000 (15:26 +0300)]
phy: helpers for USB ULPI PHY registering

ULPI PHYs need to be bound to their controllers with a
lookup. This adds helpers that the ULPI drivers can use to
do both, the registration of the PHY and the lookup, at the
same time.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: add ULPI interface support
Heikki Krogerus [Wed, 13 May 2015 12:26:51 +0000 (15:26 +0300)]
usb: dwc3: add ULPI interface support

Registers DWC3's ULPI interface with the ULPI bus when it's
available.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: pci: add quirk for Baytrails
Heikki Krogerus [Wed, 13 May 2015 12:26:50 +0000 (15:26 +0300)]
usb: dwc3: pci: add quirk for Baytrails

On some BYT platforms the USB2 PHY needs to be put into
operational mode by the controller driver with GPIOs
controlling the PHYs reset and cs signals.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: add hsphy_interface property
Heikki Krogerus [Wed, 13 May 2015 12:26:49 +0000 (15:26 +0300)]
usb: dwc3: add hsphy_interface property

Platforms that have configured DWC_USB3_HSPHY_INTERFACE with
value 3, i.e. UTMI+ and ULPI, need to inform the driver of
the actual HSPHY interface type with the property. "utmi" if
the interface is UTMI+ or "ulpi" if the interface is ULPI.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: setup phys earlier
Heikki Krogerus [Wed, 13 May 2015 12:26:48 +0000 (15:26 +0300)]
usb: dwc3: setup phys earlier

This allows dwc3_phy_setup() to be more useful later. There
is nothing preventing the PHY configuration registers from
being programmed early. They do not loose their context in
soft reset.

There are however other PHY related operations that should
be executed before the driver request handles to the PHYs,
such as registering DWC3's ULPI interface, which can now be
done in dwc3_phy_setup().

Also, if there ever was need for the two 100ms delays in
dwc3_phy_setup() there isn't anymore. The PHYs are now reset
after the PHY interfaces are setup.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: soft reset to it's own function
Heikki Krogerus [Wed, 13 May 2015 12:26:47 +0000 (15:26 +0300)]
usb: dwc3: soft reset to it's own function

So it can be called from other places later.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: cache hwparams earlier
Heikki Krogerus [Wed, 13 May 2015 12:26:46 +0000 (15:26 +0300)]
usb: dwc3: cache hwparams earlier

So they are available when ULPI interface support is added.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: store driver data earlier
Heikki Krogerus [Wed, 13 May 2015 12:26:45 +0000 (15:26 +0300)]
usb: dwc3: store driver data earlier

We need to store it before phys are handled, so we can later
use it in ULPI interface support code.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: ULPI or UTMI+ select
Heikki Krogerus [Wed, 13 May 2015 12:26:44 +0000 (15:26 +0300)]
usb: dwc3: ULPI or UTMI+ select

Make selection between ULPI and UTMI+ interfaces possible by
providing definition for the bit in Global USB2 PHY
Configuration Register that controls it.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: USB2 PHY register access bits
Heikki Krogerus [Wed, 13 May 2015 12:26:43 +0000 (15:26 +0300)]
usb: dwc3: USB2 PHY register access bits

Definitions for Global USB2 PHY Vendor Control Register
bits. We will need them to access ULPI PHY registers later.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: add bus type for USB ULPI
Heikki Krogerus [Wed, 13 May 2015 12:26:42 +0000 (15:26 +0300)]
usb: add bus type for USB ULPI

UTMI+ Low Pin Interface (ULPI) is a commonly used PHY
interface for USB 2.0. The ULPI specification describes a
standard set of registers which the vendors can extend for
their specific needs. ULPI PHYs provide often functions
such as charger detection and ADP sensing and probing.

There are two major issues that the bus type is meant to
tackle:

Firstly, ULPI registers are accessed from the controller.
The bus provides convenient method for the controller
drivers to share that access with the actual PHY drivers.

Secondly, there are already platforms that assume ULPI PHYs
are runtime detected, such as many Intel Baytrail based
platforms. They do not provide any kind of hardware
description for the ULPI PHYs like separate ACPI device
object that could be used to enumerate a device from.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: hcd: fix build warning
Felipe Balbi [Fri, 8 May 2015 18:30:12 +0000 (13:30 -0500)]
usb: dwc2: hcd: fix build warning

commit db62b9a804b4 (usb: dwc2: host: don't
use dma_alloc_coherent with irqs disabled)
introduced a build warning by using NULL
as an integer. Fix that by just using 0 instead
of NULL.

Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: add softconnect for host mode
Bin Liu [Tue, 24 Mar 2015 20:19:56 +0000 (15:19 -0500)]
usb: musb: add softconnect for host mode

Add a debugfs interface - softconnect - for host mode to
connect/disconnect the devices without physically remove the
them.

This adds the capability to re-enumerate the devices which are
permanently mounted on the board with the MUSB controller
together.

Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: remove the limit of available rndis connections
Andrzej Pietrasiewicz [Fri, 6 Feb 2015 12:43:30 +0000 (13:43 +0100)]
usb: gadget: rndis: remove the limit of available rndis connections

RNDIS function has a limitation on the number of allowed instances.
So far it has been RNDIS_MAX_CONFIGS, which happens to be one.
In order to eliminate this kind of arbitrary limitation we should not
preallocate a predefined (RNDIS_MAX_CONFIGS) array of struct rndis_params
instances but instead allow allocating them on demand.

This patch allocates struct rndis_params on demand in rndis_register().
Coversly, the structure is free()'d in rndis_deregister().
If CONFIG_USB_GADGET_DEBUG_FILES is set, the proc files are created which
is the same behaviour as before, but the moment of creation is delayed
until struct rndis_params is actually allocated.

rnids_init() and rndis_exit() have nothing to do, so they are eliminated.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: style correction
Andrzej Pietrasiewicz [Fri, 6 Feb 2015 12:43:29 +0000 (13:43 +0100)]
usb: gadget: rndis: style correction

Don't use a space between function name and parameter list opening bracket.
All other functions in this file comply wich checkpatch rules.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: rndis: use rndis_params instead of configNr
Andrzej Pietrasiewicz [Fri, 20 Mar 2015 07:18:47 +0000 (08:18 +0100)]
usb: gadget: rndis: use rndis_params instead of configNr

RNDIS function has a limitation on the number of allowed instances.
So far it has been RNDIS_MAX_CONFIGS, which happens to be one.
In order to eliminate this kind of arbitrary limitation we should not
preallocate a predefined (RNDIS_MAX_CONFIGS) array of struct rndis_params
instances but instead allow allocating them on demand.

This patch prepares the elimination of the said limit by converting all the
functions which accept rndis config number to accept a pointer to the
actual struct rndis_params. Consequently, rndis_register() returns
a pointer to a corresponding struct rndis_params instance. The pointer
is then always used by f_rndis.c instead of config number when it talks
to rndis.c API.

A nice side-effect of the changes is that many lines of code in rndis.c
become shorter and fit in 80 columns.

If a function prototype changes in rndis.h a style cleanup is made
at the same time, otherwise checkpatch complains that the patch
has style problems.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: s3c2410_udc: Remove static char buffer, use vsprintf extension %pV
Joe Perches [Fri, 27 Mar 2015 05:43:39 +0000 (22:43 -0700)]
usb: gadget: s3c2410_udc: Remove static char buffer, use vsprintf extension %pV

Using unnecessary static char buffers isn't good.
Use the %pV extension instead.

Miscellanea:

o the dprintk return value is unused, make it void
o add __printf format and argument verification

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy: Allow compile test of GPIO consumers if !GPIOLIB
Geert Uytterhoeven [Tue, 5 May 2015 16:32:38 +0000 (18:32 +0200)]
usb: phy: Allow compile test of GPIO consumers if !GPIOLIB

The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.

Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: <linux-usb@vger.kernel.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc3: dwc3-st: Update the incorrect DT dwc3 example.
Peter Griffin [Thu, 7 May 2015 18:16:53 +0000 (19:16 +0100)]
usb: dwc3: dwc3-st: Update the incorrect DT dwc3 example.

There is a subtle typo phys-names should be phy-names. Using the
current example means you don't have working usb (as you fail to
obtain the phys). Also update the example to use the generic phy
type constants which are now used for miphy28.

Additionally also remove the unnecessary new line in the example.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy-ab8500-usb: Constify platform_device_id
Krzysztof Kozlowski [Fri, 1 May 2015 15:39:19 +0000 (00:39 +0900)]
usb: phy-ab8500-usb: Constify platform_device_id

The platform_device_id is not modified by the driver and core uses it as
const.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for musb_host_rx in musb_host.c part5
Tony Lindgren [Fri, 1 May 2015 19:29:37 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part5

Remove ifdefs for musb_host_rx to get closer to building in
all the DMA drivers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for musb_host_rx in musb_host.c part4
Tony Lindgren [Fri, 1 May 2015 19:29:36 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part4

Remove ifdefs for musb_host_rx to get closer to building in
all the DMA drivers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for musb_host_rx in musb_host.c part3
Tony Lindgren [Fri, 1 May 2015 19:29:35 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part3

Remove ifdefs for musb_host_rx to get closer to building in
all the DMA drivers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for musb_host_rx in musb_host.c part2
Tony Lindgren [Fri, 1 May 2015 19:29:34 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part2

Remove ifdefs for musb_host_rx to get closer to building in
all the DMA drivers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for musb_host_rx in musb_host.c part1
Tony Lindgren [Fri, 1 May 2015 19:29:33 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for musb_host_rx in musb_host.c part1

Remove ifdefs for musb_host_rx to get closer to building in
all the DMA drivers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove ifdefs for TX DMA for musb_host.c
Tony Lindgren [Fri, 1 May 2015 19:29:32 +0000 (12:29 -0700)]
usb: musb: Remove ifdefs for TX DMA for musb_host.c

We can remove the ifdefs by setting up helper functions for
mentor DMA and cppi/tusb DMA.

Note that I've kept the existing formatting as otherwise this
patch becomes pretty much unreadable.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Remove DMA ifdef for musb_gadget.c short_packet
Tony Lindgren [Fri, 1 May 2015 19:29:30 +0000 (12:29 -0700)]
usb: musb: Remove DMA ifdef for musb_gadget.c short_packet

Let's get rid of the horrible ifdef in middle of the expression.
We can do it by adding a variable for short_packet and testing
it separately for DMA related code.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Get rid of the DMA ifdefs for musb_core.c
Tony Lindgren [Fri, 1 May 2015 19:29:29 +0000 (12:29 -0700)]
usb: musb: Get rid of the DMA ifdefs for musb_core.c

For musb_core.c we can now just drop the DMA related
ifdef and use the already existing runtime test for
!is_cppi_enabled(musb) instead.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Set up function pointers for DMA
Tony Lindgren [Fri, 1 May 2015 19:29:28 +0000 (12:29 -0700)]
usb: musb: Set up function pointers for DMA

Set up function pointers for DMA so get closer to
being able to build in all the DMA engines.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: Fix up DMA related macros
Tony Lindgren [Fri, 1 May 2015 19:29:27 +0000 (12:29 -0700)]
usb: musb: Fix up DMA related macros

Pass struct musb to tusb_dma_omap() and is_cppi_enabled(),
and add macros for the other DMA controllers. Populate the
platform specific quirks with the DMA type and use it during
runtime.

Note that platform glue layers with no custom DMA code are
tagged with MUSB_DMA_INVENTRA which may have a chance of
working. Looks like the defconfigs for these use PIO_ONLY,
so this should not break existing configs.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: ensure qtb exists before dereferencing it
Gregory Herrero [Wed, 29 Apr 2015 20:09:20 +0000 (22:09 +0200)]
usb: dwc2: host: ensure qtb exists before dereferencing it

dwc2_hc_nak_intr could be called with a NULL qtd.
Ensure qtd exists before dereferencing it to avoid kernel panic.
This happens when using usb to ethernet adapter.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: add hibernation core parameter
Gregory Herrero [Wed, 29 Apr 2015 20:09:19 +0000 (22:09 +0200)]
usb: dwc2: add hibernation core parameter

dwc2 may not be able to exit from hibernation if the hardware
does not provide a way to detect resume signalling in this state.
Thus, add the possibility to disable hibernation feature.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: remove dwc2_platform.ko
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:09:18 +0000 (22:09 +0200)]
usb: dwc2: remove dwc2_platform.ko

As dwc2 pci module is now exporting dwc2 platform device, include
platform.o in dwc2-y and remove USB_DWC2_PLATFORM configuration
option. Driver will be built as two modules, dwc2.ko and dwc2_pci.ko.
dwc2.ko is the new platform driver.

Remove all EXPORT_SYMBOL_GPL as they are not needed any more.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: implement test mode
Jingwu Lin [Wed, 29 Apr 2015 20:09:17 +0000 (22:09 +0200)]
usb: dwc2: host: implement test mode

Add support for SetPortFeature(PORT_TEST) for root port.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Jingwu Lin <jingwu.lin@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: don't use dma_alloc_coherent with irqs disabled
Gregory Herrero [Wed, 29 Apr 2015 20:09:16 +0000 (22:09 +0200)]
usb: dwc2: host: don't use dma_alloc_coherent with irqs disabled

Align buffer must be allocated using kmalloc since irqs are disabled.
Coherency is handled through dma_map_single which can be used with irqs
disabled.

Reviewed-by: Julius Werner <jwerner@chromium.org>
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: spinlock urb_enqueue
Gregory Herrero [Wed, 29 Apr 2015 20:09:15 +0000 (22:09 +0200)]
usb: dwc2: host: spinlock urb_enqueue

During urb_enqueue, if the urb can't be queued to the endpoint,
the urb is freed without any spinlock protection.
This leads to memory corruption when concurrent urb_dequeue try to free
same urb->hcpriv.
Thus, ensure the whole urb_enqueue in spinlocked.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: resume root hub on port connect
Gregory Herrero [Wed, 29 Apr 2015 20:09:14 +0000 (22:09 +0200)]
usb: dwc2: host: resume root hub on port connect

Once hub is runtime suspended, dwc2 must resume it
on port connect event.
Else, roothub will stay in suspended state and will
not resume transfers.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: add bus_suspend/bus_resume callback
Gregory Herrero [Wed, 29 Apr 2015 20:09:13 +0000 (22:09 +0200)]
usb: dwc2: host: add bus_suspend/bus_resume callback

Update controller state to indicate suspend entry.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: host: register handle to the phy
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:09:12 +0000 (22:09 +0200)]
usb: dwc2: host: register handle to the phy

If phy driver is present register hcd handle to it.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: remove s3c_hsotg_ep_disable_force
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:09:11 +0000 (22:09 +0200)]
usb: dwc2: gadget: remove s3c_hsotg_ep_disable_force

Force argument is not used anymore. Clean up leftovers from
https://lkml.org/lkml/2014/12/9/283

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: enable otg flag in dual role configuration
Gregory Herrero [Wed, 29 Apr 2015 20:09:10 +0000 (22:09 +0200)]
usb: dwc2: gadget: enable otg flag in dual role configuration

Inform that device is otg-capable in case of otg configuration.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: powerup controller if needed
Gregory Herrero [Wed, 29 Apr 2015 20:09:09 +0000 (22:09 +0200)]
usb: dwc2: gadget: powerup controller if needed

During vbus session, usb controller needs to exit hibernation if it was
previously in suspend state.
Since controller will be resetted and configured, there is no need
to restore registers.

Moreover, set lx_state to L0 on B session. vbus_session callback may
not be used by all platforms. Thus, controller software state needs
to be set to L0 if the controller detects a valid B session.
Otherwise, lx_state will remain L2 and prevent any request submission.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: prevent new request submission during suspend
Gregory Herrero [Wed, 29 Apr 2015 20:09:08 +0000 (22:09 +0200)]
usb: dwc2: gadget: prevent new request submission during suspend

If usb controller is in partial power down, any write to registers may
cause unpredictable behavior.
Thus, prevent any new request submission once controller is in partial
power down.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: ignore pm suspend/resume in L2
Gregory Herrero [Wed, 29 Apr 2015 20:09:07 +0000 (22:09 +0200)]
usb: dwc2: gadget: ignore pm suspend/resume in L2

Nothing to be done in pm suspend/resume when controller is in L2.
Don't disconnect or reset. State is already saved when putting
controller in hibernation and will be restored on USB bus resume.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: gadget: use reset detect interrupt
Gregory Herrero [Wed, 29 Apr 2015 20:09:06 +0000 (22:09 +0200)]
usb: dwc2: gadget: use reset detect interrupt

ResetDet interrupt is used to detect a reset of the bus
while the controller is suspended.
This may happens for example when using Command Verifier.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: set parameter values in probe function
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:09:05 +0000 (22:09 +0200)]
usb: dwc2: set parameter values in probe function

So the parameters can be used in both host and gadget modes.
Also consolidate param functions in the core.h

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: add external_id_pin_ctl core parameter
Gregory Herrero [Wed, 29 Apr 2015 20:09:04 +0000 (22:09 +0200)]
usb: dwc2: add external_id_pin_ctl core parameter

This is required due to an Intel specific hardware issue. Where id-
pin setup causes glitches on the interrupt line when CONIDSTSCHG
interrupt is enabled.

Specify external_id_pin_ctl when an external driver (for example phy)
can handle id change, so that CONIDSTSCHG interrupt can be disabled
from the controller.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: controller must update lx_state before releasing lock
Gregory Herrero [Wed, 29 Apr 2015 20:09:03 +0000 (22:09 +0200)]
usb: dwc2: controller must update lx_state before releasing lock

During suspend, there could a race condition between ep_queue and
suspend interrupt if lx_state is updated after releasing spinlock in
call_gadget(hsotg, suspend).

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: implement hibernation during bus suspend/resume
Gregory Herrero [Wed, 29 Apr 2015 20:09:02 +0000 (22:09 +0200)]
usb: dwc2: implement hibernation during bus suspend/resume

Allow controller to enter in hibernation during usb bus suspend and
inform both phy and gadget about the suspended state.
While in hibernation, the controller can't detect the resume condition.
An external mechanism must call usb_phy_set_suspend on resume.
Exit hibernation when controller gets the resume interrupt and inform
only gadget driver about it.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: add controller hibernation support
Gregory Herrero [Wed, 29 Apr 2015 20:09:01 +0000 (22:09 +0200)]
usb: dwc2: add controller hibernation support

When suspending usb bus, phy driver may disable controller power.
In this case, registers need to be saved on suspend and restored
on resume.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: debugfs: add support for complete register dump
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:09:00 +0000 (22:09 +0200)]
usb: dwc2: debugfs: add support for complete register dump

Dump all registers to take a complete snapshot of dwc2 state.
Code is inspired by dwc3/debugfs.c

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: dwc2: move debugfs code to a separate file
Mian Yousaf Kaukab [Wed, 29 Apr 2015 20:08:59 +0000 (22:08 +0200)]
usb: dwc2: move debugfs code to a separate file

Prepare to add more debug code. Moreover, don't save dentry * for
each file in struct dwc2_hsotg as clean up is done with
debugfs_remove_recursive(). s3c_hsotg_delete_debug() is removed
altogether for the same reason.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy: Remove the phy-rcar-gen2-usb driver
Geert Uytterhoeven [Tue, 28 Apr 2015 12:04:07 +0000 (14:04 +0200)]
usb: phy: Remove the phy-rcar-gen2-usb driver

The phy-rcar-gen2-usb driver, which supports legacy platform data only,
is no longer used since commit a483dcbfa21f919c ("ARM: shmobile: lager:
Remove legacy board support").

This driver was superseded by the DT-only phy-rcar-gen2 driver, which
was introduced in commit 1233f59f745b237d ("phy: Renesas R-Car Gen2 PHY
driver").

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy: msm: Manual PHY and LINK controller VBUS change notification
Ivan T. Ivanov [Thu, 9 Apr 2015 08:34:33 +0000 (11:34 +0300)]
usb: phy: msm: Manual PHY and LINK controller VBUS change notification

VBUS is not routed to USB PHY on recent Qualcomm platforms. USB controller
must see VBUS in order to pull-up DP when setting RS bit. Henc configure
USB PHY and LINK registers sense VBUS and enable manual pullup on D+ line.

Cc: Vamsi Krishna <vskrishn@codeaurora.org>
Cc: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: phy: msm: Use extcon framework for VBUS and ID detection
Ivan T. Ivanov [Thu, 9 Apr 2015 08:34:22 +0000 (11:34 +0300)]
usb: phy: msm: Use extcon framework for VBUS and ID detection

On recent Qualcomm platforms VBUS and ID lines are not routed to
USB PHY LINK controller. Use extcon framework to receive connect
and disconnect ID and VBUS notification.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: Revise the binding document about the dma-names
Yoshihiro Shimoda [Wed, 8 Apr 2015 10:42:24 +0000 (19:42 +0900)]
usb: renesas_usbhs: Revise the binding document about the dma-names

Since the DT should describe the hardware (not the driver limitation),
This patch revises the binding document about the dma-names to change
simple numbering as "ch%d" instead of "tx<n>" and "rx<n>".

Also this patch fixes the actual code of renesas_usbhs driver to handle
the new dma-names.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: Documentation: gadget-testing: fix parameter for capture channel mask
Peter Chen [Fri, 27 Mar 2015 08:32:18 +0000 (16:32 +0800)]
usb: Documentation: gadget-testing: fix parameter for capture channel mask

Fix the UAC2 parameter capture channel mask

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: only set test mode once
Bin Liu [Tue, 24 Mar 2015 20:09:25 +0000 (15:09 -0500)]
usb: musb: only set test mode once

The MUSB test mode register can only be set once, otherwise the result
is undefined.

This prevents the debugfs testmode entry to set the register more than
once which causes test failure.

Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: musb: fix inefficient copy of unaligned buffers
Johan Hovold [Thu, 23 Apr 2015 14:06:50 +0000 (16:06 +0200)]
usb: musb: fix inefficient copy of unaligned buffers

Make sure only to copy any actual data rather than the whole buffer,
when releasing the temporary buffer used for unaligned non-isochronous
transfers.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: renesas_usbhs: tidyup usbhs_for_each_dfifo macro
Kuninori Morimoto [Tue, 14 Apr 2015 04:10:04 +0000 (04:10 +0000)]
usb: renesas_usbhs: tidyup usbhs_for_each_dfifo macro

Current usbhs_for_each_dfifo macro will read out-of-array's
memory after last loop operation.
It was not good C language operation, and the binary which was
compiled by (at least) gcc 4.8.1 is broken.

This patch is based on
925403f425a4a9c503f2fc295652647b1eb10d82
(usb: renesas_usbhs: tidyup original usbhsx_for_each_xxx macro)

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agousb: gadget: uvc: remove unused including <linux/version.h>
Wei Yongjun [Thu, 16 Apr 2015 13:07:05 +0000 (21:07 +0800)]
usb: gadget: uvc: remove unused including <linux/version.h>

Remove including <linux/version.h> that don't need it.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
9 years agoLinux 4.1-rc1
Linus Torvalds [Mon, 27 Apr 2015 00:59:10 +0000 (17:59 -0700)]
Linux 4.1-rc1

9 years agox86_64, asm: Work around AMD SYSRET SS descriptor attribute issue
Andy Lutomirski [Sun, 26 Apr 2015 23:47:59 +0000 (16:47 -0700)]
x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue

AMD CPUs don't reinitialize the SS descriptor on SYSRET, so SYSRET with
SS == 0 results in an invalid usermode state in which SS is apparently
equal to __USER_DS but causes #SS if used.

Work around the issue by setting SS to __KERNEL_DS __switch_to, thus
ensuring that SYSRET never happens with SS set to NULL.

This was exposed by a recent vDSO cleanup.

Fixes: e7d6eefaaa44 x86/vdso32/syscall.S: Do not load __USER32_DS to %ss
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Peter Anvin <hpa@zytor.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9 years agoMerge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Linus Torvalds [Mon, 27 Apr 2015 00:55:26 +0000 (17:55 -0700)]
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

Pull intel drm fixes from Dave Airlie.

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  drm/i915: vlv: fix save/restore of GFX_MAX_REQ_COUNT reg
  drm/i915: Workaround to avoid lite restore with HEAD==TAIL
  drm/i915: cope with large i2c transfers

9 years agoMerge git://git.infradead.org/intel-iommu
Linus Torvalds [Mon, 27 Apr 2015 00:47:46 +0000 (17:47 -0700)]
Merge git://git.infradead.org/intel-iommu

Pull intel iommu updates from David Woodhouse:
 "This lays a little of the groundwork for upcoming Shared Virtual
  Memory support — fixing some bogus #defines for capability bits and
  adding the new ones, and starting to use the new wider page tables
  where we can, in anticipation of actually filling in the new fields
  therein.

  It also allows graphics devices to be assigned to VM guests again.
  This got broken in 3.17 by disallowing assignment of RMRR-afflicted
  devices.  Like USB, we do understand why there's an RMRR for graphics
  devices — and unlike USB, it's actually sane.  So we can make an
  exception for graphics devices, just as we do USB controllers.

  Finally, tone down the warning about the X2APIC_OPT_OUT bit, due to
  persistent requests.  X2APIC_OPT_OUT was added to the spec as a nasty
  hack to allow broken BIOSes to forbid us from using X2APIC when they
  do stupid and invasive things and would break if we did.

  Someone noticed that since Windows doesn't have full IOMMU support for
  DMA protection, setting the X2APIC_OPT_OUT bit made Windows avoid
  initialising the IOMMU on the graphics unit altogether.

  This means that it would be available for use in "driver mode", where
  the IOMMU registers are made available through a BAR of the graphics
  device and the graphics driver can do SVM all for itself.

  So they started setting the X2APIC_OPT_OUT bit on *all* platforms with
  SVM capabilities.  And even the platforms which *might*, if the
  planets had been aligned correctly, possibly have had SVM capability
  but which in practice actually don't"

* git://git.infradead.org/intel-iommu:
  iommu/vt-d: support extended root and context entries
  iommu/vt-d: Add new extended capabilities from v2.3 VT-d specification
  iommu/vt-d: Allow RMRR on graphics devices too
  iommu/vt-d: Print x2apic opt out info instead of printing a warning
  iommu/vt-d: kill bogus ecap_niotlb_iunits()

9 years agoMerge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
Linus Torvalds [Mon, 27 Apr 2015 00:44:09 +0000 (17:44 -0700)]
Merge branch 'i2c/for-next' of git://git./linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
 "This has a mixture of merge window cleanups and bugfixes"

* 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: st: add include for pinctrl
  i2c: mux: use proper dev when removing "channel-X" symlinks
  i2c: digicolor: remove duplicate include
  i2c: Mark adapter devices with pm_runtime_no_callbacks
  i2c: pca-platform: fix broken email address
  i2c: mxs: fix broken email address
  i2c: rk3x: report number of messages transmitted