diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/scsi/mpt2sas/mpt2sas_base.h | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_base.h')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.h | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h index 0cf6bc236e4d..e18b0544c38f 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.h +++ b/drivers/scsi/mpt2sas/mpt2sas_base.h | |||
@@ -69,10 +69,10 @@ | |||
69 | #define MPT2SAS_DRIVER_NAME "mpt2sas" | 69 | #define MPT2SAS_DRIVER_NAME "mpt2sas" |
70 | #define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>" | 70 | #define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>" |
71 | #define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver" | 71 | #define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver" |
72 | #define MPT2SAS_DRIVER_VERSION "02.100.03.00" | 72 | #define MPT2SAS_DRIVER_VERSION "04.100.01.00" |
73 | #define MPT2SAS_MAJOR_VERSION 02 | 73 | #define MPT2SAS_MAJOR_VERSION 04 |
74 | #define MPT2SAS_MINOR_VERSION 100 | 74 | #define MPT2SAS_MINOR_VERSION 100 |
75 | #define MPT2SAS_BUILD_VERSION 03 | 75 | #define MPT2SAS_BUILD_VERSION 01 |
76 | #define MPT2SAS_RELEASE_VERSION 00 | 76 | #define MPT2SAS_RELEASE_VERSION 00 |
77 | 77 | ||
78 | /* | 78 | /* |
@@ -278,7 +278,7 @@ struct _internal_cmd { | |||
278 | * @sas_address: device sas address | 278 | * @sas_address: device sas address |
279 | * @device_name: retrieved from the SAS IDENTIFY frame. | 279 | * @device_name: retrieved from the SAS IDENTIFY frame. |
280 | * @handle: device handle | 280 | * @handle: device handle |
281 | * @parent_handle: handle to parent device | 281 | * @sas_address_parent: sas address of parent expander or sas host |
282 | * @enclosure_handle: enclosure handle | 282 | * @enclosure_handle: enclosure handle |
283 | * @enclosure_logical_id: enclosure logical identifier | 283 | * @enclosure_logical_id: enclosure logical identifier |
284 | * @volume_handle: volume handle (valid when hidden raid member) | 284 | * @volume_handle: volume handle (valid when hidden raid member) |
@@ -296,7 +296,7 @@ struct _sas_device { | |||
296 | u64 sas_address; | 296 | u64 sas_address; |
297 | u64 device_name; | 297 | u64 device_name; |
298 | u16 handle; | 298 | u16 handle; |
299 | u16 parent_handle; | 299 | u64 sas_address_parent; |
300 | u16 enclosure_handle; | 300 | u16 enclosure_handle; |
301 | u64 enclosure_logical_id; | 301 | u64 enclosure_logical_id; |
302 | u16 volume_handle; | 302 | u16 volume_handle; |
@@ -323,6 +323,7 @@ struct _sas_device { | |||
323 | * @device_info: bitfield provides detailed info about the hidden components | 323 | * @device_info: bitfield provides detailed info about the hidden components |
324 | * @num_pds: number of hidden raid components | 324 | * @num_pds: number of hidden raid components |
325 | * @responding: used in _scsih_raid_device_mark_responding | 325 | * @responding: used in _scsih_raid_device_mark_responding |
326 | * @percent_complete: resync percent complete | ||
326 | */ | 327 | */ |
327 | struct _raid_device { | 328 | struct _raid_device { |
328 | struct list_head list; | 329 | struct list_head list; |
@@ -336,6 +337,7 @@ struct _raid_device { | |||
336 | u32 device_info; | 337 | u32 device_info; |
337 | u8 num_pds; | 338 | u8 num_pds; |
338 | u8 responding; | 339 | u8 responding; |
340 | u8 percent_complete; | ||
339 | }; | 341 | }; |
340 | 342 | ||
341 | /** | 343 | /** |
@@ -352,8 +354,6 @@ struct _boot_device { | |||
352 | /** | 354 | /** |
353 | * struct _sas_port - wide/narrow sas port information | 355 | * struct _sas_port - wide/narrow sas port information |
354 | * @port_list: list of ports belonging to expander | 356 | * @port_list: list of ports belonging to expander |
355 | * @handle: device handle for this port | ||
356 | * @sas_address: sas address of this port | ||
357 | * @num_phys: number of phys belonging to this port | 357 | * @num_phys: number of phys belonging to this port |
358 | * @remote_identify: attached device identification | 358 | * @remote_identify: attached device identification |
359 | * @rphy: sas transport rphy object | 359 | * @rphy: sas transport rphy object |
@@ -362,8 +362,6 @@ struct _boot_device { | |||
362 | */ | 362 | */ |
363 | struct _sas_port { | 363 | struct _sas_port { |
364 | struct list_head port_list; | 364 | struct list_head port_list; |
365 | u16 handle; | ||
366 | u64 sas_address; | ||
367 | u8 num_phys; | 365 | u8 num_phys; |
368 | struct sas_identify remote_identify; | 366 | struct sas_identify remote_identify; |
369 | struct sas_rphy *rphy; | 367 | struct sas_rphy *rphy; |
@@ -398,7 +396,7 @@ struct _sas_phy { | |||
398 | * @num_phys: number phys belonging to this sas_host/expander | 396 | * @num_phys: number phys belonging to this sas_host/expander |
399 | * @sas_address: sas address of this sas_host/expander | 397 | * @sas_address: sas address of this sas_host/expander |
400 | * @handle: handle for this sas_host/expander | 398 | * @handle: handle for this sas_host/expander |
401 | * @parent_handle: parent handle | 399 | * @sas_address_parent: sas address of parent expander or sas host |
402 | * @enclosure_handle: handle for this a member of an enclosure | 400 | * @enclosure_handle: handle for this a member of an enclosure |
403 | * @device_info: bitwise defining capabilities of this sas_host/expander | 401 | * @device_info: bitwise defining capabilities of this sas_host/expander |
404 | * @responding: used in _scsih_expander_device_mark_responding | 402 | * @responding: used in _scsih_expander_device_mark_responding |
@@ -411,7 +409,7 @@ struct _sas_node { | |||
411 | u8 num_phys; | 409 | u8 num_phys; |
412 | u64 sas_address; | 410 | u64 sas_address; |
413 | u16 handle; | 411 | u16 handle; |
414 | u16 parent_handle; | 412 | u64 sas_address_parent; |
415 | u16 enclosure_handle; | 413 | u16 enclosure_handle; |
416 | u64 enclosure_logical_id; | 414 | u64 enclosure_logical_id; |
417 | u8 responding; | 415 | u8 responding; |
@@ -468,8 +466,8 @@ typedef void (*MPT_ADD_SGE)(void *paddr, u32 flags_length, dma_addr_t dma_addr); | |||
468 | * @pdev: pci pdev object | 466 | * @pdev: pci pdev object |
469 | * @chip: memory mapped register space | 467 | * @chip: memory mapped register space |
470 | * @chip_phys: physical addrss prior to mapping | 468 | * @chip_phys: physical addrss prior to mapping |
471 | * @pio_chip: I/O mapped register space | ||
472 | * @logging_level: see mpt2sas_debug.h | 469 | * @logging_level: see mpt2sas_debug.h |
470 | * @fwfault_debug: debuging FW timeouts | ||
473 | * @ir_firmware: IR firmware present | 471 | * @ir_firmware: IR firmware present |
474 | * @bars: bitmask of BAR's that must be configured | 472 | * @bars: bitmask of BAR's that must be configured |
475 | * @mask_interrupts: ignore interrupt | 473 | * @mask_interrupts: ignore interrupt |
@@ -495,12 +493,14 @@ typedef void (*MPT_ADD_SGE)(void *paddr, u32 flags_length, dma_addr_t dma_addr); | |||
495 | * @msix_table_backup: backup msix table | 493 | * @msix_table_backup: backup msix table |
496 | * @scsi_io_cb_idx: shost generated commands | 494 | * @scsi_io_cb_idx: shost generated commands |
497 | * @tm_cb_idx: task management commands | 495 | * @tm_cb_idx: task management commands |
496 | * @scsih_cb_idx: scsih internal commands | ||
498 | * @transport_cb_idx: transport internal commands | 497 | * @transport_cb_idx: transport internal commands |
499 | * @ctl_cb_idx: clt internal commands | 498 | * @ctl_cb_idx: clt internal commands |
500 | * @base_cb_idx: base internal commands | 499 | * @base_cb_idx: base internal commands |
501 | * @config_cb_idx: base internal commands | 500 | * @config_cb_idx: base internal commands |
502 | * @base_cmds: | 501 | * @base_cmds: |
503 | * @transport_cmds: | 502 | * @transport_cmds: |
503 | * @scsih_cmds: | ||
504 | * @tm_cmds: | 504 | * @tm_cmds: |
505 | * @ctl_cmds: | 505 | * @ctl_cmds: |
506 | * @config_cmds: | 506 | * @config_cmds: |
@@ -588,9 +588,9 @@ struct MPT2SAS_ADAPTER { | |||
588 | char tmp_string[MPT_STRING_LENGTH]; | 588 | char tmp_string[MPT_STRING_LENGTH]; |
589 | struct pci_dev *pdev; | 589 | struct pci_dev *pdev; |
590 | Mpi2SystemInterfaceRegs_t __iomem *chip; | 590 | Mpi2SystemInterfaceRegs_t __iomem *chip; |
591 | unsigned long chip_phys; | 591 | resource_size_t chip_phys; |
592 | unsigned long pio_chip; | ||
593 | int logging_level; | 592 | int logging_level; |
593 | int fwfault_debug; | ||
594 | u8 ir_firmware; | 594 | u8 ir_firmware; |
595 | int bars; | 595 | int bars; |
596 | u8 mask_interrupts; | 596 | u8 mask_interrupts; |
@@ -626,6 +626,7 @@ struct MPT2SAS_ADAPTER { | |||
626 | u8 scsi_io_cb_idx; | 626 | u8 scsi_io_cb_idx; |
627 | u8 tm_cb_idx; | 627 | u8 tm_cb_idx; |
628 | u8 transport_cb_idx; | 628 | u8 transport_cb_idx; |
629 | u8 scsih_cb_idx; | ||
629 | u8 ctl_cb_idx; | 630 | u8 ctl_cb_idx; |
630 | u8 base_cb_idx; | 631 | u8 base_cb_idx; |
631 | u8 config_cb_idx; | 632 | u8 config_cb_idx; |
@@ -633,6 +634,7 @@ struct MPT2SAS_ADAPTER { | |||
633 | u8 tm_sas_control_cb_idx; | 634 | u8 tm_sas_control_cb_idx; |
634 | struct _internal_cmd base_cmds; | 635 | struct _internal_cmd base_cmds; |
635 | struct _internal_cmd transport_cmds; | 636 | struct _internal_cmd transport_cmds; |
637 | struct _internal_cmd scsih_cmds; | ||
636 | struct _internal_cmd tm_cmds; | 638 | struct _internal_cmd tm_cmds; |
637 | struct _internal_cmd ctl_cmds; | 639 | struct _internal_cmd ctl_cmds; |
638 | struct _internal_cmd config_cmds; | 640 | struct _internal_cmd config_cmds; |
@@ -773,7 +775,7 @@ int mpt2sas_base_hard_reset_handler(struct MPT2SAS_ADAPTER *ioc, int sleep_flag, | |||
773 | void *mpt2sas_base_get_msg_frame(struct MPT2SAS_ADAPTER *ioc, u16 smid); | 775 | void *mpt2sas_base_get_msg_frame(struct MPT2SAS_ADAPTER *ioc, u16 smid); |
774 | void *mpt2sas_base_get_sense_buffer(struct MPT2SAS_ADAPTER *ioc, u16 smid); | 776 | void *mpt2sas_base_get_sense_buffer(struct MPT2SAS_ADAPTER *ioc, u16 smid); |
775 | void mpt2sas_base_build_zero_len_sge(struct MPT2SAS_ADAPTER *ioc, void *paddr); | 777 | void mpt2sas_base_build_zero_len_sge(struct MPT2SAS_ADAPTER *ioc, void *paddr); |
776 | dma_addr_t mpt2sas_base_get_sense_buffer_dma(struct MPT2SAS_ADAPTER *ioc, | 778 | __le32 mpt2sas_base_get_sense_buffer_dma(struct MPT2SAS_ADAPTER *ioc, |
777 | u16 smid); | 779 | u16 smid); |
778 | 780 | ||
779 | /* hi-priority queue */ | 781 | /* hi-priority queue */ |
@@ -807,6 +809,8 @@ int mpt2sas_base_scsi_enclosure_processor(struct MPT2SAS_ADAPTER *ioc, | |||
807 | Mpi2SepReply_t *mpi_reply, Mpi2SepRequest_t *mpi_request); | 809 | Mpi2SepReply_t *mpi_reply, Mpi2SepRequest_t *mpi_request); |
808 | void mpt2sas_base_validate_event_type(struct MPT2SAS_ADAPTER *ioc, u32 *event_type); | 810 | void mpt2sas_base_validate_event_type(struct MPT2SAS_ADAPTER *ioc, u32 *event_type); |
809 | 811 | ||
812 | void mpt2sas_halt_firmware(struct MPT2SAS_ADAPTER *ioc); | ||
813 | |||
810 | /* scsih shared API */ | 814 | /* scsih shared API */ |
811 | u8 mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index, | 815 | u8 mpt2sas_scsih_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index, |
812 | u32 reply); | 816 | u32 reply); |
@@ -849,6 +853,8 @@ int mpt2sas_config_set_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t | |||
849 | *mpi_reply, Mpi2IOUnitPage1_t *config_page); | 853 | *mpi_reply, Mpi2IOUnitPage1_t *config_page); |
850 | int mpt2sas_config_get_sas_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t | 854 | int mpt2sas_config_get_sas_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t |
851 | *mpi_reply, Mpi2SasIOUnitPage1_t *config_page, u16 sz); | 855 | *mpi_reply, Mpi2SasIOUnitPage1_t *config_page, u16 sz); |
856 | int mpt2sas_config_set_sas_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, | ||
857 | Mpi2ConfigReply_t *mpi_reply, Mpi2SasIOUnitPage1_t *config_page, u16 sz); | ||
852 | int mpt2sas_config_get_ioc_pg8(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t | 858 | int mpt2sas_config_get_ioc_pg8(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t |
853 | *mpi_reply, Mpi2IOCPage8_t *config_page); | 859 | *mpi_reply, Mpi2IOCPage8_t *config_page); |
854 | int mpt2sas_config_get_expander_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t | 860 | int mpt2sas_config_get_expander_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t |
@@ -886,19 +892,22 @@ u8 mpt2sas_ctl_event_callback(struct MPT2SAS_ADAPTER *ioc, u8 msix_index, | |||
886 | void mpt2sas_ctl_add_to_event_log(struct MPT2SAS_ADAPTER *ioc, | 892 | void mpt2sas_ctl_add_to_event_log(struct MPT2SAS_ADAPTER *ioc, |
887 | Mpi2EventNotificationReply_t *mpi_reply); | 893 | Mpi2EventNotificationReply_t *mpi_reply); |
888 | 894 | ||
895 | void mpt2sas_enable_diag_buffer(struct MPT2SAS_ADAPTER *ioc, | ||
896 | u8 bits_to_regsiter); | ||
897 | |||
889 | /* transport shared API */ | 898 | /* transport shared API */ |
890 | u8 mpt2sas_transport_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index, | 899 | u8 mpt2sas_transport_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index, |
891 | u32 reply); | 900 | u32 reply); |
892 | struct _sas_port *mpt2sas_transport_port_add(struct MPT2SAS_ADAPTER *ioc, | 901 | struct _sas_port *mpt2sas_transport_port_add(struct MPT2SAS_ADAPTER *ioc, |
893 | u16 handle, u16 parent_handle); | 902 | u16 handle, u64 sas_address); |
894 | void mpt2sas_transport_port_remove(struct MPT2SAS_ADAPTER *ioc, u64 sas_address, | 903 | void mpt2sas_transport_port_remove(struct MPT2SAS_ADAPTER *ioc, u64 sas_address, |
895 | u16 parent_handle); | 904 | u64 sas_address_parent); |
896 | int mpt2sas_transport_add_host_phy(struct MPT2SAS_ADAPTER *ioc, struct _sas_phy | 905 | int mpt2sas_transport_add_host_phy(struct MPT2SAS_ADAPTER *ioc, struct _sas_phy |
897 | *mpt2sas_phy, Mpi2SasPhyPage0_t phy_pg0, struct device *parent_dev); | 906 | *mpt2sas_phy, Mpi2SasPhyPage0_t phy_pg0, struct device *parent_dev); |
898 | int mpt2sas_transport_add_expander_phy(struct MPT2SAS_ADAPTER *ioc, struct _sas_phy | 907 | int mpt2sas_transport_add_expander_phy(struct MPT2SAS_ADAPTER *ioc, struct _sas_phy |
899 | *mpt2sas_phy, Mpi2ExpanderPage1_t expander_pg1, struct device *parent_dev); | 908 | *mpt2sas_phy, Mpi2ExpanderPage1_t expander_pg1, struct device *parent_dev); |
900 | void mpt2sas_transport_update_links(struct MPT2SAS_ADAPTER *ioc, u16 handle, | 909 | void mpt2sas_transport_update_links(struct MPT2SAS_ADAPTER *ioc, |
901 | u16 attached_handle, u8 phy_number, u8 link_rate); | 910 | u64 sas_address, u16 handle, u8 phy_number, u8 link_rate); |
902 | extern struct sas_function_template mpt2sas_transport_functions; | 911 | extern struct sas_function_template mpt2sas_transport_functions; |
903 | extern struct scsi_transport_template *mpt2sas_transport_template; | 912 | extern struct scsi_transport_template *mpt2sas_transport_template; |
904 | extern int scsi_internal_device_block(struct scsi_device *sdev); | 913 | extern int scsi_internal_device_block(struct scsi_device *sdev); |