* [U-Boot] [PATCH v3 0/3] Make usb device-tree fixup independent of USB controller
@ 2016-03-01 7:03 Sriram Dash
2016-03-01 7:03 ` [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file Sriram Dash
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Sriram Dash @ 2016-03-01 7:03 UTC (permalink / raw)
To: u-boot
Makes usb device-tree fixup independent of Controller type. This enables the
usage of device-tree fixup as a common framework for EHCI and XHCI controllers
Sriram Dash (3):
board:freescale:common: Move device-tree fixup framework to common
file
board:freescale:usb: Remove code duplication for fdt_usb_get_node_type
board:freescale:usb: Add device-tree fixup support for xhci controller
board/freescale/common/Makefile | 3 +
board/freescale/common/usb.c | 194 +++++++++++++++++++++++++++++++++++++++
drivers/usb/host/ehci-fsl.c | 195 ----------------------------------------
include/fdt_support.h | 4 +-
4 files changed, 199 insertions(+), 197 deletions(-)
create mode 100644 board/freescale/common/usb.c
--
2.1.0
^ permalink raw reply [flat|nested] 18+ messages in thread* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-01 7:03 [U-Boot] [PATCH v3 0/3] Make usb device-tree fixup independent of USB controller Sriram Dash @ 2016-03-01 7:03 ` Sriram Dash 2016-03-01 22:13 ` Marek Vasut 2016-03-01 7:03 ` [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type Sriram Dash 2016-03-01 7:03 ` [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller Sriram Dash 2 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-01 7:03 UTC (permalink / raw) To: u-boot Move usb device-tree fixup framework from ehci-fsl.c to common place so that it can be used by other drivers as well (xhci-fsl.c). Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> --- board/freescale/common/Makefile | 2 + .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- drivers/usb/host/ehci-fsl.c | 195 --------------------- 3 files changed, 3 insertions(+), 354 deletions(-) copy drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile index be114ce..62de45c 100644 --- a/board/freescale/common/Makefile +++ b/board/freescale/common/Makefile @@ -13,6 +13,8 @@ MINIMAL=y endif endif +obj-$(CONFIG_USB_EHCI_FSL) += usb.o + ifdef MINIMAL # necessary to create built-in.o obj- := __dummy__.o diff --git a/drivers/usb/host/ehci-fsl.c b/board/freescale/common/usb.c similarity index 53% copy from drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c index 97b7f14..85cb1bf 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/board/freescale/common/usb.c @@ -1,9 +1,5 @@ /* - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. - * - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB - * - * Author: Tor Krill tor at excito.com + * (C) Copyright 2016 Freescale Semiconductor, Inc. * * SPDX-License-Identifier: GPL-2.0+ */ @@ -17,164 +13,11 @@ #include <fsl_usb.h> #include <fdt_support.h> -#include "ehci.h" #ifndef CONFIG_USB_MAX_CONTROLLER_COUNT #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif -static void set_txfifothresh(struct usb_ehci *, u32); - -/* Check USB PHY clock valid */ -static int usb_phy_clk_valid(struct usb_ehci *ehci) -{ - if (!((in_be32(&ehci->control) & PHY_CLK_VALID) || - in_be32(&ehci->prictrl))) { - printf("USB PHY clock invalid!\n"); - return 0; - } else { - return 1; - } -} - -/* - * Create the appropriate control structures to manage - * a new EHCI host controller. - * - * Excerpts from linux ehci fsl driver. - */ -int ehci_hcd_init(int index, enum usb_init_type init, - struct ehci_hccr **hccr, struct ehci_hcor **hcor) -{ - struct usb_ehci *ehci = NULL; - const char *phy_type = NULL; - size_t len; - char current_usb_controller[5]; -#ifdef CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY - char usb_phy[5]; - - usb_phy[0] = '\0'; -#endif - if (has_erratum_a007075()) { - /* - * A 5ms delay is needed after applying soft-reset to the - * controller to let external ULPI phy come out of reset. - * This delay needs to be added before re-initializing - * the controller after soft-resetting completes - */ - mdelay(5); - } - memset(current_usb_controller, '\0', 5); - snprintf(current_usb_controller, 4, "usb%d", index+1); - - switch (index) { - case 0: - ehci = (struct usb_ehci *)CONFIG_SYS_FSL_USB1_ADDR; - break; - case 1: - ehci = (struct usb_ehci *)CONFIG_SYS_FSL_USB2_ADDR; - break; - default: - printf("ERROR: wrong controller index!!\n"); - return -EINVAL; - }; - - *hccr = (struct ehci_hccr *)((uint32_t)&ehci->caplength); - *hcor = (struct ehci_hcor *)((uint32_t) *hccr + - HC_LENGTH(ehci_readl(&(*hccr)->cr_capbase))); - - /* Set to Host mode */ - setbits_le32(&ehci->usbmode, CM_HOST); - - out_be32(&ehci->snoop1, SNOOP_SIZE_2GB); - out_be32(&ehci->snoop2, 0x80000000 | SNOOP_SIZE_2GB); - - /* Init phy */ - if (hwconfig_sub(current_usb_controller, "phy_type")) - phy_type = hwconfig_subarg(current_usb_controller, - "phy_type", &len); - else - phy_type = getenv("usb_phy_type"); - - if (!phy_type) { -#ifdef CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY - /* if none specified assume internal UTMI */ - strcpy(usb_phy, "utmi"); - phy_type = usb_phy; -#else - printf("WARNING: USB phy type not defined !!\n"); - return -1; -#endif - } - - if (!strncmp(phy_type, "utmi", 4)) { -#if defined(CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY) - clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, - PHY_CLK_SEL_UTMI); - clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, - UTMI_PHY_EN); - udelay(1000); /* delay required for PHY Clk to appear */ -#endif - out_le32(&(*hcor)->or_portsc[0], PORT_PTS_UTMI); - clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, - USB_EN); - } else { - clrsetbits_be32(&ehci->control, CONTROL_REGISTER_W1C_MASK, - PHY_CLK_SEL_ULPI); - clrsetbits_be32(&ehci->control, UTMI_PHY_EN | - CONTROL_REGISTER_W1C_MASK, USB_EN); - udelay(1000); /* delay required for PHY Clk to appear */ - if (!usb_phy_clk_valid(ehci)) - return -EINVAL; - out_le32(&(*hcor)->or_portsc[0], PORT_PTS_ULPI); - } - - out_be32(&ehci->prictrl, 0x0000000c); - out_be32(&ehci->age_cnt_limit, 0x00000040); - out_be32(&ehci->sictrl, 0x00000001); - - in_le32(&ehci->usbmode); - - if (has_erratum_a007798()) - set_txfifothresh(ehci, TXFIFOTHRESH); - - if (has_erratum_a004477()) { - /* - * When reset is issued while any ULPI transaction is ongoing - * then it may result to corruption of ULPI Function Control - * Register which eventually causes phy clock to enter low - * power mode which stops the clock. Thus delay is required - * before reset to let ongoing ULPI transaction complete. - */ - udelay(1); - } - return 0; -} - -/* - * Destroy the appropriate control structures corresponding - * the the EHCI host controller. - */ -int ehci_hcd_stop(int index) -{ - return 0; -} - -/* - * Setting the value of TXFIFO_THRESH field in TXFILLTUNING register - * to counter DDR latencies in writing data into Tx buffer. - * This prevents Tx buffer from getting underrun - */ -static void set_txfifothresh(struct usb_ehci *ehci, u32 txfifo_thresh) -{ - u32 cmd; - cmd = ehci_readl(&ehci->txfilltuning); - cmd &= ~TXFIFO_THRESH_MASK; - cmd |= TXFIFO_THRESH(txfifo_thresh); - ehci_writel(&ehci->txfilltuning, cmd); -} - -#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, const char *phy_type, int start_offset) { @@ -367,4 +210,3 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd) } } } -#endif diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index 97b7f14..ec6b8fe 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c @@ -173,198 +173,3 @@ static void set_txfifothresh(struct usb_ehci *ehci, u32 txfifo_thresh) cmd |= TXFIFO_THRESH(txfifo_thresh); ehci_writel(&ehci->txfilltuning, cmd); } - -#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, - const char *phy_type, int start_offset) -{ - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; - const char *prop_mode = "dr_mode"; - const char *prop_type = "phy_type"; - const char *node_type = NULL; - int node_offset; - int err; - - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, compat_mph); - if (node_offset < 0) { - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (node_offset < 0) { - printf("WARNING: could not find compatible node: %s", - fdt_strerror(node_offset)); - return -1; - } - node_type = compat_dr; - } else { - node_type = compat_mph; - } - - if (mode) { - err = fdt_setprop(blob, node_offset, prop_mode, mode, - strlen(mode) + 1); - if (err < 0) - printf("WARNING: could not set %s for %s: %s.\n", - prop_mode, node_type, fdt_strerror(err)); - } - - if (phy_type) { - err = fdt_setprop(blob, node_offset, prop_type, phy_type, - strlen(phy_type) + 1); - if (err < 0) - printf("WARNING: could not set %s for %s: %s.\n", - prop_type, node_type, fdt_strerror(err)); - } - - return node_offset; -} - -static const char *fdt_usb_get_node_type(void *blob, int start_offset, - int *node_offset) -{ - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; - const char *node_type = NULL; - - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, - compat_mph); - if (*node_offset < 0) { - *node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (*node_offset < 0) { - printf("ERROR: could not find compatible node: %s\n", - fdt_strerror(*node_offset)); - } else { - node_type = compat_dr; - } - } else { - node_type = compat_mph; - } - - return node_type; -} - -static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, - int start_offset) -{ - int node_offset, err; - const char *node_type = NULL; - - node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); - if (!node_type) - return -1; - - err = fdt_setprop(blob, node_offset, prop_erratum, NULL, 0); - if (err < 0) { - printf("ERROR: could not set %s for %s: %s.\n", - prop_erratum, node_type, fdt_strerror(err)); - } - - return node_offset; -} - -void fdt_fixup_dr_usb(void *blob, bd_t *bd) -{ - static const char * const modes[] = { "host", "peripheral", "otg" }; - static const char * const phys[] = { "ulpi", "utmi", "utmi_dual" }; - int usb_erratum_a006261_off = -1; - int usb_erratum_a007075_off = -1; - int usb_erratum_a007792_off = -1; - int usb_erratum_a005697_off = -1; - int usb_mode_off = -1; - int usb_phy_off = -1; - char str[5]; - int i, j; - - for (i = 1; i <= CONFIG_USB_MAX_CONTROLLER_COUNT; i++) { - const char *dr_mode_type = NULL; - const char *dr_phy_type = NULL; - int mode_idx = -1, phy_idx = -1; - - snprintf(str, 5, "%s%d", "usb", i); - if (hwconfig(str)) { - for (j = 0; j < ARRAY_SIZE(modes); j++) { - if (hwconfig_subarg_cmp(str, "dr_mode", - modes[j])) { - mode_idx = j; - break; - } - } - - for (j = 0; j < ARRAY_SIZE(phys); j++) { - if (hwconfig_subarg_cmp(str, "phy_type", - phys[j])) { - phy_idx = j; - break; - } - } - - if (mode_idx < 0 && phy_idx < 0) { - printf("WARNING: invalid phy or mode\n"); - return; - } - - if (mode_idx > -1) - dr_mode_type = modes[mode_idx]; - - if (phy_idx > -1) - dr_phy_type = phys[phy_idx]; - } - - if (has_dual_phy()) - dr_phy_type = phys[2]; - - usb_mode_off = fdt_fixup_usb_mode_phy_type(blob, - dr_mode_type, NULL, - usb_mode_off); - - if (usb_mode_off < 0) - return; - - usb_phy_off = fdt_fixup_usb_mode_phy_type(blob, - NULL, dr_phy_type, - usb_phy_off); - - if (usb_phy_off < 0) - return; - - if (has_erratum_a006261()) { - usb_erratum_a006261_off = fdt_fixup_usb_erratum - (blob, - "fsl,usb-erratum-a006261", - usb_erratum_a006261_off); - if (usb_erratum_a006261_off < 0) - return; - } - - if (has_erratum_a007075()) { - usb_erratum_a007075_off = fdt_fixup_usb_erratum - (blob, - "fsl,usb-erratum-a007075", - usb_erratum_a007075_off); - if (usb_erratum_a007075_off < 0) - return; - } - - if (has_erratum_a007792()) { - usb_erratum_a007792_off = fdt_fixup_usb_erratum - (blob, - "fsl,usb-erratum-a007792", - usb_erratum_a007792_off); - if (usb_erratum_a007792_off < 0) - return; - } - if (has_erratum_a005697()) { - usb_erratum_a005697_off = fdt_fixup_usb_erratum - (blob, - "fsl,usb-erratum-a005697", - usb_erratum_a005697_off); - if (usb_erratum_a005697_off < 0) - return; - } - } -} -#endif -- 2.1.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-01 7:03 ` [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file Sriram Dash @ 2016-03-01 22:13 ` Marek Vasut 2016-03-03 8:29 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-01 22:13 UTC (permalink / raw) To: u-boot On 03/01/2016 08:03 AM, Sriram Dash wrote: > Move usb device-tree fixup framework from ehci-fsl.c to common place so > that it can be used by other drivers as well (xhci-fsl.c). > > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> > Signed-off-by: Sriram Dash <sriram.dash@nxp.com> > --- > board/freescale/common/Makefile | 2 + > .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- > drivers/usb/host/ehci-fsl.c | 195 --------------------- > 3 files changed, 3 insertions(+), 354 deletions(-) > copy drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) Where is the changelog ? > diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile > index be114ce..62de45c 100644 > --- a/board/freescale/common/Makefile > +++ b/board/freescale/common/Makefile > @@ -13,6 +13,8 @@ MINIMAL=y > endif > endif > > +obj-$(CONFIG_USB_EHCI_FSL) += usb.o > + > ifdef MINIMAL > # necessary to create built-in.o > obj- := __dummy__.o > diff --git a/drivers/usb/host/ehci-fsl.c b/board/freescale/common/usb.c > similarity index 53% > copy from drivers/usb/host/ehci-fsl.c > copy to board/freescale/common/usb.c > index 97b7f14..85cb1bf 100644 > --- a/drivers/usb/host/ehci-fsl.c > +++ b/board/freescale/common/usb.c > @@ -1,9 +1,5 @@ > /* > - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. > - * > - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB > - * > - * Author: Tor Krill tor at excito.com > + * (C) Copyright 2016 Freescale Semiconductor, Inc. What's with this copyright change here ? > * SPDX-License-Identifier: GPL-2.0+ > */ > @@ -17,164 +13,11 @@ > #include <fsl_usb.h> > #include <fdt_support.h> > > -#include "ehci.h" [...] -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-01 22:13 ` Marek Vasut @ 2016-03-03 8:29 ` Sriram Dash 2016-03-03 9:56 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-03 8:29 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Wednesday, March 02, 2016 3:43 AM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >Rini <trini@konsulko.com> >Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree fixup >framework to common file > >On 03/01/2016 08:03 AM, Sriram Dash wrote: >> Move usb device-tree fixup framework from ehci-fsl.c to common place >> so that it can be used by other drivers as well (xhci-fsl.c). >> >> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >> --- >> board/freescale/common/Makefile | 2 + >> .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- >> drivers/usb/host/ehci-fsl.c | 195 --------------------- >> 3 files changed, 3 insertions(+), 354 deletions(-) copy >> drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) > >Where is the changelog ? Will include changelog for v2 and v3 in v4. > >> diff --git a/board/freescale/common/Makefile >> b/board/freescale/common/Makefile index be114ce..62de45c 100644 >> --- a/board/freescale/common/Makefile >> +++ b/board/freescale/common/Makefile >> @@ -13,6 +13,8 @@ MINIMAL=y >> endif >> endif >> >> +obj-$(CONFIG_USB_EHCI_FSL) += usb.o >> + >> ifdef MINIMAL >> # necessary to create built-in.o >> obj- := __dummy__.o >> diff --git a/drivers/usb/host/ehci-fsl.c >> b/board/freescale/common/usb.c similarity index 53% copy from >> drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c index >> 97b7f14..85cb1bf 100644 >> --- a/drivers/usb/host/ehci-fsl.c >> +++ b/board/freescale/common/usb.c >> @@ -1,9 +1,5 @@ >> /* >> - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. >> - * >> - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB >> - * >> - * Author: Tor Krill tor at excito.com >> + * (C) Copyright 2016 Freescale Semiconductor, Inc. > >What's with this copyright change here ? It is a new file named common/usb.c. Shall I include the complete ehci-fsl.c copyright information in the new file? > >> * SPDX-License-Identifier: GPL-2.0+ >> */ >> @@ -17,164 +13,11 @@ >> #include <fsl_usb.h> >> #include <fdt_support.h> >> >> -#include "ehci.h" >[...] > >-- >Best regards, >Marek Vasut Best Regards, Sriram ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-03 8:29 ` Sriram Dash @ 2016-03-03 9:56 ` Marek Vasut 2016-03-03 11:10 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-03 9:56 UTC (permalink / raw) To: u-boot On 03/03/2016 09:29 AM, Sriram Dash wrote: > > >> -----Original Message----- >> From: Marek Vasut [mailto:marex at denx.de] >> Sent: Wednesday, March 02, 2016 3:43 AM >> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >> Rini <trini@konsulko.com> >> Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree fixup >> framework to common file >> >> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>> Move usb device-tree fixup framework from ehci-fsl.c to common place >>> so that it can be used by other drivers as well (xhci-fsl.c). >>> >>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>> --- >>> board/freescale/common/Makefile | 2 + >>> .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- >>> drivers/usb/host/ehci-fsl.c | 195 --------------------- >>> 3 files changed, 3 insertions(+), 354 deletions(-) copy >>> drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) >> >> Where is the changelog ? > > Will include changelog for v2 and v3 in v4. > >> >>> diff --git a/board/freescale/common/Makefile >>> b/board/freescale/common/Makefile index be114ce..62de45c 100644 >>> --- a/board/freescale/common/Makefile >>> +++ b/board/freescale/common/Makefile >>> @@ -13,6 +13,8 @@ MINIMAL=y >>> endif >>> endif >>> >>> +obj-$(CONFIG_USB_EHCI_FSL) += usb.o >>> + >>> ifdef MINIMAL >>> # necessary to create built-in.o >>> obj- := __dummy__.o >>> diff --git a/drivers/usb/host/ehci-fsl.c >>> b/board/freescale/common/usb.c similarity index 53% copy from >>> drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c index >>> 97b7f14..85cb1bf 100644 >>> --- a/drivers/usb/host/ehci-fsl.c >>> +++ b/board/freescale/common/usb.c >>> @@ -1,9 +1,5 @@ >>> /* >>> - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. >>> - * >>> - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB >>> - * >>> - * Author: Tor Krill tor at excito.com >>> + * (C) Copyright 2016 Freescale Semiconductor, Inc. >> >> What's with this copyright change here ? > > It is a new file named common/usb.c. Shall I include the complete ehci-fsl.c copyright information in the new file? There is already a file named common/usb.c , you surely mean board/freescale/common/usb.c , yes ? According to git, it's not a new file: b/board/freescale/common/usb.c similarity index 53% copy from drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c so yes, it should retain all copyright info. And now that I am looking at it, I would much rather see the fixup bits in drivers/usb/host/ than some board-specific file. You can very well put those into fsl-dt-fixup.c or whatever there. >> >>> * SPDX-License-Identifier: GPL-2.0+ >>> */ >>> @@ -17,164 +13,11 @@ >>> #include <fsl_usb.h> >>> #include <fdt_support.h> >>> >>> -#include "ehci.h" >> [...] >> >> -- >> Best regards, >> Marek Vasut > > Best Regards, > Sriram > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-03 9:56 ` Marek Vasut @ 2016-03-03 11:10 ` Sriram Dash 2016-03-03 12:45 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-03 11:10 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Thursday, March 03, 2016 3:26 PM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >Rini <trini@konsulko.com> >Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree fixup >framework to common file > >On 03/03/2016 09:29 AM, Sriram Dash wrote: >> >> >>> -----Original Message----- >>> From: Marek Vasut [mailto:marex at denx.de] >>> Sent: Wednesday, March 02, 2016 3:43 AM >>> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >>> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >>> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >>> Rini <trini@konsulko.com> >>> Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree >>> fixup framework to common file >>> >>> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>>> Move usb device-tree fixup framework from ehci-fsl.c to common place >>>> so that it can be used by other drivers as well (xhci-fsl.c). >>>> >>>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>>> --- >>>> board/freescale/common/Makefile | 2 + >>>> .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- >>>> drivers/usb/host/ehci-fsl.c | 195 --------------------- >>>> 3 files changed, 3 insertions(+), 354 deletions(-) copy >>>> drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) >>> >>> Where is the changelog ? >> >> Will include changelog for v2 and v3 in v4. >> >>> >>>> diff --git a/board/freescale/common/Makefile >>>> b/board/freescale/common/Makefile index be114ce..62de45c 100644 >>>> --- a/board/freescale/common/Makefile >>>> +++ b/board/freescale/common/Makefile >>>> @@ -13,6 +13,8 @@ MINIMAL=y >>>> endif >>>> endif >>>> >>>> +obj-$(CONFIG_USB_EHCI_FSL) += usb.o >>>> + >>>> ifdef MINIMAL >>>> # necessary to create built-in.o >>>> obj- := __dummy__.o >>>> diff --git a/drivers/usb/host/ehci-fsl.c >>>> b/board/freescale/common/usb.c similarity index 53% copy from >>>> drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c >>>> index 97b7f14..85cb1bf 100644 >>>> --- a/drivers/usb/host/ehci-fsl.c >>>> +++ b/board/freescale/common/usb.c >>>> @@ -1,9 +1,5 @@ >>>> /* >>>> - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. >>>> - * >>>> - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB >>>> - * >>>> - * Author: Tor Krill tor at excito.com >>>> + * (C) Copyright 2016 Freescale Semiconductor, Inc. >>> >>> What's with this copyright change here ? >> >> It is a new file named common/usb.c. Shall I include the complete ehci-fsl.c >copyright information in the new file? > >There is already a file named common/usb.c , you surely mean >board/freescale/common/usb.c , yes ? > Yes >According to git, it's not a new file: > >b/board/freescale/common/usb.c similarity index 53% copy from >drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c > >so yes, it should retain all copyright info. > Ok, We will retain copyright info in v4. >And now that I am looking at it, I would much rather see the fixup bits in >drivers/usb/host/ than some board-specific file. You can very well put those into >fsl-dt-fixup.c or whatever there. > drivers/usb/host/ was a good option, but we want to make it independent of host and gadget. So, whenever there is a specific requirement for freescale boards, it will use the same from board: freescale: common: usb Else, another option is to have drivers/usb/common/fsl-dt-fixup.c. What do you say? >>> >>>> * SPDX-License-Identifier: GPL-2.0+ >>>> */ >>>> @@ -17,164 +13,11 @@ >>>> #include <fsl_usb.h> >>>> #include <fdt_support.h> >>>> >>>> -#include "ehci.h" >>> [...] >>> >>> -- >>> Best regards, >>> Marek Vasut >> >> Best Regards, >> Sriram >> > > >-- >Best regards, >Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file 2016-03-03 11:10 ` Sriram Dash @ 2016-03-03 12:45 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2016-03-03 12:45 UTC (permalink / raw) To: u-boot On 03/03/2016 12:10 PM, Sriram Dash wrote: > > >> -----Original Message----- >> From: Marek Vasut [mailto:marex at denx.de] >> Sent: Thursday, March 03, 2016 3:26 PM >> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >> Rini <trini@konsulko.com> >> Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree fixup >> framework to common file >> >> On 03/03/2016 09:29 AM, Sriram Dash wrote: >>> >>> >>>> -----Original Message----- >>>> From: Marek Vasut [mailto:marex at denx.de] >>>> Sent: Wednesday, March 02, 2016 3:43 AM >>>> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >>>> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >>>> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com>; Tom >>>> Rini <trini@konsulko.com> >>>> Subject: Re: [PATCH v3 1/3] board:freescale:common: Move device-tree >>>> fixup framework to common file >>>> >>>> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>>>> Move usb device-tree fixup framework from ehci-fsl.c to common place >>>>> so that it can be used by other drivers as well (xhci-fsl.c). >>>>> >>>>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>>>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>>>> --- >>>>> board/freescale/common/Makefile | 2 + >>>>> .../ehci-fsl.c => board/freescale/common/usb.c | 160 +---------------- >>>>> drivers/usb/host/ehci-fsl.c | 195 --------------------- >>>>> 3 files changed, 3 insertions(+), 354 deletions(-) copy >>>>> drivers/usb/host/ehci-fsl.c => board/freescale/common/usb.c (53%) >>>> >>>> Where is the changelog ? >>> >>> Will include changelog for v2 and v3 in v4. >>> >>>> >>>>> diff --git a/board/freescale/common/Makefile >>>>> b/board/freescale/common/Makefile index be114ce..62de45c 100644 >>>>> --- a/board/freescale/common/Makefile >>>>> +++ b/board/freescale/common/Makefile >>>>> @@ -13,6 +13,8 @@ MINIMAL=y >>>>> endif >>>>> endif >>>>> >>>>> +obj-$(CONFIG_USB_EHCI_FSL) += usb.o >>>>> + >>>>> ifdef MINIMAL >>>>> # necessary to create built-in.o >>>>> obj- := __dummy__.o >>>>> diff --git a/drivers/usb/host/ehci-fsl.c >>>>> b/board/freescale/common/usb.c similarity index 53% copy from >>>>> drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c >>>>> index 97b7f14..85cb1bf 100644 >>>>> --- a/drivers/usb/host/ehci-fsl.c >>>>> +++ b/board/freescale/common/usb.c >>>>> @@ -1,9 +1,5 @@ >>>>> /* >>>>> - * (C) Copyright 2009, 2011 Freescale Semiconductor, Inc. >>>>> - * >>>>> - * (C) Copyright 2008, Excito Elektronik i Sk=E5ne AB >>>>> - * >>>>> - * Author: Tor Krill tor at excito.com >>>>> + * (C) Copyright 2016 Freescale Semiconductor, Inc. >>>> >>>> What's with this copyright change here ? >>> >>> It is a new file named common/usb.c. Shall I include the complete ehci-fsl.c >> copyright information in the new file? >> >> There is already a file named common/usb.c , you surely mean >> board/freescale/common/usb.c , yes ? >> > > Yes > >> According to git, it's not a new file: >> >> b/board/freescale/common/usb.c similarity index 53% copy from >> drivers/usb/host/ehci-fsl.c copy to board/freescale/common/usb.c >> >> so yes, it should retain all copyright info. >> > > Ok, We will retain copyright info in v4. > >> And now that I am looking at it, I would much rather see the fixup bits in >> drivers/usb/host/ than some board-specific file. You can very well put those into >> fsl-dt-fixup.c or whatever there. >> > > drivers/usb/host/ was a good option, but we want to make it independent of > host and gadget. So, whenever there is a specific requirement for freescale boards, > it will use the same from board: freescale: common: usb > > Else, another option is to have drivers/usb/common/fsl-dt-fixup.c. > What do you say? That is fine. Moving it to board code would make it problematic to convert to DM afterward, so I want to prevent that. >>>> >>>>> * SPDX-License-Identifier: GPL-2.0+ >>>>> */ >>>>> @@ -17,164 +13,11 @@ >>>>> #include <fsl_usb.h> >>>>> #include <fdt_support.h> >>>>> >>>>> -#include "ehci.h" >>>> [...] >>>> >>>> -- >>>> Best regards, >>>> Marek Vasut >>> >>> Best Regards, >>> Sriram >>> >> >> >> -- >> Best regards, >> Marek Vasut -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-01 7:03 [U-Boot] [PATCH v3 0/3] Make usb device-tree fixup independent of USB controller Sriram Dash 2016-03-01 7:03 ` [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file Sriram Dash @ 2016-03-01 7:03 ` Sriram Dash 2016-03-01 22:27 ` Marek Vasut 2016-03-01 7:03 ` [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller Sriram Dash 2 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-01 7:03 UTC (permalink / raw) To: u-boot Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to avoid code duplication. Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> --- board/freescale/common/usb.c | 72 ++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c index 85cb1bf..d815dc1 100644 --- a/board/freescale/common/usb.c +++ b/board/freescale/common/usb.c @@ -18,33 +18,45 @@ #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, - const char *phy_type, int start_offset) +static const char *fdt_usb_get_node_type(void *blob, int start_offset, + int *node_offset) { const char *compat_dr = "fsl-usb2-dr"; const char *compat_mph = "fsl-usb2-mph"; - const char *prop_mode = "dr_mode"; - const char *prop_type = "phy_type"; const char *node_type = NULL; - int node_offset; - int err; - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, compat_mph); - if (node_offset < 0) { - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (node_offset < 0) { - printf("WARNING: could not find compatible node: %s", - fdt_strerror(node_offset)); - return -1; + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, + compat_mph); + if (*node_offset < 0) { + *node_offset = fdt_node_offset_by_compatible(blob, + start_offset, + compat_dr); + if (*node_offset < 0) { + printf("ERROR: could not find compatible node: %s\n", + fdt_strerror(*node_offset)); + } else { + node_type = compat_dr; } - node_type = compat_dr; } else { node_type = compat_mph; } + return node_type; +} + +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, + const char *phy_type, int start_offset) +{ + const char *prop_mode = "dr_mode"; + const char *prop_type = "phy_type"; + const char *node_type = NULL; + int node_offset; + int err; + + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); + if (!node_type) + return -1; + if (mode) { err = fdt_setprop(blob, node_offset, prop_mode, mode, strlen(mode) + 1); @@ -64,32 +76,6 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, return node_offset; } -static const char *fdt_usb_get_node_type(void *blob, int start_offset, - int *node_offset) -{ - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; - const char *node_type = NULL; - - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, - compat_mph); - if (*node_offset < 0) { - *node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (*node_offset < 0) { - printf("ERROR: could not find compatible node: %s\n", - fdt_strerror(*node_offset)); - } else { - node_type = compat_dr; - } - } else { - node_type = compat_mph; - } - - return node_type; -} - static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, int start_offset) { -- 2.1.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-01 7:03 ` [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type Sriram Dash @ 2016-03-01 22:27 ` Marek Vasut 2016-03-03 8:30 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-01 22:27 UTC (permalink / raw) To: u-boot On 03/01/2016 08:03 AM, Sriram Dash wrote: > Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to > avoid code duplication. > > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> > Signed-off-by: Sriram Dash <sriram.dash@nxp.com> > --- > board/freescale/common/usb.c | 72 ++++++++++++++++++-------------------------- > 1 file changed, 29 insertions(+), 43 deletions(-) > > diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c > index 85cb1bf..d815dc1 100644 > --- a/board/freescale/common/usb.c > +++ b/board/freescale/common/usb.c > @@ -18,33 +18,45 @@ > #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 > #endif > > -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, > - const char *phy_type, int start_offset) > +static const char *fdt_usb_get_node_type(void *blob, int start_offset, > + int *node_offset) > { > const char *compat_dr = "fsl-usb2-dr"; > const char *compat_mph = "fsl-usb2-mph"; > - const char *prop_mode = "dr_mode"; > - const char *prop_type = "phy_type"; > const char *node_type = NULL; > - int node_offset; > - int err; > > - node_offset = fdt_node_offset_by_compatible(blob, > - start_offset, compat_mph); > - if (node_offset < 0) { > - node_offset = fdt_node_offset_by_compatible(blob, > - start_offset, > - compat_dr); > - if (node_offset < 0) { > - printf("WARNING: could not find compatible node: %s", > - fdt_strerror(node_offset)); > - return -1; > + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, > + compat_mph); > + if (*node_offset < 0) { > + *node_offset = fdt_node_offset_by_compatible(blob, > + start_offset, > + compat_dr); > + if (*node_offset < 0) { > + printf("ERROR: could not find compatible node: %s\n", > + fdt_strerror(*node_offset)); > + } else { > + node_type = compat_dr; > } > - node_type = compat_dr; > } else { > node_type = compat_mph; > } > > + return node_type; The function should be able to return error code. If you need to return some more stuff from the function, return it via reference. > +} > + > +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, > + const char *phy_type, int start_offset) > +{ > + const char *prop_mode = "dr_mode"; > + const char *prop_type = "phy_type"; > + const char *node_type = NULL; > + int node_offset; > + int err; > + > + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); > + if (!node_type) > + return -1; > + > if (mode) { > err = fdt_setprop(blob, node_offset, prop_mode, mode, > strlen(mode) + 1); > @@ -64,32 +76,6 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, > return node_offset; > } > > -static const char *fdt_usb_get_node_type(void *blob, int start_offset, > - int *node_offset) > -{ > - const char *compat_dr = "fsl-usb2-dr"; > - const char *compat_mph = "fsl-usb2-mph"; > - const char *node_type = NULL; > - > - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, > - compat_mph); > - if (*node_offset < 0) { > - *node_offset = fdt_node_offset_by_compatible(blob, > - start_offset, > - compat_dr); > - if (*node_offset < 0) { > - printf("ERROR: could not find compatible node: %s\n", > - fdt_strerror(*node_offset)); > - } else { > - node_type = compat_dr; > - } > - } else { > - node_type = compat_mph; > - } > - > - return node_type; > -} > - > static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, > int start_offset) > { > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-01 22:27 ` Marek Vasut @ 2016-03-03 8:30 ` Sriram Dash 2016-03-03 9:59 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-03 8:30 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Wednesday, March 02, 2016 3:57 AM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code duplication for >fdt_usb_get_node_type > >On 03/01/2016 08:03 AM, Sriram Dash wrote: >> Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to >> avoid code duplication. >> >> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >> --- >> board/freescale/common/usb.c | 72 >> ++++++++++++++++++-------------------------- >> 1 file changed, 29 insertions(+), 43 deletions(-) >> >> diff --git a/board/freescale/common/usb.c >> b/board/freescale/common/usb.c index 85cb1bf..d815dc1 100644 >> --- a/board/freescale/common/usb.c >> +++ b/board/freescale/common/usb.c >> @@ -18,33 +18,45 @@ >> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >> >> -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >> - const char *phy_type, int start_offset) >> +static const char *fdt_usb_get_node_type(void *blob, int start_offset, >> + int *node_offset) >> { >> const char *compat_dr = "fsl-usb2-dr"; >> const char *compat_mph = "fsl-usb2-mph"; >> - const char *prop_mode = "dr_mode"; >> - const char *prop_type = "phy_type"; >> const char *node_type = NULL; >> - int node_offset; >> - int err; >> >> - node_offset = fdt_node_offset_by_compatible(blob, >> - start_offset, compat_mph); >> - if (node_offset < 0) { >> - node_offset = fdt_node_offset_by_compatible(blob, >> - start_offset, >> - compat_dr); >> - if (node_offset < 0) { >> - printf("WARNING: could not find compatible node: %s", >> - fdt_strerror(node_offset)); >> - return -1; >> + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >> + compat_mph); >> + if (*node_offset < 0) { >> + *node_offset = fdt_node_offset_by_compatible(blob, >> + start_offset, >> + compat_dr); >> + if (*node_offset < 0) { >> + printf("ERROR: could not find compatible node: %s\n", >> + fdt_strerror(*node_offset)); >> + } else { >> + node_type = compat_dr; >> } >> - node_type = compat_dr; >> } else { >> node_type = compat_mph; >> } >> >> + return node_type; > >The function should be able to return error code. If you need to return some more >stuff from the function, return it via reference. > This patch is not altering the fdt_usb_get_node_type(). It is only calling the function from fdt_fixup_usb_mode_phy_type(), to avoid code duplication. >> +} >> + >> +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >> + const char *phy_type, int start_offset) { >> + const char *prop_mode = "dr_mode"; >> + const char *prop_type = "phy_type"; >> + const char *node_type = NULL; >> + int node_offset; >> + int err; >> + >> + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); >> + if (!node_type) >> + return -1; >> + >> if (mode) { >> err = fdt_setprop(blob, node_offset, prop_mode, mode, >> strlen(mode) + 1); >> @@ -64,32 +76,6 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const >char *mode, >> return node_offset; >> } >> >> -static const char *fdt_usb_get_node_type(void *blob, int start_offset, >> - int *node_offset) >> -{ >> - const char *compat_dr = "fsl-usb2-dr"; >> - const char *compat_mph = "fsl-usb2-mph"; >> - const char *node_type = NULL; >> - >> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >> - compat_mph); >> - if (*node_offset < 0) { >> - *node_offset = fdt_node_offset_by_compatible(blob, >> - start_offset, >> - compat_dr); >> - if (*node_offset < 0) { >> - printf("ERROR: could not find compatible node: %s\n", >> - fdt_strerror(*node_offset)); >> - } else { >> - node_type = compat_dr; >> - } >> - } else { >> - node_type = compat_mph; >> - } >> - >> - return node_type; >> -} >> - >> static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, >> int start_offset) >> { >> > > >-- >Best regards, >Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-03 8:30 ` Sriram Dash @ 2016-03-03 9:59 ` Marek Vasut 2016-03-03 11:11 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-03 9:59 UTC (permalink / raw) To: u-boot On 03/03/2016 09:30 AM, Sriram Dash wrote: > >> -----Original Message----- >> From: Marek Vasut [mailto:marex at denx.de] >> Sent: Wednesday, March 02, 2016 3:57 AM >> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >> Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code duplication for >> fdt_usb_get_node_type >> >> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>> Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to >>> avoid code duplication. >>> >>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>> --- >>> board/freescale/common/usb.c | 72 >>> ++++++++++++++++++-------------------------- >>> 1 file changed, 29 insertions(+), 43 deletions(-) >>> >>> diff --git a/board/freescale/common/usb.c >>> b/board/freescale/common/usb.c index 85cb1bf..d815dc1 100644 >>> --- a/board/freescale/common/usb.c >>> +++ b/board/freescale/common/usb.c >>> @@ -18,33 +18,45 @@ >>> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >>> >>> -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >>> - const char *phy_type, int start_offset) >>> +static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>> + int *node_offset) >>> { >>> const char *compat_dr = "fsl-usb2-dr"; >>> const char *compat_mph = "fsl-usb2-mph"; >>> - const char *prop_mode = "dr_mode"; >>> - const char *prop_type = "phy_type"; >>> const char *node_type = NULL; >>> - int node_offset; >>> - int err; >>> >>> - node_offset = fdt_node_offset_by_compatible(blob, >>> - start_offset, compat_mph); >>> - if (node_offset < 0) { >>> - node_offset = fdt_node_offset_by_compatible(blob, >>> - start_offset, >>> - compat_dr); >>> - if (node_offset < 0) { >>> - printf("WARNING: could not find compatible node: %s", >>> - fdt_strerror(node_offset)); >>> - return -1; >>> + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>> + compat_mph); >>> + if (*node_offset < 0) { >>> + *node_offset = fdt_node_offset_by_compatible(blob, >>> + start_offset, >>> + compat_dr); >>> + if (*node_offset < 0) { >>> + printf("ERROR: could not find compatible node: %s\n", >>> + fdt_strerror(*node_offset)); >>> + } else { >>> + node_type = compat_dr; >>> } >>> - node_type = compat_dr; >>> } else { >>> node_type = compat_mph; >>> } >>> >>> + return node_type; >> >> The function should be able to return error code. If you need to return some more >> stuff from the function, return it via reference. >> > > This patch is not altering the fdt_usb_get_node_type(). It is only calling the function from > fdt_fixup_usb_mode_phy_type(), to avoid code duplication. I am not complaining about that part. I am complaining about the new function, fdt_usb_get_node_type(), which returns pointer as a return value instead of returning proper error code as a return value. >>> +} >>> + >>> +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >>> + const char *phy_type, int start_offset) { >>> + const char *prop_mode = "dr_mode"; >>> + const char *prop_type = "phy_type"; >>> + const char *node_type = NULL; >>> + int node_offset; >>> + int err; >>> + >>> + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); >>> + if (!node_type) >>> + return -1; >>> + >>> if (mode) { >>> err = fdt_setprop(blob, node_offset, prop_mode, mode, >>> strlen(mode) + 1); >>> @@ -64,32 +76,6 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const >> char *mode, >>> return node_offset; >>> } >>> >>> -static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>> - int *node_offset) >>> -{ >>> - const char *compat_dr = "fsl-usb2-dr"; >>> - const char *compat_mph = "fsl-usb2-mph"; >>> - const char *node_type = NULL; >>> - >>> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>> - compat_mph); >>> - if (*node_offset < 0) { >>> - *node_offset = fdt_node_offset_by_compatible(blob, >>> - start_offset, >>> - compat_dr); >>> - if (*node_offset < 0) { >>> - printf("ERROR: could not find compatible node: %s\n", >>> - fdt_strerror(*node_offset)); >>> - } else { >>> - node_type = compat_dr; >>> - } >>> - } else { >>> - node_type = compat_mph; >>> - } >>> - >>> - return node_type; >>> -} >>> - >>> static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, >>> int start_offset) >>> { >>> >> >> >> -- >> Best regards, >> Marek Vasut -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-03 9:59 ` Marek Vasut @ 2016-03-03 11:11 ` Sriram Dash 2016-03-03 12:48 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-03 11:11 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Thursday, March 03, 2016 3:29 PM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code duplication for >fdt_usb_get_node_type > >On 03/03/2016 09:30 AM, Sriram Dash wrote: >> >>> -----Original Message----- >>> From: Marek Vasut [mailto:marex at denx.de] >>> Sent: Wednesday, March 02, 2016 3:57 AM >>> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >>> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >>> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >>> Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code >>> duplication for fdt_usb_get_node_type >>> >>> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>>> Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to >>>> avoid code duplication. >>>> >>>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>>> --- >>>> board/freescale/common/usb.c | 72 >>>> ++++++++++++++++++-------------------------- >>>> 1 file changed, 29 insertions(+), 43 deletions(-) >>>> >>>> diff --git a/board/freescale/common/usb.c >>>> b/board/freescale/common/usb.c index 85cb1bf..d815dc1 100644 >>>> --- a/board/freescale/common/usb.c >>>> +++ b/board/freescale/common/usb.c >>>> @@ -18,33 +18,45 @@ >>>> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >>>> >>>> -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >>>> - const char *phy_type, int start_offset) >>>> +static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>>> + int *node_offset) >>>> { >>>> const char *compat_dr = "fsl-usb2-dr"; >>>> const char *compat_mph = "fsl-usb2-mph"; >>>> - const char *prop_mode = "dr_mode"; >>>> - const char *prop_type = "phy_type"; >>>> const char *node_type = NULL; >>>> - int node_offset; >>>> - int err; >>>> >>>> - node_offset = fdt_node_offset_by_compatible(blob, >>>> - start_offset, compat_mph); >>>> - if (node_offset < 0) { >>>> - node_offset = fdt_node_offset_by_compatible(blob, >>>> - start_offset, >>>> - compat_dr); >>>> - if (node_offset < 0) { >>>> - printf("WARNING: could not find compatible node: %s", >>>> - fdt_strerror(node_offset)); >>>> - return -1; >>>> + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>>> + compat_mph); >>>> + if (*node_offset < 0) { >>>> + *node_offset = fdt_node_offset_by_compatible(blob, >>>> + start_offset, >>>> + compat_dr); >>>> + if (*node_offset < 0) { >>>> + printf("ERROR: could not find compatible node: %s\n", >>>> + fdt_strerror(*node_offset)); >>>> + } else { >>>> + node_type = compat_dr; >>>> } >>>> - node_type = compat_dr; >>>> } else { >>>> node_type = compat_mph; >>>> } >>>> >>>> + return node_type; >>> >>> The function should be able to return error code. If you need to >>> return some more stuff from the function, return it via reference. >>> >> >> This patch is not altering the fdt_usb_get_node_type(). It is only >> calling the function from fdt_fixup_usb_mode_phy_type(), to avoid code >duplication. > >I am not complaining about that part. I am complaining about the new function, >fdt_usb_get_node_type(), which returns pointer as a return value instead of >returning proper error code as a return value. > I think git diff tool is creating confusion here, I have just moved function fdt_usb_get_node_type above fdt_fixup_usb_mode_phy_type which created all the diff and looked as if new function is added. Please check below created patch where declaration is added to call fdt_usb_get_node_type in fdt_usb_get_mode_phy_type. We will be sending below in V4. ################################################################# diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c index 85cb1bf..5553225 100644 --- a/board/freescale/common/usb.c +++ b/board/freescale/common/usb.c @@ -18,32 +18,21 @@ #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif +const char *fdt_usb_get_node_type(void *blob, int start_offset, + int *node_offset); + static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, const char *phy_type, int start_offset) { - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; const char *prop_mode = "dr_mode"; const char *prop_type = "phy_type"; const char *node_type = NULL; int node_offset; int err; - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, compat_mph); - if (node_offset < 0) { - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (node_offset < 0) { - printf("WARNING: could not find compatible node: %s", - fdt_strerror(node_offset)); - return -1; - } - node_type = compat_dr; - } else { - node_type = compat_mph; - } + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); + if (!node_type) + return -1; if (mode) { err = fdt_setprop(blob, node_offset, prop_mode, mode, ################################################################# >>>> +} >>>> + >>>> +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >>>> + const char *phy_type, int start_offset) { >>>> + const char *prop_mode = "dr_mode"; >>>> + const char *prop_type = "phy_type"; >>>> + const char *node_type = NULL; >>>> + int node_offset; >>>> + int err; >>>> + >>>> + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); >>>> + if (!node_type) >>>> + return -1; >>>> + >>>> if (mode) { >>>> err = fdt_setprop(blob, node_offset, prop_mode, mode, >>>> strlen(mode) + 1); >>>> @@ -64,32 +76,6 @@ static int fdt_fixup_usb_mode_phy_type(void >>>> *blob, const >>> char *mode, >>>> return node_offset; >>>> } >>>> >>>> -static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>>> - int *node_offset) >>>> -{ >>>> - const char *compat_dr = "fsl-usb2-dr"; >>>> - const char *compat_mph = "fsl-usb2-mph"; >>>> - const char *node_type = NULL; >>>> - >>>> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>>> - compat_mph); >>>> - if (*node_offset < 0) { >>>> - *node_offset = fdt_node_offset_by_compatible(blob, >>>> - start_offset, >>>> - compat_dr); >>>> - if (*node_offset < 0) { >>>> - printf("ERROR: could not find compatible node: %s\n", >>>> - fdt_strerror(*node_offset)); >>>> - } else { >>>> - node_type = compat_dr; >>>> - } >>>> - } else { >>>> - node_type = compat_mph; >>>> - } >>>> - >>>> - return node_type; >>>> -} >>>> - >>>> static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, >>>> int start_offset) >>>> { >>>> >>> >>> >>> -- >>> Best regards, >>> Marek Vasut > > >-- >Best regards, >Marek Vasut ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type 2016-03-03 11:11 ` Sriram Dash @ 2016-03-03 12:48 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2016-03-03 12:48 UTC (permalink / raw) To: u-boot On 03/03/2016 12:11 PM, Sriram Dash wrote: > > >> -----Original Message----- >> From: Marek Vasut [mailto:marex at denx.de] >> Sent: Thursday, March 03, 2016 3:29 PM >> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >> Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code duplication for >> fdt_usb_get_node_type >> >> On 03/03/2016 09:30 AM, Sriram Dash wrote: >>> >>>> -----Original Message----- >>>> From: Marek Vasut [mailto:marex at denx.de] >>>> Sent: Wednesday, March 02, 2016 3:57 AM >>>> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >>>> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >>>> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >>>> Subject: Re: [PATCH v3 2/3] board:freescale:usb: Remove code >>>> duplication for fdt_usb_get_node_type >>>> >>>> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>>>> Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to >>>>> avoid code duplication. >>>>> >>>>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>>>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>>>> --- >>>>> board/freescale/common/usb.c | 72 >>>>> ++++++++++++++++++-------------------------- >>>>> 1 file changed, 29 insertions(+), 43 deletions(-) >>>>> >>>>> diff --git a/board/freescale/common/usb.c >>>>> b/board/freescale/common/usb.c index 85cb1bf..d815dc1 100644 >>>>> --- a/board/freescale/common/usb.c >>>>> +++ b/board/freescale/common/usb.c >>>>> @@ -18,33 +18,45 @@ >>>>> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >>>>> >>>>> -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, >>>>> - const char *phy_type, int start_offset) >>>>> +static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>>>> + int *node_offset) >>>>> { >>>>> const char *compat_dr = "fsl-usb2-dr"; >>>>> const char *compat_mph = "fsl-usb2-mph"; >>>>> - const char *prop_mode = "dr_mode"; >>>>> - const char *prop_type = "phy_type"; >>>>> const char *node_type = NULL; >>>>> - int node_offset; >>>>> - int err; >>>>> >>>>> - node_offset = fdt_node_offset_by_compatible(blob, >>>>> - start_offset, compat_mph); >>>>> - if (node_offset < 0) { >>>>> - node_offset = fdt_node_offset_by_compatible(blob, >>>>> - start_offset, >>>>> - compat_dr); >>>>> - if (node_offset < 0) { >>>>> - printf("WARNING: could not find compatible node: %s", >>>>> - fdt_strerror(node_offset)); >>>>> - return -1; >>>>> + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>>>> + compat_mph); >>>>> + if (*node_offset < 0) { >>>>> + *node_offset = fdt_node_offset_by_compatible(blob, >>>>> + start_offset, >>>>> + compat_dr); >>>>> + if (*node_offset < 0) { >>>>> + printf("ERROR: could not find compatible node: %s\n", >>>>> + fdt_strerror(*node_offset)); >>>>> + } else { >>>>> + node_type = compat_dr; >>>>> } >>>>> - node_type = compat_dr; >>>>> } else { >>>>> node_type = compat_mph; >>>>> } >>>>> >>>>> + return node_type; >>>> >>>> The function should be able to return error code. If you need to >>>> return some more stuff from the function, return it via reference. >>>> >>> >>> This patch is not altering the fdt_usb_get_node_type(). It is only >>> calling the function from fdt_fixup_usb_mode_phy_type(), to avoid code >> duplication. >> >> I am not complaining about that part. I am complaining about the new function, >> fdt_usb_get_node_type(), which returns pointer as a return value instead of >> returning proper error code as a return value. >> > > I think git diff tool is creating confusion here, I have just moved function fdt_usb_get_node_type > above fdt_fixup_usb_mode_phy_type which created all the diff and looked as if new function is > added. > > Please check below created patch where declaration is added to call fdt_usb_get_node_type > in fdt_usb_get_mode_phy_type. We will be sending below in V4. > > ################################################################# > > diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c > index 85cb1bf..5553225 100644 > --- a/board/freescale/common/usb.c > +++ b/board/freescale/common/usb.c > @@ -18,32 +18,21 @@ > #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 > #endif > > +const char *fdt_usb_get_node_type(void *blob, int start_offset, > + int *node_offset); > + Ah I see, I am wrong, sorry. btw can you fix the fdt_usb_get_node_type() in another patch to return int ? Thanks! Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller 2016-03-01 7:03 [U-Boot] [PATCH v3 0/3] Make usb device-tree fixup independent of USB controller Sriram Dash 2016-03-01 7:03 ` [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file Sriram Dash 2016-03-01 7:03 ` [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type Sriram Dash @ 2016-03-01 7:03 ` Sriram Dash 2016-03-01 22:25 ` Marek Vasut 2 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-01 7:03 UTC (permalink / raw) To: u-boot Enables usb device-tree fixup code to incorporate xhci controller Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> --- board/freescale/common/Makefile | 1 + board/freescale/common/usb.c | 30 +++++++++++++----------------- include/fdt_support.h | 4 ++-- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile index 62de45c..c644896 100644 --- a/board/freescale/common/Makefile +++ b/board/freescale/common/Makefile @@ -14,6 +14,7 @@ endif endif obj-$(CONFIG_USB_EHCI_FSL) += usb.o +obj-$(CONFIG_USB_XHCI_FSL) += usb.o ifdef MINIMAL # necessary to create built-in.o diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c index d815dc1..8e423be 100644 --- a/board/freescale/common/usb.c +++ b/board/freescale/common/usb.c @@ -18,29 +18,25 @@ #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif +const char compat_usb_fsl[][16] = {"fsl-usb2-mph", + "fsl-usb2-dr", + "snps,dwc3"}; + static const char *fdt_usb_get_node_type(void *blob, int start_offset, int *node_offset) { - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; const char *node_type = NULL; - - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, - compat_mph); - if (*node_offset < 0) { - *node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (*node_offset < 0) { - printf("ERROR: could not find compatible node: %s\n", - fdt_strerror(*node_offset)); - } else { - node_type = compat_dr; + int size = sizeof(compat_usb_fsl)/sizeof(compat_usb_fsl[0]); + int i; + + for (i = 0; i < size ; i++) { + *node_offset = fdt_node_offset_by_compatible + (blob, start_offset, compat_usb_fsl[i]); + if (*node_offset >= 0) { + node_type = compat_usb_fsl[i]; + break; } - } else { - node_type = compat_mph; } - return node_type; } diff --git a/include/fdt_support.h b/include/fdt_support.h index 296add0..d34e959 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -113,11 +113,11 @@ void fdt_fixup_qe_firmware(void *fdt); */ int fdt_fixup_display(void *blob, const char *path, const char *display); -#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) +#if defined(CONFIG_USB_EHCI_FSL) || defined(CONFIG_USB_XHCI_FSL) void fdt_fixup_dr_usb(void *blob, bd_t *bd); #else static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} -#endif /* defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) */ +#endif /* defined(CONFIG_USB_EHCI_FSL) || defined(CONFIG_USB_XHCI_FSL) */ #if defined(CONFIG_SYS_FSL_SEC_COMPAT) void fdt_fixup_crypto_node(void *blob, int sec_rev); -- 2.1.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller 2016-03-01 7:03 ` [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller Sriram Dash @ 2016-03-01 22:25 ` Marek Vasut 2016-03-03 8:32 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-01 22:25 UTC (permalink / raw) To: u-boot On 03/01/2016 08:03 AM, Sriram Dash wrote: > Enables usb device-tree fixup code to incorporate xhci controller > > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> > Signed-off-by: Sriram Dash <sriram.dash@nxp.com> Changelog ? > --- > board/freescale/common/Makefile | 1 + > board/freescale/common/usb.c | 30 +++++++++++++----------------- > include/fdt_support.h | 4 ++-- > 3 files changed, 16 insertions(+), 19 deletions(-) > > diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile > index 62de45c..c644896 100644 > --- a/board/freescale/common/Makefile > +++ b/board/freescale/common/Makefile > @@ -14,6 +14,7 @@ endif > endif > > obj-$(CONFIG_USB_EHCI_FSL) += usb.o > +obj-$(CONFIG_USB_XHCI_FSL) += usb.o > > ifdef MINIMAL > # necessary to create built-in.o > diff --git a/board/freescale/common/usb.c b/board/freescale/common/usb.c > index d815dc1..8e423be 100644 > --- a/board/freescale/common/usb.c > +++ b/board/freescale/common/usb.c > @@ -18,29 +18,25 @@ > #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 > #endif > > +const char compat_usb_fsl[][16] = {"fsl-usb2-mph", > + "fsl-usb2-dr", > + "snps,dwc3"}; This is const char *foo[]. > static const char *fdt_usb_get_node_type(void *blob, int start_offset, > int *node_offset) > { > - const char *compat_dr = "fsl-usb2-dr"; > - const char *compat_mph = "fsl-usb2-mph"; > const char *node_type = NULL; > - > - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, > - compat_mph); > - if (*node_offset < 0) { > - *node_offset = fdt_node_offset_by_compatible(blob, > - start_offset, > - compat_dr); > - if (*node_offset < 0) { > - printf("ERROR: could not find compatible node: %s\n", > - fdt_strerror(*node_offset)); > - } else { > - node_type = compat_dr; > + int size = sizeof(compat_usb_fsl)/sizeof(compat_usb_fsl[0]); Oh the art of counting. Firstly, what you did here is reimplementation of ARRAY_SIZE(), but that's wrong in this context. Each one of the array elements is differently sized, so to avoid problems with this crap, the code hard-codes random constant defining the element size, which is another crap workaround as it will break once a longer element is added. And it wastes space. No, instead, use a terminating entry in the array. btw use checkpatch before your next submission. > + int i; > + > + for (i = 0; i < size ; i++) { > + *node_offset = fdt_node_offset_by_compatible > + (blob, start_offset, compat_usb_fsl[i]); > + if (*node_offset >= 0) { > + node_type = compat_usb_fsl[i]; > + break; > } > - } else { > - node_type = compat_mph; > } > - > return node_type; > } > > diff --git a/include/fdt_support.h b/include/fdt_support.h > index 296add0..d34e959 100644 > --- a/include/fdt_support.h > +++ b/include/fdt_support.h > @@ -113,11 +113,11 @@ void fdt_fixup_qe_firmware(void *fdt); > */ > int fdt_fixup_display(void *blob, const char *path, const char *display); > > -#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) > +#if defined(CONFIG_USB_EHCI_FSL) || defined(CONFIG_USB_XHCI_FSL) > void fdt_fixup_dr_usb(void *blob, bd_t *bd); > #else > static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} > -#endif /* defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) */ > +#endif /* defined(CONFIG_USB_EHCI_FSL) || defined(CONFIG_USB_XHCI_FSL) */ > > #if defined(CONFIG_SYS_FSL_SEC_COMPAT) > void fdt_fixup_crypto_node(void *blob, int sec_rev); > -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller 2016-03-01 22:25 ` Marek Vasut @ 2016-03-03 8:32 ` Sriram Dash 2016-03-03 10:03 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sriram Dash @ 2016-03-03 8:32 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Wednesday, March 02, 2016 3:55 AM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >Subject: Re: [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for >xhci controller > >On 03/01/2016 08:03 AM, Sriram Dash wrote: >> Enables usb device-tree fixup code to incorporate xhci controller >> >> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> > >Changelog ? > Will include changelog for v2 and v3 in v4. >> --- >> board/freescale/common/Makefile | 1 + >> board/freescale/common/usb.c | 30 +++++++++++++----------------- >> include/fdt_support.h | 4 ++-- >> 3 files changed, 16 insertions(+), 19 deletions(-) >> >> diff --git a/board/freescale/common/Makefile >> b/board/freescale/common/Makefile index 62de45c..c644896 100644 >> --- a/board/freescale/common/Makefile >> +++ b/board/freescale/common/Makefile >> @@ -14,6 +14,7 @@ endif >> endif >> >> obj-$(CONFIG_USB_EHCI_FSL) += usb.o >> +obj-$(CONFIG_USB_XHCI_FSL) += usb.o >> >> ifdef MINIMAL >> # necessary to create built-in.o >> diff --git a/board/freescale/common/usb.c >> b/board/freescale/common/usb.c index d815dc1..8e423be 100644 >> --- a/board/freescale/common/usb.c >> +++ b/board/freescale/common/usb.c >> @@ -18,29 +18,25 @@ >> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >> >> +const char compat_usb_fsl[][16] = {"fsl-usb2-mph", >> + "fsl-usb2-dr", >> + "snps,dwc3"}; > >This is const char *foo[]. > Reference from "char compat[][16] = { "cfi-flash", "jedec-flash" };" I will change to const char *compat_usb_fsl[] in v4. >> static const char *fdt_usb_get_node_type(void *blob, int start_offset, >> int *node_offset) >> { >> - const char *compat_dr = "fsl-usb2-dr"; >> - const char *compat_mph = "fsl-usb2-mph"; >> const char *node_type = NULL; >> - >> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >> - compat_mph); >> - if (*node_offset < 0) { >> - *node_offset = fdt_node_offset_by_compatible(blob, >> - start_offset, >> - compat_dr); >> - if (*node_offset < 0) { >> - printf("ERROR: could not find compatible node: %s\n", >> - fdt_strerror(*node_offset)); >> - } else { >> - node_type = compat_dr; >> + int size = sizeof(compat_usb_fsl)/sizeof(compat_usb_fsl[0]); > >Oh the art of counting. Firstly, what you did here is reimplementation of >ARRAY_SIZE(), but that's wrong in this context. Each one of the array elements is >differently sized, so to avoid problems with this crap, the code hard-codes random >constant defining the element size, which is another crap workaround as it will >break once a longer element is added. >And it wastes space. No, instead, use a terminating entry in the array. > Will change compat_usb_fsl[][16] into const char *compat_usb_fsl[], and use ARRAY_SIZE(compat_usb_fsl) . What is your opinion? >btw use checkpatch before your next submission. > >> + int i; >> + >> + for (i = 0; i < size ; i++) { >> + *node_offset = fdt_node_offset_by_compatible >> + (blob, start_offset, compat_usb_fsl[i]); >> + if (*node_offset >= 0) { >> + node_type = compat_usb_fsl[i]; >> + break; >> } >> - } else { >> - node_type = compat_mph; >> } >> - >> return node_type; >> } >> >> diff --git a/include/fdt_support.h b/include/fdt_support.h index >> 296add0..d34e959 100644 >> --- a/include/fdt_support.h >> +++ b/include/fdt_support.h >> @@ -113,11 +113,11 @@ void fdt_fixup_qe_firmware(void *fdt); >> */ >> int fdt_fixup_display(void *blob, const char *path, const char >> *display); >> >> -#if defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) >> +#if defined(CONFIG_USB_EHCI_FSL) || defined(CONFIG_USB_XHCI_FSL) >> void fdt_fixup_dr_usb(void *blob, bd_t *bd); #else static inline >> void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} -#endif /* >> defined(CONFIG_HAS_FSL_DR_USB) || defined(CONFIG_HAS_FSL_MPH_USB) */ >> +#endif /* defined(CONFIG_USB_EHCI_FSL) || >> +defined(CONFIG_USB_XHCI_FSL) */ >> >> #if defined(CONFIG_SYS_FSL_SEC_COMPAT) >> void fdt_fixup_crypto_node(void *blob, int sec_rev); >> > > >-- >Best regards, >Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller 2016-03-03 8:32 ` Sriram Dash @ 2016-03-03 10:03 ` Marek Vasut 2016-03-03 11:11 ` Sriram Dash 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2016-03-03 10:03 UTC (permalink / raw) To: u-boot On 03/03/2016 09:32 AM, Sriram Dash wrote: >> -----Original Message----- >> From: Marek Vasut [mailto:marex at denx.de] >> Sent: Wednesday, March 02, 2016 3:55 AM >> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >> Subject: Re: [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for >> xhci controller >> >> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>> Enables usb device-tree fixup code to incorporate xhci controller >>> >>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >> >> Changelog ? >> > > Will include changelog for v2 and v3 in v4. > >>> --- >>> board/freescale/common/Makefile | 1 + >>> board/freescale/common/usb.c | 30 +++++++++++++----------------- >>> include/fdt_support.h | 4 ++-- >>> 3 files changed, 16 insertions(+), 19 deletions(-) >>> >>> diff --git a/board/freescale/common/Makefile >>> b/board/freescale/common/Makefile index 62de45c..c644896 100644 >>> --- a/board/freescale/common/Makefile >>> +++ b/board/freescale/common/Makefile >>> @@ -14,6 +14,7 @@ endif >>> endif >>> >>> obj-$(CONFIG_USB_EHCI_FSL) += usb.o >>> +obj-$(CONFIG_USB_XHCI_FSL) += usb.o >>> >>> ifdef MINIMAL >>> # necessary to create built-in.o >>> diff --git a/board/freescale/common/usb.c >>> b/board/freescale/common/usb.c index d815dc1..8e423be 100644 >>> --- a/board/freescale/common/usb.c >>> +++ b/board/freescale/common/usb.c >>> @@ -18,29 +18,25 @@ >>> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >>> >>> +const char compat_usb_fsl[][16] = {"fsl-usb2-mph", >>> + "fsl-usb2-dr", >>> + "snps,dwc3"}; >> >> This is const char *foo[]. >> > > Reference from "char compat[][16] = { "cfi-flash", "jedec-flash" };" > I will change to const char *compat_usb_fsl[] in v4. > >>> static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>> int *node_offset) >>> { >>> - const char *compat_dr = "fsl-usb2-dr"; >>> - const char *compat_mph = "fsl-usb2-mph"; >>> const char *node_type = NULL; >>> - >>> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>> - compat_mph); >>> - if (*node_offset < 0) { >>> - *node_offset = fdt_node_offset_by_compatible(blob, >>> - start_offset, >>> - compat_dr); >>> - if (*node_offset < 0) { >>> - printf("ERROR: could not find compatible node: %s\n", >>> - fdt_strerror(*node_offset)); >>> - } else { >>> - node_type = compat_dr; >>> + int size = sizeof(compat_usb_fsl)/sizeof(compat_usb_fsl[0]); >> >> Oh the art of counting. Firstly, what you did here is reimplementation of >> ARRAY_SIZE(), but that's wrong in this context. Each one of the array elements is >> differently sized, so to avoid problems with this crap, the code hard-codes random >> constant defining the element size, which is another crap workaround as it will >> break once a longer element is added. >> And it wastes space. No, instead, use a terminating entry in the array. >> > > Will change compat_usb_fsl[][16] into const char *compat_usb_fsl[], > and use ARRAY_SIZE(compat_usb_fsl) . What is your opinion? My opinion is to use a terminating NULL entry and iterate over the array until you reach it. -- Best regards, Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
* [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller 2016-03-03 10:03 ` Marek Vasut @ 2016-03-03 11:11 ` Sriram Dash 0 siblings, 0 replies; 18+ messages in thread From: Sriram Dash @ 2016-03-03 11:11 UTC (permalink / raw) To: u-boot >-----Original Message----- >From: Marek Vasut [mailto:marex at denx.de] >Sent: Thursday, March 03, 2016 3:33 PM >To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh ><ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >Subject: Re: [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for >xhci controller > >On 03/03/2016 09:32 AM, Sriram Dash wrote: >>> -----Original Message----- >>> From: Marek Vasut [mailto:marex at denx.de] >>> Sent: Wednesday, March 02, 2016 3:55 AM >>> To: Sriram Dash <sriram.dash@nxp.com>; u-boot at lists.denx.de >>> Cc: york sun <york.sun@nxp.com>; Ramneek Mehresh >>> <ramneek.mehresh@nxp.com>; Rajesh Bhagat <rajesh.bhagat@nxp.com> >>> Subject: Re: [PATCH v3 3/3] board:freescale:usb: Add device-tree >>> fixup support for xhci controller >>> >>> On 03/01/2016 08:03 AM, Sriram Dash wrote: >>>> Enables usb device-tree fixup code to incorporate xhci controller >>>> >>>> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@nxp.com> >>>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com> >>> >>> Changelog ? >>> >> >> Will include changelog for v2 and v3 in v4. >> >>>> --- >>>> board/freescale/common/Makefile | 1 + >>>> board/freescale/common/usb.c | 30 +++++++++++++----------------- >>>> include/fdt_support.h | 4 ++-- >>>> 3 files changed, 16 insertions(+), 19 deletions(-) >>>> >>>> diff --git a/board/freescale/common/Makefile >>>> b/board/freescale/common/Makefile index 62de45c..c644896 100644 >>>> --- a/board/freescale/common/Makefile >>>> +++ b/board/freescale/common/Makefile >>>> @@ -14,6 +14,7 @@ endif >>>> endif >>>> >>>> obj-$(CONFIG_USB_EHCI_FSL) += usb.o >>>> +obj-$(CONFIG_USB_XHCI_FSL) += usb.o >>>> >>>> ifdef MINIMAL >>>> # necessary to create built-in.o >>>> diff --git a/board/freescale/common/usb.c >>>> b/board/freescale/common/usb.c index d815dc1..8e423be 100644 >>>> --- a/board/freescale/common/usb.c >>>> +++ b/board/freescale/common/usb.c >>>> @@ -18,29 +18,25 @@ >>>> #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif >>>> >>>> +const char compat_usb_fsl[][16] = {"fsl-usb2-mph", >>>> + "fsl-usb2-dr", >>>> + "snps,dwc3"}; >>> >>> This is const char *foo[]. >>> >> >> Reference from "char compat[][16] = { "cfi-flash", "jedec-flash" };" >> I will change to const char *compat_usb_fsl[] in v4. >> >>>> static const char *fdt_usb_get_node_type(void *blob, int start_offset, >>>> int *node_offset) >>>> { >>>> - const char *compat_dr = "fsl-usb2-dr"; >>>> - const char *compat_mph = "fsl-usb2-mph"; >>>> const char *node_type = NULL; >>>> - >>>> - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, >>>> - compat_mph); >>>> - if (*node_offset < 0) { >>>> - *node_offset = fdt_node_offset_by_compatible(blob, >>>> - start_offset, >>>> - compat_dr); >>>> - if (*node_offset < 0) { >>>> - printf("ERROR: could not find compatible node: %s\n", >>>> - fdt_strerror(*node_offset)); >>>> - } else { >>>> - node_type = compat_dr; >>>> + int size = sizeof(compat_usb_fsl)/sizeof(compat_usb_fsl[0]); >>> >>> Oh the art of counting. Firstly, what you did here is >>> reimplementation of ARRAY_SIZE(), but that's wrong in this context. >>> Each one of the array elements is differently sized, so to avoid >>> problems with this crap, the code hard-codes random constant defining >>> the element size, which is another crap workaround as it will break once a longer >element is added. >>> And it wastes space. No, instead, use a terminating entry in the array. >>> >> >> Will change compat_usb_fsl[][16] into const char *compat_usb_fsl[], >> and use ARRAY_SIZE(compat_usb_fsl) . What is your opinion? > >My opinion is to use a terminating NULL entry and iterate over the array until you >reach it. > Accepted. Will do it in v4. >-- >Best regards, >Marek Vasut ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-03-03 12:48 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-01 7:03 [U-Boot] [PATCH v3 0/3] Make usb device-tree fixup independent of USB controller Sriram Dash 2016-03-01 7:03 ` [U-Boot] [PATCH v3 1/3] board:freescale:common: Move device-tree fixup framework to common file Sriram Dash 2016-03-01 22:13 ` Marek Vasut 2016-03-03 8:29 ` Sriram Dash 2016-03-03 9:56 ` Marek Vasut 2016-03-03 11:10 ` Sriram Dash 2016-03-03 12:45 ` Marek Vasut 2016-03-01 7:03 ` [U-Boot] [PATCH v3 2/3] board:freescale:usb: Remove code duplication for fdt_usb_get_node_type Sriram Dash 2016-03-01 22:27 ` Marek Vasut 2016-03-03 8:30 ` Sriram Dash 2016-03-03 9:59 ` Marek Vasut 2016-03-03 11:11 ` Sriram Dash 2016-03-03 12:48 ` Marek Vasut 2016-03-01 7:03 ` [U-Boot] [PATCH v3 3/3] board:freescale:usb: Add device-tree fixup support for xhci controller Sriram Dash 2016-03-01 22:25 ` Marek Vasut 2016-03-03 8:32 ` Sriram Dash 2016-03-03 10:03 ` Marek Vasut 2016-03-03 11:11 ` Sriram Dash
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox