forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/drivers/usb/dwc3/debugfs.c
....@@ -2,7 +2,7 @@
22 /**
33 * debugfs.c - DesignWare USB3 DRD Controller DebugFS file
44 *
5
- * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com
5
+ * Copyright (C) 2010-2011 Texas Instruments Incorporated - https://www.ti.com
66 *
77 * Authors: Felipe Balbi <balbi@ti.com>,
88 * Sebastian Andrzej Siewior <bigeasy@linutronix.de>
....@@ -397,13 +397,13 @@
397397
398398 switch (DWC3_GCTL_PRTCAP(reg)) {
399399 case DWC3_GCTL_PRTCAP_HOST:
400
- seq_printf(s, "host\n");
400
+ seq_puts(s, "host\n");
401401 break;
402402 case DWC3_GCTL_PRTCAP_DEVICE:
403
- seq_printf(s, "device\n");
403
+ seq_puts(s, "device\n");
404404 break;
405405 case DWC3_GCTL_PRTCAP_OTG:
406
- seq_printf(s, "otg\n");
406
+ seq_puts(s, "otg\n");
407407 break;
408408 default:
409409 seq_printf(s, "UNKNOWN %08x\n", DWC3_GCTL_PRTCAP(reg));
....@@ -428,6 +428,9 @@
428428 if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
429429 return -EFAULT;
430430
431
+ if (dwc->dr_mode != USB_DR_MODE_OTG)
432
+ return count;
433
+
431434 if (!strncmp(buf, "host", 4))
432435 mode = DWC3_GCTL_PRTCAP_HOST;
433436
....@@ -436,6 +439,10 @@
436439
437440 if (!strncmp(buf, "otg", 3))
438441 mode = DWC3_GCTL_PRTCAP_OTG;
442
+
443
+#if defined(CONFIG_ARCH_ROCKCHIP) && defined(CONFIG_NO_GKI)
444
+ dwc->desired_role_sw_mode = mode;
445
+#endif
439446
440447 dwc3_set_mode(dwc, mode);
441448
....@@ -464,22 +471,22 @@
464471
465472 switch (reg) {
466473 case 0:
467
- seq_printf(s, "no test\n");
474
+ seq_puts(s, "no test\n");
468475 break;
469
- case TEST_J:
470
- seq_printf(s, "test_j\n");
476
+ case USB_TEST_J:
477
+ seq_puts(s, "test_j\n");
471478 break;
472
- case TEST_K:
473
- seq_printf(s, "test_k\n");
479
+ case USB_TEST_K:
480
+ seq_puts(s, "test_k\n");
474481 break;
475
- case TEST_SE0_NAK:
476
- seq_printf(s, "test_se0_nak\n");
482
+ case USB_TEST_SE0_NAK:
483
+ seq_puts(s, "test_se0_nak\n");
477484 break;
478
- case TEST_PACKET:
479
- seq_printf(s, "test_packet\n");
485
+ case USB_TEST_PACKET:
486
+ seq_puts(s, "test_packet\n");
480487 break;
481
- case TEST_FORCE_EN:
482
- seq_printf(s, "test_force_enable\n");
488
+ case USB_TEST_FORCE_ENABLE:
489
+ seq_puts(s, "test_force_enable\n");
483490 break;
484491 default:
485492 seq_printf(s, "UNKNOWN %d\n", reg);
....@@ -506,15 +513,15 @@
506513 return -EFAULT;
507514
508515 if (!strncmp(buf, "test_j", 6))
509
- testmode = TEST_J;
516
+ testmode = USB_TEST_J;
510517 else if (!strncmp(buf, "test_k", 6))
511
- testmode = TEST_K;
518
+ testmode = USB_TEST_K;
512519 else if (!strncmp(buf, "test_se0_nak", 12))
513
- testmode = TEST_SE0_NAK;
520
+ testmode = USB_TEST_SE0_NAK;
514521 else if (!strncmp(buf, "test_packet", 11))
515
- testmode = TEST_PACKET;
522
+ testmode = USB_TEST_PACKET;
516523 else if (!strncmp(buf, "test_force_enable", 17))
517
- testmode = TEST_FORCE_EN;
524
+ testmode = USB_TEST_FORCE_ENABLE;
518525 else
519526 testmode = 0;
520527
....@@ -635,13 +642,16 @@
635642 struct dwc3_ep *dep = s->private;
636643 struct dwc3 *dwc = dep->dwc;
637644 unsigned long flags;
645
+ u32 mdwidth;
638646 u32 val;
639647
640648 spin_lock_irqsave(&dwc->lock, flags);
641649 val = dwc3_core_fifo_space(dep, DWC3_TXFIFO);
642650
643651 /* Convert to bytes */
644
- val *= DWC3_MDWIDTH(dwc->hwparams.hwparams0);
652
+ mdwidth = dwc3_mdwidth(dwc);
653
+
654
+ val *= mdwidth;
645655 val >>= 3;
646656 seq_printf(s, "%u\n", val);
647657 spin_unlock_irqrestore(&dwc->lock, flags);
....@@ -654,13 +664,16 @@
654664 struct dwc3_ep *dep = s->private;
655665 struct dwc3 *dwc = dep->dwc;
656666 unsigned long flags;
667
+ u32 mdwidth;
657668 u32 val;
658669
659670 spin_lock_irqsave(&dwc->lock, flags);
660671 val = dwc3_core_fifo_space(dep, DWC3_RXFIFO);
661672
662673 /* Convert to bytes */
663
- val *= DWC3_MDWIDTH(dwc->hwparams.hwparams0);
674
+ mdwidth = dwc3_mdwidth(dwc);
675
+
676
+ val *= mdwidth;
664677 val >>= 3;
665678 seq_printf(s, "%u\n", val);
666679 spin_unlock_irqrestore(&dwc->lock, flags);
....@@ -750,27 +763,26 @@
750763 unsigned long flags;
751764
752765 spin_lock_irqsave(&dwc->lock, flags);
753
- if (!(dep->flags & DWC3_EP_ENABLED) ||
754
- !dep->endpoint.desc) {
755
- seq_printf(s, "--\n");
766
+ if (!(dep->flags & DWC3_EP_ENABLED) || !dep->endpoint.desc) {
767
+ seq_puts(s, "--\n");
756768 goto out;
757769 }
758770
759771 switch (usb_endpoint_type(dep->endpoint.desc)) {
760772 case USB_ENDPOINT_XFER_CONTROL:
761
- seq_printf(s, "control\n");
773
+ seq_puts(s, "control\n");
762774 break;
763775 case USB_ENDPOINT_XFER_ISOC:
764
- seq_printf(s, "isochronous\n");
776
+ seq_puts(s, "isochronous\n");
765777 break;
766778 case USB_ENDPOINT_XFER_BULK:
767
- seq_printf(s, "bulk\n");
779
+ seq_puts(s, "bulk\n");
768780 break;
769781 case USB_ENDPOINT_XFER_INT:
770
- seq_printf(s, "interrupt\n");
782
+ seq_puts(s, "interrupt\n");
771783 break;
772784 default:
773
- seq_printf(s, "--\n");
785
+ seq_puts(s, "--\n");
774786 }
775787
776788 out:
....@@ -788,11 +800,11 @@
788800
789801 spin_lock_irqsave(&dwc->lock, flags);
790802 if (dep->number <= 1) {
791
- seq_printf(s, "--\n");
803
+ seq_puts(s, "--\n");
792804 goto out;
793805 }
794806
795
- seq_printf(s, "buffer_addr,size,type,ioc,isp_imi,csp,chn,lst,hwo\n");
807
+ seq_puts(s, "buffer_addr,size,type,ioc,isp_imi,csp,chn,lst,hwo\n");
796808
797809 for (i = 0; i < DWC3_TRB_NUM; i++) {
798810 struct dwc3_trb *trb = &dep->trb_pool[i];
....@@ -874,7 +886,7 @@
874886 const struct file_operations *fops = dwc3_ep_file_map[i].fops;
875887 const char *name = dwc3_ep_file_map[i].name;
876888
877
- debugfs_create_file(name, S_IRUGO, parent, dep, fops);
889
+ debugfs_create_file(name, 0444, parent, dep, fops);
878890 }
879891 }
880892
....@@ -900,24 +912,21 @@
900912 dwc->regset->nregs = ARRAY_SIZE(dwc3_regs);
901913 dwc->regset->base = dwc->regs - DWC3_GLOBALS_REGS_START;
902914
903
- root = debugfs_create_dir(dev_name(dwc->dev), NULL);
915
+ root = debugfs_create_dir(dev_name(dwc->dev), usb_debug_root);
904916 dwc->root = root;
905917
906
- debugfs_create_regset32("regdump", S_IRUGO, root, dwc->regset);
918
+ debugfs_create_regset32("regdump", 0444, root, dwc->regset);
919
+ debugfs_create_file("lsp_dump", 0644, root, dwc, &dwc3_lsp_fops);
907920
908
- debugfs_create_file("lsp_dump", S_IRUGO | S_IWUSR, root, dwc,
909
- &dwc3_lsp_fops);
910
-
911
- if (IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)) {
912
- debugfs_create_file("mode", S_IRUGO | S_IWUSR, root, dwc,
921
+ if (IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE))
922
+ debugfs_create_file("mode", 0644, root, dwc,
913923 &dwc3_mode_fops);
914
- }
915924
916925 if (IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE) ||
917926 IS_ENABLED(CONFIG_USB_DWC3_GADGET)) {
918
- debugfs_create_file("testmode", S_IRUGO | S_IWUSR, root, dwc,
919
- &dwc3_testmode_fops);
920
- debugfs_create_file("link_state", S_IRUGO | S_IWUSR, root, dwc,
927
+ debugfs_create_file("testmode", 0644, root, dwc,
928
+ &dwc3_testmode_fops);
929
+ debugfs_create_file("link_state", 0644, root, dwc,
921930 &dwc3_link_state_fops);
922931 }
923932 }