summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSatish Kharat <satishkh@cisco.com>2019-01-14 20:09:28 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2019-01-22 21:18:34 -0500
commit68e3cc02bcfc4f55a47333ee7d8fe1a9b41d72c3 (patch)
treee77e7f2c90e80553ad8c607171e433c30ba1b9cb
parent120dbfd94c4d5c9634d1f8fb12aa92520eee117c (diff)
scsi: fnic: RQ enable and then post descriptors
Do RQ enable before posting descriptor. This is needed for later hw revisions. Signed-off-by: Satish Kharat <satishkh@cisco.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/fnic/fnic_main.c5
-rw-r--r--drivers/scsi/fnic/vnic_devcmd.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
index 7a5665acf280..25e0414b6cb0 100644
--- a/drivers/scsi/fnic/fnic_main.c
+++ b/drivers/scsi/fnic/fnic_main.c
@@ -654,7 +654,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
654 } 654 }
655 655
656 err = fnic_dev_wait(fnic->vdev, vnic_dev_open, 656 err = fnic_dev_wait(fnic->vdev, vnic_dev_open,
657 vnic_dev_open_done, 0); 657 vnic_dev_open_done, CMD_OPENF_RQ_ENABLE_THEN_POST);
658 if (err) { 658 if (err) {
659 shost_printk(KERN_ERR, fnic->lport->host, 659 shost_printk(KERN_ERR, fnic->lport->host,
660 "vNIC dev open failed, aborting.\n"); 660 "vNIC dev open failed, aborting.\n");
@@ -799,6 +799,7 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
799 799
800 /* allocate RQ buffers and post them to RQ*/ 800 /* allocate RQ buffers and post them to RQ*/
801 for (i = 0; i < fnic->rq_count; i++) { 801 for (i = 0; i < fnic->rq_count; i++) {
802 vnic_rq_enable(&fnic->rq[i]);
802 err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame); 803 err = vnic_rq_fill(&fnic->rq[i], fnic_alloc_rq_frame);
803 if (err) { 804 if (err) {
804 shost_printk(KERN_ERR, fnic->lport->host, 805 shost_printk(KERN_ERR, fnic->lport->host,
@@ -873,8 +874,6 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
873 /* Enable all queues */ 874 /* Enable all queues */
874 for (i = 0; i < fnic->raw_wq_count; i++) 875 for (i = 0; i < fnic->raw_wq_count; i++)
875 vnic_wq_enable(&fnic->wq[i]); 876 vnic_wq_enable(&fnic->wq[i]);
876 for (i = 0; i < fnic->rq_count; i++)
877 vnic_rq_enable(&fnic->rq[i]);
878 for (i = 0; i < fnic->wq_copy_count; i++) 877 for (i = 0; i < fnic->wq_copy_count; i++)
879 vnic_wq_copy_enable(&fnic->wq_copy[i]); 878 vnic_wq_copy_enable(&fnic->wq_copy[i]);
880 879
diff --git a/drivers/scsi/fnic/vnic_devcmd.h b/drivers/scsi/fnic/vnic_devcmd.h
index 3e2fcbda6aed..1a2a13bd6442 100644
--- a/drivers/scsi/fnic/vnic_devcmd.h
+++ b/drivers/scsi/fnic/vnic_devcmd.h
@@ -268,6 +268,8 @@ enum vnic_devcmd_cmd {
268/* flags for CMD_OPEN */ 268/* flags for CMD_OPEN */
269#define CMD_OPENF_OPROM 0x1 /* open coming from option rom */ 269#define CMD_OPENF_OPROM 0x1 /* open coming from option rom */
270 270
271#define CMD_OPENF_RQ_ENABLE_THEN_POST 0x2
272
271/* flags for CMD_INIT */ 273/* flags for CMD_INIT */
272#define CMD_INITF_DEFAULT_MAC 0x1 /* init with default mac addr */ 274#define CMD_INITF_DEFAULT_MAC 0x1 /* init with default mac addr */
273 275