mbox series

[0/4] Add support to defer core initialization

Message ID 20191113090851.26345-1-vidyas@nvidia.com
Headers show
Series Add support to defer core initialization | expand

Message

Vidya Sagar Nov. 13, 2019, 9:08 a.m. UTC
EPC/DesignWare core endpoint subsystems assume that the core registers are
available always for SW to initialize. But, that may not be the case always.
For example, Tegra194 hardware has the core running on a clock that is derived
from reference clock that is coming into the endpoint system from host.
Hence core is made available asynchronously based on when host system is going
for enumeration of devices. To accommodate this kind of hardwares, support is
required to defer the core initialization until the respective platform driver
informs the EPC/DWC endpoint sub-systems that the core is indeed available for
initiaization. This patch series is attempting to add precisely that.
This series is based on Kishon's patch that adds notification mechanism
support from EPC to EPF @ http://patchwork.ozlabs.org/patch/1109884/

Vidya Sagar (4):
  PCI: dwc: Add new feature to skip core initialization
  PCI: endpoint: Add notification for core init completion
  PCI: dwc: Add API to notify core initialization completion
  PCI: pci-epf-test: Add support to defer core initialization

 .../pci/controller/dwc/pcie-designware-ep.c   |  79 +++++++-----
 drivers/pci/controller/dwc/pcie-designware.h  |  11 ++
 drivers/pci/endpoint/functions/pci-epf-test.c | 114 ++++++++++++------
 drivers/pci/endpoint/pci-epc-core.c           |  19 ++-
 include/linux/pci-epc.h                       |   2 +
 include/linux/pci-epf.h                       |   5 +
 6 files changed, 164 insertions(+), 66 deletions(-)

Comments

Vidya Sagar Nov. 18, 2019, 6:55 a.m. UTC | #1
On 11/13/2019 2:38 PM, Vidya Sagar wrote:
> EPC/DesignWare core endpoint subsystems assume that the core registers are
> available always for SW to initialize. But, that may not be the case always.
> For example, Tegra194 hardware has the core running on a clock that is derived
> from reference clock that is coming into the endpoint system from host.
> Hence core is made available asynchronously based on when host system is going
> for enumeration of devices. To accommodate this kind of hardwares, support is
> required to defer the core initialization until the respective platform driver
> informs the EPC/DWC endpoint sub-systems that the core is indeed available for
> initiaization. This patch series is attempting to add precisely that.
> This series is based on Kishon's patch that adds notification mechanism
> support from EPC to EPF @ http://patchwork.ozlabs.org/patch/1109884/
> 
> Vidya Sagar (4):
>    PCI: dwc: Add new feature to skip core initialization
>    PCI: endpoint: Add notification for core init completion
>    PCI: dwc: Add API to notify core initialization completion
>    PCI: pci-epf-test: Add support to defer core initialization
> 
>   .../pci/controller/dwc/pcie-designware-ep.c   |  79 +++++++-----
>   drivers/pci/controller/dwc/pcie-designware.h  |  11 ++
>   drivers/pci/endpoint/functions/pci-epf-test.c | 114 ++++++++++++------
>   drivers/pci/endpoint/pci-epc-core.c           |  19 ++-
>   include/linux/pci-epc.h                       |   2 +
>   include/linux/pci-epf.h                       |   5 +
>   6 files changed, 164 insertions(+), 66 deletions(-)
> 

Hi Kishon / Gustavo / Jingoo,
Could you please take a look at this patch series?

- Vidya Sagar
Han Jingoo Nov. 18, 2019, 4:43 p.m. UTC | #2
On 11/18/19, 1:55 AM, Vidya Sagar wrote:
> 
> On 11/13/2019 2:38 PM, Vidya Sagar wrote:
> > EPC/DesignWare core endpoint subsystems assume that the core registers are
> > available always for SW to initialize. But, that may not be the case always.
> > For example, Tegra194 hardware has the core running on a clock that is derived
> > from reference clock that is coming into the endpoint system from host.
> > Hence core is made available asynchronously based on when host system is going
> > for enumeration of devices. To accommodate this kind of hardwares, support is
> > required to defer the core initialization until the respective platform driver
> > informs the EPC/DWC endpoint sub-systems that the core is indeed available for
> > initiaization. This patch series is attempting to add precisely that.
> > This series is based on Kishon's patch that adds notification mechanism
> > support from EPC to EPF @ http://patchwork.ozlabs.org/patch/1109884/
> > 
> > Vidya Sagar (4):
> >    PCI: dwc: Add new feature to skip core initialization
> >    PCI: endpoint: Add notification for core init completion
> >    PCI: dwc: Add API to notify core initialization completion
> >    PCI: pci-epf-test: Add support to defer core initialization
> > 
> >   .../pci/controller/dwc/pcie-designware-ep.c   |  79 +++++++-----
> >   drivers/pci/controller/dwc/pcie-designware.h  |  11 ++
> >   drivers/pci/endpoint/functions/pci-epf-test.c | 114 ++++++++++++------
> >   drivers/pci/endpoint/pci-epc-core.c           |  19 ++-
> >   include/linux/pci-epc.h                       |   2 +
> >   include/linux/pci-epf.h                       |   5 +
> >   6 files changed, 164 insertions(+), 66 deletions(-)
> > 
>
> Hi Kishon / Gustavo / Jingoo,
> Could you please take a look at this patch series?

You need a Ack from Kishon, because he made EP code.


> - Vidya Sagar
Vidya Sagar Nov. 25, 2019, 4:33 a.m. UTC | #3
On 11/18/2019 10:13 PM, Jingoo Han wrote:
> 
> 
> On 11/18/19, 1:55 AM, Vidya Sagar wrote:
>>
>> On 11/13/2019 2:38 PM, Vidya Sagar wrote:
>>> EPC/DesignWare core endpoint subsystems assume that the core registers are
>>> available always for SW to initialize. But, that may not be the case always.
>>> For example, Tegra194 hardware has the core running on a clock that is derived
>>> from reference clock that is coming into the endpoint system from host.
>>> Hence core is made available asynchronously based on when host system is going
>>> for enumeration of devices. To accommodate this kind of hardwares, support is
>>> required to defer the core initialization until the respective platform driver
>>> informs the EPC/DWC endpoint sub-systems that the core is indeed available for
>>> initiaization. This patch series is attempting to add precisely that.
>>> This series is based on Kishon's patch that adds notification mechanism
>>> support from EPC to EPF @ http://patchwork.ozlabs.org/patch/1109884/
>>>
>>> Vidya Sagar (4):
>>>     PCI: dwc: Add new feature to skip core initialization
>>>     PCI: endpoint: Add notification for core init completion
>>>     PCI: dwc: Add API to notify core initialization completion
>>>     PCI: pci-epf-test: Add support to defer core initialization
>>>
>>>    .../pci/controller/dwc/pcie-designware-ep.c   |  79 +++++++-----
>>>    drivers/pci/controller/dwc/pcie-designware.h  |  11 ++
>>>    drivers/pci/endpoint/functions/pci-epf-test.c | 114 ++++++++++++------
>>>    drivers/pci/endpoint/pci-epc-core.c           |  19 ++-
>>>    include/linux/pci-epc.h                       |   2 +
>>>    include/linux/pci-epf.h                       |   5 +
>>>    6 files changed, 164 insertions(+), 66 deletions(-)
>>>
>>
>> Hi Kishon / Gustavo / Jingoo,
>> Could you please take a look at this patch series?
> 
> You need a Ack from Kishon, because he made EP code.
Hi Kishon,
Could you please find time to review this series?

- Vidya Sagar
> 
> 
>> - Vidya Sagar
Kishon Vijay Abraham I Nov. 25, 2019, 4:45 a.m. UTC | #4
Hi,

On 25/11/19 10:03 AM, Vidya Sagar wrote:
> On 11/18/2019 10:13 PM, Jingoo Han wrote:
>>
>>
>> On 11/18/19, 1:55 AM, Vidya Sagar wrote:
>>>
>>> On 11/13/2019 2:38 PM, Vidya Sagar wrote:
>>>> EPC/DesignWare core endpoint subsystems assume that the core registers are
>>>> available always for SW to initialize. But, that may not be the case always.
>>>> For example, Tegra194 hardware has the core running on a clock that is derived
>>>> from reference clock that is coming into the endpoint system from host.
>>>> Hence core is made available asynchronously based on when host system is going
>>>> for enumeration of devices. To accommodate this kind of hardwares, support is
>>>> required to defer the core initialization until the respective platform driver
>>>> informs the EPC/DWC endpoint sub-systems that the core is indeed available for
>>>> initiaization. This patch series is attempting to add precisely that.
>>>> This series is based on Kishon's patch that adds notification mechanism
>>>> support from EPC to EPF @ http://patchwork.ozlabs.org/patch/1109884/
>>>>
>>>> Vidya Sagar (4):
>>>>     PCI: dwc: Add new feature to skip core initialization
>>>>     PCI: endpoint: Add notification for core init completion
>>>>     PCI: dwc: Add API to notify core initialization completion
>>>>     PCI: pci-epf-test: Add support to defer core initialization
>>>>
>>>>    .../pci/controller/dwc/pcie-designware-ep.c   |  79 +++++++-----
>>>>    drivers/pci/controller/dwc/pcie-designware.h  |  11 ++
>>>>    drivers/pci/endpoint/functions/pci-epf-test.c | 114 ++++++++++++------
>>>>    drivers/pci/endpoint/pci-epc-core.c           |  19 ++-
>>>>    include/linux/pci-epc.h                       |   2 +
>>>>    include/linux/pci-epf.h                       |   5 +
>>>>    6 files changed, 164 insertions(+), 66 deletions(-)
>>>>
>>>
>>> Hi Kishon / Gustavo / Jingoo,
>>> Could you please take a look at this patch series?
>>
>> You need a Ack from Kishon, because he made EP code.
> Hi Kishon,
> Could you please find time to review this series?

I'll review it this week. Sorry for the delay.

-Kishon