Lines Matching refs:edev

54 static bool ses_page2_supported(struct enclosure_device *edev)  in ses_page2_supported()  argument
56 struct ses_device *ses_dev = edev->scratch; in ses_page2_supported()
149 static int ses_set_page2_descriptor(struct enclosure_device *edev, in ses_set_page2_descriptor() argument
154 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_set_page2_descriptor()
155 struct ses_device *ses_dev = edev->scratch; in ses_set_page2_descriptor()
180 static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, in ses_get_page2_descriptor() argument
184 struct scsi_device *sdev = to_scsi_device(edev->edev.parent); in ses_get_page2_descriptor()
185 struct ses_device *ses_dev = edev->scratch; in ses_get_page2_descriptor()
209 static void ses_get_fault(struct enclosure_device *edev, in ses_get_fault() argument
214 if (!ses_page2_supported(edev)) { in ses_get_fault()
218 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_fault()
223 static int ses_set_fault(struct enclosure_device *edev, in ses_set_fault() argument
230 if (!ses_page2_supported(edev)) in ses_set_fault()
233 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_fault()
252 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_fault()
255 static void ses_get_status(struct enclosure_device *edev, in ses_get_status() argument
260 if (!ses_page2_supported(edev)) { in ses_get_status()
264 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_status()
269 static void ses_get_locate(struct enclosure_device *edev, in ses_get_locate() argument
274 if (!ses_page2_supported(edev)) { in ses_get_locate()
278 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_locate()
283 static int ses_set_locate(struct enclosure_device *edev, in ses_set_locate() argument
290 if (!ses_page2_supported(edev)) in ses_set_locate()
293 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_locate()
311 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_locate()
314 static int ses_set_active(struct enclosure_device *edev, in ses_set_active() argument
321 if (!ses_page2_supported(edev)) in ses_set_active()
324 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_active()
344 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_active()
347 static int ses_show_id(struct enclosure_device *edev, char *buf) in ses_show_id() argument
349 struct ses_device *ses_dev = edev->scratch; in ses_show_id()
355 static void ses_get_power_status(struct enclosure_device *edev, in ses_get_power_status() argument
360 if (!ses_page2_supported(edev)) { in ses_get_power_status()
365 desc = ses_get_page2_descriptor(edev, ecomp); in ses_get_power_status()
370 static int ses_set_power_status(struct enclosure_device *edev, in ses_set_power_status() argument
377 if (!ses_page2_supported(edev)) in ses_set_power_status()
380 desc_ptr = ses_get_page2_descriptor(edev, ecomp); in ses_set_power_status()
399 return ses_set_page2_descriptor(edev, ecomp, desc); in ses_set_power_status()
416 struct enclosure_device *edev; member
420 int ses_match_host(struct enclosure_device *edev, void *data)
425 if (!scsi_is_sdev_device(edev->edev.parent))
428 sdev = to_scsi_device(edev->edev.parent);
433 sed->edev = edev;
489 static int ses_enclosure_find_by_addr(struct enclosure_device *edev, in ses_enclosure_find_by_addr() argument
496 if (!edev->component[0].scratch) in ses_enclosure_find_by_addr()
499 for (i = 0; i < edev->components; i++) { in ses_enclosure_find_by_addr()
500 scomp = edev->component[i].scratch; in ses_enclosure_find_by_addr()
504 if (enclosure_add_device(edev, i, efd->dev) == 0) in ses_enclosure_find_by_addr()
513 static void ses_enclosure_data_process(struct enclosure_device *edev, in ses_enclosure_data_process() argument
520 struct ses_device *ses_dev = edev->scratch; in ses_enclosure_data_process()
580 edev, in ses_enclosure_data_process()
585 ecomp = &edev->component[components++]; in ses_enclosure_data_process()
617 static void ses_match_to_enclosure(struct enclosure_device *edev, in ses_match_to_enclosure() argument
621 struct scsi_device *edev_sdev = to_scsi_device(edev->edev.parent); in ses_match_to_enclosure()
627 ses_enclosure_data_process(edev, edev_sdev, 0); in ses_match_to_enclosure()
650 struct enclosure_device *edev; in ses_intf_add() local
657 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_add()
658 ses_match_to_enclosure(edev, sdev, 1); in ses_intf_add()
659 prev = edev; in ses_intf_add()
754 edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev), in ses_intf_add()
756 if (IS_ERR(edev)) { in ses_intf_add()
757 err = PTR_ERR(edev); in ses_intf_add()
763 edev->scratch = ses_dev; in ses_intf_add()
765 edev->component[i].scratch = scomp + i; in ses_intf_add()
767 ses_enclosure_data_process(edev, sdev, 1); in ses_intf_add()
774 ses_match_to_enclosure(edev, tmp_sdev, 0); in ses_intf_add()
803 struct enclosure_device *edev, *prev = NULL; in ses_intf_remove_component() local
805 while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { in ses_intf_remove_component()
806 prev = edev; in ses_intf_remove_component()
807 if (!enclosure_remove_device(edev, &sdev->sdev_gendev)) in ses_intf_remove_component()
810 if (edev) in ses_intf_remove_component()
811 put_device(&edev->edev); in ses_intf_remove_component()
816 struct enclosure_device *edev; in ses_intf_remove_enclosure() local
820 edev = enclosure_find(&sdev->sdev_gendev, NULL); in ses_intf_remove_enclosure()
821 if (!edev) in ses_intf_remove_enclosure()
824 ses_dev = edev->scratch; in ses_intf_remove_enclosure()
825 edev->scratch = NULL; in ses_intf_remove_enclosure()
832 kfree(edev->component[0].scratch); in ses_intf_remove_enclosure()
834 put_device(&edev->edev); in ses_intf_remove_enclosure()
835 enclosure_unregister(edev); in ses_intf_remove_enclosure()