Lines Matching refs:edev
38 static bool ses_page2_supported(struct enclosure_device *edev) in ses_page2_supported() argument
40 struct ses_device *ses_dev = edev->scratch; in ses_page2_supported()
153 static int ses_set_page2_descriptor(struct enclosure_device *edev, in ses_set_page2_descriptor() argument
158 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_set_page2_descriptor()
159 struct ses_device *ses_dev = edev->scratch; in ses_set_page2_descriptor()
184 static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, in ses_get_page2_descriptor() argument
188 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_get_page2_descriptor()
189 struct ses_device *ses_dev = edev->scratch; in ses_get_page2_descriptor()
213 static void ses_get_fault(struct enclosure_device *edev, in ses_get_fault() argument
218 if (!ses_page2_supported(edev)) { in ses_get_fault()
222 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_fault()
227 static int ses_set_fault(struct enclosure_device *edev, in ses_set_fault() argument
234 if (!ses_page2_supported(edev)) in ses_set_fault()
237 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_fault()
256 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_fault()
259 static void ses_get_status(struct enclosure_device *edev, in ses_get_status() argument
264 if (!ses_page2_supported(edev)) { in ses_get_status()
268 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_status()
273 static void ses_get_locate(struct enclosure_device *edev, in ses_get_locate() argument
278 if (!ses_page2_supported(edev)) { in ses_get_locate()
282 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_locate()
287 static int ses_set_locate(struct enclosure_device *edev, in ses_set_locate() argument
294 if (!ses_page2_supported(edev)) in ses_set_locate()
297 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_locate()
315 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_locate()
318 static int ses_set_active(struct enclosure_device *edev, in ses_set_active() argument
325 if (!ses_page2_supported(edev)) in ses_set_active()
328 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_active()
348 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_active()
351 static int ses_show_id(struct enclosure_device *edev, char *buf) in ses_show_id() argument
353 struct ses_device *ses_dev = edev->scratch; in ses_show_id()
359 static void ses_get_power_status(struct enclosure_device *edev, in ses_get_power_status() argument
364 if (!ses_page2_supported(edev)) { in ses_get_power_status()
369 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_power_status()
374 static int ses_set_power_status(struct enclosure_device *edev, in ses_set_power_status() argument
381 if (!ses_page2_supported(edev)) in ses_set_power_status()
384 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_power_status()
403 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_power_status()
420 struct enclosure_device *edev; member
424 int ses_match_host(struct enclosure_device *edev, void *data)
429 if (!scsi_is_sdev_device(edev->edev.parent))
432 sdev = to_scsi_device(edev->edev.parent);
437 sed->edev = edev;
505 static int ses_enclosure_find_by_addr(struct enclosure_device *edev, in ses_enclosure_find_by_addr() argument
512 for (i = 0; i < edev->components; i++) { in ses_enclosure_find_by_addr()
513 scomp = edev->component[i].scratch; in ses_enclosure_find_by_addr()
517 if (enclosure_add_device(edev, i, efd->dev) == 0) in ses_enclosure_find_by_addr()
526 static void ses_enclosure_data_process(struct enclosure_device *edev, in ses_enclosure_data_process() argument
533 struct ses_device *ses_dev = edev->scratch; in ses_enclosure_data_process()
598 edev, in ses_enclosure_data_process()
602 else if (components < edev->components) in ses_enclosure_data_process()
603 ecomp = &edev->component[components++]; in ses_enclosure_data_process()
643 static void ses_match_to_enclosure(struct enclosure_device *edev, in ses_match_to_enclosure() argument
647 struct scsi_device *edev_sdev = to_scsi_device(edev->edev.parent); in ses_match_to_enclosure()
653 ses_enclosure_data_process(edev, edev_sdev, 0); in ses_match_to_enclosure()
675 struct enclosure_device *edev; in ses_intf_add() local
682 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_add()
683 ses_match_to_enclosure(edev, sdev, 1); in ses_intf_add()
684 prev = edev; in ses_intf_add()
782 edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev), in ses_intf_add()
784 if (IS_ERR(edev)) { in ses_intf_add()
785 err = PTR_ERR(edev); in ses_intf_add()
791 edev->scratch = ses_dev; in ses_intf_add()
793 edev->component[i].scratch = scomp + i; in ses_intf_add()
795 ses_enclosure_data_process(edev, sdev, 1); in ses_intf_add()
802 ses_match_to_enclosure(edev, tmp_sdev, 0); in ses_intf_add()
831 struct enclosure_device *edev, *prev = NULL; in ses_intf_remove_component() local
833 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_remove_component()
834 prev = edev; in ses_intf_remove_component()
835 if (!enclosure_remove_device(edev, &sdev->sdev_gendev)) in ses_intf_remove_component()
838 if (edev) in ses_intf_remove_component()
839 put_device(&edev->edev); in ses_intf_remove_component()
844 struct enclosure_device *edev; in ses_intf_remove_enclosure() local
848 edev = enclosure_find(&sdev->sdev_gendev, NULL); in ses_intf_remove_enclosure()
849 if (!edev) in ses_intf_remove_enclosure()
852 ses_dev = edev->scratch; in ses_intf_remove_enclosure()
853 edev->scratch = NULL; in ses_intf_remove_enclosure()
860 if (edev->components) in ses_intf_remove_enclosure()
861 kfree(edev->component[0].scratch); in ses_intf_remove_enclosure()
863 put_device(&edev->edev); in ses_intf_remove_enclosure()
864 enclosure_unregister(edev); in ses_intf_remove_enclosure()