Revision tags: v5.7.10, v5.4.53, v5.4.52, v5.7.9 |
|
#
f41ca26b |
| 13-Jul-2020 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: core: removed overwriting some error code
Some error code can be preserved, so we can remove overwriting error code returned by some functions.
Signed-off-by: Pawel Laszczak <pawell@cad
usb: cdns3: core: removed overwriting some error code
Some error code can be preserved, so we can remove overwriting error code returned by some functions.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
5c2cf30f |
| 13-Jul-2020 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: core: removed 'goto not_otg'
Patch removes 'goto not_otg' instruction from cdns3_hw_role_state_machine function.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Felipe
usb: cdns3: core: removed 'goto not_otg'
Patch removes 'goto not_otg' instruction from cdns3_hw_role_state_machine function.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
27afe166 |
| 13-Jul-2020 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: drd: removed not needed variables initialization
Patch remove some variables initialization from core.c and drd.c file.
Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Pawel
usb: cdns3: drd: removed not needed variables initialization
Patch remove some variables initialization from core.c and drd.c file.
Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
b20aecff |
| 13-Jul-2020 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: core: removed cdns3_get_current_role_driver function
Function is not used in driver so it can be removed.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Reviewed-by: Peter Chen <pet
usb: cdns3: core: removed cdns3_get_current_role_driver function
Function is not used in driver so it can be removed.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
Revision tags: v5.7.8, v5.4.51 |
|
#
6e29619f |
| 02-Jul-2020 |
Lee Jones <lee.jones@linaro.org> |
usb: cdns3: core: Fix incorrect formatting and misspelled function arg docs
There are 3 misspellings and 1 incorrect format used in this file's kerneldoc function headers. Fixing them squashes the
usb: cdns3: core: Fix incorrect formatting and misspelled function arg docs
There are 3 misspellings and 1 incorrect format used in this file's kerneldoc function headers. Fixing them squashes the following W=1 kernel build warnings:
drivers/usb/cdns3/gadget.c:653: warning: Function parameter or member 'priv_ep' not described in 'cdns3_wa2_descmissing_packet' drivers/usb/cdns3/gadget.c:653: warning: Excess function parameter 'priv_dev' description in 'cdns3_wa2_descmissing_packet' drivers/usb/cdns3/gadget.c:1088: warning: Function parameter or member 'request' not described in 'cdns3_ep_run_transfer' drivers/usb/cdns3/gadget.c:2574: warning: Function parameter or member 'priv_ep' not described in '__cdns3_gadget_ep_set_halt' drivers/usb/cdns3/gadget.c:2574: warning: Excess function parameter 'ep' description in '__cdns3_gadget_ep_set_halt' drivers/usb/cdns3/gadget.c:2595: warning: Function parameter or member 'priv_ep' not described in '__cdns3_gadget_ep_clear_halt' drivers/usb/cdns3/gadget.c:2595: warning: Excess function parameter 'ep' description in '__cdns3_gadget_ep_clear_halt' drivers/usb/cdns3/gadget.c:2898: warning: Function parameter or member 'priv_dev' not described in 'cdns3_init_eps' drivers/usb/cdns3/gadget.c:2898: warning: Excess function parameter 'cdns3' description in 'cdns3_init_eps' drivers/usb/cdns3/gadget.c:3210: warning: Function parameter or member 'cdns' not described in 'cdns3_gadget_init'
Cc: Pawel Laszczak <pawell@cadence.com> Cc: Peter Chen <peter.chen@nxp.com> Cc: Roger Quadros <rogerq@ti.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20200702144625.2533530-14-lee.jones@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.4.50, v5.7.7, v5.4.49, v5.7.6, v5.7.5, v5.4.48, v5.7.4, v5.7.3, v5.4.47, v5.4.46, v5.7.2, v5.4.45, v5.7.1, v5.4.44, v5.7, v5.4.43, v5.4.42, v5.4.41, v5.4.40, v5.4.39, v5.4.38, v5.4.37, v5.4.36, v5.4.35, v5.4.34, v5.4.33, v5.4.32, v5.4.31, v5.4.30, v5.4.29 |
|
#
27905be2 |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: change "cdsn3" to"cdns3"
And delete cdsn3_hw_role_state_machine declare which doesn't be needed.
Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Peter Chen <peter.chen@nxp.com
usb: cdns3: change "cdsn3" to"cdns3"
And delete cdsn3_hw_role_state_machine declare which doesn't be needed.
Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
160c1634 |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: delete role_override
In short, we have three kinds of role switches: - Based on SoC: ID and VBUS - Based on external connnctor, eg, Type-C or GPIO Connector - Based on user choices throu
usb: cdns3: delete role_override
In short, we have three kinds of role switches: - Based on SoC: ID and VBUS - Based on external connnctor, eg, Type-C or GPIO Connector - Based on user choices through sysfs
Since HW handling and usb-role-switch handling are at different places, we do not need role_override any more, and this flag could not judge external connector case well.
With role_override deleted, We use cdns3_hw_role_switch for the 1st use case, and usb-role-switch for the 2nd and 3rd cases.
Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
23d6dd6c |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: core: get role switch node from firmware
After that, the role switch device (eg, Type-C device) could call cdns3_role_set to finish the role switch.
Reviewed-by: Roger Quadros <rogerq@t
usb: cdns3: core: get role switch node from firmware
After that, the role switch device (eg, Type-C device) could call cdns3_role_set to finish the role switch.
Reviewed-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
0c7299d6 |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: change "cdsn3" to"cdns3"
And delete cdsn3_hw_role_state_machine declare which doesn't be needed.
Signed-off-by: Peter Chen <peter.chen@nxp.com> Reviewed-by: Roger Quadros <rogerq@ti.com
usb: cdns3: change "cdsn3" to"cdns3"
And delete cdsn3_hw_role_state_machine declare which doesn't be needed.
Signed-off-by: Peter Chen <peter.chen@nxp.com> Reviewed-by: Roger Quadros <rogerq@ti.com> Link: https://lore.kernel.org/r/20200331081005.32752-3-peter.chen@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
85820de1 |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: delete role_override
In short, we have three kinds of role switches: - Based on SoC: ID and VBUS - Based on external connnctor, eg, Type-C or GPIO Connector - Based on user choices throu
usb: cdns3: delete role_override
In short, we have three kinds of role switches: - Based on SoC: ID and VBUS - Based on external connnctor, eg, Type-C or GPIO Connector - Based on user choices through sysfs
Since HW handling and usb-role-switch handling are at different places, we do not need role_override any more, and this flag could not judge external connector case well.
With role_override deleted, We use cdns3_hw_role_switch for the 1st use case, and usb-role-switch for the 2nd and 3rd cases.
Signed-off-by: Peter Chen <peter.chen@nxp.com> Reviewed-by: Roger Quadros <rogerq@ti.com> Link: https://lore.kernel.org/r/20200331081005.32752-2-peter.chen@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
0f2d7761 |
| 31-Mar-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: core: get role switch node from firmware
After that, the role switch device (eg, Type-C device) could call cdns3_role_set to finish the role switch.
Signed-off-by: Peter Chen <peter.che
usb: cdns3: core: get role switch node from firmware
After that, the role switch device (eg, Type-C device) could call cdns3_role_set to finish the role switch.
Signed-off-by: Peter Chen <peter.chen@nxp.com> Reviewed-by: Roger Quadros <rogerq@ti.com> Link: https://lore.kernel.org/r/20200331081005.32752-1-peter.chen@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.6, v5.4.28, v5.4.27, v5.4.26, v5.4.25, v5.4.24 |
|
#
bce3052f |
| 02-Mar-2020 |
Heikki Krogerus <heikki.krogerus@linux.intel.com> |
usb: roles: Provide the switch drivers handle to the switch in the API
The USB role callback functions had a parameter pointing to the parent device (struct device) of the switch. The assumption was
usb: roles: Provide the switch drivers handle to the switch in the API
The USB role callback functions had a parameter pointing to the parent device (struct device) of the switch. The assumption was that the switch parent is always the controller. Firstly, that may not be true in every case, and secondly, it prevents us from supporting devices that supply multiple muxes.
Changing the first parameter of usb_role_switch_set_t and usb_role_switch_get_t from struct device to struct usb_role_switch.
Cc: Peter Chen <Peter.Chen@nxp.com> Cc: Felipe Balbi <balbi@kernel.org> Cc: Chunfeng Yun <chunfeng.yun@mediatek.com> Cc: Bin Liu <b-liu@ti.com> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://lore.kernel.org/r/20200302135353.56659-6-heikki.krogerus@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.4.23, v5.4.22, v5.4.21, v5.4.20, v5.4.19, v5.4.18, v5.4.17, v5.4.16, v5.5, v5.4.15, v5.4.14, v5.4.13, v5.4.12, v5.4.11, v5.4.10, v5.4.9, v5.4.8, v5.4.7, v5.4.6, v5.4.5, v5.4.4, v5.4.3, v5.3.15, v5.4.2, v5.4.1, v5.3.14, v5.4, v5.3.13, v5.3.12, v5.3.11, v5.3.10, v5.3.9, v5.3.8, v5.3.7 |
|
#
97944769 |
| 17-Oct-2019 |
Roger Quadros <rogerq@ti.com> |
usb: cdns3: Error out if USB_DR_MODE_UNKNOWN in cdns3_core_init_role()
USB_DR_MODE_UNKNOWN should be treated as error as it is done in cdns3_drd_update_mode().
Fixes: 02ffc26df96b ("usb: cdns3: fix
usb: cdns3: Error out if USB_DR_MODE_UNKNOWN in cdns3_core_init_role()
USB_DR_MODE_UNKNOWN should be treated as error as it is done in cdns3_drd_update_mode().
Fixes: 02ffc26df96b ("usb: cdns3: fix cdns3_core_init_role()") Signed-off-by: Roger Quadros <rogerq@ti.com> Link: https://lore.kernel.org/r/20191017075801.8734-1-rogerq@ti.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.3.6, v5.3.5 |
|
#
02ffc26d |
| 07-Oct-2019 |
Roger Quadros <rogerq@ti.com> |
usb: cdns3: fix cdns3_core_init_role()
At startup we should trigger the HW state machine only if it is OTG mode. Otherwise we should just start the respective role.
Initialize idle role by default.
usb: cdns3: fix cdns3_core_init_role()
At startup we should trigger the HW state machine only if it is OTG mode. Otherwise we should just start the respective role.
Initialize idle role by default. If we don't do this then cdns3_idle_role_stop() is not called when switching to host/device role and so lane switch mechanism doesn't work. This results to super-speed device not working in one orientation if it was plugged before driver probe.
Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com> Link: https://lore.kernel.org/r/20191007121601.25996-2-rogerq@ti.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.3.4, v5.3.3, v5.3.2, v5.3.1, v5.3, v5.2.14, v5.3-rc8, v5.2.13, v5.2.12 |
|
#
815cdcc3 |
| 03-Sep-2019 |
Wei Yongjun <weiyongjun1@huawei.com> |
usb: cdns3: Remove redundant dev_err call in cdns3_probe()
There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message.
Signed-off-by:
usb: cdns3: Remove redundant dev_err call in cdns3_probe()
There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Link: https://lore.kernel.org/r/20190903153625.85691-1-weiyongjun1@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.2.11 |
|
#
7733f6c3 |
| 26-Aug-2019 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: Add Cadence USB3 DRD Driver
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which can be instantiate
usb: cdns3: Add Cadence USB3 DRD Driver
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which can be instantiated as Dual-Role Device (DRD), Peripheral Only and Host Only (XHCI)configurations.
The current driver has been validated with FPGA platform. We have support for PCIe bus, which is used on FPGA prototyping.
The host side of USBSS-DRD controller is compliant with XHCI specification, so it works with standard XHCI Linux driver.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
show more ...
|
Revision tags: v5.2.10, v5.2.9, v5.2.8, v5.2.7, v5.2.6, v5.2.5, v5.2.4, v5.2.3, v5.2.2, v5.2.1, v5.2, v5.1.16 |
|
#
8bc1901c |
| 02-Jul-2019 |
Pawel Laszczak <pawell@cadence.com> |
usb:cdns3 Add Cadence USB3 DRD Driver
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which can be instantiated
usb:cdns3 Add Cadence USB3 DRD Driver
This patch introduce new Cadence USBSS DRD driver to Linux kernel.
The Cadence USBSS DRD Controller is a highly configurable IP Core which can be instantiated as Dual-Role Device (DRD), Peripheral Only and Host Only (XHCI)configurations.
The current driver has been validated with FPGA platform. We have support for PCIe bus, which is used on FPGA prototyping.
The host side of USBSS-DRD controller is compliant with XHCI specification, so it works with standard XHCI Linux driver.
Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
show more ...
|
#
0ff1f975 |
| 23-Nov-2020 |
Roger Quadros <rogerq@ti.com> |
usb: cdns3: fix NULL pointer dereference on no platform data [ Upstream commit 448373d9db1a7000072f65103af19e20503f0c0c ] Some platforms (e.g. TI) will not have any platform data wh
usb: cdns3: fix NULL pointer dereference on no platform data [ Upstream commit 448373d9db1a7000072f65103af19e20503f0c0c ] Some platforms (e.g. TI) will not have any platform data which will lead to NULL pointer dereference if we don't check for NULL pdata. Fixes: 7cea9657756b ("usb: cdns3: add quirk for enable runtime pm by default") Reported-by: Nishanth Menon <nm@ti.com> Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
#
8694c4e2 |
| 28-Sep-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: add quirk for enable runtime pm by default [ Upstream commit 7cea9657756b2c83069a775c0671ff169bce456a ] Some vendors (eg: NXP) may want to enable runtime pm by default f
usb: cdns3: add quirk for enable runtime pm by default [ Upstream commit 7cea9657756b2c83069a775c0671ff169bce456a ] Some vendors (eg: NXP) may want to enable runtime pm by default for power saving, add one quirk for it. Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
#
6b813751 |
| 26-Nov-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: core: fix goto label for error path The usb_role_switch_register has been already called, so if the devm_request_irq has failed, it needs to call usb_role_switch_unregister.
usb: cdns3: core: fix goto label for error path The usb_role_switch_register has been already called, so if the devm_request_irq has failed, it needs to call usb_role_switch_unregister. Fixes: b1234e3b3b26 ("usb: cdns3: add runtime PM support") Signed-off-by: Peter Chen <peter.chen@nxp.com>
show more ...
|
#
6703052f |
| 25-Nov-2020 |
Roger Quadros <rogerq@ti.com> |
usb: cdns3: Fix hardware based role switch Hardware based role switch is broken as the driver always skips it. Fix this by registering for SW role switch only if 'usb-role-switch' p
usb: cdns3: Fix hardware based role switch Hardware based role switch is broken as the driver always skips it. Fix this by registering for SW role switch only if 'usb-role-switch' property is present in the device tree. Fixes: 50642709f659 ("usb: cdns3: core: quit if it uses role switch class") Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Peter Chen <peter.chen@nxp.com>
show more ...
|
Revision tags: v5.8.12, v5.8.11, v5.8.10, v5.8.9, v5.8.8, v5.8.7, v5.8.6, v5.4.62 |
|
#
50642709 |
| 31-Aug-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: core: quit if it uses role switch class If the board uses role switch class for switching the role, it should not depends on SoC OTG hardware siginal any more, so quit early.
usb: cdns3: core: quit if it uses role switch class If the board uses role switch class for switching the role, it should not depends on SoC OTG hardware siginal any more, so quit early. Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
2eae2dfd |
| 15-Sep-2020 |
Pawel Laszczak <pawell@cadence.com> |
usb: cdns3: Enable workaround for USB2.0 PHY Rx compliance test PHY lockup USB2.0 PHY hangs in Rx Compliance test when the incoming packet amplitude is varied below and above the Squelch
usb: cdns3: Enable workaround for USB2.0 PHY Rx compliance test PHY lockup USB2.0 PHY hangs in Rx Compliance test when the incoming packet amplitude is varied below and above the Squelch Level of Receiver during the active packet multiple times. Version 1 of the controller allows PHY to be reset when RX fail condition is detected to work around the above issue. This feature is disabled by default and needs to be enabled using a bit from the newly added PHYRST_CFG register. This patch enables the workaround. There is no way to know controller version before device controller is started and the workaround needs to be applied for both host and device modes, so we rely on a DT property do decide when to apply the workaround. Signed-off-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
b1234e3b |
| 02-Sep-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: add runtime PM support Introduce runtime PM and wakeup interrupt handler for cdns3, the runtime PM is default off since other cdns3 may not implement glue layer support f
usb: cdns3: add runtime PM support Introduce runtime PM and wakeup interrupt handler for cdns3, the runtime PM is default off since other cdns3 may not implement glue layer support for runtime PM. One typical wakeup event use case is xHCI runtime suspend will clear USBCMD.RS bit, after that the xHCI will not trigger any interrupts, so its parent (cdns core device) needs to resume xHCI device when any (wakeup) events occurs at host port. When the controller is in low power mode, the lpm flag will be set. The interrupt triggered later than lpm flag is set considers as wakeup interrupt and handled at cdns_wakeup_irq. Once the wakeup occurs, it first disables interrupt to avoid later interrupt occurrence since the controller is in low power mode at that time, and access registers may be invalid at that time. At wakeup handler, it will call pm_request_resume to wakeup xHCI device, and at runtime resume handler, it will enable interrupt again. The API platform_suspend is introduced for glue layer to implement platform specific PM sequence. Reviewed-by: Pawel Laszczak <pawell@cadence.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|
#
efe2fa08 |
| 02-Sep-2020 |
Peter Chen <peter.chen@nxp.com> |
usb: cdns3: introduce set_phy_power_on{off} APIs Since we have both USB2 and USB3 PHYs for cdns3 controller, it is better we have unity APIs to handle both USB2 and USB3's power, it
usb: cdns3: introduce set_phy_power_on{off} APIs Since we have both USB2 and USB3 PHYs for cdns3 controller, it is better we have unity APIs to handle both USB2 and USB3's power, it could simplify code for error handling and further power management implementation. Reviewed-by: Pawel Laszczak <pawell@cadence.com> Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
show more ...
|