RE: Question: PCIe DPC not allowing for link retraining and bus re-scan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Keith

> -----Original Message-----
> From: linux-pci-owner@xxxxxxxxxxxxxxx [mailto:linux-pci-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Keith Busch
> Sent: 03 February 2017 20:52
> To: Gabriele Paoloni
> Cc: linux-pci@xxxxxxxxxxxxxxx; Linuxarm; liudongdong (C); zhangjukuo;
> Wangzhou (B)
> Subject: Re: Question: PCIe DPC not allowing for link retraining and
> bus re-scan
> 
> On Fri, Feb 03, 2017 at 10:35:47AM +0000, Gabriele Paoloni wrote:
> > > If my understanding is correct upon an incoming DPC event
> > > the DPC IRQ handler will:
> > > 1) stop and remove all the devices in the hierarchy under the
> > > downstream port that raised the event
> > > 2) wait for the data link to be inactive
> > > 3) keep the downstream port status in DPC (in fact we set the DPC
> > >    trigger status again here:
> > >    http://lxr.free-electrons.com/source/drivers/pci/pcie/pcie-
> > > dpc.c#L55)
> >
> > As you can see above, after waiting for the link to be inactive
> > we raise again a DPC event (according to PCIe3.0 6.2.10.1 we have
> > DPC Interrupt Enable bit set to 1b and we set DPC Interrupt Status
> bit
> > to 1b), also we keep the port in DPC status as we set also "DPC
> Trigger
> > Status" to 1b. However this seems wrong to me as I would expect SW to
> > clear "DPC Trigger Status" to allow the link to retrain and then to
> > raise the Hot-plug event...
> >
> > What do you think?
> 
> I think it's just fine as-is. These are defined as RW1C fields, meaning
> write 1 to clear.

Uh yes you right

Many thanks

Gab



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux