From: Limeng <meng...@windriver.com>

Fix in file dwc_otg_pcd_intr.c
It is not reasonable to set the size of an array with a variable.
So, instead of define array directly, use kmalloc() to apply
memory space, and free it with kfree().

Fix in file dwc_otg_hcd_linux.c
Use the correct format string to output warning information.

Signed-off-by: Meng Li <meng...@windriver.com>
---
 drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 4 ++--
 drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c  | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 
b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
index 08a3e41038a3..b2bb701f187e 100644
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
@@ -482,8 +482,8 @@ static void hcd_init_fiq(void *cookie)
                        otg_dev->os_dep.mphi_base + 0x1f0;
                dwc_otg_hcd->fiq_state->mphi_regs.swirq_clr =
                        otg_dev->os_dep.mphi_base + 0x1f4;
-               DWC_WARN("Fake MPHI regs_base at 0x%08x",
-                        (int)dwc_otg_hcd->fiq_state->mphi_regs.base);
+               DWC_WARN("Fake MPHI regs_base at %px",
+                        dwc_otg_hcd->fiq_state->mphi_regs.base);
        } else {
                dwc_otg_hcd->fiq_state->mphi_regs.ctrl =
                        otg_dev->os_dep.mphi_base + 0x4c;
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 
b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
index e55ea9c74be4..8e88f6898998 100644
--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
@@ -3377,7 +3377,7 @@ void predict_nextep_seq( dwc_otg_core_if_t * core_if)
        dtknq1_data_t dtknqr1;
        uint32_t in_tkn_epnums[4];
        uint8_t seqnum[MAX_EPS_CHANNELS];
-       uint8_t intkn_seq[TOKEN_Q_DEPTH];
+       uint8_t *intkn_seq;
        grstctl_t resetctl = {.d32 = 0 };
        uint8_t temp;
        int ndx = 0;
@@ -3390,6 +3390,8 @@ void predict_nextep_seq( dwc_otg_core_if_t * core_if)
 
        DWC_DEBUGPL(DBG_PCD,"dev_token_q_depth=%d\n",TOKEN_Q_DEPTH);
 
+       intkn_seq = kmalloc(TOKEN_Q_DEPTH, GFP_KERNEL);
+
        /* Read the DTKNQ Registers */
        for (i = 0; i < DTKNQ_REG_CNT; i++) {
                in_tkn_epnums[i] = DWC_READ_REG32(addr);
@@ -3530,7 +3532,7 @@ void predict_nextep_seq( dwc_otg_core_if_t * core_if)
        resetctl.b.intknqflsh = 1;
        DWC_WRITE_REG32(&core_if->core_global_regs->grstctl, resetctl.d32);
 
-
+       kfree(intkn_seq);
 }
 
 /**
-- 
2.17.1

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to