| Commit message (Collapse) | Author | Age |
| ... | |
| |\ \ \ \ \ \ \ \ \ \
| | |/ / / / / / / /
| |/| | | | | | | | |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Ensure that a few of the parameters (SELECTED_PDO, REQUESTED_PDO,
RDO) are properly cleared out during hard reset and a uevent
update is sent to notify userspace clients.
Also, don't reset src_cap_id upon disconnect. This makes it a
a monotonically increasing value upon every connection so that
clients can distinguish when a new PD session is established.
Demote it to a u16 in order to have a smaller wraparound (65535).
Change-Id: I622ad1155b3680d3f616d5e9a835d4c6cbca3636
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| |\| | | | | | | | | |
|
| | | |_|_|/ / / / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
When sending a request through the 'select_pdo' sysfs file,
make sure the request has gone through and is acknowledged
by the source before returning. This allows for checking if
the request was rejected so that an error can be returned.
Rename the 'swap_complete' completion variable to 'is_ready'
so it can be reused in this context. Also add a mutex so that
select_pdo will not contend with a dual_role swap.
Change-Id: Ie8b088faa15c67915e3bd96972b4f59f0cc66afe
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
highest possible LPM NYET threshold value is 0xf
because LPM_NYET_THRES uses 4 bits in DWC_USB3_DCTL
register. Value is incorrectly written as 0xff which
is overriding the value of other register bits.
Change-Id: Ib15fdfd01bf75fe6291b8fd2b0317e9b4c0c97c9
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| | |_|/ / / / / / /
|/| | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Commit b76105e359a7 ("usb: pd: Read sink capabilities from device
tree") added support in usbpd driver to pass sink capablities from
device tree. But it introduced bug in case of no sink capablities
passed from device tree as in this case, device_property_read_u32_array()
returns -EINVAL. Due to this, usbpd driver probe fails as usbpd_create()
returns errors. Fix this issue by checking if return value > 0 and then
only try to read sink capablities from device tree. If not, use default
sink capabliites defined in usbpd driver.
Change-Id: I51beeba282c6e067881c664d38c2657843a1c716
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Currently driver does read max Transfer size from RNDIS_MSG_INIT
control message, when received from Host, but it is wrongly being
decoded due to wrong offset used. This leads dl_aggregation size set to
0 instead of required rndis_dl_aggr_size. Hence fix this by incrementing
tmp pointer for requestID to use correct offset to read max Transfer
size and set DL aggregation size correctly.
Also pass maxpkt_per_xfer as zero to rndis_qc_bind_config_vendor() so that
UL aggregation buffer size will be set to aggregation of 15 packets. This
helps in improving througput numbers.
Change-Id: Icc7506b57d26f82e6bf81f9d7dc1515cfbae6c82
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \
| |_|_|/ / / / / / /
|/| | | | | | | | | |
|
| | | |/ / / / / / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Since max_interrupters flag includes primary interrupter as well,
update the bound check when this flag is being used for
secondary event ring clean-up/allocation.
Change-Id: I044c5a89fe17779eb847981cbf27e99b97e37d80
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
commit 1eec2157d84dcb ("usb: dwc3: Update core clock rate based on
USB port speed.") only sets clk rate for HS/FS/LS device add notification.
In case super speed device is plugged in after LS/FS/HS device unplug in
absence of runtime suspend, core clk rate remains at high speed core clk
rate. Fix this issue by setting the core clk rate back to default when
a device is being removed from root hub.
Change-Id: I0ac37b7ff08a9a297441304eb2cfaff398d44bb9
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
PC tools can use this value to identify protocol used
by diag interface. For example, diag interface can use
firehouse or sahara or plain diag protocols. Update the
protocol value to represent plain diag.
Change-Id: Ifba80a21a99575d1fcdb54647319aea0822b8898
Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
This reverts commit 32e9bf0e7cde2a440a9442d2c92bb7c4bf35dd80
("usb: xhci: Set interrupt moderation for host mode to 4000(1ms)") to
restore default imod value in XHCI driver as IMOD value is now passed
from DT for required targets.
CRs-fixed: 1019219
Change-Id: I8bc3c2217cafde0e767671e192f6563f89712575
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ \
| |_|_|/ / / / / / / /
|/| | | | | | | | | | |
|
| | | |_|/ / / / / / /
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
If disconnect happens before connect_work start executing, then
there is a chance that connect_work returns with port_usb NULL.
Due to this, port->is_connected will be NULL and disconnect_work
returns with this check, but not decremented pm_usage count, which
is incremented before scheduling connect_work in ipa_data_connect.
Hence fix this by decrementing pm_usage count in connect_work if
port_usb is NULL.
Change-Id: Ic60f2addcf07375429e0858d3c7a376a35132750
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Add a device tree property to allow specifying the supported
set of sink capabilities. If not specified, fall back to a
single capability of 5V @ 3A.
Change-Id: I394061d9f3070099e35b651ce4b63a7993343bf1
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ \
| |_|_|_|/ / / / / / /
|/| | | | | | | | | | |
|
| | |/ / / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
When device controller gets an LPM request from the host during a
control transfer, it is not able to initiate remote wakeup
automatically. As a result it accepts the request, goes to L1 state,
and does not initiate wakeup to exit L1 state. Since host expects
the device to do a remote wakeup from L1 state and the device does
not initiate the wakeup, the host continues to wait and starts
enumeration again because control transfer timeout occurs. Fix this
issue by initiating remote wakeup before queuing the ep0 request
if bus is in L1 suspend state. Also add a counter which gets
incremented upon device sending remote wakeup before queuing ep0
request.
Change-Id: I307ad94d4cb40ce2bd85425f3a1c6316cded52b8
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \
| | |_|/ / / / / / /
| |/| | | | | | | | |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
XHCI allows interrupt moderation using imod_interval at 250ns
increments. Add DT parameter to specify this imod_value for
targets mainly with single CPU to reduce CPU interrupt loads.
This allows better balance between CPU usage and performance.
CRs-fixed: 1019219
Change-Id: Id479c162da6492caff4dd83de4054fee63b6abc5
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \
| |_|_|/ / / / / / /
|/| | | | | | | | | |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
In some cases it is useful to manually force the controller to
run at certain speeds (USB 2.0 or USB 3.0 speeds). For example,
EUD (Emebedded USB Debug) can only work when controller is
operating in USB 2.0 speeds. User can force USB 2.0 if EUD is
required.
Change-Id: Id022f372014a9218537bd1b5477d4555aff4578c
Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ |
|
| | | |/ / / / / / / /
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
This allows ccid device to enumerate using usb compostion
driver supporting config file system. Also fix compliation
errors.
Change-Id: I363b8f967781ab162fbd7ded0b397c86cf3d3fc5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ |
|
| | | |_|/ / / / / / /
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
During U1 exit, the controller might send LFPS ping at the same
time when the P1 to P0 transition occurs(GUSB3PIPECTL[27] = '0').
The de-assertion of the pipe_TxElecIdle signal during the
pipe_PowerDown signal transition violates the PIPE specification.
Fix this by setting GUSB3PIPECTL[27] = '1' so that there is no
pipe_PowerDown transition during U1 exit. This fix is applicable
for DWC3 revision 3.10 or older.
Change-Id: I7708d42c0f8b67d315be59e9ff9f04ccb74b9b5c
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \
| | |_|/ / / / / / /
| |/| | | | | | | | |
|
| | | |/ / / / / / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Maximum hardware supported speed flag limits the maximum speed
of the usb controller to high or super. Adding this additional
flag as maximum_speed flag can be changed from different sources
such as power delivery stack.
Change-Id: I18f414e822b5525fe848a48384fac102cdae7b03
Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | |/ / / / / / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The Type-C spec requires that VBUS must not be enabled as a source
if there is already a voltage > VSafe0V. To address this, add a
polling loop that checks PROP_VOLTAGE_NOW to ensure it has fallen
below 0.8V before enabling the VBUS regulator.
Change-Id: Idd3ebd185d6bbed15b6ac700cb2cf4af428210ee
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \
| |_|/ / / / / / /
|/| | | | | | | | |
|
| | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
PD 3.0 version 1.1 includes a new Programmable Power Supply
type that can be sent as an Augmented Power Data Object in a
Source Capabilities message. Add sink-side support to request an
Augmented PDO which also includes specifying the source's output
output voltage and current. For userspace, overload the 'select_pdo'
sysfs attribute by allowing voltage (uV) and current (uA) to be
optionally written, with the following syntax:
echo <src cap id> <PDO> [<uV> <uA>] > select_pdo
Also rename the 'rdo' file to 'rdo_h' as it is already in human-
readable format, enhance it with APDO values, and make 'rdo' simply
spit out the hex value.
Change-Id: If861b0f8f2f04d06299f096ff52f1e1961c1daa9
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Set maximum revision support for 3.0 when starting in
PE_SNK_STARTUP state. If the partner source only supports
2.0, the spec_rev will be downgraded when receiving the
first Source_Capabilities message in phy_msg_received().
Add a helper to check for SinkTxOk (i.e. Rp indicates 3A)
before initiating an AMS sequence from PE_SNK_READY.
Currently such sequences are limited to power re-negotiation,
sink-initiated data/power role swap, and initiating VDMs.
Change-Id: I781c8826ded6e407297d50579d90bfd24783b164
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| | |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
To allow for future support of PD specification revision
3.0, update the PD_MSG_HDR macro to specify the revision
bits in each outgoing message header. The revision itself
will be kept in the struct pdphy. Also export a PD PHY
function to update the same for the auto-GoodCRC responses.
For now, only Rev 2.0 is supported.
Change-Id: I36e1b85f2e67597bd4fa8f0dd277374553451949
Signed-off-by: Jack Pham <jackp@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This snapshot is taken as of msm-3.18 commit:
bf10764e3d1 (Merge "ARM: dts: msm: Update APC MEM ACC settings for
msm8920")
This USB CCID function driver will be a transport layer between
the userspace CCID component and the Windows Host. Data and control
commands from the Windows Host will be sent to the userspace
component and vice-versa.
Change-Id: Ie5eeda1550ac30cac47fd3799021598eac550652
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | |/ / / / / / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Core clock rate can be reduced or increased based on operating
speeds. Controller starts in Super Speed mode (higher core clock
rate) and it will operate in super or high or full or low speed
upon device connection. Update the core clock rate based on bus
speed to allows system to operate in better low power state (such
as SVS1/SVS2 based on system configuration). High Speed rate for
core clock is programmed from dtsi. Super Speed rate will be used
if High speed core clock rate is not provided for backward
compatibility.
Change-Id: I265149d34de19ab50bd7f106a670a7112bfae384
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Reset and initiate controller and phy low power mode to bring them to
known good state during boot up. This will avoid any leakage and makes
sure that DP/DM lines are in high-z state.
Change-Id: I55dbe8d42ce9e56046bd7c99e17c2ec6f368c9a6
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
There is a possibility of race between ep0 setup phase completion
handler and mass storage thread. Upon set_alt if thread gets a
chance to run before dwc3_ep0_delegate_req() returns
USB_GADGET_DELAYED_STATUS and sets delayed_status flag to true status
phase request never gets queued. This results into device enumeration
failure followed by a bus resets. Fix this issue by adding delay before
calling usb_composite_setup_continue() to queue the status phase request.
Change-Id: Iec6cf668053af310be5171d19d204fb452e01f2a
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \
| |_|/ / / / / / / /
|/| | | | | | | | | |
|
| | | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Currently usb function instance driver depends on diag char driver to
create the channel (using usb_diag_open api). Failing to create channel
can result in enumeration failure. Avoid this dependency by creating
diag channel from function instance if not available. Same channel
will be reused when diag char driver creates/opens the channel.
Change-Id: I11debd0189d81542762af22b3d203728d2266a42
Signed-off-by: Liangliang Lu <luliang@codeaurora.org>
|
| |\ \ \ \ \ \ \ \ \ \ |
|