From f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 01:04:47 +0000 Subject: [PATCH] add driver 5G --- kernel/include/scsi/scsi_transport_fc.h | 38 ++++++++++++++++---------------------- 1 files changed, 16 insertions(+), 22 deletions(-) diff --git a/kernel/include/scsi/scsi_transport_fc.h b/kernel/include/scsi/scsi_transport_fc.h index 15da45d..1c7dd35 100644 --- a/kernel/include/scsi/scsi_transport_fc.h +++ b/kernel/include/scsi/scsi_transport_fc.h @@ -1,28 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * FiberChannel transport specific attributes exported to sysfs. * * Copyright (c) 2003 Silicon Graphics, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * ======== - * * Copyright (C) 2004-2007 James Smart, Emulex Corporation * Rewrite for host, target, device, and remote port attributes, * statistics, and service functions... - * */ #ifndef SCSI_TRANSPORT_FC_H #define SCSI_TRANSPORT_FC_H @@ -141,6 +124,7 @@ #define FC_PORTSPEED_25GBIT 0x800 #define FC_PORTSPEED_64GBIT 0x1000 #define FC_PORTSPEED_128GBIT 0x2000 +#define FC_PORTSPEED_256GBIT 0x4000 #define FC_PORTSPEED_NOT_NEGOTIATED (1 << 15) /* Speed not established */ /* @@ -165,6 +149,9 @@ #define FC_PORT_ROLE_FCP_INITIATOR 0x02 #define FC_PORT_ROLE_IP_PORT 0x04 #define FC_PORT_ROLE_FCP_DUMMY_INITIATOR 0x08 +#define FC_PORT_ROLE_NVME_INITIATOR 0x10 +#define FC_PORT_ROLE_NVME_TARGET 0x20 +#define FC_PORT_ROLE_NVME_DISCOVERY 0x40 /* The following are for compatibility */ #define FC_RPORT_ROLE_UNKNOWN FC_PORT_ROLE_UNKNOWN @@ -473,6 +460,7 @@ FCH_EVT_PORT_ONLINE = 0x202, FCH_EVT_PORT_FABRIC = 0x204, FCH_EVT_LINK_UNKNOWN = 0x500, + FCH_EVT_LINK_FPIN = 0x501, FCH_EVT_VENDOR_UNIQUE = 0xffff, }; @@ -755,7 +743,7 @@ return result; } -static inline u64 wwn_to_u64(u8 *wwn) +static inline u64 wwn_to_u64(const u8 *wwn) { return get_unaligned_be64(wwn); } @@ -798,11 +786,17 @@ void fc_host_post_event(struct Scsi_Host *shost, u32 event_number, enum fc_host_event_code event_code, u32 event_data); void fc_host_post_vendor_event(struct Scsi_Host *shost, u32 event_number, - u32 data_len, char * data_buf, u64 vendor_id); + u32 data_len, char *data_buf, u64 vendor_id); +void fc_host_post_fc_event(struct Scsi_Host *shost, u32 event_number, + enum fc_host_event_code event_code, + u32 data_len, char *data_buf, u64 vendor_id); /* Note: when specifying vendor_id to fc_host_post_vendor_event() - * be sure to read the Vendor Type and ID formatting requirements - * specified in scsi_netlink.h + * or fc_host_post_fc_event(), be sure to read the Vendor Type + * and ID formatting requirements specified in scsi_netlink.h + * Note: when calling fc_host_post_fc_event(), vendor_id may be + * specified as 0. */ +void fc_host_fpin_rcv(struct Scsi_Host *shost, u32 fpin_len, char *fpin_buf); struct fc_vport *fc_vport_create(struct Scsi_Host *shost, int channel, struct fc_vport_identifiers *); int fc_vport_terminate(struct fc_vport *vport); -- Gitblit v1.6.2