Lines Matching refs:sdev
257 #define RDAC_LOG(SHIFT, sdev, f, arg...) \ argument
260 sdev_printk(KERN_INFO, sdev, RDAC_NAME ": " f "\n", ## arg); \
263 static inline struct rdac_dh_data *get_rdac_data(struct scsi_device *sdev) in get_rdac_data() argument
265 return container_of(sdev->scsi_dh_data, struct rdac_dh_data, dh_data); in get_rdac_data()
268 static struct request *get_rdac_req(struct scsi_device *sdev, in get_rdac_req() argument
272 struct request_queue *q = sdev->request_queue; in get_rdac_req()
277 sdev_printk(KERN_INFO, sdev, in get_rdac_req()
285 sdev_printk(KERN_INFO, sdev, in get_rdac_req()
298 static struct request *rdac_failover_get(struct scsi_device *sdev, in rdac_failover_get() argument
339 rq = get_rdac_req(sdev, &h->ctlr->mode_select, data_size, WRITE); in rdac_failover_get()
371 u8 *array_id, struct scsi_device *sdev) in get_controller() argument
378 (tmp->host == sdev->host)) { in get_controller()
390 ctlr->host = sdev->host; in get_controller()
405 static int submit_inquiry(struct scsi_device *sdev, int page_code, in submit_inquiry() argument
409 struct request_queue *q = sdev->request_queue; in submit_inquiry()
412 rq = get_rdac_req(sdev, &h->inq, len, READ); in submit_inquiry()
436 static int get_lun_info(struct scsi_device *sdev, struct rdac_dh_data *h, in get_lun_info() argument
442 err = submit_inquiry(sdev, 0xC8, sizeof(struct c8_inquiry), h); in get_lun_info()
462 static int check_ownership(struct scsi_device *sdev, struct rdac_dh_data *h) in check_ownership() argument
468 err = submit_inquiry(sdev, 0xC9, sizeof(struct c9_inquiry), h); in check_ownership()
498 static int initialize_controller(struct scsi_device *sdev, in initialize_controller() argument
504 err = submit_inquiry(sdev, 0xC4, sizeof(struct c4_inquiry), h); in initialize_controller()
514 h->ctlr = get_controller(index, array_name, array_id, sdev); in initialize_controller()
522 static int set_mode_select(struct scsi_device *sdev, struct rdac_dh_data *h) in set_mode_select() argument
527 err = submit_inquiry(sdev, 0xC2, sizeof(struct c2_inquiry), h); in set_mode_select()
542 static int mode_select_handle_sense(struct scsi_device *sdev, in mode_select_handle_sense() argument
547 struct rdac_dh_data *h = get_rdac_data(sdev); in mode_select_handle_sense()
577 RDAC_LOG(RDAC_LOG_FAILOVER, sdev, "array %s, ctlr %d, " in mode_select_handle_sense()
591 struct scsi_device *sdev = ctlr->ms_sdev; in send_mode_select() local
592 struct rdac_dh_data *h = get_rdac_data(sdev); in send_mode_select()
593 struct request_queue *q = sdev->request_queue; in send_mode_select()
606 rq = rdac_failover_get(sdev, h, &list); in send_mode_select()
610 RDAC_LOG(RDAC_LOG_FAILOVER, sdev, "array %s, ctlr %d, " in send_mode_select()
618 err = mode_select_handle_sense(sdev, h->sense); in send_mode_select()
626 RDAC_LOG(RDAC_LOG_FAILOVER, sdev, "array %s, ctlr %d, " in send_mode_select()
643 static int queue_mode_select(struct scsi_device *sdev, in queue_mode_select() argument
653 qdata->h = get_rdac_data(sdev); in queue_mode_select()
662 ctlr->ms_sdev = sdev; in queue_mode_select()
669 static int rdac_activate(struct scsi_device *sdev, in rdac_activate() argument
672 struct rdac_dh_data *h = get_rdac_data(sdev); in rdac_activate()
676 err = check_ownership(sdev, h); in rdac_activate()
695 err = queue_mode_select(sdev, fn, data); in rdac_activate()
705 static int rdac_prep_fn(struct scsi_device *sdev, struct request *req) in rdac_prep_fn() argument
707 struct rdac_dh_data *h = get_rdac_data(sdev); in rdac_prep_fn()
718 static int rdac_check_sense(struct scsi_device *sdev, in rdac_check_sense() argument
721 struct rdac_dh_data *h = get_rdac_data(sdev); in rdac_check_sense()
723 RDAC_LOG(RDAC_LOG_SENSE, sdev, "array %s, ctlr %d, " in rdac_check_sense()
814 static bool rdac_match(struct scsi_device *sdev) in rdac_match() argument
818 if (scsi_device_tpgs(sdev)) in rdac_match()
822 if (!strncmp(sdev->vendor, rdac_dev_list[i].vendor, in rdac_match()
824 !strncmp(sdev->model, rdac_dev_list[i].model, in rdac_match()
832 static struct scsi_dh_data *rdac_bus_attach(struct scsi_device *sdev) in rdac_bus_attach() argument
845 err = get_lun_info(sdev, h, array_name, array_id); in rdac_bus_attach()
849 err = initialize_controller(sdev, h, array_name, array_id); in rdac_bus_attach()
853 err = check_ownership(sdev, h); in rdac_bus_attach()
857 err = set_mode_select(sdev, h); in rdac_bus_attach()
861 sdev_printk(KERN_NOTICE, sdev, in rdac_bus_attach()
878 static void rdac_bus_detach( struct scsi_device *sdev ) in rdac_bus_detach() argument
880 struct rdac_dh_data *h = get_rdac_data(sdev); in rdac_bus_detach()