Lines Matching refs:edev

140 static int ses_set_page2_descriptor(struct enclosure_device *edev,  in ses_set_page2_descriptor()  argument
145 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_set_page2_descriptor()
146 struct ses_device *ses_dev = edev->scratch; in ses_set_page2_descriptor()
171 static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, in ses_get_page2_descriptor() argument
175 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_get_page2_descriptor()
176 struct ses_device *ses_dev = edev->scratch; in ses_get_page2_descriptor()
199 static void ses_get_fault(struct enclosure_device *edev, in ses_get_fault() argument
204 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_fault()
209 static int ses_set_fault(struct enclosure_device *edev, in ses_set_fault() argument
216 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_fault()
235 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_fault()
238 static void ses_get_status(struct enclosure_device *edev, in ses_get_status() argument
243 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_status()
248 static void ses_get_locate(struct enclosure_device *edev, in ses_get_locate() argument
253 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_locate()
258 static int ses_set_locate(struct enclosure_device *edev, in ses_set_locate() argument
265 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_locate()
283 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_locate()
286 static int ses_set_active(struct enclosure_device *edev, in ses_set_active() argument
293 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_active()
313 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_active()
316 static int ses_show_id(struct enclosure_device *edev, char *buf) in ses_show_id() argument
318 struct ses_device *ses_dev = edev->scratch; in ses_show_id()
324 static void ses_get_power_status(struct enclosure_device *edev, in ses_get_power_status() argument
329 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_power_status()
334 static int ses_set_power_status(struct enclosure_device *edev, in ses_set_power_status() argument
341 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_power_status()
360 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_power_status()
377 struct enclosure_device *edev; member
381 int ses_match_host(struct enclosure_device *edev, void *data)
386 if (!scsi_is_sdev_device(edev->edev.parent))
389 sdev = to_scsi_device(edev->edev.parent);
394 sed->edev = edev;
450 static int ses_enclosure_find_by_addr(struct enclosure_device *edev, in ses_enclosure_find_by_addr() argument
457 if (!edev->component[0].scratch) in ses_enclosure_find_by_addr()
460 for (i = 0; i < edev->components; i++) { in ses_enclosure_find_by_addr()
461 scomp = edev->component[i].scratch; in ses_enclosure_find_by_addr()
465 if (enclosure_add_device(edev, i, efd->dev) == 0) in ses_enclosure_find_by_addr()
474 static void ses_enclosure_data_process(struct enclosure_device *edev, in ses_enclosure_data_process() argument
481 struct ses_device *ses_dev = edev->scratch; in ses_enclosure_data_process()
541 edev, in ses_enclosure_data_process()
546 ecomp = &edev->component[components++]; in ses_enclosure_data_process()
549 ses_get_power_status(edev, ecomp); in ses_enclosure_data_process()
579 static void ses_match_to_enclosure(struct enclosure_device *edev, in ses_match_to_enclosure() argument
587 ses_enclosure_data_process(edev, to_scsi_device(edev->edev.parent), 0); in ses_match_to_enclosure()
625 struct enclosure_device *edev; in ses_intf_add() local
632 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_add()
633 ses_match_to_enclosure(edev, sdev); in ses_intf_add()
634 prev = edev; in ses_intf_add()
725 edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev), in ses_intf_add()
727 if (IS_ERR(edev)) { in ses_intf_add()
728 err = PTR_ERR(edev); in ses_intf_add()
734 edev->scratch = ses_dev; in ses_intf_add()
736 edev->component[i].scratch = scomp + i; in ses_intf_add()
738 ses_enclosure_data_process(edev, sdev, 1); in ses_intf_add()
745 ses_match_to_enclosure(edev, tmp_sdev); in ses_intf_add()
774 struct enclosure_device *edev, *prev = NULL; in ses_intf_remove_component() local
776 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_remove_component()
777 prev = edev; in ses_intf_remove_component()
778 if (!enclosure_remove_device(edev, &sdev->sdev_gendev)) in ses_intf_remove_component()
781 if (edev) in ses_intf_remove_component()
782 put_device(&edev->edev); in ses_intf_remove_component()
787 struct enclosure_device *edev; in ses_intf_remove_enclosure() local
791 edev = enclosure_find(&sdev->sdev_gendev, NULL); in ses_intf_remove_enclosure()
792 if (!edev) in ses_intf_remove_enclosure()
795 ses_dev = edev->scratch; in ses_intf_remove_enclosure()
796 edev->scratch = NULL; in ses_intf_remove_enclosure()
803 kfree(edev->component[0].scratch); in ses_intf_remove_enclosure()
805 put_device(&edev->edev); in ses_intf_remove_enclosure()
806 enclosure_unregister(edev); in ses_intf_remove_enclosure()