Lines Matching refs:dev
174 struct Scsi_Host *shost = dev_to_shost(job->dev);
177 if (!scsi_is_host_device(job->dev))
178 rphy = dev_to_rphy(job->dev);
181 dev_warn(job->dev, "space for a smp response is missing\n");
200 q = bsg_setup_queue(&rphy->dev, dev_name(&rphy->dev),
223 static int sas_host_setup(struct transport_container *tc, struct device *dev,
226 struct Scsi_Host *shost = dev_to_shost(dev);
237 dev_printk(KERN_ERR, dev, "fail to a bsg device %d\n",
248 static int sas_host_remove(struct transport_container *tc, struct device *dev,
251 struct Scsi_Host *shost = dev_to_shost(dev);
262 struct device *dev)
267 if (!scsi_is_host_device(dev))
269 shost = dev_to_shost(dev);
281 static int do_sas_phy_delete(struct device *dev, void *data)
285 if (pass == 0 && scsi_is_sas_port(dev))
286 sas_port_delete(dev_to_sas_port(dev));
287 else if (pass == 1 && scsi_is_sas_phy(dev))
288 sas_phy_delete(dev_to_phy(dev));
294 * @dev: device belonging to the sas object
298 void sas_remove_children(struct device *dev)
300 device_for_each_child(dev, (void *)0, do_sas_phy_delete);
301 device_for_each_child(dev, (void *)1, do_sas_phy_delete);
425 show_sas_phy_##name(struct device *dev, \
428 struct sas_phy *phy = transport_class_to_phy(dev); \
439 show_sas_phy_##name(struct device *dev, \
442 struct sas_phy *phy = transport_class_to_phy(dev); \
455 show_sas_phy_##field(struct device *dev, \
458 struct sas_phy *phy = transport_class_to_phy(dev); \
466 store_sas_phy_##field(struct device *dev, \
470 struct sas_phy *phy = transport_class_to_phy(dev); \
471 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent); \
499 show_sas_phy_##field(struct device *dev, \
502 struct sas_phy *phy = transport_class_to_phy(dev); \
503 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent); \
519 show_sas_device_type(struct device *dev,
522 struct sas_phy *phy = transport_class_to_phy(dev);
530 static ssize_t do_sas_phy_enable(struct device *dev,
533 struct sas_phy *phy = transport_class_to_phy(dev);
534 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
546 store_sas_phy_enable(struct device *dev, struct device_attribute *attr,
554 do_sas_phy_enable(dev, count, 0);
557 do_sas_phy_enable(dev, count, 1);
567 show_sas_phy_enable(struct device *dev, struct device_attribute *attr,
570 struct sas_phy *phy = transport_class_to_phy(dev);
579 do_sas_phy_reset(struct device *dev, size_t count, int hard_reset)
581 struct sas_phy *phy = transport_class_to_phy(dev);
582 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
594 store_sas_link_reset(struct device *dev, struct device_attribute *attr,
597 return do_sas_phy_reset(dev, count, 0);
602 store_sas_hard_reset(struct device *dev, struct device_attribute *attr,
605 return do_sas_phy_reset(dev, count, 1);
626 static int sas_phy_setup(struct transport_container *tc, struct device *dev,
629 struct sas_phy *phy = dev_to_phy(dev);
630 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
642 static int sas_phy_match(struct attribute_container *cont, struct device *dev)
647 if (!scsi_is_sas_phy(dev))
649 shost = dev_to_shost(dev->parent);
661 static void sas_phy_release(struct device *dev)
663 struct sas_phy *phy = dev_to_phy(dev);
664 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
669 put_device(dev->parent);
697 device_initialize(&phy->dev);
698 phy->dev.parent = get_device(parent);
699 phy->dev.release = sas_phy_release;
703 dev_set_name(&phy->dev, "phy-%d:%d:%d", shost->host_no,
706 dev_set_name(&phy->dev, "phy-%d:%d", shost->host_no, number);
708 transport_setup_device(&phy->dev);
724 error = device_add(&phy->dev);
728 error = transport_add_device(&phy->dev);
730 device_del(&phy->dev);
733 transport_configure_device(&phy->dev);
751 transport_destroy_device(&phy->dev);
752 put_device(&phy->dev);
766 struct device *dev = &phy->dev;
771 transport_remove_device(dev);
772 device_del(dev);
773 transport_destroy_device(dev);
774 put_device(dev);
780 * @dev: device to check
785 int scsi_is_sas_phy(const struct device *dev)
787 return dev->release == sas_phy_release;
796 show_sas_port_##name(struct device *dev, \
799 struct sas_port *port = transport_class_to_sas_port(dev); \
813 static int sas_port_match(struct attribute_container *cont, struct device *dev)
818 if (!scsi_is_sas_port(dev))
820 shost = dev_to_shost(dev->parent);
833 static void sas_port_release(struct device *dev)
835 struct sas_port *port = dev_to_sas_port(dev);
839 put_device(dev->parent);
848 res = sysfs_create_link(&port->dev.kobj, &phy->dev.kobj,
849 dev_name(&phy->dev));
852 res = sysfs_create_link(&phy->dev.kobj, &port->dev.kobj, "port");
864 sysfs_remove_link(&port->dev.kobj, dev_name(&phy->dev));
865 sysfs_remove_link(&phy->dev.kobj, "port");
890 device_initialize(&port->dev);
892 port->dev.parent = get_device(parent);
893 port->dev.release = sas_port_release;
900 dev_set_name(&port->dev, "port-%d:%d:%d", shost->host_no,
903 dev_set_name(&port->dev, "port-%d:%d", shost->host_no,
906 transport_setup_device(&port->dev);
957 error = device_add(&port->dev);
962 transport_add_device(&port->dev);
963 transport_configure_device(&port->dev);
981 transport_destroy_device(&port->dev);
982 put_device(&port->dev);
995 struct device *dev = &port->dev;
1012 struct device *parent = port->dev.parent;
1014 sysfs_remove_link(&port->dev.kobj, dev_name(parent));
1018 transport_remove_device(dev);
1019 device_del(dev);
1020 transport_destroy_device(dev);
1021 put_device(dev);
1027 * @dev: device to check
1032 int scsi_is_sas_port(const struct device *dev)
1034 return dev->release == sas_port_release;
1053 get_device(&phy->dev);
1086 dev_printk(KERN_ERR, &port->dev, "trying to add phy %s fails: it's already part of another port\n",
1087 dev_name(&phy->dev));
1120 struct device *parent = port->dev.parent->parent->parent;
1125 res = sysfs_create_link(&port->dev.kobj, &parent->kobj,
1143 show_sas_rphy_##name(struct device *dev, \
1146 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1158 show_sas_rphy_##name(struct device *dev, \
1161 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1174 show_sas_rphy_device_type(struct device *dev,
1177 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1189 show_sas_rphy_enclosure_identifier(struct device *dev,
1192 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1193 struct sas_phy *phy = dev_to_phy(rphy->dev.parent);
1194 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
1209 show_sas_rphy_bay_identifier(struct device *dev,
1212 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1213 struct sas_phy *phy = dev_to_phy(rphy->dev.parent);
1214 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
1277 show_sas_end_dev_##name(struct device *dev, \
1280 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1306 show_sas_expander_##name(struct device *dev, \
1309 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1333 static int sas_rphy_match(struct attribute_container *cont, struct device *dev)
1338 if (!scsi_is_sas_rphy(dev))
1340 shost = dev_to_shost(dev->parent->parent);
1353 struct device *dev)
1359 if (!scsi_is_sas_rphy(dev))
1361 shost = dev_to_shost(dev->parent->parent);
1362 rphy = dev_to_rphy(dev);
1376 struct device *dev)
1382 if (!scsi_is_sas_rphy(dev))
1384 shost = dev_to_shost(dev->parent->parent);
1385 rphy = dev_to_rphy(dev);
1399 static void sas_expander_release(struct device *dev)
1401 struct sas_rphy *rphy = dev_to_rphy(dev);
1404 put_device(dev->parent);
1408 static void sas_end_device_release(struct device *dev)
1410 struct sas_rphy *rphy = dev_to_rphy(dev);
1413 put_device(dev->parent);
1440 struct Scsi_Host *shost = dev_to_shost(&parent->dev);
1448 device_initialize(&rdev->rphy.dev);
1449 rdev->rphy.dev.parent = get_device(&parent->dev);
1450 rdev->rphy.dev.release = sas_end_device_release;
1451 if (scsi_is_sas_expander_device(parent->dev.parent)) {
1452 struct sas_rphy *rphy = dev_to_rphy(parent->dev.parent);
1453 dev_set_name(&rdev->rphy.dev, "end_device-%d:%d:%d",
1457 dev_set_name(&rdev->rphy.dev, "end_device-%d:%d",
1461 transport_setup_device(&rdev->rphy.dev);
1480 struct Scsi_Host *shost = dev_to_shost(&parent->dev);
1492 device_initialize(&rdev->rphy.dev);
1493 rdev->rphy.dev.parent = get_device(&parent->dev);
1494 rdev->rphy.dev.release = sas_expander_release;
1498 dev_set_name(&rdev->rphy.dev, "expander-%d:%d",
1502 transport_setup_device(&rdev->rphy.dev);
1516 struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
1517 struct Scsi_Host *shost = dev_to_shost(parent->dev.parent);
1526 error = device_add(&rphy->dev);
1529 transport_add_device(&rphy->dev);
1530 transport_configure_device(&rphy->dev);
1532 printk("fail to a bsg device %s\n", dev_name(&rphy->dev));
1554 scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id, lun,
1575 struct device *dev = &rphy->dev;
1576 struct Scsi_Host *shost = dev_to_shost(rphy->dev.parent->parent);
1583 transport_destroy_device(dev);
1585 put_device(dev);
1611 struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
1626 struct device *dev = &rphy->dev;
1630 scsi_remove_target(dev);
1634 sas_remove_children(dev);
1642 transport_remove_device(dev);
1643 device_del(dev);
1649 * @dev: device to check
1654 int scsi_is_sas_rphy(const struct device *dev)
1656 return dev->release == sas_end_device_release ||
1657 dev->release == sas_expander_release;
1680 scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id,