aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_ctl.c
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-09-25 02:14:41 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-10-02 10:47:52 -0400
commit7b936b02293b2891d899233d3f4bb45295e8c1f9 (patch)
tree462d97406247680f3e0d49f720bde991a0a97538 /drivers/scsi/mpt2sas/mpt2sas_ctl.c
parent7725ccfda59715ecf8f99e3b520a0b84cc2ea79e (diff)
[SCSI] mpt2sas: Update driver to MPI2 REV K headers.
Drivers header are updated to the MPI2 REV K headers. Renamed VF_ID to msix_index in all call back handlers. VF_ID is removed from all request descriptor. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_ctl.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_ctl.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_ctl.c b/drivers/scsi/mpt2sas/mpt2sas_ctl.c
index c2a51018910f..af269268febd 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_ctl.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_ctl.c
@@ -219,7 +219,7 @@ _ctl_display_some_debug(struct MPT2SAS_ADAPTER *ioc, u16 smid,
219 * mpt2sas_ctl_done - ctl module completion routine 219 * mpt2sas_ctl_done - ctl module completion routine
220 * @ioc: per adapter object 220 * @ioc: per adapter object
221 * @smid: system request message index 221 * @smid: system request message index
222 * @VF_ID: virtual function id 222 * @msix_index: MSIX table index supplied by the OS
223 * @reply: reply message frame(lower 32bit addr) 223 * @reply: reply message frame(lower 32bit addr)
224 * Context: none. 224 * Context: none.
225 * 225 *
@@ -228,7 +228,8 @@ _ctl_display_some_debug(struct MPT2SAS_ADAPTER *ioc, u16 smid,
228 * Return nothing. 228 * Return nothing.
229 */ 229 */
230void 230void
231mpt2sas_ctl_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 VF_ID, u32 reply) 231mpt2sas_ctl_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
232 u32 reply)
232{ 233{
233 MPI2DefaultReply_t *mpi_reply; 234 MPI2DefaultReply_t *mpi_reply;
234 235
@@ -328,7 +329,7 @@ mpt2sas_ctl_add_to_event_log(struct MPT2SAS_ADAPTER *ioc,
328/** 329/**
329 * mpt2sas_ctl_event_callback - firmware event handler (called at ISR time) 330 * mpt2sas_ctl_event_callback - firmware event handler (called at ISR time)
330 * @ioc: per adapter object 331 * @ioc: per adapter object
331 * @VF_ID: virtual function id 332 * @msix_index: MSIX table index supplied by the OS
332 * @reply: reply message frame(lower 32bit addr) 333 * @reply: reply message frame(lower 32bit addr)
333 * Context: interrupt. 334 * Context: interrupt.
334 * 335 *
@@ -338,7 +339,8 @@ mpt2sas_ctl_add_to_event_log(struct MPT2SAS_ADAPTER *ioc,
338 * Return nothing. 339 * Return nothing.
339 */ 340 */
340void 341void
341mpt2sas_ctl_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 VF_ID, u32 reply) 342mpt2sas_ctl_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index,
343 u32 reply)
342{ 344{
343 Mpi2EventNotificationReply_t *mpi_reply; 345 Mpi2EventNotificationReply_t *mpi_reply;
344 346
@@ -737,7 +739,7 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
737 (u32)mpt2sas_base_get_sense_buffer_dma(ioc, smid); 739 (u32)mpt2sas_base_get_sense_buffer_dma(ioc, smid);
738 priv_sense = mpt2sas_base_get_sense_buffer(ioc, smid); 740 priv_sense = mpt2sas_base_get_sense_buffer(ioc, smid);
739 memset(priv_sense, 0, SCSI_SENSE_BUFFERSIZE); 741 memset(priv_sense, 0, SCSI_SENSE_BUFFERSIZE);
740 mpt2sas_base_put_smid_scsi_io(ioc, smid, 0, 742 mpt2sas_base_put_smid_scsi_io(ioc, smid,
741 le16_to_cpu(mpi_request->FunctionDependent1)); 743 le16_to_cpu(mpi_request->FunctionDependent1));
742 break; 744 break;
743 } 745 }
@@ -759,8 +761,7 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
759 mutex_lock(&ioc->tm_cmds.mutex); 761 mutex_lock(&ioc->tm_cmds.mutex);
760 mpt2sas_scsih_set_tm_flag(ioc, le16_to_cpu( 762 mpt2sas_scsih_set_tm_flag(ioc, le16_to_cpu(
761 tm_request->DevHandle)); 763 tm_request->DevHandle));
762 mpt2sas_base_put_smid_hi_priority(ioc, smid, 764 mpt2sas_base_put_smid_hi_priority(ioc, smid);
763 mpi_request->VF_ID);
764 break; 765 break;
765 } 766 }
766 case MPI2_FUNCTION_SMP_PASSTHROUGH: 767 case MPI2_FUNCTION_SMP_PASSTHROUGH:
@@ -781,7 +782,7 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
781 ioc->ioc_link_reset_in_progress = 1; 782 ioc->ioc_link_reset_in_progress = 1;
782 ioc->ignore_loginfos = 1; 783 ioc->ignore_loginfos = 1;
783 } 784 }
784 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 785 mpt2sas_base_put_smid_default(ioc, smid);
785 break; 786 break;
786 } 787 }
787 case MPI2_FUNCTION_SAS_IO_UNIT_CONTROL: 788 case MPI2_FUNCTION_SAS_IO_UNIT_CONTROL:
@@ -795,11 +796,11 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
795 ioc->ioc_link_reset_in_progress = 1; 796 ioc->ioc_link_reset_in_progress = 1;
796 ioc->ignore_loginfos = 1; 797 ioc->ignore_loginfos = 1;
797 } 798 }
798 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 799 mpt2sas_base_put_smid_default(ioc, smid);
799 break; 800 break;
800 } 801 }
801 default: 802 default:
802 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 803 mpt2sas_base_put_smid_default(ioc, smid);
803 break; 804 break;
804 } 805 }
805 806
@@ -1371,6 +1372,8 @@ _ctl_diag_register(void __user *arg, enum block_state state)
1371 mpi_request->Flags = cpu_to_le32(karg.diagnostic_flags); 1372 mpi_request->Flags = cpu_to_le32(karg.diagnostic_flags);
1372 mpi_request->BufferAddress = cpu_to_le64(request_data_dma); 1373 mpi_request->BufferAddress = cpu_to_le64(request_data_dma);
1373 mpi_request->BufferLength = cpu_to_le32(request_data_sz); 1374 mpi_request->BufferLength = cpu_to_le32(request_data_sz);
1375 mpi_request->VF_ID = 0; /* TODO */
1376 mpi_request->VP_ID = 0;
1374 1377
1375 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: diag_buffer(0x%p), " 1378 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: diag_buffer(0x%p), "
1376 "dma(0x%llx), sz(%d)\n", ioc->name, __func__, request_data, 1379 "dma(0x%llx), sz(%d)\n", ioc->name, __func__, request_data,
@@ -1380,7 +1383,7 @@ _ctl_diag_register(void __user *arg, enum block_state state)
1380 mpi_request->ProductSpecific[i] = 1383 mpi_request->ProductSpecific[i] =
1381 cpu_to_le32(ioc->product_specific[buffer_type][i]); 1384 cpu_to_le32(ioc->product_specific[buffer_type][i]);
1382 1385
1383 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 1386 mpt2sas_base_put_smid_default(ioc, smid);
1384 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done, 1387 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done,
1385 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ); 1388 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ);
1386 1389
@@ -1643,8 +1646,10 @@ _ctl_send_release(struct MPT2SAS_ADAPTER *ioc, u8 buffer_type, u8 *issue_reset)
1643 1646
1644 mpi_request->Function = MPI2_FUNCTION_DIAG_RELEASE; 1647 mpi_request->Function = MPI2_FUNCTION_DIAG_RELEASE;
1645 mpi_request->BufferType = buffer_type; 1648 mpi_request->BufferType = buffer_type;
1649 mpi_request->VF_ID = 0; /* TODO */
1650 mpi_request->VP_ID = 0;
1646 1651
1647 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 1652 mpt2sas_base_put_smid_default(ioc, smid);
1648 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done, 1653 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done,
1649 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ); 1654 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ);
1650 1655
@@ -1902,8 +1907,10 @@ _ctl_diag_read_buffer(void __user *arg, enum block_state state)
1902 for (i = 0; i < MPT2_PRODUCT_SPECIFIC_DWORDS; i++) 1907 for (i = 0; i < MPT2_PRODUCT_SPECIFIC_DWORDS; i++)
1903 mpi_request->ProductSpecific[i] = 1908 mpi_request->ProductSpecific[i] =
1904 cpu_to_le32(ioc->product_specific[buffer_type][i]); 1909 cpu_to_le32(ioc->product_specific[buffer_type][i]);
1910 mpi_request->VF_ID = 0; /* TODO */
1911 mpi_request->VP_ID = 0;
1905 1912
1906 mpt2sas_base_put_smid_default(ioc, smid, mpi_request->VF_ID); 1913 mpt2sas_base_put_smid_default(ioc, smid);
1907 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done, 1914 timeleft = wait_for_completion_timeout(&ioc->ctl_cmds.done,
1908 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ); 1915 MPT2_IOCTL_DEFAULT_TIMEOUT*HZ);
1909 1916
@@ -2069,6 +2076,7 @@ static long
2069_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 2076_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2070{ 2077{
2071 long ret; 2078 long ret;
2079
2072 lock_kernel(); 2080 lock_kernel();
2073 ret = _ctl_ioctl_main(file, cmd, (void __user *)arg); 2081 ret = _ctl_ioctl_main(file, cmd, (void __user *)arg);
2074 unlock_kernel(); 2082 unlock_kernel();
@@ -2143,6 +2151,7 @@ static long
2143_ctl_ioctl_compat(struct file *file, unsigned cmd, unsigned long arg) 2151_ctl_ioctl_compat(struct file *file, unsigned cmd, unsigned long arg)
2144{ 2152{
2145 long ret; 2153 long ret;
2154
2146 lock_kernel(); 2155 lock_kernel();
2147 if (cmd == MPT2COMMAND32) 2156 if (cmd == MPT2COMMAND32)
2148 ret = _ctl_compat_mpt_command(file, cmd, arg); 2157 ret = _ctl_compat_mpt_command(file, cmd, arg);