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]

 



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.



[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