msm: net: ecm: state machine change for early UP state

This change add the support for early state change
in ECM_IPA network driver.
It is needed because QTI can't be notified
for netif_carrier_on() while
the interface is not in UP state.

Change-Id: I24cbbb3b2ed94e631250973a4a8a7361f312de7f
Signed-off-by: Talel Atias <tatias@codeaurora.org>
usb: usb_bam: protect USB BAM connect/disconnect flow

The USB BAM driver was designed to control both the HSUSB
BAM core and the HSIC BAM core. Since of code reuse,
some of the logic is reused for both HSUSB BAM scenarios
and for HSIC BAM scenarios.

This change fixes a case in which connect/disconnect scenario
for the HSIC BAM breaks the connection state of the HSUSB BAM.

This bug is simply caused because there is no protection on
some variables that reflect the HSUSB connection state.
Fix this by protect those variables to be changed only when
connecting or disconnecting the HSUSB BAM pipes.

CRs-fixed: 499521

Change-Id: I2ad9f2eade8ede57d8597bd098c0baed50534fdc
Signed-off-by: Lena Salman <esalman@codeaurora.org>
msm: ipa: fix ipa data path crash

Crash is seen during WLAN bi-directional high throughput
use-case (APPS <-> WLAN STA). Work being queued from SPS
TX completion ISR was extracted from SPS callback argument
and was not valid is some corner-cases. Use a static work
item instead.

Change-Id: Iab801cb23951ce6c5cc7c6e2285974999434fafe
Signed-off-by: Ravi Gummadidala <rgummadi@codeaurora.org>
msm: ipa: replace sending TAG IC with a 100us sleep

IPA HW appears to have issues handling TAG immediate command
during some corner-cases. TAG is sent as part of disconnect
procedure to give time for in-process packets to get processed.
Replace the TAG with a wait of 100us.

Change-Id: I8b04cd80639e3810078da2b7021d7693ae228697
Signed-off-by: Ravi Gummadidala <rgummadi@codeaurora.org>
arm/dt: 9625: Fix USB QDSS BAM FIFO parameters

Fix wrong QDSS->USB BAM FIFO parameters.

Change-Id: If754ba6e713b64b2a86c1f2657721ec6b35c6adc
Signed-off-by: Amit Blay <ablay@codeaurora.org>
Merge "msm: ipa: fix ipa data path crash"
Merge "msm: ipa: replace sending TAG IC with a 100us sleep"
Merge "usb: usb_bam: protect USB BAM connect/disconnect flow"
Merge "msm: net: ecm: state machine change for early UP state"
usb: gadget: ci13xxx_udc: pass platform data from msm_otg driver

This change fixes the way ci13xxx_msm driver is probed. The
driver will not be created by device tree, but will be created
by the msm_otg.

Change-Id: I82f9b0ccb601f12364c3b6e3c681dc607d3f9af5
Signed-off-by: Amit Blay <ablay@codeaurora.org>
usb: gadget: Fix datastall upon USB cable disconnect

Original bug was a datastall in the IPA upon USB
cable disconnect during high throughput traffic.
It was caused due to IPA continuing sending data to USB
without USB being able to consume the data (disconnected cable),
causing a stall in the IPA hardware.

The solution proposed here is to first disconnect the pipes
and only afterwards disconnect the tethering bridge that deletes
the IPA configuration for the connection.

CRs-fixed: 500370

Change-Id: I6d8524053da593775c75ddc1ef95f377e30aaafd
Signed-off-by: Lena Salman <esalman@codeaurora.org>
msm: ipa: a2_service: race condition fix

This issue is a rare race condition which appears after ~3 hours of
testing and causes a kernel crash.

Fixes the issue reported in droidbug-60712.

Change-Id: Id6d313088f7873ef3f47edeb25c54528691ece5b
Signed-off-by: Gidon Studinski <gidons@codeaurora.org>
Merge "msm: ipa: a2_service: race condition fix"
usb: usb_bam: Don't wait for consumer request on connect pipes

On certain compositions, ECM for instance, consumer is not requested
on pipe connection and thus the part of the handshake that waits
for consumer request causes a timeout and a delay of 10 seconds
before network connection can be established.
In a revisited design for IPA-USB resource handshake,
USB shall not wait for USB_CONS resource, thus avoiding the
delay on ECM compositions.

Change-Id: I7fb281b871a7bc471d73a7d163c8f7b8861249a8
CRs-fixed: 499480
Signed-off-by: Devendra Patel <cdevenp@codeaurora.org>
msm: ipa: Fix Tos value issue in IPA

Fix TOS mast-filtering rules configured in HW,
the QOS value is set in the upper 3 bits of the
TOS field. The other bits in the TOS field need
to be ignored.

Change-Id: Id55bb101b9f19dae0210d0c0f958a1be68506f75
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Merge "arm/dt: 9625: Fix USB QDSS BAM FIFO parameters"
Merge "usb: gadget: ci13xxx_udc: pass platform data from msm_otg driver"
Merge "usb: gadget: Fix datastall upon USB cable disconnect"
Merge "usb: usb_bam: Don't wait for consumer request on connect pipes"
Merge "msm: ipa: Fix Tos value issue in IPA"