You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[SCSI] libsas: set attached device type and target protocols for local phys
Before: $ cat /sys/class/sas_phy/phy-6\:3/device_type none $ cat /sys/class/sas_phy/phy-6\:3/target_port_protocols none After: $ cat /sys/class/sas_phy/phy-6\:3/device_type end device $ cat /sys/class/sas_phy/phy-6\:3/target_port_protocols sata Also downgrade the phy_list_lock to _irq instead of _irqsave since libsas will never call sas_get_port_device with interrupts disbled. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
committed by
James Bottomley
parent
9a10b33caf
commit
899fcf40f3
@@ -30,6 +30,7 @@
|
||||
#include <scsi/scsi_host.h>
|
||||
#include <scsi/scsi_transport_sas.h>
|
||||
#include <scsi/libsas.h>
|
||||
#include <scsi/sas_ata.h>
|
||||
|
||||
#define sas_printk(fmt, ...) printk(KERN_NOTICE "sas: " fmt, ## __VA_ARGS__)
|
||||
|
||||
@@ -147,6 +148,22 @@ static inline void sas_fill_in_rphy(struct domain_device *dev,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void sas_phy_set_target(struct asd_sas_phy *p, struct domain_device *dev)
|
||||
{
|
||||
struct sas_phy *phy = p->phy;
|
||||
|
||||
if (dev) {
|
||||
if (dev_is_sata(dev))
|
||||
phy->identify.device_type = SAS_END_DEVICE;
|
||||
else
|
||||
phy->identify.device_type = dev->dev_type;
|
||||
phy->identify.target_port_protocols = dev->tproto;
|
||||
} else {
|
||||
phy->identify.device_type = SAS_PHY_UNUSED;
|
||||
phy->identify.target_port_protocols = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void sas_add_parent_port(struct domain_device *dev, int phy_id)
|
||||
{
|
||||
struct expander_device *ex = &dev->ex_dev;
|
||||
|
||||
Reference in New Issue
Block a user