diff options
author | Ron Mercer <ron.mercer@qlogic.com> | 2009-03-03 12:10:33 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-03 23:50:47 -0800 |
commit | 2ee1e272d1661d7846da753248a4141ad5f16d69 (patch) | |
tree | 0e2f80fc7b36a85d1ac4f19b2f0955cddc56a858 /drivers/net/qlge/qlge_main.c | |
parent | 5700abe94794cd548d9cb8bfb7e00eb7a8bedb60 (diff) | |
download | lwn-2ee1e272d1661d7846da753248a4141ad5f16d69.tar.gz lwn-2ee1e272d1661d7846da753248a4141ad5f16d69.zip |
qlge: Add worker-handler for firmware events.
This worker and it's supporting routines are used for
IDC 'inter-device-communication' events that require
an ACK mailbox command be sent to allow completion
of the request. These requests are originated by
another function wanting to change some common
port paramters. Typical example would be:
1) Change max TX/RX frame size allowed.
2) Change pause parameters.
3) Change loopback mode.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlge/qlge_main.c')
-rw-r--r-- | drivers/net/qlge/qlge_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 7c1ce5765759..d800ff40b32b 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -3014,7 +3014,7 @@ exit: return status; } -static int ql_cam_route_initialize(struct ql_adapter *qdev) +int ql_cam_route_initialize(struct ql_adapter *qdev) { int status; @@ -3195,6 +3195,7 @@ static int ql_adapter_down(struct ql_adapter *qdev) cancel_delayed_work_sync(&qdev->asic_reset_work); cancel_delayed_work_sync(&qdev->mpi_reset_work); cancel_delayed_work_sync(&qdev->mpi_work); + cancel_delayed_work_sync(&qdev->mpi_idc_work); cancel_delayed_work_sync(&qdev->mpi_port_cfg_work); /* The default queue at index 0 is always processed in @@ -3782,6 +3783,7 @@ static int __devinit ql_init_device(struct pci_dev *pdev, INIT_DELAYED_WORK(&qdev->mpi_reset_work, ql_mpi_reset_work); INIT_DELAYED_WORK(&qdev->mpi_work, ql_mpi_work); INIT_DELAYED_WORK(&qdev->mpi_port_cfg_work, ql_mpi_port_cfg_work); + INIT_DELAYED_WORK(&qdev->mpi_idc_work, ql_mpi_idc_work); mutex_init(&qdev->mpi_mutex); init_completion(&qdev->ide_completion); |