DORMANTno replies

[PATCH] get rid of circular list of adev's

From: Denis Vlasenko <hidden>
Date: 2006-02-08 12:23:26

Hi folks,

If someone has cardbus acx, please test this one.

Basically, in acxpci_e_remove() we will check the presence
of the card by reading a register and if it is not all ones,
we will command device to shut down.

Previously it was done in acxpci_e_cleanup_module().

+INLINE_IO int
+adev_present(acx_device_t *adev)
+{
+       /* fast version (accesses the first register, IO_ACX_SOFT_RESET,
+        * which should be safe): */
+       return readl(adev->iobase) != 0xffffffff;
+}

@@ -1785,6 +1725,43 @@ acxpci_e_remove(struct pci_dev *pdev)

        adev = ndev2adev(ndev);

+       /* If device wasn't hot unplugged... */
+       if (adev_present(adev)) {
+
+               acx_sem_lock(adev);
+
+               /* disable both Tx and Rx to shut radio down properly */
+               acx_s_issue_cmd(adev, ACX1xx_CMD_DISABLE_TX, NULL, 0);
+               acx_s_issue_cmd(adev, ACX1xx_CMD_DISABLE_RX, NULL, 0);
...

--
vda

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help