Lines Matching refs:edev

122 static int ses_set_page2_descriptor(struct enclosure_device *edev,  in ses_set_page2_descriptor()  argument
127 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_set_page2_descriptor()
128 struct ses_device *ses_dev = edev->scratch; in ses_set_page2_descriptor()
153 static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, in ses_get_page2_descriptor() argument
157 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_get_page2_descriptor()
158 struct ses_device *ses_dev = edev->scratch; in ses_get_page2_descriptor()
181 static void ses_get_fault(struct enclosure_device *edev, in ses_get_fault() argument
186 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_fault()
191 static int ses_set_fault(struct enclosure_device *edev, in ses_set_fault() argument
198 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_fault()
217 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_fault()
220 static void ses_get_status(struct enclosure_device *edev, in ses_get_status() argument
225 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_status()
230 static void ses_get_locate(struct enclosure_device *edev, in ses_get_locate() argument
235 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_locate()
240 static int ses_set_locate(struct enclosure_device *edev, in ses_set_locate() argument
247 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_locate()
265 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_locate()
268 static int ses_set_active(struct enclosure_device *edev, in ses_set_active() argument
275 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_active()
295 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_active()
298 static int ses_show_id(struct enclosure_device *edev, char *buf) in ses_show_id() argument
300 struct ses_device *ses_dev = edev->scratch; in ses_show_id()
306 static void ses_get_power_status(struct enclosure_device *edev, in ses_get_power_status() argument
311 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_power_status()
316 static int ses_set_power_status(struct enclosure_device *edev, in ses_set_power_status() argument
323 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_power_status()
342 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_power_status()
359 struct enclosure_device *edev; member
363 int ses_match_host(struct enclosure_device *edev, void *data)
368 if (!scsi_is_sdev_device(edev->edev.parent))
371 sdev = to_scsi_device(edev->edev.parent);
376 sed->edev = edev;
432 static int ses_enclosure_find_by_addr(struct enclosure_device *edev, in ses_enclosure_find_by_addr() argument
439 if (!edev->component[0].scratch) in ses_enclosure_find_by_addr()
442 for (i = 0; i < edev->components; i++) { in ses_enclosure_find_by_addr()
443 scomp = edev->component[i].scratch; in ses_enclosure_find_by_addr()
447 if (enclosure_add_device(edev, i, efd->dev) == 0) in ses_enclosure_find_by_addr()
456 static void ses_enclosure_data_process(struct enclosure_device *edev, in ses_enclosure_data_process() argument
463 struct ses_device *ses_dev = edev->scratch; in ses_enclosure_data_process()
523 edev, in ses_enclosure_data_process()
528 ecomp = &edev->component[components++]; in ses_enclosure_data_process()
531 ses_get_power_status(edev, ecomp); in ses_enclosure_data_process()
553 static void ses_match_to_enclosure(struct enclosure_device *edev, in ses_match_to_enclosure() argument
561 ses_enclosure_data_process(edev, to_scsi_device(edev->edev.parent), 0); in ses_match_to_enclosure()
599 struct enclosure_device *edev; in ses_intf_add() local
606 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_add()
607 ses_match_to_enclosure(edev, sdev); in ses_intf_add()
608 prev = edev; in ses_intf_add()
699 edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev), in ses_intf_add()
701 if (IS_ERR(edev)) { in ses_intf_add()
702 err = PTR_ERR(edev); in ses_intf_add()
708 edev->scratch = ses_dev; in ses_intf_add()
710 edev->component[i].scratch = scomp + i; in ses_intf_add()
712 ses_enclosure_data_process(edev, sdev, 1); in ses_intf_add()
719 ses_match_to_enclosure(edev, tmp_sdev); in ses_intf_add()
748 struct enclosure_device *edev, *prev = NULL; in ses_intf_remove_component() local
750 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_remove_component()
751 prev = edev; in ses_intf_remove_component()
752 if (!enclosure_remove_device(edev, &sdev->sdev_gendev)) in ses_intf_remove_component()
755 if (edev) in ses_intf_remove_component()
756 put_device(&edev->edev); in ses_intf_remove_component()
761 struct enclosure_device *edev; in ses_intf_remove_enclosure() local
765 edev = enclosure_find(&sdev->sdev_gendev, NULL); in ses_intf_remove_enclosure()
766 if (!edev) in ses_intf_remove_enclosure()
769 ses_dev = edev->scratch; in ses_intf_remove_enclosure()
770 edev->scratch = NULL; in ses_intf_remove_enclosure()
777 kfree(edev->component[0].scratch); in ses_intf_remove_enclosure()
779 put_device(&edev->edev); in ses_intf_remove_enclosure()
780 enclosure_unregister(edev); in ses_intf_remove_enclosure()