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);
236 dev_printk(KERN_ERR, dev, "fail to a bsg device %d\n",
242 static int sas_host_remove(struct transport_container *tc, struct device *dev,
245 struct Scsi_Host *shost = dev_to_shost(dev);
256 struct device *dev)
261 if (!scsi_is_host_device(dev))
263 shost = dev_to_shost(dev);
275 static int do_sas_phy_delete(struct device *dev, void *data)
279 if (pass == 0 && scsi_is_sas_port(dev))
280 sas_port_delete(dev_to_sas_port(dev));
281 else if (pass == 1 && scsi_is_sas_phy(dev))
282 sas_phy_delete(dev_to_phy(dev));
288 * @dev: device belonging to the sas object
292 void sas_remove_children(struct device *dev)
294 device_for_each_child(dev, (void *)0, do_sas_phy_delete);
295 device_for_each_child(dev, (void *)1, do_sas_phy_delete);
419 show_sas_phy_##name(struct device *dev, \
422 struct sas_phy *phy = transport_class_to_phy(dev); \
433 show_sas_phy_##name(struct device *dev, \
436 struct sas_phy *phy = transport_class_to_phy(dev); \
449 show_sas_phy_##field(struct device *dev, \
452 struct sas_phy *phy = transport_class_to_phy(dev); \
460 store_sas_phy_##field(struct device *dev, \
464 struct sas_phy *phy = transport_class_to_phy(dev); \
465 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent); \
493 show_sas_phy_##field(struct device *dev, \
496 struct sas_phy *phy = transport_class_to_phy(dev); \
497 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent); \
513 show_sas_device_type(struct device *dev,
516 struct sas_phy *phy = transport_class_to_phy(dev);
524 static ssize_t do_sas_phy_enable(struct device *dev,
527 struct sas_phy *phy = transport_class_to_phy(dev);
528 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
540 store_sas_phy_enable(struct device *dev, struct device_attribute *attr,
548 do_sas_phy_enable(dev, count, 0);
551 do_sas_phy_enable(dev, count, 1);
561 show_sas_phy_enable(struct device *dev, struct device_attribute *attr,
564 struct sas_phy *phy = transport_class_to_phy(dev);
573 do_sas_phy_reset(struct device *dev, size_t count, int hard_reset)
575 struct sas_phy *phy = transport_class_to_phy(dev);
576 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
588 store_sas_link_reset(struct device *dev, struct device_attribute *attr,
591 return do_sas_phy_reset(dev, count, 0);
596 store_sas_hard_reset(struct device *dev, struct device_attribute *attr,
599 return do_sas_phy_reset(dev, count, 1);
620 static int sas_phy_setup(struct transport_container *tc, struct device *dev,
623 struct sas_phy *phy = dev_to_phy(dev);
624 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
636 static int sas_phy_match(struct attribute_container *cont, struct device *dev)
641 if (!scsi_is_sas_phy(dev))
643 shost = dev_to_shost(dev->parent);
655 static void sas_phy_release(struct device *dev)
657 struct sas_phy *phy = dev_to_phy(dev);
658 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
663 put_device(dev->parent);
691 device_initialize(&phy->dev);
692 phy->dev.parent = get_device(parent);
693 phy->dev.release = sas_phy_release;
697 dev_set_name(&phy->dev, "phy-%d:%d:%d", shost->host_no,
700 dev_set_name(&phy->dev, "phy-%d:%d", shost->host_no, number);
702 transport_setup_device(&phy->dev);
718 error = device_add(&phy->dev);
722 error = transport_add_device(&phy->dev);
724 device_del(&phy->dev);
727 transport_configure_device(&phy->dev);
745 transport_destroy_device(&phy->dev);
746 put_device(&phy->dev);
760 struct device *dev = &phy->dev;
765 transport_remove_device(dev);
766 device_del(dev);
767 transport_destroy_device(dev);
768 put_device(dev);
774 * @dev: device to check
779 int scsi_is_sas_phy(const struct device *dev)
781 return dev->release == sas_phy_release;
790 show_sas_port_##name(struct device *dev, \
793 struct sas_port *port = transport_class_to_sas_port(dev); \
807 static int sas_port_match(struct attribute_container *cont, struct device *dev)
812 if (!scsi_is_sas_port(dev))
814 shost = dev_to_shost(dev->parent);
827 static void sas_port_release(struct device *dev)
829 struct sas_port *port = dev_to_sas_port(dev);
833 put_device(dev->parent);
842 res = sysfs_create_link(&port->dev.kobj, &phy->dev.kobj,
843 dev_name(&phy->dev));
846 res = sysfs_create_link(&phy->dev.kobj, &port->dev.kobj, "port");
858 sysfs_remove_link(&port->dev.kobj, dev_name(&phy->dev));
859 sysfs_remove_link(&phy->dev.kobj, "port");
884 device_initialize(&port->dev);
886 port->dev.parent = get_device(parent);
887 port->dev.release = sas_port_release;
894 dev_set_name(&port->dev, "port-%d:%d:%d", shost->host_no,
897 dev_set_name(&port->dev, "port-%d:%d", shost->host_no,
900 transport_setup_device(&port->dev);
951 error = device_add(&port->dev);
956 transport_add_device(&port->dev);
957 transport_configure_device(&port->dev);
975 transport_destroy_device(&port->dev);
976 put_device(&port->dev);
989 struct device *dev = &port->dev;
1006 struct device *parent = port->dev.parent;
1008 sysfs_remove_link(&port->dev.kobj, dev_name(parent));
1012 transport_remove_device(dev);
1013 device_del(dev);
1014 transport_destroy_device(dev);
1015 put_device(dev);
1021 * @dev: device to check
1026 int scsi_is_sas_port(const struct device *dev)
1028 return dev->release == sas_port_release;
1047 get_device(&phy->dev);
1080 dev_printk(KERN_ERR, &port->dev, "trying to add phy %s fails: it's already part of another port\n",
1081 dev_name(&phy->dev));
1114 struct device *parent = port->dev.parent->parent->parent;
1119 res = sysfs_create_link(&port->dev.kobj, &parent->kobj,
1137 show_sas_rphy_##name(struct device *dev, \
1140 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1152 show_sas_rphy_##name(struct device *dev, \
1155 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1168 show_sas_rphy_device_type(struct device *dev,
1171 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1183 show_sas_rphy_enclosure_identifier(struct device *dev,
1186 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1187 struct sas_phy *phy = dev_to_phy(rphy->dev.parent);
1188 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
1203 show_sas_rphy_bay_identifier(struct device *dev,
1206 struct sas_rphy *rphy = transport_class_to_rphy(dev);
1207 struct sas_phy *phy = dev_to_phy(rphy->dev.parent);
1208 struct Scsi_Host *shost = dev_to_shost(phy->dev.parent);
1271 show_sas_end_dev_##name(struct device *dev, \
1274 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1300 show_sas_expander_##name(struct device *dev, \
1303 struct sas_rphy *rphy = transport_class_to_rphy(dev); \
1327 static int sas_rphy_match(struct attribute_container *cont, struct device *dev)
1332 if (!scsi_is_sas_rphy(dev))
1334 shost = dev_to_shost(dev->parent->parent);
1347 struct device *dev)
1353 if (!scsi_is_sas_rphy(dev))
1355 shost = dev_to_shost(dev->parent->parent);
1356 rphy = dev_to_rphy(dev);
1370 struct device *dev)
1376 if (!scsi_is_sas_rphy(dev))
1378 shost = dev_to_shost(dev->parent->parent);
1379 rphy = dev_to_rphy(dev);
1393 static void sas_expander_release(struct device *dev)
1395 struct sas_rphy *rphy = dev_to_rphy(dev);
1398 put_device(dev->parent);
1402 static void sas_end_device_release(struct device *dev)
1404 struct sas_rphy *rphy = dev_to_rphy(dev);
1407 put_device(dev->parent);
1434 struct Scsi_Host *shost = dev_to_shost(&parent->dev);
1442 device_initialize(&rdev->rphy.dev);
1443 rdev->rphy.dev.parent = get_device(&parent->dev);
1444 rdev->rphy.dev.release = sas_end_device_release;
1445 if (scsi_is_sas_expander_device(parent->dev.parent)) {
1446 struct sas_rphy *rphy = dev_to_rphy(parent->dev.parent);
1447 dev_set_name(&rdev->rphy.dev, "end_device-%d:%d:%d",
1451 dev_set_name(&rdev->rphy.dev, "end_device-%d:%d",
1455 transport_setup_device(&rdev->rphy.dev);
1474 struct Scsi_Host *shost = dev_to_shost(&parent->dev);
1486 device_initialize(&rdev->rphy.dev);
1487 rdev->rphy.dev.parent = get_device(&parent->dev);
1488 rdev->rphy.dev.release = sas_expander_release;
1492 dev_set_name(&rdev->rphy.dev, "expander-%d:%d",
1496 transport_setup_device(&rdev->rphy.dev);
1510 struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
1511 struct Scsi_Host *shost = dev_to_shost(parent->dev.parent);
1520 error = device_add(&rphy->dev);
1523 transport_add_device(&rphy->dev);
1524 transport_configure_device(&rphy->dev);
1526 printk("fail to a bsg device %s\n", dev_name(&rphy->dev));
1548 scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id, lun,
1569 struct device *dev = &rphy->dev;
1570 struct Scsi_Host *shost = dev_to_shost(rphy->dev.parent->parent);
1577 transport_destroy_device(dev);
1579 put_device(dev);
1605 struct sas_port *parent = dev_to_sas_port(rphy->dev.parent);
1620 struct device *dev = &rphy->dev;
1624 scsi_remove_target(dev);
1628 sas_remove_children(dev);
1636 transport_remove_device(dev);
1637 device_del(dev);
1643 * @dev: device to check
1648 int scsi_is_sas_rphy(const struct device *dev)
1650 return dev->release == sas_end_device_release ||
1651 dev->release == sas_expander_release;
1674 scsi_scan_target(&rphy->dev, 0, rphy->scsi_target_id,