On Wed, Mar 21, 2012 at 2:29 PM, Martin Mokrejs <mmokrejs@xxxxxxxxxxxxxxxxxx> wrote: > Hi, > I am not sure whether this is a bug or feature but I have problems > getting my USB3.0 PCI express card detected in my Dello Vostro 3550 laptop. > It appears to me after removal of the card there is about 60s window when > the PCI INT is still kept (not released). After that time it is released, > no matter that I for example meanwhile re-plugged the card already into > the slot. > > After having found this I can confirm that my express card gets detected > if I insert it in after at least 60 seconds since its previous removal. > > I have attached the logs from my attempts. Would anybody please confirm > this is the intended behavior? Or is that because USB delay of the PCI INT > resource after cards removal? Could I be, as a user, informed that I am not > supposed to re-insert the card in a whatever time window? > > Either way, thank you for comments, can you please post whole boot log ? wonder if your slot is supporting surprise removal.. if not, attached patch could remove some noise about Mar 20 21:04:17 vostro kernel: pciehp 0000:00:1c.7:pcie04: Card not present on Slot(7) Mar 20 21:04:18 vostro kernel: pciehp 0000:00:1c.7:pcie04: Card present on Slot(7) Mar 20 21:04:19 vostro kernel: pciehp 0000:00:1c.7:pcie04: Card not present on Slot(7) Mar 20 21:04:20 vostro kernel: pciehp 0000:00:1c.7:pcie04: Card present on Slot(7). also we have some patches in pci/linux-next, that will power off pcie link after removal. so please check if that tree is going to help or wait for kernel 3.4-rc1. Yinghai
Subject: [PATCH] pciehp: Don't enable presence notification while surprise removal is not supported. If surprise removal is not supported, that event get dropped later. So there is no point to enable that. Also Some sick chipset have those bit flip around. Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- drivers/pci/hotplug/pciehp_hpc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) Index: linux-2.6/drivers/pci/hotplug/pciehp_hpc.c =================================================================== --- linux-2.6.orig/drivers/pci/hotplug/pciehp_hpc.c +++ linux-2.6/drivers/pci/hotplug/pciehp_hpc.c @@ -808,7 +808,7 @@ int pciehp_get_cur_lnk_width(struct slot int pcie_enable_notification(struct controller *ctrl) { - u16 cmd, mask; + u16 cmd = 0, mask; /* * TBD: Power fault detected software notification support. @@ -820,7 +820,8 @@ int pcie_enable_notification(struct cont * when it is cleared in the interrupt service routine, and * next power fault detected interrupt was notified again. */ - cmd = PCI_EXP_SLTCTL_PDCE; + if (HP_SUPR_RM(ctrl)) + cmd |= PCI_EXP_SLTCTL_PDCE; if (ATTN_BUTTN(ctrl)) cmd |= PCI_EXP_SLTCTL_ABPE; if (MRL_SENS(ctrl))