summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc2
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/dwc2')
-rw-r--r--drivers/usb/dwc2/core.c8
-rw-r--r--drivers/usb/dwc2/core.h4
-rw-r--r--drivers/usb/dwc2/gadget.c2
3 files changed, 6 insertions, 8 deletions
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
index 915fe6752b8d..84990a82363b 100644
--- a/drivers/usb/dwc2/core.c
+++ b/drivers/usb/dwc2/core.c
@@ -67,7 +67,8 @@
67static int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg) 67static int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg)
68{ 68{
69 struct dwc2_gregs_backup *gr; 69 struct dwc2_gregs_backup *gr;
70 int i; 70
71 dev_dbg(hsotg->dev, "%s\n", __func__);
71 72
72 /* Backup global regs */ 73 /* Backup global regs */
73 gr = &hsotg->gr_backup; 74 gr = &hsotg->gr_backup;
@@ -81,8 +82,6 @@ static int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg)
81 gr->hptxfsiz = dwc2_readl(hsotg->regs + HPTXFSIZ); 82 gr->hptxfsiz = dwc2_readl(hsotg->regs + HPTXFSIZ);
82 gr->gdfifocfg = dwc2_readl(hsotg->regs + GDFIFOCFG); 83 gr->gdfifocfg = dwc2_readl(hsotg->regs + GDFIFOCFG);
83 gr->pcgcctl1 = dwc2_readl(hsotg->regs + PCGCCTL1); 84 gr->pcgcctl1 = dwc2_readl(hsotg->regs + PCGCCTL1);
84 for (i = 0; i < MAX_EPS_CHANNELS; i++)
85 gr->dtxfsiz[i] = dwc2_readl(hsotg->regs + DPTXFSIZN(i));
86 85
87 gr->valid = true; 86 gr->valid = true;
88 return 0; 87 return 0;
@@ -98,7 +97,6 @@ static int dwc2_backup_global_registers(struct dwc2_hsotg *hsotg)
98static int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg) 97static int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg)
99{ 98{
100 struct dwc2_gregs_backup *gr; 99 struct dwc2_gregs_backup *gr;
101 int i;
102 100
103 dev_dbg(hsotg->dev, "%s\n", __func__); 101 dev_dbg(hsotg->dev, "%s\n", __func__);
104 102
@@ -121,8 +119,6 @@ static int dwc2_restore_global_registers(struct dwc2_hsotg *hsotg)
121 dwc2_writel(gr->hptxfsiz, hsotg->regs + HPTXFSIZ); 119 dwc2_writel(gr->hptxfsiz, hsotg->regs + HPTXFSIZ);
122 dwc2_writel(gr->gdfifocfg, hsotg->regs + GDFIFOCFG); 120 dwc2_writel(gr->gdfifocfg, hsotg->regs + GDFIFOCFG);
123 dwc2_writel(gr->pcgcctl1, hsotg->regs + PCGCCTL1); 121 dwc2_writel(gr->pcgcctl1, hsotg->regs + PCGCCTL1);
124 for (i = 0; i < MAX_EPS_CHANNELS; i++)
125 dwc2_writel(gr->dtxfsiz[i], hsotg->regs + DPTXFSIZN(i));
126 122
127 return 0; 123 return 0;
128} 124}
diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h
index 386a03056763..aa69f2838fcd 100644
--- a/drivers/usb/dwc2/core.h
+++ b/drivers/usb/dwc2/core.h
@@ -642,7 +642,6 @@ struct dwc2_hw_params {
642 * @gi2cctl: Backup of GI2CCTL register 642 * @gi2cctl: Backup of GI2CCTL register
643 * @hptxfsiz: Backup of HPTXFSIZ register 643 * @hptxfsiz: Backup of HPTXFSIZ register
644 * @gdfifocfg: Backup of GDFIFOCFG register 644 * @gdfifocfg: Backup of GDFIFOCFG register
645 * @dtxfsiz: Backup of DTXFSIZ registers for each endpoint
646 * @gpwrdn: Backup of GPWRDN register 645 * @gpwrdn: Backup of GPWRDN register
647 */ 646 */
648struct dwc2_gregs_backup { 647struct dwc2_gregs_backup {
@@ -657,7 +656,6 @@ struct dwc2_gregs_backup {
657 u32 pcgcctl; 656 u32 pcgcctl;
658 u32 pcgcctl1; 657 u32 pcgcctl1;
659 u32 gdfifocfg; 658 u32 gdfifocfg;
660 u32 dtxfsiz[MAX_EPS_CHANNELS];
661 u32 gpwrdn; 659 u32 gpwrdn;
662 bool valid; 660 bool valid;
663}; 661};
@@ -676,6 +674,7 @@ struct dwc2_gregs_backup {
676 * @doepctl: Backup of DOEPCTL register 674 * @doepctl: Backup of DOEPCTL register
677 * @doeptsiz: Backup of DOEPTSIZ register 675 * @doeptsiz: Backup of DOEPTSIZ register
678 * @doepdma: Backup of DOEPDMA register 676 * @doepdma: Backup of DOEPDMA register
677 * @dtxfsiz: Backup of DTXFSIZ registers for each endpoint
679 */ 678 */
680struct dwc2_dregs_backup { 679struct dwc2_dregs_backup {
681 u32 dcfg; 680 u32 dcfg;
@@ -689,6 +688,7 @@ struct dwc2_dregs_backup {
689 u32 doepctl[MAX_EPS_CHANNELS]; 688 u32 doepctl[MAX_EPS_CHANNELS];
690 u32 doeptsiz[MAX_EPS_CHANNELS]; 689 u32 doeptsiz[MAX_EPS_CHANNELS];
691 u32 doepdma[MAX_EPS_CHANNELS]; 690 u32 doepdma[MAX_EPS_CHANNELS];
691 u32 dtxfsiz[MAX_EPS_CHANNELS];
692 bool valid; 692 bool valid;
693}; 693};
694 694
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index a43478d65b3f..89c6714241ee 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -4815,6 +4815,7 @@ int dwc2_backup_device_registers(struct dwc2_hsotg *hsotg)
4815 4815
4816 dr->doeptsiz[i] = dwc2_readl(hsotg->regs + DOEPTSIZ(i)); 4816 dr->doeptsiz[i] = dwc2_readl(hsotg->regs + DOEPTSIZ(i));
4817 dr->doepdma[i] = dwc2_readl(hsotg->regs + DOEPDMA(i)); 4817 dr->doepdma[i] = dwc2_readl(hsotg->regs + DOEPDMA(i));
4818 dr->dtxfsiz[i] = dwc2_readl(hsotg->regs + DPTXFSIZN(i));
4818 } 4819 }
4819 dr->valid = true; 4820 dr->valid = true;
4820 return 0; 4821 return 0;
@@ -4855,6 +4856,7 @@ int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg)
4855 dwc2_writel(dr->diepctl[i], hsotg->regs + DIEPCTL(i)); 4856 dwc2_writel(dr->diepctl[i], hsotg->regs + DIEPCTL(i));
4856 dwc2_writel(dr->dieptsiz[i], hsotg->regs + DIEPTSIZ(i)); 4857 dwc2_writel(dr->dieptsiz[i], hsotg->regs + DIEPTSIZ(i));
4857 dwc2_writel(dr->diepdma[i], hsotg->regs + DIEPDMA(i)); 4858 dwc2_writel(dr->diepdma[i], hsotg->regs + DIEPDMA(i));
4859 dwc2_writel(dr->dtxfsiz[i], hsotg->regs + DPTXFSIZN(i));
4858 4860
4859 /* Restore OUT EPs */ 4861 /* Restore OUT EPs */
4860 dwc2_writel(dr->doepctl[i], hsotg->regs + DOEPCTL(i)); 4862 dwc2_writel(dr->doepctl[i], hsotg->regs + DOEPCTL(i));