diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2009-09-25 02:14:41 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-10-02 10:47:52 -0400 |
commit | 7b936b02293b2891d899233d3f4bb45295e8c1f9 (patch) | |
tree | 462d97406247680f3e0d49f720bde991a0a97538 /drivers/scsi/mpt2sas/mpt2sas_ctl.c | |
parent | 7725ccfda59715ecf8f99e3b520a0b84cc2ea79e (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.c | 35 |
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 | */ |
230 | void | 230 | void |
231 | mpt2sas_ctl_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 VF_ID, u32 reply) | 231 | mpt2sas_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 | */ |
340 | void | 341 | void |
341 | mpt2sas_ctl_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 VF_ID, u32 reply) | 342 | mpt2sas_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); |