Lines Matching refs:us

100 	struct us_data *us;  member
158 static int init_realtek_cr(struct us_data *us);
201 static int rts51x_bulk_transport(struct us_data *us, u8 lun, in rts51x_bulk_transport() argument
205 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *)us->iobuf; in rts51x_bulk_transport()
206 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *)us->iobuf; in rts51x_bulk_transport()
216 bcb->Tag = ++us->tag; in rts51x_bulk_transport()
225 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in rts51x_bulk_transport()
235 us->recv_bulk_pipe : us->send_bulk_pipe; in rts51x_bulk_transport()
236 result = usb_stor_bulk_transfer_buf(us, pipe, in rts51x_bulk_transport()
243 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in rts51x_bulk_transport()
250 usb_stor_dbg(us, "Signature mismatch: got %08X, expecting %08X\n", in rts51x_bulk_transport()
256 if (bcs->Tag != us->tag) in rts51x_bulk_transport()
291 static int rts51x_bulk_transport_special(struct us_data *us, u8 lun, in rts51x_bulk_transport_special() argument
295 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in rts51x_bulk_transport_special()
296 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; in rts51x_bulk_transport_special()
305 bcb->Tag = ++us->tag; in rts51x_bulk_transport_special()
314 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in rts51x_bulk_transport_special()
324 us->recv_bulk_pipe : us->send_bulk_pipe; in rts51x_bulk_transport_special()
325 result = usb_stor_bulk_transfer_buf(us, pipe, in rts51x_bulk_transport_special()
332 result = usb_bulk_msg(us->pusb_dev, us->recv_bulk_pipe, bcs, in rts51x_bulk_transport_special()
338 static int rts51x_get_max_lun(struct us_data *us) in rts51x_get_max_lun() argument
343 us->iobuf[0] = 0; in rts51x_get_max_lun()
344 result = usb_stor_control_msg(us, us->recv_ctrl_pipe, in rts51x_get_max_lun()
348 0, us->ifnum, us->iobuf, 1, 10 * HZ); in rts51x_get_max_lun()
350 usb_stor_dbg(us, "GetMaxLUN command result is %d, data is %d\n", in rts51x_get_max_lun()
351 result, us->iobuf[0]); in rts51x_get_max_lun()
355 return us->iobuf[0]; in rts51x_get_max_lun()
360 static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len) in rts51x_read_mem() argument
370 usb_stor_dbg(us, "addr = 0x%x, len = %d\n", addr, len); in rts51x_read_mem()
379 retval = rts51x_bulk_transport(us, 0, cmnd, 12, in rts51x_read_mem()
391 static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len) in rts51x_write_mem() argument
401 usb_stor_dbg(us, "addr = 0x%x, len = %d\n", addr, len); in rts51x_write_mem()
410 retval = rts51x_bulk_transport(us, 0, cmnd, 12, in rts51x_write_mem()
419 static int rts51x_read_status(struct us_data *us, in rts51x_read_status() argument
430 usb_stor_dbg(us, "lun = %d\n", lun); in rts51x_read_status()
435 retval = rts51x_bulk_transport(us, lun, cmnd, 12, in rts51x_read_status()
447 static int rts51x_check_status(struct us_data *us, u8 lun) in rts51x_check_status() argument
449 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in rts51x_check_status()
453 retval = rts51x_read_status(us, lun, buf, 16, &(chip->status_len)); in rts51x_check_status()
457 usb_stor_dbg(us, "chip->status_len = %d\n", chip->status_len); in rts51x_check_status()
478 static int enable_oscillator(struct us_data *us) in enable_oscillator() argument
483 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in enable_oscillator()
488 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in enable_oscillator()
492 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in enable_oscillator()
502 static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) in __do_config_autodelink() argument
508 usb_stor_dbg(us, "addr = 0xfe47, len = %d\n", len); in __do_config_autodelink()
521 retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL); in __do_config_autodelink()
530 static int do_config_autodelink(struct us_data *us, int enable, int force) in do_config_autodelink() argument
535 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in do_config_autodelink()
548 usb_stor_dbg(us, "set 0xfe47 to 0x%x\n", value); in do_config_autodelink()
551 retval = __do_config_autodelink(us, &value, 1); in do_config_autodelink()
558 static int config_autodelink_after_power_on(struct us_data *us) in config_autodelink_after_power_on() argument
560 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in config_autodelink_after_power_on()
567 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_after_power_on()
582 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_after_power_on()
586 retval = enable_oscillator(us); in config_autodelink_after_power_on()
588 (void)do_config_autodelink(us, 1, 0); in config_autodelink_after_power_on()
604 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_after_power_on()
610 retval = rts51x_write_mem(us, 0xFE79, &value, 1); in config_autodelink_after_power_on()
615 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_after_power_on()
625 static int config_autodelink_before_power_down(struct us_data *us) in config_autodelink_before_power_down() argument
627 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in config_autodelink_before_power_down()
635 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
640 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
646 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_before_power_down()
651 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_before_power_down()
658 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
665 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_before_power_down()
679 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_before_power_down()
686 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_before_power_down()
695 static void fw5895_init(struct us_data *us) in fw5895_init() argument
697 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in fw5895_init()
702 usb_stor_dbg(us, "Not the specified device, return immediately!\n"); in fw5895_init()
704 retval = rts51x_read_mem(us, 0xFD6F, &val, 1); in fw5895_init()
707 retval = rts51x_write_mem(us, 0xFD70, &val, 1); in fw5895_init()
709 usb_stor_dbg(us, "Write memory fail\n"); in fw5895_init()
711 usb_stor_dbg(us, "Read memory fail, OR (val & 0x1F) != 0\n"); in fw5895_init()
718 static void fw5895_set_mmc_wp(struct us_data *us) in fw5895_set_mmc_wp() argument
720 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in fw5895_set_mmc_wp()
725 usb_stor_dbg(us, "Not the specified device, return immediately!\n"); in fw5895_set_mmc_wp()
727 retval = rts51x_read_mem(us, 0xFD6F, buf, 1); in fw5895_set_mmc_wp()
730 retval = rts51x_read_mem(us, 0xD04E, buf, 1); in fw5895_set_mmc_wp()
733 retval = rts51x_write_mem(us, 0xFD70, buf, 1); in fw5895_set_mmc_wp()
735 usb_stor_dbg(us, "Write memory fail\n"); in fw5895_set_mmc_wp()
737 usb_stor_dbg(us, "Read memory fail\n"); in fw5895_set_mmc_wp()
740 usb_stor_dbg(us, "Read memory fail, OR (buf[0]&0x24)!=0x24\n"); in fw5895_set_mmc_wp()
747 struct us_data *us = chip->us; in rts51x_modi_suspend_timer() local
749 usb_stor_dbg(us, "state:%d\n", rts51x_get_stat(chip)); in rts51x_modi_suspend_timer()
758 struct us_data *us = chip->us; in rts51x_suspend_timer_fn() local
767 usb_stor_dbg(us, "RTS51X_STAT_SS, power.usage:%d\n", in rts51x_suspend_timer_fn()
768 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_suspend_timer_fn()
770 if (atomic_read(&us->pusb_intf->dev.power.usage_count) > 0) { in rts51x_suspend_timer_fn()
771 usb_stor_dbg(us, "Ready to enter SS state\n"); in rts51x_suspend_timer_fn()
774 pm_suspend_ignore_children(&us->pusb_intf->dev, true); in rts51x_suspend_timer_fn()
775 usb_autopm_put_interface_async(us->pusb_intf); in rts51x_suspend_timer_fn()
776 usb_stor_dbg(us, "RTS51X_STAT_SS 01, power.usage:%d\n", in rts51x_suspend_timer_fn()
777 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_suspend_timer_fn()
781 usb_stor_dbg(us, "Unknown state !!!\n"); in rts51x_suspend_timer_fn()
796 static void rts51x_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) in rts51x_invoke_transport() argument
798 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in rts51x_invoke_transport()
809 usb_stor_dbg(us, "working scsi, power.usage:%d\n", in rts51x_invoke_transport()
810 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_invoke_transport()
812 if (atomic_read(&us->pusb_intf->dev.power.usage_count) <= 0) { in rts51x_invoke_transport()
813 ret = usb_autopm_get_interface(us->pusb_intf); in rts51x_invoke_transport()
814 usb_stor_dbg(us, "working scsi, ret=%d\n", ret); in rts51x_invoke_transport()
818 chip->proto_handler_backup(srb, us); in rts51x_invoke_transport()
821 usb_stor_dbg(us, "NOT working scsi\n"); in rts51x_invoke_transport()
832 usb_stor_dbg(us, "TEST_UNIT_READY\n"); in rts51x_invoke_transport()
845 usb_stor_dbg(us, "ALLOW_MEDIUM_REMOVAL\n"); in rts51x_invoke_transport()
849 usb_stor_dbg(us, "NOT working scsi, not SS\n"); in rts51x_invoke_transport()
850 chip->proto_handler_backup(srb, us); in rts51x_invoke_transport()
857 fw5895_set_mmc_wp(us); in rts51x_invoke_transport()
869 usb_stor_dbg(us, "state:%d\n", rts51x_get_stat(chip)); in rts51x_invoke_transport()
874 static int realtek_cr_autosuspend_setup(struct us_data *us) in realtek_cr_autosuspend_setup() argument
881 chip = (struct rts51x_chip *)us->extra; in realtek_cr_autosuspend_setup()
887 retval = rts51x_read_status(us, 0, buf, 16, &(chip->status_len)); in realtek_cr_autosuspend_setup()
889 usb_stor_dbg(us, "Read status fail\n"); in realtek_cr_autosuspend_setup()
910 chip = (struct rts51x_chip *)(us->extra); in realtek_cr_autosuspend_setup()
911 chip->proto_handler_backup = us->proto_handler; in realtek_cr_autosuspend_setup()
913 pm_runtime_set_autosuspend_delay(&us->pusb_dev->dev, 0); in realtek_cr_autosuspend_setup()
915 us->proto_handler = rts51x_invoke_transport; in realtek_cr_autosuspend_setup()
919 fw5895_init(us); in realtek_cr_autosuspend_setup()
922 usb_enable_autosuspend(us->pusb_dev); in realtek_cr_autosuspend_setup()
947 struct us_data *us = usb_get_intfdata(iface); in realtek_cr_suspend() local
950 mutex_lock(&us->dev_mutex); in realtek_cr_suspend()
952 config_autodelink_before_power_down(us); in realtek_cr_suspend()
954 mutex_unlock(&us->dev_mutex); in realtek_cr_suspend()
961 struct us_data *us = usb_get_intfdata(iface); in realtek_cr_resume() local
963 fw5895_init(us); in realtek_cr_resume()
964 config_autodelink_after_power_on(us); in realtek_cr_resume()
973 static int init_realtek_cr(struct us_data *us) in init_realtek_cr() argument
982 us->extra = chip; in init_realtek_cr()
983 us->extra_destructor = realtek_cr_destructor; in init_realtek_cr()
984 us->max_lun = chip->max_lun = rts51x_get_max_lun(us); in init_realtek_cr()
985 chip->us = us; in init_realtek_cr()
987 usb_stor_dbg(us, "chip->max_lun = %d\n", chip->max_lun); in init_realtek_cr()
995 retval = rts51x_check_status(us, (u8) i); in init_realtek_cr()
1012 realtek_cr_autosuspend_setup(us); in init_realtek_cr()
1015 usb_stor_dbg(us, "chip->flag = 0x%x\n", chip->flag); in init_realtek_cr()
1017 (void)config_autodelink_after_power_on(us); in init_realtek_cr()
1022 if (us->extra) { in init_realtek_cr()
1024 kfree(us->extra); in init_realtek_cr()
1025 us->extra = NULL; in init_realtek_cr()
1036 struct us_data *us; in realtek_cr_probe() local
1041 result = usb_stor_probe1(&us, intf, id, in realtek_cr_probe()
1048 result = usb_stor_probe2(us); in realtek_cr_probe()