On Sat, Jun 5, 2021 at 12:15 AM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > On Sat, May 22, 2021 at 03:18:27PM +0200, Jonas Dreßler wrote: > > From: Tsuchiya Yuto <kitakar@xxxxxxxxx> > > > > This commit adds reset_wsid quirk and uses this quirk for Surface 3 on > > card reset. > > > > To reset mwifiex on Surface 3, it seems that calling the _DSM method > > exists in \_SB.WSID [1] device is required. > > > > On Surface 3, calling the _DSM method removes/re-probes the card by > > itself. So, need to place the reset function before performing FLR and > > skip performing any other reset-related works. > > Maybe this is a nit-pick, but I understand "probing" to be something > the OS does, namely what we normally call "enumeration," i.e., > discovering a device. > > So it sounds like the _DSM causes a logical hot-removal of the card, > which the PCI hotplug driver should notice and it should remove the > driver and remove the pci_dev. > > And the _DSM also causes a hot-add (reading the code below, it looks > like this is actually a second _DSM), _DSM can be only one (single) per device node in ACPI. But _DSM may have "functions", that's what we see here. > which the PCI hotplug driver > should also notice and enumerate the bus (i.e., it reads config space > looking for a device). This all would cause a new pci_dev to be > allocated, resources assigned for its BARs, and the driver .probe() > method to be called again? > > That seems like a lot, so maybe I didn't understand what's actually > happening. -- With Best Regards, Andy Shevchenko