diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-21 14:51:42 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-21 14:51:42 -0500 |
| commit | cdc194705d26fdd7fc5446b5d830f2bbe2b22c30 (patch) | |
| tree | 91a643f38d490e092855792576a7e903a419cfe1 /include | |
| parent | 772c8f6f3bbd3ceb94a89373473083e3e1113554 (diff) | |
| parent | d1da522fb8a70b8c527d4ad15f9e62218cc00f2c (diff) | |
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI updates from James Bottomley:
"This update includes the usual round of major driver updates (ncr5380,
ufs, lpfc, be2iscsi, hisi_sas, storvsc, cxlflash, aacraid,
megaraid_sas, ...).
There's also an assortment of minor fixes and the major update of
switching a bunch of drivers to pci_alloc_irq_vectors from Christoph"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (188 commits)
scsi: megaraid_sas: handle dma_addr_t right on 32-bit
scsi: megaraid_sas: array overflow in megasas_dump_frame()
scsi: snic: switch to pci_irq_alloc_vectors
scsi: megaraid_sas: driver version upgrade
scsi: megaraid_sas: Change RAID_1_10_RMW_CMDS to RAID_1_PEER_CMDS and set value to 2
scsi: megaraid_sas: Indentation and smatch warning fixes
scsi: megaraid_sas: Cleanup VD_EXT_DEBUG and SPAN_DEBUG related debug prints
scsi: megaraid_sas: Increase internal command pool
scsi: megaraid_sas: Use synchronize_irq to wait for IRQs to complete
scsi: megaraid_sas: Bail out the driver load if ld_list_query fails
scsi: megaraid_sas: Change build_mpt_mfi_pass_thru to return void
scsi: megaraid_sas: During OCR, if get_ctrl_info fails do not continue with OCR
scsi: megaraid_sas: Do not set fp_possible if TM capable for non-RW syspdIO, change fp_possible to bool
scsi: megaraid_sas: Remove unused pd_index from megasas_build_ld_nonrw_fusion
scsi: megaraid_sas: megasas_return_cmd does not memset IO frame to zero
scsi: megaraid_sas: max_fw_cmds are decremented twice, remove duplicate
scsi: megaraid_sas: update can_queue only if the new value is less
scsi: megaraid_sas: Change max_cmd from u32 to u16 in all functions
scsi: megaraid_sas: set pd_after_lb from MR_BuildRaidContext and initialize pDevHandle to MR_DEVHANDLE_INVALID
scsi: megaraid_sas: latest controller OCR capability from FW before sending shutdown DCMD
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/libata.h | 2 | ||||
| -rw-r--r-- | include/scsi/libiscsi.h | 1 | ||||
| -rw-r--r-- | include/scsi/scsi.h | 10 | ||||
| -rw-r--r-- | include/scsi/scsi_transport.h | 23 | ||||
| -rw-r--r-- | include/scsi/scsi_transport_fc.h | 1 | ||||
| -rw-r--r-- | include/scsi/scsi_transport_srp.h | 8 | ||||
| -rw-r--r-- | include/trace/events/ufs.h | 263 | ||||
| -rw-r--r-- | include/uapi/scsi/cxlflash_ioctl.h | 1 |
8 files changed, 269 insertions, 40 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index c170be548b7f..46e18c0619c6 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -1130,6 +1130,7 @@ extern int ata_sas_port_start(struct ata_port *ap); | |||
| 1130 | extern void ata_sas_port_stop(struct ata_port *ap); | 1130 | extern void ata_sas_port_stop(struct ata_port *ap); |
| 1131 | extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *); | 1131 | extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *); |
| 1132 | extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap); | 1132 | extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap); |
| 1133 | extern enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd); | ||
| 1133 | extern int sata_scr_valid(struct ata_link *link); | 1134 | extern int sata_scr_valid(struct ata_link *link); |
| 1134 | extern int sata_scr_read(struct ata_link *link, int reg, u32 *val); | 1135 | extern int sata_scr_read(struct ata_link *link, int reg, u32 *val); |
| 1135 | extern int sata_scr_write(struct ata_link *link, int reg, u32 val); | 1136 | extern int sata_scr_write(struct ata_link *link, int reg, u32 val); |
| @@ -1355,6 +1356,7 @@ extern struct device_attribute *ata_common_sdev_attrs[]; | |||
| 1355 | .proc_name = drv_name, \ | 1356 | .proc_name = drv_name, \ |
| 1356 | .slave_configure = ata_scsi_slave_config, \ | 1357 | .slave_configure = ata_scsi_slave_config, \ |
| 1357 | .slave_destroy = ata_scsi_slave_destroy, \ | 1358 | .slave_destroy = ata_scsi_slave_destroy, \ |
| 1359 | .eh_timed_out = ata_scsi_timed_out, \ | ||
| 1358 | .bios_param = ata_std_bios_param, \ | 1360 | .bios_param = ata_std_bios_param, \ |
| 1359 | .unlock_native_capacity = ata_scsi_unlock_native_capacity, \ | 1361 | .unlock_native_capacity = ata_scsi_unlock_native_capacity, \ |
| 1360 | .sdev_attrs = ata_common_sdev_attrs | 1362 | .sdev_attrs = ata_common_sdev_attrs |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 4d1c46aac331..b0e275de6dec 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
| @@ -383,6 +383,7 @@ extern int iscsi_eh_recover_target(struct scsi_cmnd *sc); | |||
| 383 | extern int iscsi_eh_session_reset(struct scsi_cmnd *sc); | 383 | extern int iscsi_eh_session_reset(struct scsi_cmnd *sc); |
| 384 | extern int iscsi_eh_device_reset(struct scsi_cmnd *sc); | 384 | extern int iscsi_eh_device_reset(struct scsi_cmnd *sc); |
| 385 | extern int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc); | 385 | extern int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc); |
| 386 | extern enum blk_eh_timer_return iscsi_eh_cmd_timed_out(struct scsi_cmnd *sc); | ||
| 386 | 387 | ||
| 387 | /* | 388 | /* |
| 388 | * iSCSI host helpers. | 389 | * iSCSI host helpers. |
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index 8ec7c30e35af..a1e1930b7a87 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h | |||
| @@ -29,16 +29,6 @@ enum scsi_timeouts { | |||
| 29 | */ | 29 | */ |
| 30 | #define SCAN_WILD_CARD ~0 | 30 | #define SCAN_WILD_CARD ~0 |
| 31 | 31 | ||
| 32 | #ifdef CONFIG_ACPI | ||
| 33 | struct acpi_bus_type; | ||
| 34 | |||
| 35 | extern int | ||
| 36 | scsi_register_acpi_bus_type(struct acpi_bus_type *bus); | ||
| 37 | |||
| 38 | extern void | ||
| 39 | scsi_unregister_acpi_bus_type(struct acpi_bus_type *bus); | ||
| 40 | #endif | ||
| 41 | |||
| 42 | /** scsi_status_is_good - check the status return. | 32 | /** scsi_status_is_good - check the status return. |
| 43 | * | 33 | * |
| 44 | * @status: the status passed up from the driver (including host and | 34 | * @status: the status passed up from the driver (including host and |
diff --git a/include/scsi/scsi_transport.h b/include/scsi/scsi_transport.h index b6e07b56d013..a3dcb1bfb362 100644 --- a/include/scsi/scsi_transport.h +++ b/include/scsi/scsi_transport.h | |||
| @@ -56,29 +56,6 @@ struct scsi_transport_template { | |||
| 56 | * Allows a transport to override the default error handler. | 56 | * Allows a transport to override the default error handler. |
| 57 | */ | 57 | */ |
| 58 | void (* eh_strategy_handler)(struct Scsi_Host *); | 58 | void (* eh_strategy_handler)(struct Scsi_Host *); |
| 59 | |||
| 60 | /* | ||
| 61 | * This is an optional routine that allows the transport to become | ||
| 62 | * involved when a scsi io timer fires. The return value tells the | ||
| 63 | * timer routine how to finish the io timeout handling: | ||
| 64 | * EH_HANDLED: I fixed the error, please complete the command | ||
| 65 | * EH_RESET_TIMER: I need more time, reset the timer and | ||
| 66 | * begin counting again | ||
| 67 | * EH_NOT_HANDLED Begin normal error recovery | ||
| 68 | */ | ||
| 69 | enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *); | ||
| 70 | |||
| 71 | /* | ||
| 72 | * Used as callback for the completion of i_t_nexus request | ||
| 73 | * for target drivers. | ||
| 74 | */ | ||
| 75 | int (* it_nexus_response)(struct Scsi_Host *, u64, int); | ||
| 76 | |||
| 77 | /* | ||
| 78 | * Used as callback for the completion of task management | ||
| 79 | * request for target drivers. | ||
| 80 | */ | ||
| 81 | int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int); | ||
| 82 | }; | 59 | }; |
| 83 | 60 | ||
| 84 | #define transport_class_to_shost(tc) \ | 61 | #define transport_class_to_shost(tc) \ |
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index 924c8e614b45..b21b8aa58c4d 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
| @@ -808,6 +808,7 @@ struct fc_vport *fc_vport_create(struct Scsi_Host *shost, int channel, | |||
| 808 | struct fc_vport_identifiers *); | 808 | struct fc_vport_identifiers *); |
| 809 | int fc_vport_terminate(struct fc_vport *vport); | 809 | int fc_vport_terminate(struct fc_vport *vport); |
| 810 | int fc_block_scsi_eh(struct scsi_cmnd *cmnd); | 810 | int fc_block_scsi_eh(struct scsi_cmnd *cmnd); |
| 811 | enum blk_eh_timer_return fc_eh_timed_out(struct scsi_cmnd *scmd); | ||
| 811 | 812 | ||
| 812 | static inline struct Scsi_Host *fc_bsg_to_shost(struct bsg_job *job) | 813 | static inline struct Scsi_Host *fc_bsg_to_shost(struct bsg_job *job) |
| 813 | { | 814 | { |
diff --git a/include/scsi/scsi_transport_srp.h b/include/scsi/scsi_transport_srp.h index d40d3ef25707..dd096330734e 100644 --- a/include/scsi/scsi_transport_srp.h +++ b/include/scsi/scsi_transport_srp.h | |||
| @@ -88,10 +88,6 @@ struct srp_rport { | |||
| 88 | * @terminate_rport_io: Callback function for terminating all outstanding I/O | 88 | * @terminate_rport_io: Callback function for terminating all outstanding I/O |
| 89 | * requests for an rport. | 89 | * requests for an rport. |
| 90 | * @rport_delete: Callback function that deletes an rport. | 90 | * @rport_delete: Callback function that deletes an rport. |
| 91 | * | ||
| 92 | * Fields that are only relevant for SRP target drivers: | ||
| 93 | * @tsk_mgmt_response: Callback function for sending a task management response. | ||
| 94 | * @it_nexus_response: Callback function for processing an IT nexus response. | ||
| 95 | */ | 91 | */ |
| 96 | struct srp_function_template { | 92 | struct srp_function_template { |
| 97 | /* for initiator drivers */ | 93 | /* for initiator drivers */ |
| @@ -103,9 +99,6 @@ struct srp_function_template { | |||
| 103 | int (*reconnect)(struct srp_rport *rport); | 99 | int (*reconnect)(struct srp_rport *rport); |
| 104 | void (*terminate_rport_io)(struct srp_rport *rport); | 100 | void (*terminate_rport_io)(struct srp_rport *rport); |
| 105 | void (*rport_delete)(struct srp_rport *rport); | 101 | void (*rport_delete)(struct srp_rport *rport); |
| 106 | /* for target drivers */ | ||
| 107 | int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int); | ||
| 108 | int (* it_nexus_response)(struct Scsi_Host *, u64, int); | ||
| 109 | }; | 102 | }; |
| 110 | 103 | ||
| 111 | extern struct scsi_transport_template * | 104 | extern struct scsi_transport_template * |
| @@ -124,6 +117,7 @@ extern int srp_reconnect_rport(struct srp_rport *rport); | |||
| 124 | extern void srp_start_tl_fail_timers(struct srp_rport *rport); | 117 | extern void srp_start_tl_fail_timers(struct srp_rport *rport); |
| 125 | extern void srp_remove_host(struct Scsi_Host *); | 118 | extern void srp_remove_host(struct Scsi_Host *); |
| 126 | extern void srp_stop_rport_timers(struct srp_rport *rport); | 119 | extern void srp_stop_rport_timers(struct srp_rport *rport); |
| 120 | enum blk_eh_timer_return srp_timed_out(struct scsi_cmnd *scmd); | ||
| 127 | 121 | ||
| 128 | /** | 122 | /** |
| 129 | * srp_chkready() - evaluate the transport layer state before I/O | 123 | * srp_chkready() - evaluate the transport layer state before I/O |
diff --git a/include/trace/events/ufs.h b/include/trace/events/ufs.h new file mode 100644 index 000000000000..bf6f82673492 --- /dev/null +++ b/include/trace/events/ufs.h | |||
| @@ -0,0 +1,263 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or modify | ||
| 5 | * it under the terms of the GNU General Public License version 2 and | ||
| 6 | * only version 2 as published by the Free Software Foundation. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #undef TRACE_SYSTEM | ||
| 15 | #define TRACE_SYSTEM ufs | ||
| 16 | |||
| 17 | #if !defined(_TRACE_UFS_H) || defined(TRACE_HEADER_MULTI_READ) | ||
| 18 | #define _TRACE_UFS_H | ||
| 19 | |||
| 20 | #include <linux/tracepoint.h> | ||
| 21 | |||
| 22 | #define UFS_LINK_STATES \ | ||
| 23 | EM(UIC_LINK_OFF_STATE) \ | ||
| 24 | EM(UIC_LINK_ACTIVE_STATE) \ | ||
| 25 | EMe(UIC_LINK_HIBERN8_STATE) | ||
| 26 | |||
| 27 | #define UFS_PWR_MODES \ | ||
| 28 | EM(UFS_ACTIVE_PWR_MODE) \ | ||
| 29 | EM(UFS_SLEEP_PWR_MODE) \ | ||
| 30 | EMe(UFS_POWERDOWN_PWR_MODE) | ||
| 31 | |||
| 32 | #define UFSCHD_CLK_GATING_STATES \ | ||
| 33 | EM(CLKS_OFF) \ | ||
| 34 | EM(CLKS_ON) \ | ||
| 35 | EM(REQ_CLKS_OFF) \ | ||
| 36 | EMe(REQ_CLKS_ON) | ||
| 37 | |||
| 38 | /* Enums require being exported to userspace, for user tool parsing */ | ||
| 39 | #undef EM | ||
| 40 | #undef EMe | ||
| 41 | #define EM(a) TRACE_DEFINE_ENUM(a); | ||
| 42 | #define EMe(a) TRACE_DEFINE_ENUM(a); | ||
| 43 | |||
| 44 | UFS_LINK_STATES; | ||
| 45 | UFS_PWR_MODES; | ||
| 46 | UFSCHD_CLK_GATING_STATES; | ||
| 47 | |||
| 48 | /* | ||
| 49 | * Now redefine the EM() and EMe() macros to map the enums to the strings | ||
| 50 | * that will be printed in the output. | ||
| 51 | */ | ||
| 52 | #undef EM | ||
| 53 | #undef EMe | ||
| 54 | #define EM(a) { a, #a }, | ||
| 55 | #define EMe(a) { a, #a } | ||
| 56 | |||
| 57 | TRACE_EVENT(ufshcd_clk_gating, | ||
| 58 | |||
| 59 | TP_PROTO(const char *dev_name, int state), | ||
| 60 | |||
| 61 | TP_ARGS(dev_name, state), | ||
| 62 | |||
| 63 | TP_STRUCT__entry( | ||
| 64 | __string(dev_name, dev_name) | ||
| 65 | __field(int, state) | ||
| 66 | ), | ||
| 67 | |||
| 68 | TP_fast_assign( | ||
| 69 | __assign_str(dev_name, dev_name); | ||
| 70 | __entry->state = state; | ||
| 71 | ), | ||
| 72 | |||
| 73 | TP_printk("%s: gating state changed to %s", | ||
| 74 | __get_str(dev_name), | ||
| 75 | __print_symbolic(__entry->state, UFSCHD_CLK_GATING_STATES)) | ||
| 76 | ); | ||
| 77 | |||
| 78 | TRACE_EVENT(ufshcd_clk_scaling, | ||
| 79 | |||
| 80 | TP_PROTO(const char *dev_name, const char *state, const char *clk, | ||
| 81 | u32 prev_state, u32 curr_state), | ||
| 82 | |||
| 83 | TP_ARGS(dev_name, state, clk, prev_state, curr_state), | ||
| 84 | |||
| 85 | TP_STRUCT__entry( | ||
| 86 | __string(dev_name, dev_name) | ||
| 87 | __string(state, state) | ||
| 88 | __string(clk, clk) | ||
| 89 | __field(u32, prev_state) | ||
| 90 | __field(u32, curr_state) | ||
| 91 | ), | ||
| 92 | |||
| 93 | TP_fast_assign( | ||
| 94 | __assign_str(dev_name, dev_name); | ||
| 95 | __assign_str(state, state); | ||
| 96 | __assign_str(clk, clk); | ||
| 97 | __entry->prev_state = prev_state; | ||
| 98 | __entry->curr_state = curr_state; | ||
| 99 | ), | ||
| 100 | |||
| 101 | TP_printk("%s: %s %s from %u to %u Hz", | ||
| 102 | __get_str(dev_name), __get_str(state), __get_str(clk), | ||
| 103 | __entry->prev_state, __entry->curr_state) | ||
| 104 | ); | ||
| 105 | |||
| 106 | TRACE_EVENT(ufshcd_auto_bkops_state, | ||
| 107 | |||
| 108 | TP_PROTO(const char *dev_name, const char *state), | ||
| 109 | |||
| 110 | TP_ARGS(dev_name, state), | ||
| 111 | |||
| 112 | TP_STRUCT__entry( | ||
| 113 | __string(dev_name, dev_name) | ||
| 114 | __string(state, state) | ||
| 115 | ), | ||
| 116 | |||
| 117 | TP_fast_assign( | ||
| 118 | __assign_str(dev_name, dev_name); | ||
| 119 | __assign_str(state, state); | ||
| 120 | ), | ||
| 121 | |||
| 122 | TP_printk("%s: auto bkops - %s", | ||
| 123 | __get_str(dev_name), __get_str(state)) | ||
| 124 | ); | ||
| 125 | |||
| 126 | DECLARE_EVENT_CLASS(ufshcd_profiling_template, | ||
| 127 | TP_PROTO(const char *dev_name, const char *profile_info, s64 time_us, | ||
| 128 | int err), | ||
| 129 | |||
| 130 | TP_ARGS(dev_name, profile_info, time_us, err), | ||
| 131 | |||
| 132 | TP_STRUCT__entry( | ||
| 133 | __string(dev_name, dev_name) | ||
| 134 | __string(profile_info, profile_info) | ||
| 135 | __field(s64, time_us) | ||
| 136 | __field(int, err) | ||
| 137 | ), | ||
| 138 | |||
| 139 | TP_fast_assign( | ||
| 140 | __assign_str(dev_name, dev_name); | ||
| 141 | __assign_str(profile_info, profile_info); | ||
| 142 | __entry->time_us = time_us; | ||
| 143 | __entry->err = err; | ||
| 144 | ), | ||
| 145 | |||
| 146 | TP_printk("%s: %s: took %lld usecs, err %d", | ||
| 147 | __get_str(dev_name), __get_str(profile_info), | ||
| 148 | __entry->time_us, __entry->err) | ||
| 149 | ); | ||
| 150 | |||
| 151 | DEFINE_EVENT(ufshcd_profiling_template, ufshcd_profile_hibern8, | ||
| 152 | TP_PROTO(const char *dev_name, const char *profile_info, s64 time_us, | ||
| 153 | int err), | ||
| 154 | TP_ARGS(dev_name, profile_info, time_us, err)); | ||
| 155 | |||
| 156 | DEFINE_EVENT(ufshcd_profiling_template, ufshcd_profile_clk_gating, | ||
| 157 | TP_PROTO(const char *dev_name, const char *profile_info, s64 time_us, | ||
| 158 | int err), | ||
| 159 | TP_ARGS(dev_name, profile_info, time_us, err)); | ||
| 160 | |||
| 161 | DEFINE_EVENT(ufshcd_profiling_template, ufshcd_profile_clk_scaling, | ||
| 162 | TP_PROTO(const char *dev_name, const char *profile_info, s64 time_us, | ||
| 163 | int err), | ||
| 164 | TP_ARGS(dev_name, profile_info, time_us, err)); | ||
| 165 | |||
| 166 | DECLARE_EVENT_CLASS(ufshcd_template, | ||
| 167 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 168 | int dev_state, int link_state), | ||
| 169 | |||
| 170 | TP_ARGS(dev_name, err, usecs, dev_state, link_state), | ||
| 171 | |||
| 172 | TP_STRUCT__entry( | ||
| 173 | __field(s64, usecs) | ||
| 174 | __field(int, err) | ||
| 175 | __string(dev_name, dev_name) | ||
| 176 | __field(int, dev_state) | ||
| 177 | __field(int, link_state) | ||
| 178 | ), | ||
| 179 | |||
| 180 | TP_fast_assign( | ||
| 181 | __entry->usecs = usecs; | ||
| 182 | __entry->err = err; | ||
| 183 | __assign_str(dev_name, dev_name); | ||
| 184 | __entry->dev_state = dev_state; | ||
| 185 | __entry->link_state = link_state; | ||
| 186 | ), | ||
| 187 | |||
| 188 | TP_printk( | ||
| 189 | "%s: took %lld usecs, dev_state: %s, link_state: %s, err %d", | ||
| 190 | __get_str(dev_name), | ||
| 191 | __entry->usecs, | ||
| 192 | __print_symbolic(__entry->dev_state, UFS_PWR_MODES), | ||
| 193 | __print_symbolic(__entry->link_state, UFS_LINK_STATES), | ||
| 194 | __entry->err | ||
| 195 | ) | ||
| 196 | ); | ||
| 197 | |||
| 198 | DEFINE_EVENT(ufshcd_template, ufshcd_system_suspend, | ||
| 199 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 200 | int dev_state, int link_state), | ||
| 201 | TP_ARGS(dev_name, err, usecs, dev_state, link_state)); | ||
| 202 | |||
| 203 | DEFINE_EVENT(ufshcd_template, ufshcd_system_resume, | ||
| 204 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 205 | int dev_state, int link_state), | ||
| 206 | TP_ARGS(dev_name, err, usecs, dev_state, link_state)); | ||
| 207 | |||
| 208 | DEFINE_EVENT(ufshcd_template, ufshcd_runtime_suspend, | ||
| 209 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 210 | int dev_state, int link_state), | ||
| 211 | TP_ARGS(dev_name, err, usecs, dev_state, link_state)); | ||
| 212 | |||
| 213 | DEFINE_EVENT(ufshcd_template, ufshcd_runtime_resume, | ||
| 214 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 215 | int dev_state, int link_state), | ||
| 216 | TP_ARGS(dev_name, err, usecs, dev_state, link_state)); | ||
| 217 | |||
| 218 | DEFINE_EVENT(ufshcd_template, ufshcd_init, | ||
| 219 | TP_PROTO(const char *dev_name, int err, s64 usecs, | ||
| 220 | int dev_state, int link_state), | ||
| 221 | TP_ARGS(dev_name, err, usecs, dev_state, link_state)); | ||
| 222 | |||
| 223 | TRACE_EVENT(ufshcd_command, | ||
| 224 | TP_PROTO(const char *dev_name, const char *str, unsigned int tag, | ||
| 225 | u32 doorbell, int transfer_len, u32 intr, u64 lba, | ||
| 226 | u8 opcode), | ||
| 227 | |||
| 228 | TP_ARGS(dev_name, str, tag, doorbell, transfer_len, intr, lba, opcode), | ||
| 229 | |||
| 230 | TP_STRUCT__entry( | ||
| 231 | __string(dev_name, dev_name) | ||
| 232 | __string(str, str) | ||
| 233 | __field(unsigned int, tag) | ||
| 234 | __field(u32, doorbell) | ||
| 235 | __field(int, transfer_len) | ||
| 236 | __field(u32, intr) | ||
| 237 | __field(u64, lba) | ||
| 238 | __field(u8, opcode) | ||
| 239 | ), | ||
| 240 | |||
| 241 | TP_fast_assign( | ||
| 242 | __assign_str(dev_name, dev_name); | ||
| 243 | __assign_str(str, str); | ||
| 244 | __entry->tag = tag; | ||
| 245 | __entry->doorbell = doorbell; | ||
| 246 | __entry->transfer_len = transfer_len; | ||
| 247 | __entry->intr = intr; | ||
| 248 | __entry->lba = lba; | ||
| 249 | __entry->opcode = opcode; | ||
| 250 | ), | ||
| 251 | |||
| 252 | TP_printk( | ||
| 253 | "%s: %s: tag: %u, DB: 0x%x, size: %d, IS: %u, LBA: %llu, opcode: 0x%x", | ||
| 254 | __get_str(str), __get_str(dev_name), __entry->tag, | ||
| 255 | __entry->doorbell, __entry->transfer_len, | ||
| 256 | __entry->intr, __entry->lba, (u32)__entry->opcode | ||
| 257 | ) | ||
| 258 | ); | ||
| 259 | |||
| 260 | #endif /* if !defined(_TRACE_UFS_H) || defined(TRACE_HEADER_MULTI_READ) */ | ||
| 261 | |||
| 262 | /* This part must be outside protection */ | ||
| 263 | #include <trace/define_trace.h> | ||
diff --git a/include/uapi/scsi/cxlflash_ioctl.h b/include/uapi/scsi/cxlflash_ioctl.h index 6bf1f8a022b1..e9fdc12ad984 100644 --- a/include/uapi/scsi/cxlflash_ioctl.h +++ b/include/uapi/scsi/cxlflash_ioctl.h | |||
| @@ -40,6 +40,7 @@ struct dk_cxlflash_hdr { | |||
| 40 | */ | 40 | */ |
| 41 | #define DK_CXLFLASH_ALL_PORTS_ACTIVE 0x0000000000000001ULL | 41 | #define DK_CXLFLASH_ALL_PORTS_ACTIVE 0x0000000000000001ULL |
| 42 | #define DK_CXLFLASH_APP_CLOSE_ADAP_FD 0x0000000000000002ULL | 42 | #define DK_CXLFLASH_APP_CLOSE_ADAP_FD 0x0000000000000002ULL |
| 43 | #define DK_CXLFLASH_CONTEXT_SQ_CMD_MODE 0x0000000000000004ULL | ||
| 43 | 44 | ||
| 44 | /* | 45 | /* |
| 45 | * General Notes: | 46 | * General Notes: |
