Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/external/bsd/dwc2/dist Merge conflicts.



details:   https://anonhg.NetBSD.org/src/rev/9843c451f450
branches:  trunk
changeset: 328422:9843c451f450
user:      skrll <skrll%NetBSD.org@localhost>
date:      Thu Apr 03 06:34:58 2014 +0000

description:
Merge conflicts.

diffstat:

 sys/external/bsd/dwc2/dist/dwc2_core.c     |  384 +++++++++++-----------------
 sys/external/bsd/dwc2/dist/dwc2_core.h     |   66 ++--
 sys/external/bsd/dwc2/dist/dwc2_coreintr.c |   37 +-
 sys/external/bsd/dwc2/dist/dwc2_hcd.c      |   12 +-
 sys/external/bsd/dwc2/dist/dwc2_hcd.h      |    6 +-
 sys/external/bsd/dwc2/dist/dwc2_hcdddma.c  |   12 +-
 sys/external/bsd/dwc2/dist/dwc2_hcdintr.c  |   24 +-
 sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c |  111 ++++----
 8 files changed, 297 insertions(+), 355 deletions(-)

diffs (truncated from 1558 to 300 lines):

diff -r 84e6b898844f -r 9843c451f450 sys/external/bsd/dwc2/dist/dwc2_core.c
--- a/sys/external/bsd/dwc2/dist/dwc2_core.c    Thu Apr 03 06:07:22 2014 +0000
+++ b/sys/external/bsd/dwc2/dist/dwc2_core.c    Thu Apr 03 06:34:58 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: dwc2_core.c,v 1.5 2014/03/21 09:19:10 skrll Exp $      */
+/*     $NetBSD: dwc2_core.c,v 1.6 2014/04/03 06:34:58 skrll Exp $      */
 
 /*
  * core.c - DesignWare HS OTG Controller common routines
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2_core.c,v 1.5 2014/03/21 09:19:10 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2_core.c,v 1.6 2014/04/03 06:34:58 skrll Exp $");
 
 #include <sys/types.h>
 #include <sys/bus.h>
@@ -125,7 +125,7 @@
  * Do core a soft reset of the core.  Be careful with this because it
  * resets all the internal state machines of the core.
  */
-static void dwc2_core_reset(struct dwc2_hsotg *hsotg)
+static int dwc2_core_reset(struct dwc2_hsotg *hsotg)
 {
        u32 greset;
        int count = 0;
@@ -140,7 +140,7 @@
                        dev_warn(hsotg->dev,
                                 "%s() HANG! AHB Idle GRSTCTL=%0x\n",
                                 __func__, greset);
-                       return;
+                       return -EBUSY;
                }
        } while (!(greset & GRSTCTL_AHBIDLE));
 
@@ -155,7 +155,7 @@
                        dev_warn(hsotg->dev,
                                 "%s() HANG! Soft Reset GRSTCTL=%0x\n",
                                 __func__, greset);
-                       break;
+                       return -EBUSY;
                }
        } while (greset & GRSTCTL_CSFTRST);
 
@@ -164,11 +164,14 @@
         * not stay in host mode after a connector ID change!
         */
        usleep_range(150000, 200000);
+
+       return 0;
 }
 
-static void dwc2_fs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
+static int dwc2_fs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
 {
        u32 usbcfg, i2cctl;
+       int retval = 0;
 
        /*
         * core_init() is now called on every switch so only call the
@@ -181,7 +184,12 @@
                DWC2_WRITE_4(hsotg, GUSBCFG, usbcfg);
 
                /* Reset after a PHY select */
-               dwc2_core_reset(hsotg);
+               retval = dwc2_core_reset(hsotg);
+               if (retval) {
+                       dev_err(hsotg->dev, "%s() Reset failed, aborting",
+                                       __func__);
+                       return retval;
+               }
        }
 
        /*
@@ -209,14 +217,17 @@
                i2cctl |= GI2CCTL_I2CEN;
                DWC2_WRITE_4(hsotg, GI2CCTL, i2cctl);
        }
+
+       return retval;
 }
 
-static void dwc2_hs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
+static int dwc2_hs_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
 {
        u32 usbcfg;
+       int retval = 0;
 
        if (!select_phy)
-               return;
+               return 0;
 
        usbcfg = DWC2_READ_4(hsotg, GUSBCFG);
 
@@ -249,20 +260,32 @@
        DWC2_WRITE_4(hsotg, GUSBCFG, usbcfg);
 
        /* Reset after setting the PHY parameters */
-       dwc2_core_reset(hsotg);
+       retval = dwc2_core_reset(hsotg);
+       if (retval) {
+               dev_err(hsotg->dev, "%s() Reset failed, aborting",
+                               __func__);
+               return retval;
+       }
+
+       return retval;
 }
 
-static void dwc2_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
+static int dwc2_phy_init(struct dwc2_hsotg *hsotg, bool select_phy)
 {
        u32 usbcfg;
+       int retval = 0;
 
        if (hsotg->core_params->speed == DWC2_SPEED_PARAM_FULL &&
            hsotg->core_params->phy_type == DWC2_PHY_TYPE_PARAM_FS) {
                /* If FS mode with FS PHY */
-               dwc2_fs_phy_init(hsotg, select_phy);
+               retval = dwc2_fs_phy_init(hsotg, select_phy);
+               if (retval)
+                       return retval;
        } else {
                /* High speed PHY */
-               dwc2_hs_phy_init(hsotg, select_phy);
+               retval = dwc2_hs_phy_init(hsotg, select_phy);
+               if (retval)
+                       return retval;
        }
 
        if (hsotg->hw_params.hs_phy_type == GHWCFG2_HS_PHY_TYPE_ULPI &&
@@ -279,6 +302,8 @@
                usbcfg &= ~GUSBCFG_ULPI_CLK_SUSP_M;
                DWC2_WRITE_4(hsotg, GUSBCFG, usbcfg);
        }
+
+       return retval;
 }
 
 static int dwc2_gahbcfg_init(struct dwc2_hsotg *hsotg)
@@ -393,12 +418,19 @@
        DWC2_WRITE_4(hsotg, GUSBCFG, usbcfg);
 
        /* Reset the Controller */
-       dwc2_core_reset(hsotg);
+       retval = dwc2_core_reset(hsotg);
+       if (retval) {
+               dev_err(hsotg->dev, "%s(): Reset failed, aborting\n",
+                               __func__);
+               return retval;
+       }
 
        /*
         * This needs to happen in FS mode before any other programming occurs
         */
-       dwc2_phy_init(hsotg, select_phy);
+       retval = dwc2_phy_init(hsotg, select_phy);
+       if (retval)
+               return retval;
 
        /* Program the GAHBCFG Register */
        retval = dwc2_gahbcfg_init(hsotg);
@@ -452,9 +484,6 @@
        DWC2_WRITE_4(hsotg, GINTMSK, 0);
        DWC2_WRITE_4(hsotg, HAINTMSK, 0);
 
-       /* Clear any pending interrupts */
-       DWC2_WRITE_4(hsotg, GINTSTS, 0xffffffff);
-
        /* Enable the common interrupts */
        dwc2_enable_common_interrupts(hsotg);
 
@@ -1912,13 +1941,12 @@
        udelay(1);
 }
 
-#define DWC2_PARAM_TEST(a, b, c)       ((a) < (b) || (a) > (c))
+#define DWC2_OUT_OF_BOUNDS(a, b, c)    ((a) < (b) || (a) > (c))
 
 /* Parameter access functions */
-int dwc2_set_param_otg_cap(struct dwc2_hsotg *hsotg, int val)
+void dwc2_set_param_otg_cap(struct dwc2_hsotg *hsotg, int val)
 {
        int valid = 1;
-       int retval = 0;
 
        switch (val) {
        case DWC2_CAP_PARAM_HNP_SRP_CAPABLE:
@@ -1964,17 +1992,14 @@
                        break;
                }
                dev_dbg(hsotg->dev, "Setting otg_cap to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->otg_cap = val;
-       return retval;
 }
 
-int dwc2_set_param_dma_enable(struct dwc2_hsotg *hsotg, int val)
+void dwc2_set_param_dma_enable(struct dwc2_hsotg *hsotg, int val)
 {
        int valid = 1;
-       int retval = 0;
 
        if (val > 0 && hsotg->hw_params.arch == GHWCFG2_SLAVE_ONLY_ARCH)
                valid = 0;
@@ -1988,17 +2013,14 @@
                                val);
                val = hsotg->hw_params.arch != GHWCFG2_SLAVE_ONLY_ARCH;
                dev_dbg(hsotg->dev, "Setting dma_enable to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->dma_enable = val;
-       return retval;
 }
 
-int dwc2_set_param_dma_desc_enable(struct dwc2_hsotg *hsotg, int val)
+void dwc2_set_param_dma_desc_enable(struct dwc2_hsotg *hsotg, int val)
 {
        int valid = 1;
-       int retval = 0;
 
        if (val > 0 && (hsotg->core_params->dma_enable <= 0 ||
                        !hsotg->hw_params.dma_desc_enable))
@@ -2014,19 +2036,15 @@
                val = (hsotg->core_params->dma_enable > 0 &&
                        hsotg->hw_params.dma_desc_enable);
                dev_dbg(hsotg->dev, "Setting dma_desc_enable to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->dma_desc_enable = val;
-       return retval;
 }
 
-int dwc2_set_param_host_support_fs_ls_low_power(struct dwc2_hsotg *hsotg,
-                                               int val)
+void dwc2_set_param_host_support_fs_ls_low_power(struct dwc2_hsotg *hsotg,
+                                                int val)
 {
-       int retval = 0;
-
-       if (DWC2_PARAM_TEST(val, 0, 1)) {
+       if (DWC2_OUT_OF_BOUNDS(val, 0, 1)) {
                if (val >= 0) {
                        dev_err(hsotg->dev,
                                "Wrong value for host_support_fs_low_power\n");
@@ -2036,17 +2054,14 @@
                val = 0;
                dev_dbg(hsotg->dev,
                        "Setting host_support_fs_low_power to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->host_support_fs_ls_low_power = val;
-       return retval;
 }
 
-int dwc2_set_param_enable_dynamic_fifo(struct dwc2_hsotg *hsotg, int val)
+void dwc2_set_param_enable_dynamic_fifo(struct dwc2_hsotg *hsotg, int val)
 {
        int valid = 1;
-       int retval = 0;
 
        if (val > 0 && !hsotg->hw_params.enable_dynamic_fifo)
                valid = 0;
@@ -2060,17 +2075,14 @@
                                val);
                val = hsotg->hw_params.enable_dynamic_fifo;
                dev_dbg(hsotg->dev, "Setting enable_dynamic_fifo to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->enable_dynamic_fifo = val;
-       return retval;
 }
 
-int dwc2_set_param_host_rx_fifo_size(struct dwc2_hsotg *hsotg, int val)
+void dwc2_set_param_host_rx_fifo_size(struct dwc2_hsotg *hsotg, int val)
 {
        int valid = 1;
-       int retval = 0;
 
        if (val < 16 || val > hsotg->hw_params.host_rx_fifo_size)
                valid = 0;
@@ -2082,17 +2094,14 @@
                                val);
                val = hsotg->hw_params.host_rx_fifo_size;
                dev_dbg(hsotg->dev, "Setting host_rx_fifo_size to %d\n", val);
-               retval = -EINVAL;
        }
 
        hsotg->core_params->host_rx_fifo_size = val;
-       return retval;
 }
 
-int dwc2_set_param_host_nperio_tx_fifo_size(struct dwc2_hsotg *hsotg, int val)



Home | Main Index | Thread Index | Old Index