| /linux/drivers/scsi/aic94xx/ |
| H A D | aic94xx_scb.c | 38 struct sas_phy *sas_phy = phy->sas_phy.phy; in get_lrate_mode() local 43 phy->sas_phy.linkrate = SAS_LINK_RATE_6_0_GBPS; in get_lrate_mode() 44 phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_6_0_GBPS; in get_lrate_mode() 47 phy->sas_phy.linkrate = SAS_LINK_RATE_3_0_GBPS; in get_lrate_mode() 48 phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_3_0_GBPS; in get_lrate_mode() 51 phy->sas_phy.linkrate = SAS_LINK_RATE_1_5_GBPS; in get_lrate_mode() 52 phy->sas_phy.phy->negotiated_linkrate = SAS_LINK_RATE_1_5_GBPS; in get_lrate_mode() 55 sas_phy->negotiated_linkrate = phy->sas_phy.linkrate; in get_lrate_mode() 56 sas_phy->maximum_linkrate_hw = SAS_LINK_RATE_3_0_GBPS; in get_lrate_mode() 57 sas_phy->minimum_linkrate_hw = SAS_LINK_RATE_1_5_GBPS; in get_lrate_mode() [all …]
|
| H A D | aic94xx_hwi.c | 60 if (phy->sas_phy.role & PHY_ROLE_INITIATOR) in asd_init_phy_identify() 61 phy->identify_frame->initiator_bits = phy->sas_phy.iproto; in asd_init_phy_identify() 62 if (phy->sas_phy.role & PHY_ROLE_TARGET) in asd_init_phy_identify() 63 phy->identify_frame->target_bits = phy->sas_phy.tproto; in asd_init_phy_identify() 66 phy->identify_frame->phy_id = phy->sas_phy.id; in asd_init_phy_identify() 71 struct asd_ha_struct *asd_ha = phy->sas_phy.ha->lldd_ha; in asd_init_phy() 72 struct asd_sas_phy *sas_phy = &phy->sas_phy; in asd_init_phy() local 74 sas_phy->enabled = 1; in asd_init_phy() 75 sas_phy->iproto = SAS_PROTOCOL_ALL; in asd_init_phy() 76 sas_phy->tproto = 0; in asd_init_phy() [all …]
|
| /linux/include/scsi/ |
| H A D | scsi_transport_sas.h | 60 struct sas_phy { struct 89 container_of((d), struct sas_phy, dev) argument 175 int (*get_linkerrors)(struct sas_phy *); 178 int (*phy_reset)(struct sas_phy *, int); 179 int (*phy_enable)(struct sas_phy *, int); 180 int (*phy_setup)(struct sas_phy *); 181 void (*phy_release)(struct sas_phy *); 182 int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *); 191 extern struct sas_phy *sas_phy_alloc(struct device *, int); 192 extern void sas_phy_free(struct sas_phy *); 61 devsas_phy global() argument 62 numbersas_phy global() argument 63 enabledsas_phy global() argument [all...] |
| /linux/Documentation/translations/zh_CN/scsi/ |
| H A D | libsas.rst | 48 ``struct sas_phy`` 56 struct sas_phy sas_phy; 64 需要同时初始化其中的 sas_phy 结构体。 121 层调用某个回调并传入 sas_phy 时,驱动可以快速定位自身的 PHY 122 结构体。如果 sas_phy 是嵌入式成员,也可以使用 container_of() 166 sas_phy 171 - 表示 sas_phy 数组中 PHY 的数量,同时也表示 sas_port 179 void sas_notify_port_event(struct sas_phy *, enum port_event, gfp_t); 180 void sas_notify_phy_event(struct sas_phy *, enum phy_event, gfp_t); 185 void (*lldd_port_formed)(struct sas_phy *); [all …]
|
| /linux/drivers/scsi/libsas/ |
| H A D | sas_host_smp.c | 22 struct sas_phy *phy; in sas_host_smp_discover() 31 phy = sas_ha->sas_phy[phy_id]->phy; in sas_host_smp_discover() 35 memcpy(resp_data + 24, sas_ha->sas_phy[phy_id]->attached_sas_addr, in sas_host_smp_discover() 42 if (!sas_ha->sas_phy[phy_id]->port || in sas_host_smp_discover() 43 !sas_ha->sas_phy[phy_id]->port->port_dev) in sas_host_smp_discover() 46 rphy = sas_ha->sas_phy[phy_id]->port->port_dev->rphy; in sas_host_smp_discover() 151 if (!sas_ha->sas_phy[phy_id]->port) in sas_report_phy_sata() 154 rphy = sas_ha->sas_phy[phy_id]->port->port_dev->rphy; in sas_report_phy_sata() 156 sas_ha->sas_phy[phy_id]->port->port_dev->frame_rcvd; in sas_report_phy_sata() 162 memcpy(resp_data + 16, sas_ha->sas_phy[phy_id]->attached_sas_addr, in sas_report_phy_sata() [all …]
|
| H A D | sas_init.c | 180 static int sas_get_linkerrors(struct sas_phy *phy) in sas_get_linkerrors() 185 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_get_linkerrors() 222 static int transport_sas_phy_reset(struct sas_phy *phy, int hard_reset) in transport_sas_phy_reset() 234 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in transport_sas_phy_reset() 255 int sas_phy_enable(struct sas_phy *phy, int enable) in sas_phy_enable() 268 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_phy_enable() 289 int sas_phy_reset(struct sas_phy *phy, int hard_reset) in sas_phy_reset() 305 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_phy_reset() 319 static int sas_set_phy_speed(struct sas_phy *phy, in sas_set_phy_speed() 341 struct asd_sas_phy *asd_phy = sas_ha->sas_phy[phy->number]; in sas_set_phy_speed() [all …]
|
| H A D | sas_phy.c | 123 struct asd_sas_phy *phy = sas_ha->sas_phy[i]; in sas_register_phys() 162 struct asd_sas_phy *phy = sas_ha->sas_phy[i]; in sas_register_phys() 175 struct asd_sas_phy *phy = sas_ha->sas_phy[i]; in sas_unregister_phys()
|
| H A D | sas_event.c | 103 struct asd_sas_phy *sas_phy; in sas_enable_revalidation() local 114 sas_phy = container_of(port->phy_list.next, struct asd_sas_phy, in sas_enable_revalidation() 117 sas_notify_port_event(sas_phy, in sas_enable_revalidation()
|
| H A D | sas_internal.h | 32 struct sas_phy *phy; 90 int sas_smp_get_phy_events(struct sas_phy *phy); 179 struct sas_phy *phy = p->phy; in sas_phy_set_target()
|
| H A D | Makefile | 11 sas_phy.o \
|
| H A D | sas_ata.c | 304 struct sas_phy *phy = sas_get_local_phy(dev); in smp_ata_check_ready_type() 332 struct sas_phy *phy = sas_get_local_phy(dev); in smp_ata_check_ready() 403 struct sas_phy *phy; in sas_ata_wait_after_reset() 551 struct sas_phy *local_phy = sas_get_local_phy(dev); in sas_ata_prereset() 678 struct sas_phy *cphy = child->phy; in sas_ata_add_dev()
|
| H A D | sas_port.c | 360 if (sas_ha->sas_phy[i]->port) in sas_unregister_ports() 361 sas_deform_port(sas_ha->sas_phy[i], false); in sas_unregister_ports()
|
| /linux/drivers/scsi/isci/ |
| H A D | phy.c | 989 spin_lock_irqsave(&iphy->sas_phy.frame_rcvd_lock, flags); in sci_phy_frame_handler() 991 spin_unlock_irqrestore(&iphy->sas_phy.frame_rcvd_lock, flags); in sci_phy_frame_handler() 1032 spin_lock_irqsave(&iphy->sas_phy.frame_rcvd_lock, flags); in sci_phy_frame_handler() 1036 spin_unlock_irqrestore(&iphy->sas_phy.frame_rcvd_lock, flags); in sci_phy_frame_handler() 1400 iphy->sas_phy.enabled = 0; in isci_phy_init() 1401 iphy->sas_phy.id = index; in isci_phy_init() 1402 iphy->sas_phy.sas_addr = &iphy->sas_addr[0]; in isci_phy_init() 1403 iphy->sas_phy.frame_rcvd = (u8 *)&iphy->frame_rcvd; in isci_phy_init() 1404 iphy->sas_phy.ha = &ihost->sas_ha; in isci_phy_init() 1405 iphy->sas_phy.lldd_phy = iphy; in isci_phy_init() [all …]
|
| H A D | phy.h | 98 struct asd_sas_phy sas_phy; member 106 static inline struct isci_phy *to_iphy(struct asd_sas_phy *sas_phy) in to_iphy() argument 108 struct isci_phy *iphy = container_of(sas_phy, typeof(*iphy), sas_phy); in to_iphy()
|
| H A D | port.c | 165 __func__, iphy, &iphy->sas_phy); in isci_port_bc_change_received() 167 sas_notify_port_event(&iphy->sas_phy, in isci_port_bc_change_received() 184 spin_lock_irqsave(&iphy->sas_phy.frame_rcvd_lock, flags); in isci_port_link_up() 191 iphy->sas_phy.oob_mode = SATA_OOB_MODE; in isci_port_link_up() 192 iphy->sas_phy.frame_rcvd_size = sizeof(struct dev_to_host_fis); in isci_port_link_up() 206 memcpy(&iphy->sas_phy.attached_sas_addr, in isci_port_link_up() 209 iphy->sas_phy.oob_mode = SAS_OOB_MODE; in isci_port_link_up() 210 iphy->sas_phy.frame_rcvd_size = sizeof(struct sas_identify_frame); in isci_port_link_up() 213 memcpy(iphy->sas_phy.attached_sas_addr, in isci_port_link_up() 220 iphy->sas_phy.phy->negotiated_linkrate = sci_phy_linkrate(iphy); in isci_port_link_up() [all …]
|
| /linux/drivers/scsi/mvsas/ |
| H A D | mv_init.c | 66 struct asd_sas_phy *sas_phy = &phy->sas_phy; in mvs_phy_init() local 71 sas_phy->enabled = (phy_id < mvi->chip->n_phy) ? 1 : 0; in mvs_phy_init() 72 sas_phy->iproto = SAS_PROTOCOL_ALL; in mvs_phy_init() 73 sas_phy->tproto = 0; in mvs_phy_init() 74 sas_phy->role = PHY_ROLE_INITIATOR; in mvs_phy_init() 75 sas_phy->oob_mode = OOB_NOT_CONNECTED; in mvs_phy_init() 76 sas_phy->linkrate = SAS_LINK_RATE_UNKNOWN; in mvs_phy_init() 78 sas_phy->id = phy_id; in mvs_phy_init() 79 sas_phy->sas_addr = &mvi->sas_addr[0]; in mvs_phy_init() 80 sas_phy->frame_rcvd = &phy->frame_rcvd[0]; in mvs_phy_init() [all …]
|
| H A D | mv_sas.h | 60 #define MVS_PHY_ID (1U << sas_phy->id) 205 struct asd_sas_phy sas_phy; member 428 int mvs_phy_control(struct asd_sas_phy *sas_phy, enum phy_func func, 436 void mvs_port_formed(struct asd_sas_phy *sas_phy); 437 void mvs_port_deformed(struct asd_sas_phy *sas_phy);
|
| H A D | mv_94xx.c | 868 struct asd_sas_phy *sas_phy = &phy->sas_phy; in mvs_94xx_fix_phy_info() local 870 sas_phy->linkrate = in mvs_94xx_fix_phy_info() 873 sas_phy->linkrate += 0x8; in mvs_94xx_fix_phy_info() 874 mv_dprintk("get link rate is %d\n", sas_phy->linkrate); in mvs_94xx_fix_phy_info()
|
| H A D | mv_64xx.c | 579 struct asd_sas_phy *sas_phy = &phy->sas_phy; in mvs_64xx_fix_phy_info() local 581 sas_phy->linkrate = in mvs_64xx_fix_phy_info()
|
| /linux/drivers/scsi/smartpqi/ |
| H A D | smartpqi_sas_transport.c | 23 struct sas_phy *phy; in pqi_alloc_sas_phy() 45 struct sas_phy *phy = pqi_sas_phy->phy; in pqi_free_sas_phy() 58 struct sas_phy *phy; in pqi_sas_port_add_phy() 317 static int pqi_sas_get_linkerrors(struct sas_phy *phy) in pqi_sas_get_linkerrors() 428 static int pqi_sas_phy_reset(struct sas_phy *phy, int hard_reset) in pqi_sas_phy_reset() 433 static int pqi_sas_phy_enable(struct sas_phy *phy, int enable) in pqi_sas_phy_enable() 438 static int pqi_sas_phy_setup(struct sas_phy *phy) in pqi_sas_phy_setup() 443 static void pqi_sas_phy_release(struct sas_phy *phy) in pqi_sas_phy_release() 447 static int pqi_sas_phy_speed(struct sas_phy *phy, in pqi_sas_phy_speed()
|
| /linux/drivers/scsi/ |
| H A D | scsi_transport_sas.c | 453 struct sas_phy *phy = transport_class_to_phy(dev); \ 467 struct sas_phy *phy = transport_class_to_phy(dev); \ 483 struct sas_phy *phy = transport_class_to_phy(dev); \ 495 struct sas_phy *phy = transport_class_to_phy(dev); \ 527 struct sas_phy *phy = transport_class_to_phy(dev); \ 547 struct sas_phy *phy = transport_class_to_phy(dev); in show_sas_device_type() 558 struct sas_phy *phy = transport_class_to_phy(dev); in do_sas_phy_enable() 595 struct sas_phy *phy = transport_class_to_phy(dev); in show_sas_phy_enable() 606 struct sas_phy *phy = transport_class_to_phy(dev); in do_sas_phy_reset() 654 struct sas_phy *phy = dev_to_phy(dev); in sas_phy_setup() [all …]
|
| /linux/drivers/scsi/pm8001/ |
| H A D | pm8001_init.c | 161 struct asd_sas_phy *sas_phy = &phy->sas_phy; in pm8001_phy_init() local 166 sas_phy->enabled = (phy_id < pm8001_ha->chip->n_phy) ? 1 : 0; in pm8001_phy_init() 167 sas_phy->iproto = SAS_PROTOCOL_ALL; in pm8001_phy_init() 168 sas_phy->tproto = 0; in pm8001_phy_init() 169 sas_phy->role = PHY_ROLE_INITIATOR; in pm8001_phy_init() 170 sas_phy->oob_mode = OOB_NOT_CONNECTED; in pm8001_phy_init() 171 sas_phy->linkrate = SAS_LINK_RATE_UNKNOWN; in pm8001_phy_init() 172 sas_phy->id = phy_id; in pm8001_phy_init() 173 sas_phy->sas_addr = (u8 *)&phy->dev_sas_addr; in pm8001_phy_init() 174 sas_phy->frame_rcvd = &phy->frame_rcvd[0]; in pm8001_phy_init() [all …]
|
| /linux/Documentation/scsi/ |
| H A D | libsas.rst | 46 ``struct sas_phy`` 54 struct sas_phy sas_phy; 62 initialize the sas_phy struct, along with your own 127 of your callbacks and passes you a phy. If the sas_phy is 177 sas_phy 183 - the number of phys present in the sas_phy array, 192 void sas_notify_port_event(struct sas_phy *, enum port_event, gfp_t); 193 void sas_notify_phy_event(struct sas_phy *, enum phy_event, gfp_t); 198 void (*lldd_port_formed)(struct sas_phy *); 199 void (*lldd_port_deformed)(struct sas_phy *); [all …]
|
| /linux/drivers/scsi/hisi_sas/ |
| H A D | hisi_sas_v1_hw.c | 1320 struct asd_sas_phy *sas_phy = &phy->sas_phy; in int_phyup_v1_hw() local 1321 int i, phy_no = sas_phy->id; in int_phyup_v1_hw() 1323 u32 *frame_rcvd = (u32 *)sas_phy->frame_rcvd; in int_phyup_v1_hw() 1359 sas_phy->linkrate = link_rate; in int_phyup_v1_hw() 1360 sas_phy->oob_mode = SAS_OOB_MODE; in int_phyup_v1_hw() 1361 memcpy(sas_phy->attached_sas_addr, in int_phyup_v1_hw() 1399 struct asd_sas_phy *sas_phy = &phy->sas_phy; in int_bcast_v1_hw() local 1401 int phy_no = sas_phy->id; in int_bcast_v1_hw() 1428 struct asd_sas_phy *sas_phy = &phy->sas_phy; in int_abnormal_v1_hw() local 1430 int phy_no = sas_phy->id; in int_abnormal_v1_hw()
|
| /linux/drivers/message/fusion/ |
| H A D | mptsas.h | 169 struct sas_phy *phy; /* transport layer phy object */
|