Commit 215db948 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'usb-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next

Felipe writes:

usb: patches for v4.8 merge window

Here's the big pull request for Peripheral stack and
all related drivers.

This time around with 109 non-merge commits mostly
concentrated on drivers/usb/gadget/udc (41.5%) and
drivers/usb/dwc3 (28.1%).

There's a big rework on dwc3's transfer handling
which gave us almost 3x faster USB3 speeds with Mass
Storage on a particular test scenario I measured. We
are also removing platform_data from dwc3 after
converting all users to built-in properties instead.

For the Gadget API, we're just adding tracepoints to
aid debugging activities.

Other than these, there's the usual set of spelling
fixes, minor bug fixes and sparse warnings cleanups.
parents 107a4b53 15e4292a
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -176,6 +176,7 @@ config TWL4030_USB
	tristate "TWL4030 USB Transceiver Driver"
	tristate "TWL4030 USB Transceiver Driver"
	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
	depends on USB_SUPPORT
	depends on USB_SUPPORT
	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't 'y'
	select GENERIC_PHY
	select GENERIC_PHY
	select USB_PHY
	select USB_PHY
	help
	help
+1 −0
Original line number Original line Diff line number Diff line
@@ -309,6 +309,7 @@ config BATTERY_RX51
config CHARGER_ISP1704
config CHARGER_ISP1704
	tristate "ISP1704 USB Charger Detection"
	tristate "ISP1704 USB Charger Detection"
	depends on USB_PHY
	depends on USB_PHY
	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
	help
	help
	  Say Y to enable support for USB Charger Detection with
	  Say Y to enable support for USB Charger Detection with
	  ISP1707/ISP1704 USB transceivers.
	  ISP1707/ISP1704 USB transceivers.
+20 −6
Original line number Original line Diff line number Diff line
@@ -131,15 +131,17 @@ EXPORT_SYMBOL_GPL(usb_get_dr_mode);
 * of_usb_get_dr_mode_by_phy - Get dual role mode for the controller device
 * of_usb_get_dr_mode_by_phy - Get dual role mode for the controller device
 * which is associated with the given phy device_node
 * which is associated with the given phy device_node
 * @np:	Pointer to the given phy device_node
 * @np:	Pointer to the given phy device_node
 * @arg0: phandle args[0] for phy's with #phy-cells >= 1, or -1 for
 *        phys which do not have phy-cells
 *
 *
 * In dts a usb controller associates with phy devices.  The function gets
 * In dts a usb controller associates with phy devices.  The function gets
 * the string from property 'dr_mode' of the controller associated with the
 * the string from property 'dr_mode' of the controller associated with the
 * given phy device node, and returns the correspondig enum usb_dr_mode.
 * given phy device node, and returns the correspondig enum usb_dr_mode.
 */
 */
enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *phy_np)
enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0)
{
{
	struct device_node *controller = NULL;
	struct device_node *controller = NULL;
	struct device_node *phy;
	struct of_phandle_args args;
	const char *dr_mode;
	const char *dr_mode;
	int index;
	int index;
	int err;
	int err;
@@ -148,12 +150,24 @@ enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *phy_np)
		controller = of_find_node_with_property(controller, "phys");
		controller = of_find_node_with_property(controller, "phys");
		index = 0;
		index = 0;
		do {
		do {
			phy = of_parse_phandle(controller, "phys", index);
			if (arg0 == -1) {
			of_node_put(phy);
				args.np = of_parse_phandle(controller, "phys",
			if (phy == phy_np)
							index);
				args.args_count = 0;
			} else {
				err = of_parse_phandle_with_args(controller,
							"phys", "#phy-cells",
							index, &args);
				if (err)
					break;
			}

			of_node_put(args.np);
			if (args.np == np && (args.args_count == 0 ||
					      args.args[0] == arg0))
				goto finish;
				goto finish;
			index++;
			index++;
		} while (phy);
		} while (args.np);
	} while (controller);
	} while (controller);


finish:
finish:
+1 −0
Original line number Original line Diff line number Diff line
@@ -55,6 +55,7 @@ endchoice
config USB_DWC2_PCI
config USB_DWC2_PCI
	tristate "DWC2 PCI"
	tristate "DWC2 PCI"
	depends on PCI
	depends on PCI
	depends on USB_GADGET || !USB_GADGET
	default n
	default n
	select NOP_USB_XCEIV
	select NOP_USB_XCEIV
	help
	help
+6 −2
Original line number Original line Diff line number Diff line
@@ -166,7 +166,7 @@ struct dwc2_hsotg_req;
 *          means that it is sending data to the Host.
 *          means that it is sending data to the Host.
 * @index: The index for the endpoint registers.
 * @index: The index for the endpoint registers.
 * @mc: Multi Count - number of transactions per microframe
 * @mc: Multi Count - number of transactions per microframe
 * @interval - Interval for periodic endpoints
 * @interval - Interval for periodic endpoints, in frames or microframes.
 * @name: The name array passed to the USB core.
 * @name: The name array passed to the USB core.
 * @halted: Set if the endpoint has been halted.
 * @halted: Set if the endpoint has been halted.
 * @periodic: Set if this is a periodic ep, such as Interrupt
 * @periodic: Set if this is a periodic ep, such as Interrupt
@@ -177,6 +177,8 @@ struct dwc2_hsotg_req;
 * @fifo_load: The amount of data loaded into the FIFO (periodic IN)
 * @fifo_load: The amount of data loaded into the FIFO (periodic IN)
 * @last_load: The offset of data for the last start of request.
 * @last_load: The offset of data for the last start of request.
 * @size_loaded: The last loaded size for DxEPTSIZE for periodic IN
 * @size_loaded: The last loaded size for DxEPTSIZE for periodic IN
 * @target_frame: Targeted frame num to setup next ISOC transfer
 * @frame_overrun: Indicates SOF number overrun in DSTS
 *
 *
 * This is the driver's state for each registered enpoint, allowing it
 * This is the driver's state for each registered enpoint, allowing it
 * to keep track of transactions that need doing. Each endpoint has a
 * to keep track of transactions that need doing. Each endpoint has a
@@ -213,7 +215,9 @@ struct dwc2_hsotg_ep {
	unsigned int            periodic:1;
	unsigned int            periodic:1;
	unsigned int            isochronous:1;
	unsigned int            isochronous:1;
	unsigned int            send_zlp:1;
	unsigned int            send_zlp:1;
	unsigned int            has_correct_parity:1;
	unsigned int            target_frame;
#define TARGET_FRAME_INITIAL   0xFFFFFFFF
	bool			frame_overrun;


	char                    name[10];
	char                    name[10];
};
};
Loading