• Home
  • Raw
  • Download

Lines Matching full:us

99 	struct us_data *us;  member
157 static int init_realtek_cr(struct us_data *us);
200 static int rts51x_bulk_transport(struct us_data *us, u8 lun, in rts51x_bulk_transport() argument
204 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *)us->iobuf; in rts51x_bulk_transport()
205 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *)us->iobuf; in rts51x_bulk_transport()
215 bcb->Tag = ++us->tag; in rts51x_bulk_transport()
224 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in rts51x_bulk_transport()
234 us->recv_bulk_pipe : us->send_bulk_pipe; in rts51x_bulk_transport()
235 result = usb_stor_bulk_transfer_buf(us, pipe, in rts51x_bulk_transport()
242 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in rts51x_bulk_transport()
249 usb_stor_dbg(us, "Signature mismatch: got %08X, expecting %08X\n", in rts51x_bulk_transport()
255 if (bcs->Tag != us->tag) in rts51x_bulk_transport()
260 * was really transferred and what the device tells us in rts51x_bulk_transport()
290 static int rts51x_bulk_transport_special(struct us_data *us, u8 lun, in rts51x_bulk_transport_special() argument
294 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in rts51x_bulk_transport_special()
295 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; in rts51x_bulk_transport_special()
304 bcb->Tag = ++us->tag; in rts51x_bulk_transport_special()
313 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in rts51x_bulk_transport_special()
323 us->recv_bulk_pipe : us->send_bulk_pipe; in rts51x_bulk_transport_special()
324 result = usb_stor_bulk_transfer_buf(us, pipe, in rts51x_bulk_transport_special()
331 result = usb_bulk_msg(us->pusb_dev, us->recv_bulk_pipe, bcs, in rts51x_bulk_transport_special()
337 static int rts51x_get_max_lun(struct us_data *us) in rts51x_get_max_lun() argument
342 us->iobuf[0] = 0; in rts51x_get_max_lun()
343 result = usb_stor_control_msg(us, us->recv_ctrl_pipe, in rts51x_get_max_lun()
347 0, us->ifnum, us->iobuf, 1, 10 * HZ); in rts51x_get_max_lun()
349 usb_stor_dbg(us, "GetMaxLUN command result is %d, data is %d\n", in rts51x_get_max_lun()
350 result, us->iobuf[0]); in rts51x_get_max_lun()
354 return us->iobuf[0]; in rts51x_get_max_lun()
359 static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len) in rts51x_read_mem() argument
369 usb_stor_dbg(us, "addr = 0x%x, len = %d\n", addr, len); in rts51x_read_mem()
378 retval = rts51x_bulk_transport(us, 0, cmnd, 12, in rts51x_read_mem()
390 static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len) in rts51x_write_mem() argument
400 usb_stor_dbg(us, "addr = 0x%x, len = %d\n", addr, len); in rts51x_write_mem()
409 retval = rts51x_bulk_transport(us, 0, cmnd, 12, in rts51x_write_mem()
418 static int rts51x_read_status(struct us_data *us, in rts51x_read_status() argument
429 usb_stor_dbg(us, "lun = %d\n", lun); in rts51x_read_status()
434 retval = rts51x_bulk_transport(us, lun, cmnd, 12, in rts51x_read_status()
446 static int rts51x_check_status(struct us_data *us, u8 lun) in rts51x_check_status() argument
448 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in rts51x_check_status()
452 retval = rts51x_read_status(us, lun, buf, 16, &(chip->status_len)); in rts51x_check_status()
456 usb_stor_dbg(us, "chip->status_len = %d\n", chip->status_len); in rts51x_check_status()
477 static int enable_oscillator(struct us_data *us) in enable_oscillator() argument
482 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in enable_oscillator()
487 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in enable_oscillator()
491 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in enable_oscillator()
501 static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) in __do_config_autodelink() argument
507 usb_stor_dbg(us, "addr = 0xfe47, len = %d\n", len); in __do_config_autodelink()
520 retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL); in __do_config_autodelink()
529 static int do_config_autodelink(struct us_data *us, int enable, int force) in do_config_autodelink() argument
534 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in do_config_autodelink()
547 usb_stor_dbg(us, "set 0xfe47 to 0x%x\n", value); in do_config_autodelink()
549 /* retval = rts51x_write_mem(us, 0xFE47, &value, 1); */ in do_config_autodelink()
550 retval = __do_config_autodelink(us, &value, 1); in do_config_autodelink()
557 static int config_autodelink_after_power_on(struct us_data *us) in config_autodelink_after_power_on() argument
559 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in config_autodelink_after_power_on()
566 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_after_power_on()
580 /* retval = rts51x_write_mem(us, 0xFE47, &value, 1); */ in config_autodelink_after_power_on()
581 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_after_power_on()
585 retval = enable_oscillator(us); in config_autodelink_after_power_on()
587 (void)do_config_autodelink(us, 1, 0); in config_autodelink_after_power_on()
602 /* retval = rts51x_write_mem(us, 0xFE47, &value, 1); */ in config_autodelink_after_power_on()
603 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_after_power_on()
609 retval = rts51x_write_mem(us, 0xFE79, &value, 1); in config_autodelink_after_power_on()
614 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_after_power_on()
624 static int config_autodelink_before_power_down(struct us_data *us) in config_autodelink_before_power_down() argument
626 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in config_autodelink_before_power_down()
634 retval = rts51x_read_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
639 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
645 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_before_power_down()
650 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_before_power_down()
657 retval = rts51x_write_mem(us, 0xFE77, &value, 1); in config_autodelink_before_power_down()
664 retval = rts51x_read_mem(us, 0xFE47, &value, 1); in config_autodelink_before_power_down()
677 /* retval = rts51x_write_mem(us, 0xFE47, &value, 1); */ in config_autodelink_before_power_down()
678 retval = __do_config_autodelink(us, &value, 1); in config_autodelink_before_power_down()
685 retval = rts51x_write_mem(us, 0x48, &value, 1); in config_autodelink_before_power_down()
694 static void fw5895_init(struct us_data *us) in fw5895_init() argument
696 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in fw5895_init()
701 usb_stor_dbg(us, "Not the specified device, return immediately!\n"); in fw5895_init()
703 retval = rts51x_read_mem(us, 0xFD6F, &val, 1); in fw5895_init()
706 retval = rts51x_write_mem(us, 0xFD70, &val, 1); in fw5895_init()
708 usb_stor_dbg(us, "Write memory fail\n"); in fw5895_init()
710 usb_stor_dbg(us, "Read memory fail, OR (val & 0x1F) != 0\n"); in fw5895_init()
717 static void fw5895_set_mmc_wp(struct us_data *us) in fw5895_set_mmc_wp() argument
719 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in fw5895_set_mmc_wp()
724 usb_stor_dbg(us, "Not the specified device, return immediately!\n"); in fw5895_set_mmc_wp()
726 retval = rts51x_read_mem(us, 0xFD6F, buf, 1); in fw5895_set_mmc_wp()
729 retval = rts51x_read_mem(us, 0xD04E, buf, 1); in fw5895_set_mmc_wp()
732 retval = rts51x_write_mem(us, 0xFD70, buf, 1); in fw5895_set_mmc_wp()
734 usb_stor_dbg(us, "Write memory fail\n"); in fw5895_set_mmc_wp()
736 usb_stor_dbg(us, "Read memory fail\n"); in fw5895_set_mmc_wp()
739 usb_stor_dbg(us, "Read memory fail, OR (buf[0]&0x24)!=0x24\n"); in fw5895_set_mmc_wp()
746 struct us_data *us = chip->us; in rts51x_modi_suspend_timer() local
748 usb_stor_dbg(us, "state:%d\n", rts51x_get_stat(chip)); in rts51x_modi_suspend_timer()
757 struct us_data *us = chip->us; in rts51x_suspend_timer_fn() local
766 usb_stor_dbg(us, "RTS51X_STAT_SS, power.usage:%d\n", in rts51x_suspend_timer_fn()
767 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_suspend_timer_fn()
769 if (atomic_read(&us->pusb_intf->dev.power.usage_count) > 0) { in rts51x_suspend_timer_fn()
770 usb_stor_dbg(us, "Ready to enter SS state\n"); in rts51x_suspend_timer_fn()
773 pm_suspend_ignore_children(&us->pusb_intf->dev, true); in rts51x_suspend_timer_fn()
774 usb_autopm_put_interface_async(us->pusb_intf); in rts51x_suspend_timer_fn()
775 usb_stor_dbg(us, "RTS51X_STAT_SS 01, power.usage:%d\n", in rts51x_suspend_timer_fn()
776 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_suspend_timer_fn()
780 usb_stor_dbg(us, "Unknown state !!!\n"); in rts51x_suspend_timer_fn()
795 static void rts51x_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) in rts51x_invoke_transport() argument
797 struct rts51x_chip *chip = (struct rts51x_chip *)(us->extra); in rts51x_invoke_transport()
808 usb_stor_dbg(us, "working scsi, power.usage:%d\n", in rts51x_invoke_transport()
809 atomic_read(&us->pusb_intf->dev.power.usage_count)); in rts51x_invoke_transport()
811 if (atomic_read(&us->pusb_intf->dev.power.usage_count) <= 0) { in rts51x_invoke_transport()
812 ret = usb_autopm_get_interface(us->pusb_intf); in rts51x_invoke_transport()
813 usb_stor_dbg(us, "working scsi, ret=%d\n", ret); in rts51x_invoke_transport()
817 chip->proto_handler_backup(srb, us); in rts51x_invoke_transport()
820 usb_stor_dbg(us, "NOT working scsi\n"); in rts51x_invoke_transport()
831 usb_stor_dbg(us, "TEST_UNIT_READY\n"); in rts51x_invoke_transport()
844 usb_stor_dbg(us, "ALLOW_MEDIUM_REMOVAL\n"); in rts51x_invoke_transport()
848 usb_stor_dbg(us, "NOT working scsi, not SS\n"); in rts51x_invoke_transport()
849 chip->proto_handler_backup(srb, us); in rts51x_invoke_transport()
856 fw5895_set_mmc_wp(us); in rts51x_invoke_transport()
868 usb_stor_dbg(us, "state:%d\n", rts51x_get_stat(chip)); in rts51x_invoke_transport()
873 static int realtek_cr_autosuspend_setup(struct us_data *us) in realtek_cr_autosuspend_setup() argument
880 chip = (struct rts51x_chip *)us->extra; in realtek_cr_autosuspend_setup()
886 retval = rts51x_read_status(us, 0, buf, 16, &(chip->status_len)); in realtek_cr_autosuspend_setup()
888 usb_stor_dbg(us, "Read status fail\n"); in realtek_cr_autosuspend_setup()
908 /* back up the proto_handler in us->extra */ in realtek_cr_autosuspend_setup()
909 chip = (struct rts51x_chip *)(us->extra); in realtek_cr_autosuspend_setup()
910 chip->proto_handler_backup = us->proto_handler; in realtek_cr_autosuspend_setup()
912 pm_runtime_set_autosuspend_delay(&us->pusb_dev->dev, 0); in realtek_cr_autosuspend_setup()
913 /* override us->proto_handler setted in get_protocol() */ in realtek_cr_autosuspend_setup()
914 us->proto_handler = rts51x_invoke_transport; in realtek_cr_autosuspend_setup()
918 fw5895_init(us); in realtek_cr_autosuspend_setup()
921 usb_enable_autosuspend(us->pusb_dev); in realtek_cr_autosuspend_setup()
946 struct us_data *us = usb_get_intfdata(iface); in realtek_cr_suspend() local
949 mutex_lock(&us->dev_mutex); in realtek_cr_suspend()
951 config_autodelink_before_power_down(us); in realtek_cr_suspend()
953 mutex_unlock(&us->dev_mutex); in realtek_cr_suspend()
960 struct us_data *us = usb_get_intfdata(iface); in realtek_cr_resume() local
962 fw5895_init(us); in realtek_cr_resume()
963 config_autodelink_after_power_on(us); in realtek_cr_resume()
972 static int init_realtek_cr(struct us_data *us) in init_realtek_cr() argument
981 us->extra = chip; in init_realtek_cr()
982 us->extra_destructor = realtek_cr_destructor; in init_realtek_cr()
983 us->max_lun = chip->max_lun = rts51x_get_max_lun(us); in init_realtek_cr()
984 chip->us = us; in init_realtek_cr()
986 usb_stor_dbg(us, "chip->max_lun = %d\n", chip->max_lun); in init_realtek_cr()
994 retval = rts51x_check_status(us, (u8) i); in init_realtek_cr()
1011 realtek_cr_autosuspend_setup(us); in init_realtek_cr()
1014 usb_stor_dbg(us, "chip->flag = 0x%x\n", chip->flag); in init_realtek_cr()
1016 (void)config_autodelink_after_power_on(us); in init_realtek_cr()
1021 if (us->extra) { in init_realtek_cr()
1023 kfree(us->extra); in init_realtek_cr()
1024 us->extra = NULL; in init_realtek_cr()
1035 struct us_data *us; in realtek_cr_probe() local
1040 result = usb_stor_probe1(&us, intf, id, in realtek_cr_probe()
1047 result = usb_stor_probe2(us); in realtek_cr_probe()