Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5328f35b authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

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



Felipe writes:

usb: patches for v3.13

Final conversions to configfs for mass storage, acm_ms, and
multi gadgets.

MUSB should now work out of the box on AM335x-based boards
(beagle bone white and black) with DMA thanks to Sebastian's
work.

We can now enable VERBOSE_DEBUG on builds of drivers/usb/gadget/
by selecting CONFIG_USB_GADGET_VERBOSE.

s3c-hsotg got quite a few non-critical fixes but also learned
a few new tricks (isochronous transfers, multi count support).

The Marvel USB3 Controller driver got a memory leak fix.

devm_usb_get_phy() learned not to return NULL, ever.

Other than these patches, we have the usual set of cleanups
ranging from removal of unnecessary *_set_drvdata() to using
SIMPLE_DEV_PM_OPS.

Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
parents e3967e7b 80d7d8a7
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
What:		/config/usb-gadget/gadget/functions/mass_storage.name
Date:		Oct 2013
KenelVersion:	3.13
Description:
		The attributes:

		stall		- Set to permit function to halt bulk endpoints.
				Disabled on some USB devices known not to work
				correctly. You should set it to true.
		num_buffers	- Number of pipeline buffers. Valid numbers
				are 2..4. Available only if
				CONFIG_USB_GADGET_DEBUG_FILES is set.

What:		/config/usb-gadget/gadget/functions/mass_storage.name/lun.name
Date:		Oct 2013
KenelVersion:	3.13
Description:
		The attributes:

		file		- The path to the backing file for the LUN.
				Required if LUN is not marked as removable.
		ro		- Flag specifying access to the LUN shall be
				read-only. This is implied if CD-ROM emulation
				is enabled as well as when it was impossible
				to open "filename" in R/W mode.
		removable	- Flag specifying that LUN shall be indicated as
				being removable.
		cdrom		- Flag specifying that LUN shall be reported as
				being a CD-ROM.
		nofua		- Flag specifying that FUA flag
				in SCSI WRITE(10,12)
+3 −4
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ Optional properties:

- vcc-supply: phandle to the regulator that provides RESET to the PHY.

- reset-supply: phandle to the regulator that provides power to the PHY.
- reset-gpios: Should specify the GPIO for reset.

Example:

@@ -25,10 +25,9 @@ Example:
		clocks = <&osc 0>;
		clock-names = "main_clk";
		vcc-supply = <&hsusb1_vcc_regulator>;
		reset-supply = <&hsusb1_reset_regulator>;
		reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
	};

hsusb1_phy is a NOP USB PHY device that gets its clock from an oscillator
and expects that clock to be configured to 19.2MHz by the NOP PHY driver.
hsusb1_vcc_regulator provides power to the PHY and hsusb1_reset_regulator
controls RESET.
hsusb1_vcc_regulator provides power to the PHY and GPIO 7 controls RESET.
+0 −6
Original line number Diff line number Diff line
@@ -289,18 +289,12 @@ static struct regulator_consumer_supply beagle_vsim_supply[] = {

static struct gpio_led gpio_leds[];

/* PHY's VCC regulator might be added later, so flag that we need it */
static struct usb_phy_gen_xceiv_platform_data hsusb2_phy_data = {
	.needs_vcc = true,
};

static struct usbhs_phy_data phy_data[] = {
	{
		.port = 2,
		.reset_gpio = 147,
		.vcc_gpio = -1,		/* updated in beagle_twl_gpio_setup */
		.vcc_polarity = 1,	/* updated in beagle_twl_gpio_setup */
		.platform_data = &hsusb2_phy_data,
	},
};

+9 −9
Original line number Diff line number Diff line
@@ -435,6 +435,7 @@ int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)
	struct platform_device *pdev;
	char *phy_id;
	struct platform_device_info pdevinfo;
	struct usb_phy_gen_xceiv_platform_data nop_pdata;

	for (i = 0; i < num_phys; i++) {

@@ -455,11 +456,18 @@ int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)
			return -ENOMEM;
		}

		/* set platform data */
		memset(&nop_pdata, 0, sizeof(nop_pdata));
		if (gpio_is_valid(phy->vcc_gpio))
			nop_pdata.needs_vcc = true;
		nop_pdata.gpio_reset = phy->reset_gpio;
		nop_pdata.type = USB_PHY_TYPE_USB2;

		/* create a NOP PHY device */
		memset(&pdevinfo, 0, sizeof(pdevinfo));
		pdevinfo.name = nop_name;
		pdevinfo.id = phy->port;
		pdevinfo.data = phy->platform_data;
		pdevinfo.data = &nop_pdata;
		pdevinfo.size_data =
			sizeof(struct usb_phy_gen_xceiv_platform_data);
		scnprintf(phy_id, MAX_STR, "usb_phy_gen_xceiv.%d",
@@ -474,14 +482,6 @@ int usbhs_init_phys(struct usbhs_phy_data *phy, int num_phys)

		usb_bind_phy("ehci-omap.0", phy->port - 1, phy_id);

		/* Do we need RESET regulator ? */
		if (gpio_is_valid(phy->reset_gpio)) {
			scnprintf(rail_name, MAX_STR,
					"hsusb%d_reset", phy->port);
			usbhs_add_regulator(rail_name, phy_id, "reset",
						phy->reset_gpio, 1);
		}

		/* Do we need VCC regulator ? */
		if (gpio_is_valid(phy->vcc_gpio)) {
			scnprintf(rail_name, MAX_STR, "hsusb%d_vcc", phy->port);
+0 −1
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ struct usbhs_phy_data {
	int reset_gpio;
	int vcc_gpio;
	bool vcc_polarity;	/* 1 active high, 0 active low */
	void *platform_data;
};

extern void usb_musb_init(struct omap_musb_board_data *board_data);
Loading