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

Commit cbb20132 authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "usb: dwc3: drop FIFO resizing logic"" into msm-4.8

parents 396c2647 a8e4de6e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ Optional properties:
 - phys: from the *Generic PHY* bindings
 - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
	or "usb3-phy".
 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
 - snps,disable_scramble_quirk: true when SW should disable data scrambling.
	Only really useful for FPGA builds.
@@ -54,8 +55,6 @@ Optional properties:
	register for post-silicon frame length adjustment when the
	fladj_30mhz_sdbnd signal is invalid or incorrect.

 - <DEPRECATED> tx-fifo-resize: determines if the FIFO *has* to be reallocated.

This is usually a subnode to DWC3 glue to which it is connected.

dwc3@4a030000 {
@@ -63,4 +62,5 @@ dwc3@4a030000 {
	reg = <0x4a030000 0xcfff>;
	interrupts = <0 92 4>
	usb-phy = <&usb2_phy>, <&usb3,phy>;
	tx-fifo-resize;
};
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ Example device nodes:
				interrupts = <0 205 0x4>;
				phys = <&hs_phy>, <&ss_phy>;
				phy-names = "usb2-phy", "usb3-phy";
				tx-fifo-resize;
				dr_mode = "host";
			};
		};
+3 −0
Original line number Diff line number Diff line
@@ -1208,6 +1208,9 @@ static int dwc3_probe(struct platform_device *pdev)
	dwc->usb3_lpm_capable = device_property_read_bool(dev,
				"snps,usb3_lpm_capable");

	dwc->needs_fifo_resize = device_property_read_bool(dev,
				"tx-fifo-resize");

	dwc->disable_scramble_quirk = device_property_read_bool(dev,
				"snps,disable_scramble_quirk");
	dwc->u2exit_lfps_quirk = device_property_read_bool(dev,
+5 −0
Original line number Diff line number Diff line
@@ -852,7 +852,9 @@ struct dwc3_scratchpad_array {
 * 	1	- utmi_l1_suspend_n
 * @is_fpga: true when we are using the FPGA board
 * @pending_events: true when we have pending IRQs to be handled
 * @needs_fifo_resize: not all users might want fifo resizing, flag it
 * @pullups_connected: true when Run/Stop bit is set
 * @resize_fifos: tells us it's ok to reconfigure our TxFIFO sizes.
 * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround
 * @start_config_issued: true when StartConfig command has been issued
 * @three_stage_setup: set if we perform a three phase setup
@@ -1020,7 +1022,9 @@ struct dwc3 {
	unsigned		is_utmi_l1_suspend:1;
	unsigned		is_fpga:1;
	unsigned		pending_events:1;
	unsigned		needs_fifo_resize:1;
	unsigned		pullups_connected:1;
	unsigned		resize_fifos:1;
	unsigned		setup_packet_pending:1;
	unsigned		three_stage_setup:1;
	unsigned		usb3_lpm_capable:1;
@@ -1227,6 +1231,7 @@ struct dwc3_gadget_ep_cmd_params {
/* prototypes */
void dwc3_set_mode(struct dwc3 *dwc, u32 mode);
u32 dwc3_core_fifo_space(struct dwc3_ep *dep, u8 type);
int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc);

/* check whether we are on the DWC_usb31 core */
static inline bool dwc3_is_usb31(struct dwc3 *dwc)
+9 −0
Original line number Diff line number Diff line
@@ -593,6 +593,9 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl)
			reg = dwc3_readl(dwc->regs, DWC3_DCTL);
			reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA);
			dwc3_writel(dwc->regs, DWC3_DCTL, reg);

			dwc->resize_fifos = true;
			dwc3_trace(trace_dwc3_ep0, "resize FIFOs flag SET");
		}
		break;

@@ -1031,6 +1034,12 @@ static int dwc3_ep0_start_control_status(struct dwc3_ep *dep)

static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep)
{
	if (dwc->resize_fifos) {
		dwc3_trace(trace_dwc3_ep0, "Resizing FIFOs");
		dwc3_gadget_resize_tx_fifos(dwc);
		dwc->resize_fifos = 0;
	}

	WARN_ON(dwc3_ep0_start_control_status(dep));
}

Loading