Message ID | 20201119141307.8342-1-pawell@cadence.com |
---|---|
Headers | show |
Series | Introduced new Cadence USBSSP DRD Driver. | expand |
On 20-11-19 15:12:57, Pawel Laszczak wrote: > 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 burned. We have support > for PCIe bus, which is used on FPGA prototyping. > > The host side of USBSS-DRD controller is compliance with XHCI > specification, so it works with standard XHCI Linux driver. > > The device side of USBSS DRD controller is compliant with XHCI. > The architecture for device side is almost the same as for host side, > and most of the XHCI specification can be used to understand how > this controller operates. > > This controller and driver support Full Speed, Hight Speed, Supper Speed > and Supper Speed Plus USB protocol. > > The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. > The last letter of this acronym means PLUS. The formal name of controller > is USBSSP but it's to generic so I've decided to use CDNSP. > > The patch 1: adds support for DRD CDNSP. > The patch 2: separates common code that can be reusable by cdnsp driver. > The patch 3: moves reusable code to separate module. > The patch 4: changes prefixes in reusable code from cdns3 to common cdns. > The patch 5: adopts gadget_dev pointer in cdns structure to make possible > use it in both drivers. > The patches 6-8: add the main part of driver and has been intentionally > split into 3 part. In my opinion such division should not > affect understanding and reviewing the driver, and cause that > main patch (7/8) is little smaller. Patch 6 introduces main > header file for driver, 7 is the main part that implements all > functionality of driver and 8 introduces tracepoints. > The patch 9: Adds cdns3 prefixes to files related with USBSS driver. > the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. > > Changlog from v2: > - removed not used pdev parameter from cdnsp_read/wite_64 functions > - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) > - replaced some constant value with CDNSP_ENDPOINTS_NUM macro > - replaced 'true' with '1' in bits description in cdnsp-gadget.h file > - fixed some typos > - some other less important changes suggested by Peter Chen Hi Pawel, I have updated my -next tree as the latest usb-next tree which v5.10-rc4 is included, would you please rebase my tree and send again, I could apply your patches and test, if test could pass, I will apply it to my -next tree. You don't need to rebase again since it is a huge patch set, will take some efforts for rebase. Peter > > Changlog from v1: > - updated common code to latest cdns3 driver > - moved cdnsp driver files to cdns3 as sugested by Peter Chan > - removed duplicate code from cdnsp_ep0_set_config function > - added cdns3 prefixes to file related with USBSS driver > - updated MAINTAINERS file > - fixed issue with U1 > - fixed issue with L1 > - some less improtant changes sugested by Chunfeng Yun > --- > > Pawel Laszczak (10): > usb: cdns3: Add support for DRD CDNSP > usb: cdns3: Split core.c into cdns3-plat and core.c file > usb: cdns3: Moves reusable code to separate module > usb: cdns3: Refactoring names in reusable code > usb: cdns3: Changed type of gadget_dev in cdns structure > usb: cdnsp: Device side header file for CDNSP driver > usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver > usb: cdnsp: Add tracepoints for CDNSP driver > usb: cdns3: Change file names for cdns3 driver. > MAINTAINERS: add Cadence USBSSP DRD IP driver entry > > MAINTAINERS | 8 + > drivers/usb/Makefile | 2 + > drivers/usb/cdns3/Kconfig | 61 +- > drivers/usb/cdns3/Makefile | 30 +- > drivers/usb/cdns3/{debug.h => cdns3-debug.h} | 0 > drivers/usb/cdns3/{ep0.c => cdns3-ep0.c} | 4 +- > .../usb/cdns3/{gadget.c => cdns3-gadget.c} | 28 +- > .../usb/cdns3/{gadget.h => cdns3-gadget.h} | 0 > drivers/usb/cdns3/cdns3-imx.c | 2 +- > drivers/usb/cdns3/cdns3-plat.c | 315 +++ > drivers/usb/cdns3/{trace.c => cdns3-trace.c} | 2 +- > drivers/usb/cdns3/{trace.h => cdns3-trace.h} | 6 +- > drivers/usb/cdns3/cdnsp-debug.h | 583 ++++ > drivers/usb/cdns3/cdnsp-ep0.c | 495 ++++ > drivers/usb/cdns3/cdnsp-gadget.c | 2017 ++++++++++++++ > drivers/usb/cdns3/cdnsp-gadget.h | 1600 +++++++++++ > drivers/usb/cdns3/cdnsp-mem.c | 1325 +++++++++ > drivers/usb/cdns3/cdnsp-pci.c | 255 ++ > drivers/usb/cdns3/cdnsp-ring.c | 2439 +++++++++++++++++ > drivers/usb/cdns3/cdnsp-trace.c | 12 + > drivers/usb/cdns3/cdnsp-trace.h | 840 ++++++ > drivers/usb/cdns3/core.c | 454 +-- > drivers/usb/cdns3/core.h | 54 +- > drivers/usb/cdns3/drd.c | 222 +- > drivers/usb/cdns3/drd.h | 94 +- > drivers/usb/cdns3/gadget-export.h | 22 +- > drivers/usb/cdns3/host-export.h | 13 +- > drivers/usb/cdns3/host.c | 22 +- > 28 files changed, 10398 insertions(+), 507 deletions(-) > rename drivers/usb/cdns3/{debug.h => cdns3-debug.h} (100%) > rename drivers/usb/cdns3/{ep0.c => cdns3-ep0.c} (99%) > rename drivers/usb/cdns3/{gadget.c => cdns3-gadget.c} (99%) > rename drivers/usb/cdns3/{gadget.h => cdns3-gadget.h} (100%) > create mode 100644 drivers/usb/cdns3/cdns3-plat.c > rename drivers/usb/cdns3/{trace.c => cdns3-trace.c} (89%) > rename drivers/usb/cdns3/{trace.h => cdns3-trace.h} (99%) > create mode 100644 drivers/usb/cdns3/cdnsp-debug.h > create mode 100644 drivers/usb/cdns3/cdnsp-ep0.c > create mode 100644 drivers/usb/cdns3/cdnsp-gadget.c > create mode 100644 drivers/usb/cdns3/cdnsp-gadget.h > create mode 100644 drivers/usb/cdns3/cdnsp-mem.c > create mode 100644 drivers/usb/cdns3/cdnsp-pci.c > create mode 100644 drivers/usb/cdns3/cdnsp-ring.c > create mode 100644 drivers/usb/cdns3/cdnsp-trace.c > create mode 100644 drivers/usb/cdns3/cdnsp-trace.h > > -- > 2.17.1 > -- Thanks, Peter Chen
Peter, >On 20-11-19 15:12:57, Pawel Laszczak wrote: >> 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 burned. We have support >> for PCIe bus, which is used on FPGA prototyping. >> >> The host side of USBSS-DRD controller is compliance with XHCI >> specification, so it works with standard XHCI Linux driver. >> >> The device side of USBSS DRD controller is compliant with XHCI. >> The architecture for device side is almost the same as for host side, >> and most of the XHCI specification can be used to understand how >> this controller operates. >> >> This controller and driver support Full Speed, Hight Speed, Supper Speed >> and Supper Speed Plus USB protocol. >> >> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >> The last letter of this acronym means PLUS. The formal name of controller >> is USBSSP but it's to generic so I've decided to use CDNSP. >> >> The patch 1: adds support for DRD CDNSP. >> The patch 2: separates common code that can be reusable by cdnsp driver. >> The patch 3: moves reusable code to separate module. >> The patch 4: changes prefixes in reusable code from cdns3 to common cdns. >> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >> use it in both drivers. >> The patches 6-8: add the main part of driver and has been intentionally >> split into 3 part. In my opinion such division should not >> affect understanding and reviewing the driver, and cause that >> main patch (7/8) is little smaller. Patch 6 introduces main >> header file for driver, 7 is the main part that implements all >> functionality of driver and 8 introduces tracepoints. >> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. >> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. >> >> Changlog from v2: >> - removed not used pdev parameter from cdnsp_read/wite_64 functions >> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) >> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro >> - replaced 'true' with '1' in bits description in cdnsp-gadget.h file >> - fixed some typos >> - some other less important changes suggested by Peter Chen > >Hi Pawel, > >I have updated my -next tree as the latest usb-next tree which v5.10-rc4 >is included, would you please rebase my tree and send again, I could apply your >patches and test, if test could pass, I will apply it to my -next tree. >You don't need to rebase again since it is a huge patch set, will take some >efforts for rebase. > I'll try to post it tomorrow. >> >> Changlog from v1: >> - updated common code to latest cdns3 driver >> - moved cdnsp driver files to cdns3 as sugested by Peter Chan >> - removed duplicate code from cdnsp_ep0_set_config function >> - added cdns3 prefixes to file related with USBSS driver >> - updated MAINTAINERS file >> - fixed issue with U1 >> - fixed issue with L1 >> - some less improtant changes sugested by Chunfeng Yun >> --- >> >> Pawel Laszczak (10): >> usb: cdns3: Add support for DRD CDNSP >> usb: cdns3: Split core.c into cdns3-plat and core.c file >> usb: cdns3: Moves reusable code to separate module >> usb: cdns3: Refactoring names in reusable code >> usb: cdns3: Changed type of gadget_dev in cdns structure >> usb: cdnsp: Device side header file for CDNSP driver >> usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver >> usb: cdnsp: Add tracepoints for CDNSP driver >> usb: cdns3: Change file names for cdns3 driver. >> MAINTAINERS: add Cadence USBSSP DRD IP driver entry >> >> MAINTAINERS | 8 + >> drivers/usb/Makefile | 2 + >> drivers/usb/cdns3/Kconfig | 61 +- >> drivers/usb/cdns3/Makefile | 30 +- >> drivers/usb/cdns3/{debug.h => cdns3-debug.h} | 0 >> drivers/usb/cdns3/{ep0.c => cdns3-ep0.c} | 4 +- >> .../usb/cdns3/{gadget.c => cdns3-gadget.c} | 28 +- >> .../usb/cdns3/{gadget.h => cdns3-gadget.h} | 0 >> drivers/usb/cdns3/cdns3-imx.c | 2 +- >> drivers/usb/cdns3/cdns3-plat.c | 315 +++ >> drivers/usb/cdns3/{trace.c => cdns3-trace.c} | 2 +- >> drivers/usb/cdns3/{trace.h => cdns3-trace.h} | 6 +- >> drivers/usb/cdns3/cdnsp-debug.h | 583 ++++ >> drivers/usb/cdns3/cdnsp-ep0.c | 495 ++++ >> drivers/usb/cdns3/cdnsp-gadget.c | 2017 ++++++++++++++ >> drivers/usb/cdns3/cdnsp-gadget.h | 1600 +++++++++++ >> drivers/usb/cdns3/cdnsp-mem.c | 1325 +++++++++ >> drivers/usb/cdns3/cdnsp-pci.c | 255 ++ >> drivers/usb/cdns3/cdnsp-ring.c | 2439 +++++++++++++++++ >> drivers/usb/cdns3/cdnsp-trace.c | 12 + >> drivers/usb/cdns3/cdnsp-trace.h | 840 ++++++ >> drivers/usb/cdns3/core.c | 454 +-- >> drivers/usb/cdns3/core.h | 54 +- >> drivers/usb/cdns3/drd.c | 222 +- >> drivers/usb/cdns3/drd.h | 94 +- >> drivers/usb/cdns3/gadget-export.h | 22 +- >> drivers/usb/cdns3/host-export.h | 13 +- >> drivers/usb/cdns3/host.c | 22 +- >> 28 files changed, 10398 insertions(+), 507 deletions(-) >> rename drivers/usb/cdns3/{debug.h => cdns3-debug.h} (100%) >> rename drivers/usb/cdns3/{ep0.c => cdns3-ep0.c} (99%) >> rename drivers/usb/cdns3/{gadget.c => cdns3-gadget.c} (99%) >> rename drivers/usb/cdns3/{gadget.h => cdns3-gadget.h} (100%) >> create mode 100644 drivers/usb/cdns3/cdns3-plat.c >> rename drivers/usb/cdns3/{trace.c => cdns3-trace.c} (89%) >> rename drivers/usb/cdns3/{trace.h => cdns3-trace.h} (99%) >> create mode 100644 drivers/usb/cdns3/cdnsp-debug.h >> create mode 100644 drivers/usb/cdns3/cdnsp-ep0.c >> create mode 100644 drivers/usb/cdns3/cdnsp-gadget.c >> create mode 100644 drivers/usb/cdns3/cdnsp-gadget.h >> create mode 100644 drivers/usb/cdns3/cdnsp-mem.c >> create mode 100644 drivers/usb/cdns3/cdnsp-pci.c >> create mode 100644 drivers/usb/cdns3/cdnsp-ring.c >> create mode 100644 drivers/usb/cdns3/cdnsp-trace.c >> create mode 100644 drivers/usb/cdns3/cdnsp-trace.h >> >> -- >> 2.17.1 >> -- Thanks Pawel
On 24/11/20 2:51 PM, Pawel Laszczak wrote: > Peter, > >> On 20-11-19 15:12:57, Pawel Laszczak wrote: >>> 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 burned. We have support >>> for PCIe bus, which is used on FPGA prototyping. >>> >>> The host side of USBSS-DRD controller is compliance with XHCI >>> specification, so it works with standard XHCI Linux driver. >>> >>> The device side of USBSS DRD controller is compliant with XHCI. >>> The architecture for device side is almost the same as for host side, >>> and most of the XHCI specification can be used to understand how >>> this controller operates. >>> >>> This controller and driver support Full Speed, Hight Speed, Supper Speed >>> and Supper Speed Plus USB protocol. >>> >>> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >>> The last letter of this acronym means PLUS. The formal name of controller >>> is USBSSP but it's to generic so I've decided to use CDNSP. >>> >>> The patch 1: adds support for DRD CDNSP. >>> The patch 2: separates common code that can be reusable by cdnsp driver. >>> The patch 3: moves reusable code to separate module. >>> The patch 4: changes prefixes in reusable code from cdns3 to common cdns. >>> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >>> use it in both drivers. >>> The patches 6-8: add the main part of driver and has been intentionally >>> split into 3 part. In my opinion such division should not >>> affect understanding and reviewing the driver, and cause that >>> main patch (7/8) is little smaller. Patch 6 introduces main >>> header file for driver, 7 is the main part that implements all >>> functionality of driver and 8 introduces tracepoints. >>> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. >>> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. >>> >>> Changlog from v2: >>> - removed not used pdev parameter from cdnsp_read/wite_64 functions >>> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) >>> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro >>> - replaced 'true' with '1' in bits description in cdnsp-gadget.h file >>> - fixed some typos >>> - some other less important changes suggested by Peter Chen >> >> Hi Pawel, >> >> I have updated my -next tree as the latest usb-next tree which v5.10-rc4 >> is included, would you please rebase my tree and send again, I could apply your >> patches and test, if test could pass, I will apply it to my -next tree. >> You don't need to rebase again since it is a huge patch set, will take some >> efforts for rebase. >> > > I'll try to post it tomorrow. Pawel, have you tested TI J7 for regressions after this series? After your latest changes, can you post a tree which someone in TI can test? Thanks, Sekhar
Sekhar, > > >On 24/11/20 2:51 PM, Pawel Laszczak wrote: >> Peter, >> >>> On 20-11-19 15:12:57, Pawel Laszczak wrote: >>>> 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 burned. We have support >>>> for PCIe bus, which is used on FPGA prototyping. >>>> >>>> The host side of USBSS-DRD controller is compliance with XHCI >>>> specification, so it works with standard XHCI Linux driver. >>>> >>>> The device side of USBSS DRD controller is compliant with XHCI. >>>> The architecture for device side is almost the same as for host side, >>>> and most of the XHCI specification can be used to understand how >>>> this controller operates. >>>> >>>> This controller and driver support Full Speed, Hight Speed, Supper Speed >>>> and Supper Speed Plus USB protocol. >>>> >>>> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >>>> The last letter of this acronym means PLUS. The formal name of controller >>>> is USBSSP but it's to generic so I've decided to use CDNSP. >>>> >>>> The patch 1: adds support for DRD CDNSP. >>>> The patch 2: separates common code that can be reusable by cdnsp driver. >>>> The patch 3: moves reusable code to separate module. >>>> The patch 4: changes prefixes in reusable code from cdns3 to common cdns. >>>> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >>>> use it in both drivers. >>>> The patches 6-8: add the main part of driver and has been intentionally >>>> split into 3 part. In my opinion such division should not >>>> affect understanding and reviewing the driver, and cause that >>>> main patch (7/8) is little smaller. Patch 6 introduces main >>>> header file for driver, 7 is the main part that implements all >>>> functionality of driver and 8 introduces tracepoints. >>>> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. >>>> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. >>>> >>>> Changlog from v2: >>>> - removed not used pdev parameter from cdnsp_read/wite_64 functions >>>> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) >>>> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro >>>> - replaced 'true' with '1' in bits description in cdnsp-gadget.h file >>>> - fixed some typos >>>> - some other less important changes suggested by Peter Chen >>> >>> Hi Pawel, >>> >>> I have updated my -next tree as the latest usb-next tree which v5.10-rc4 >>> is included, would you please rebase my tree and send again, I could apply your >>> patches and test, if test could pass, I will apply it to my -next tree. >>> You don't need to rebase again since it is a huge patch set, will take some >>> efforts for rebase. >>> >> >> I'll try to post it tomorrow. > >Pawel, have you tested TI J7 for regressions after this series? After >your latest changes, can you post a tree which someone in TI can test? No I haven't test it on J7. For testing I'm using PCIe based platform for both cnds3 and cdnsp driver. Why you can't use the latest kernel version and current series ? -- Thanks Pawel
On 20-11-19 15:13:07, Pawel Laszczak wrote: > Patch adds entry for USBSSP (CDNSP) driver into MAINTARNERS file. > > Signed-off-by: Pawel Laszczak <pawell@cadence.com> > --- > MAINTAINERS | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 842fef329119..70c31fd2cd61 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -3867,6 +3867,14 @@ S: Maintained > T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git > F: Documentation/devicetree/bindings/usb/cdns,usb3.yaml > F: drivers/usb/cdns3/ > +X: drivers/usb/cdns3/cdnsp* > + > +CADENCE USBSSP DRD IP DRIVER > +M: Pawel Laszczak <pawell@cadence.com> > +L: linux-usb@vger.kernel.org > +S: Maintained > +F: drivers/usb/cdns3/ > +X: drivers/usb/cdns3/cdns3* > Hi Pawel, You may add "T" for which tree for cdns3 ssp driver. -- Thanks, Peter Chen
Peter, > >On 20-11-19 15:13:07, Pawel Laszczak wrote: >> Patch adds entry for USBSSP (CDNSP) driver into MAINTARNERS file. >> >> Signed-off-by: Pawel Laszczak <pawell@cadence.com> >> --- >> MAINTAINERS | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 842fef329119..70c31fd2cd61 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -3867,6 +3867,14 @@ S: Maintained >> T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git >> F: Documentation/devicetree/bindings/usb/cdns,usb3.yaml >> F: drivers/usb/cdns3/ >> +X: drivers/usb/cdns3/cdnsp* >> + >> +CADENCE USBSSP DRD IP DRIVER >> +M: Pawel Laszczak <pawell@cadence.com> >> +L: linux-usb@vger.kernel.org >> +S: Maintained >> +F: drivers/usb/cdns3/ >> +X: drivers/usb/cdns3/cdns3* >> > >Hi Pawel, > >You may add "T" for which tree for cdns3 ssp driver. It make sense. I will do it. -- Thanks, Pawel
Peter, > >>On 20-11-19 15:12:57, Pawel Laszczak wrote: >>> 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 burned. We have support >>> for PCIe bus, which is used on FPGA prototyping. >>> >>> The host side of USBSS-DRD controller is compliance with XHCI >>> specification, so it works with standard XHCI Linux driver. >>> >>> The device side of USBSS DRD controller is compliant with XHCI. >>> The architecture for device side is almost the same as for host side, >>> and most of the XHCI specification can be used to understand how >>> this controller operates. >>> >>> This controller and driver support Full Speed, Hight Speed, Supper Speed >>> and Supper Speed Plus USB protocol. >>> >>> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >>> The last letter of this acronym means PLUS. The formal name of controller >>> is USBSSP but it's to generic so I've decided to use CDNSP. >>> >>> The patch 1: adds support for DRD CDNSP. >>> The patch 2: separates common code that can be reusable by cdnsp driver. >>> The patch 3: moves reusable code to separate module. >>> The patch 4: changes prefixes in reusable code from cdns3 to common cdns. >>> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >>> use it in both drivers. >>> The patches 6-8: add the main part of driver and has been intentionally >>> split into 3 part. In my opinion such division should not >>> affect understanding and reviewing the driver, and cause that >>> main patch (7/8) is little smaller. Patch 6 introduces main >>> header file for driver, 7 is the main part that implements all >>> functionality of driver and 8 introduces tracepoints. >>> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. >>> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. >>> >>> Changlog from v2: >>> - removed not used pdev parameter from cdnsp_read/wite_64 functions >>> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) >>> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro >>> - replaced 'true' with '1' in bits description in cdnsp-gadget.h file >>> - fixed some typos >>> - some other less important changes suggested by Peter Chen >> >>Hi Pawel, >> >>I have updated my -next tree as the latest usb-next tree which v5.10-rc4 >>is included, would you please rebase my tree and send again, I could apply your >>patches and test, if test could pass, I will apply it to my -next tree. >>You don't need to rebase again since it is a huge patch set, will take some >>efforts for rebase. >> > >I'll try to post it tomorrow. Can I send the new version CDNSP or I should wait for completion 'Re: [PATCH] Revert "usb: cdns3: core: quit if it uses role switch class"' and applying the appropriate fix to your repo ? <snip> Thanks Pawel
> >>> > >>> The device side of USBSS DRD controller is compliant with XHCI. > >>> The architecture for device side is almost the same as for host > >>> side, and most of the XHCI specification can be used to understand > >>> how this controller operates. > >>> > >>> This controller and driver support Full Speed, Hight Speed, Supper > >>> Speed and Supper Speed Plus USB protocol. > >>> > >>> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. > >>> The last letter of this acronym means PLUS. The formal name of > >>> controller is USBSSP but it's to generic so I've decided to use CDNSP. > >>> > >>> The patch 1: adds support for DRD CDNSP. > >>> The patch 2: separates common code that can be reusable by cdnsp driver. > >>> The patch 3: moves reusable code to separate module. > >>> The patch 4: changes prefixes in reusable code from cdns3 to common > cdns. > >>> The patch 5: adopts gadget_dev pointer in cdns structure to make possible > >>> use it in both drivers. > >>> The patches 6-8: add the main part of driver and has been intentionally > >>> split into 3 part. In my opinion such division should not > >>> affect understanding and reviewing the driver, and cause > that > >>> main patch (7/8) is little smaller. Patch 6 introduces main > >>> header file for driver, 7 is the main part that implements > all > >>> functionality of driver and 8 introduces tracepoints. > >>> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. > >>> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. > >>> > >>> Changlog from v2: > >>> - removed not used pdev parameter from cdnsp_read/wite_64 functions > >>> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) > >>> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro > >>> - replaced 'true' with '1' in bits description in cdnsp-gadget.h > >>> file > >>> - fixed some typos > >>> - some other less important changes suggested by Peter Chen > >> > >>Hi Pawel, > >> > >>I have updated my -next tree as the latest usb-next tree which > >>v5.10-rc4 is included, would you please rebase my tree and send again, > >>I could apply your patches and test, if test could pass, I will apply it to my > -next tree. > >>You don't need to rebase again since it is a huge patch set, will take > >>some efforts for rebase. > >> > > > >I'll try to post it tomorrow. > > Can I send the new version CDNSP or I should wait for completion > 'Re: [PATCH] Revert "usb: cdns3: core: quit if it uses role switch class"' and > applying the appropriate fix to your repo ? > Please wait that fix, thanks. Peter
On 24/11/20 3:22 PM, Pawel Laszczak wrote: > Sekhar, > >> >> >> On 24/11/20 2:51 PM, Pawel Laszczak wrote: >>> Peter, >>> >>>> On 20-11-19 15:12:57, Pawel Laszczak wrote: >>>>> 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 burned. We have support >>>>> for PCIe bus, which is used on FPGA prototyping. >>>>> >>>>> The host side of USBSS-DRD controller is compliance with XHCI >>>>> specification, so it works with standard XHCI Linux driver. >>>>> >>>>> The device side of USBSS DRD controller is compliant with XHCI. >>>>> The architecture for device side is almost the same as for host side, >>>>> and most of the XHCI specification can be used to understand how >>>>> this controller operates. >>>>> >>>>> This controller and driver support Full Speed, Hight Speed, Supper Speed >>>>> and Supper Speed Plus USB protocol. >>>>> >>>>> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >>>>> The last letter of this acronym means PLUS. The formal name of controller >>>>> is USBSSP but it's to generic so I've decided to use CDNSP. >>>>> >>>>> The patch 1: adds support for DRD CDNSP. >>>>> The patch 2: separates common code that can be reusable by cdnsp driver. >>>>> The patch 3: moves reusable code to separate module. >>>>> The patch 4: changes prefixes in reusable code from cdns3 to common cdns. >>>>> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >>>>> use it in both drivers. >>>>> The patches 6-8: add the main part of driver and has been intentionally >>>>> split into 3 part. In my opinion such division should not >>>>> affect understanding and reviewing the driver, and cause that >>>>> main patch (7/8) is little smaller. Patch 6 introduces main >>>>> header file for driver, 7 is the main part that implements all >>>>> functionality of driver and 8 introduces tracepoints. >>>>> The patch 9: Adds cdns3 prefixes to files related with USBSS driver. >>>>> the patch 10: Adds USBSSP DRD IP driver entry to MAINTAINERS file. >>>>> >>>>> Changlog from v2: >>>>> - removed not used pdev parameter from cdnsp_read/wite_64 functions >>>>> - fixed incorrect value assigned to CDNSP_ENDPOINTS_NUM (32 -> 31) >>>>> - replaced some constant value with CDNSP_ENDPOINTS_NUM macro >>>>> - replaced 'true' with '1' in bits description in cdnsp-gadget.h file >>>>> - fixed some typos >>>>> - some other less important changes suggested by Peter Chen >>>> >>>> Hi Pawel, >>>> >>>> I have updated my -next tree as the latest usb-next tree which v5.10-rc4 >>>> is included, would you please rebase my tree and send again, I could apply your >>>> patches and test, if test could pass, I will apply it to my -next tree. >>>> You don't need to rebase again since it is a huge patch set, will take some >>>> efforts for rebase. >>>> >>> >>> I'll try to post it tomorrow. >> >> Pawel, have you tested TI J7 for regressions after this series? After >> your latest changes, can you post a tree which someone in TI can test? > > No I haven't test it on J7. For testing I'm using PCIe based platform for > both cnds3 and cdnsp driver. Do you have access to J7 EVM? Are you willing to test it there to make sure nothing broke? > > Why you can't use the latest kernel version and current series ? Sure. Let me try that. Looking at some other traffic on this thread, I was not sure where this applies. So, this applies to latest of Linus's tree? I re-read the cover letter but cannot find this information. Thanks, Sekhar