linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PCI reset problem
@ 2013-08-28 13:33 Johannes Thumshirn
  2013-08-28 16:50 ` Bjorn Helgaas
  0 siblings, 1 reply; 16+ messages in thread
From: Johannes Thumshirn @ 2013-08-28 13:33 UTC (permalink / raw)
  To: linux-pci; +Cc: johannes.thumshirn

Hi List,

I have a rather odd problem with a PCIe swicht/bridge which does not get
enumerated correctly. If I issue _two_ manual rescans of the PCI bus via sysfs,
everything get setup correctly. To work around the problem I decided to make a
platform specific PCI quirk (for the embedded system I'm on, to not break
anything else) and issue the pci_rescan_bus() myself as a "final" fixup. However
this does not have any effect at all.

Does anyone have an idea what I could do wrong?

Example:
root@generic-powerpc:~# lspci -tv
-[0000:00]---00.0-[01]--
root@generic-powerpc:~# echo 1 > /sys/bus/pci/rescan
[...]
root@generic-powerpc:~# lspci -tv
-[0000:00]---00.0-[01-05]----00.0-[02-05]--+-01.0-[03]--
                                           +-02.0-[04]--
                                           \-03.0-[05]--
root@generic-powerpc:~# echo 1 > /sys/bus/pci/rescan
[...]
root@generic-powerpc:~# lspci -tv
-[0000:00]---00.0-[01-05]----00.0-[02-05]--+-01.0-[03]----00.0  Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
                                           +-02.0-[04]--
                                           \-03.0-[05]--+-00.0  Pericom Semiconductor Device 400e
                                                        +-00.1  Pericom Semiconductor Device 400e
                                                        \-00.2  Pericom Semiconductor Device 400f


"My" rescan quirk:
#if CONFIG_PCI
static DEFINE_MUTEX(rescan_mutex);
static void xm51_fixup_bridge(struct pci_dev *dev)
{
        struct pci_bus *b = NULL;

        mutex_lock(&rescan_mutex);
        while((b = pci_find_next_bus(b)) != NULL)
                pci_rescan_bus(b);
        mutex_unlock(&rescan_mutex);
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_FREESCALE, 0x0401, xm51_fixup_bridge);
#endif


Thanks in advance,
Johannes

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2013-09-04  8:10 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-28 13:33 PCI reset problem Johannes Thumshirn
2013-08-28 16:50 ` Bjorn Helgaas
2013-08-29  8:29   ` Johannes Thumshirn
2013-08-29 12:01     ` Bjorn Helgaas
2013-08-29 15:07       ` Johannes Thumshirn
2013-08-29 15:52         ` Bjorn Helgaas
2013-08-30  8:01           ` Johannes Thumshirn
2013-08-30 13:40             ` Bjorn Helgaas
2013-08-30 13:58               ` Johannes Thumshirn
2013-08-30 19:46             ` Yinghai Lu
2013-09-02  8:00               ` Johannes Thumshirn
2013-09-02 22:18                 ` Yinghai Lu
2013-09-03  9:55                   ` Johannes Thumshirn
2013-09-03 19:38                     ` Yinghai Lu
2013-09-04  8:10                       ` Johannes Thumshirn
2013-08-29 17:40     ` Yinghai Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).