Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Tue, Sep 02, 2014 at 11:08:32AM +0200, Antoine Tenart wrote: > Hi, > > On Mon, Sep 01, 2014 at 09:13:43AM +0800, Peter Chen wrote: > > On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: > > > On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: > > > > On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: > > > > > > > > If the common usb_otg and usb_phy struct still has another's pointer, > > > > you > > > > may not need to add this patch. > > > > > > Except if we want to access the OTG member when not using an USB PHY. > > > > If there is no USB PHY, the probe at core.c will turn error. > > I meant if we use a PHY from the common PHY framework (struct phy) and > not one from the USB one (struct usb_phy). The 'struct phy' does not > have a pointer to an OTG structure. > Ok, agree. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Hi, On Mon, Sep 01, 2014 at 09:13:43AM +0800, Peter Chen wrote: > On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: > > On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: > > > On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: > > > > > > If the common usb_otg and usb_phy struct still has another's pointer, you > > > may not need to add this patch. > > > > Except if we want to access the OTG member when not using an USB PHY. > > If there is no USB PHY, the probe at core.c will turn error. I meant if we use a PHY from the common PHY framework (struct phy) and not one from the USB one (struct usb_phy). The 'struct phy' does not have a pointer to an OTG structure. Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Hi, On Mon, Sep 01, 2014 at 09:13:43AM +0800, Peter Chen wrote: On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. Except if we want to access the OTG member when not using an USB PHY. If there is no USB PHY, the probe at core.c will turn error. I meant if we use a PHY from the common PHY framework (struct phy) and not one from the USB one (struct usb_phy). The 'struct phy' does not have a pointer to an OTG structure. Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Tue, Sep 02, 2014 at 11:08:32AM +0200, Antoine Tenart wrote: Hi, On Mon, Sep 01, 2014 at 09:13:43AM +0800, Peter Chen wrote: On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. Except if we want to access the OTG member when not using an USB PHY. If there is no USB PHY, the probe at core.c will turn error. I meant if we use a PHY from the common PHY framework (struct phy) and not one from the USB one (struct usb_phy). The 'struct phy' does not have a pointer to an OTG structure. Ok, agree. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: > Hi, > > On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: > > On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: > > > > If the common usb_otg and usb_phy struct still has another's pointer, you > > may not need to add this patch. > > Except if we want to access the OTG member when not using an USB PHY. If there is no USB PHY, the probe at core.c will turn error. > > > > diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c > > > index 0b67d78dd953..0952d4adfa4c 100644 > > > --- a/drivers/usb/chipidea/host.c > > > +++ b/drivers/usb/chipidea/host.c > > > @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) > > > if (ret) { > > > goto disable_reg; > > > } else { > > > - struct usb_otg *otg = ci->usb_phy->otg; > > > + struct usb_otg *otg = >otg; > > > > > > ci->hcd = hcd; > > > - if (otg) { > > > - otg->host = >self; > > > - hcd->self.otg_port = 1; > > > - } > > > + otg->host = >self; > > > + hcd->self.otg_port = 1; > > > } > > > > You may need use other way to identify if otg is supported or not > > How would you do that? ci_otg_is_fsm_mode(ci) > > > > - otg->usb_phy = ci->usb_phy; > > > - otg->gadget = >gadget; > > > - ci->fsm.otg = otg; > > > - ci->usb_phy->otg = ci->fsm.otg; > > > + ci->otg.usb_phy = ci->usb_phy; > > > + ci->fsm.otg = >otg; > > > ci->fsm.power_up = 1; > > > ci->fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; > > > ci->fsm.otg->state = OTG_STATE_UNDEFINED; > > > > Why otg->gadget and ci->usb_phy->otg initialization are deleted? > > At least, the parameters of usb_otg_state_string at your 7th patch uses it. > > Sure, I'll fix this > > Antoine > > -- > Antoine Ténart, Free Electrons > Embedded Linux, Kernel and Android engineering > http://free-electrons.com -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Fri, Aug 29, 2014 at 04:25:35PM +0200, Antoine Tenart wrote: Hi, On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. Except if we want to access the OTG member when not using an USB PHY. If there is no USB PHY, the probe at core.c will turn error. diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 0b67d78dd953..0952d4adfa4c 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) if (ret) { goto disable_reg; } else { - struct usb_otg *otg = ci-usb_phy-otg; + struct usb_otg *otg = ci-otg; ci-hcd = hcd; - if (otg) { - otg-host = hcd-self; - hcd-self.otg_port = 1; - } + otg-host = hcd-self; + hcd-self.otg_port = 1; } You may need use other way to identify if otg is supported or not How would you do that? ci_otg_is_fsm_mode(ci) - otg-usb_phy = ci-usb_phy; - otg-gadget = ci-gadget; - ci-fsm.otg = otg; - ci-usb_phy-otg = ci-fsm.otg; + ci-otg.usb_phy = ci-usb_phy; + ci-fsm.otg = ci-otg; ci-fsm.power_up = 1; ci-fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; ci-fsm.otg-state = OTG_STATE_UNDEFINED; Why otg-gadget and ci-usb_phy-otg initialization are deleted? At least, the parameters of usb_otg_state_string at your 7th patch uses it. Sure, I'll fix this Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Hi, On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: > On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: > > If the common usb_otg and usb_phy struct still has another's pointer, you > may not need to add this patch. Except if we want to access the OTG member when not using an USB PHY. > > diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c > > index 0b67d78dd953..0952d4adfa4c 100644 > > --- a/drivers/usb/chipidea/host.c > > +++ b/drivers/usb/chipidea/host.c > > @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) > > if (ret) { > > goto disable_reg; > > } else { > > - struct usb_otg *otg = ci->usb_phy->otg; > > + struct usb_otg *otg = >otg; > > > > ci->hcd = hcd; > > - if (otg) { > > - otg->host = >self; > > - hcd->self.otg_port = 1; > > - } > > + otg->host = >self; > > + hcd->self.otg_port = 1; > > } > > You may need use other way to identify if otg is supported or not How would you do that? > > - otg->usb_phy = ci->usb_phy; > > - otg->gadget = >gadget; > > - ci->fsm.otg = otg; > > - ci->usb_phy->otg = ci->fsm.otg; > > + ci->otg.usb_phy = ci->usb_phy; > > + ci->fsm.otg = >otg; > > ci->fsm.power_up = 1; > > ci->fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; > > ci->fsm.otg->state = OTG_STATE_UNDEFINED; > > Why otg->gadget and ci->usb_phy->otg initialization are deleted? > At least, the parameters of usb_otg_state_string at your 7th patch uses it. Sure, I'll fix this Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Hi, On Tue, Aug 26, 2014 at 06:22:40PM +0800, Peter Chen wrote: On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. Except if we want to access the OTG member when not using an USB PHY. diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 0b67d78dd953..0952d4adfa4c 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) if (ret) { goto disable_reg; } else { - struct usb_otg *otg = ci-usb_phy-otg; + struct usb_otg *otg = ci-otg; ci-hcd = hcd; - if (otg) { - otg-host = hcd-self; - hcd-self.otg_port = 1; - } + otg-host = hcd-self; + hcd-self.otg_port = 1; } You may need use other way to identify if otg is supported or not How would you do that? - otg-usb_phy = ci-usb_phy; - otg-gadget = ci-gadget; - ci-fsm.otg = otg; - ci-usb_phy-otg = ci-fsm.otg; + ci-otg.usb_phy = ci-usb_phy; + ci-fsm.otg = ci-otg; ci-fsm.power_up = 1; ci-fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; ci-fsm.otg-state = OTG_STATE_UNDEFINED; Why otg-gadget and ci-usb_phy-otg initialization are deleted? At least, the parameters of usb_otg_state_string at your 7th patch uses it. Sure, I'll fix this Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: > Move the usb_otg member from struct usb_phy to struct ci_hdrc. Rework > its initialization taking in account this modification. > If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. > Signed-off-by: Antoine Ténart > --- > drivers/usb/chipidea/ci.h | 1 + > drivers/usb/chipidea/host.c| 8 +++- > drivers/usb/chipidea/otg_fsm.c | 15 ++- > 3 files changed, 6 insertions(+), 18 deletions(-) > > diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h > index b2caa1772712..dac5ab6adfa2 100644 > --- a/drivers/usb/chipidea/ci.h > +++ b/drivers/usb/chipidea/ci.h > @@ -177,6 +177,7 @@ struct ci_hdrc { > struct ci_role_driver *roles[CI_ROLE_END]; > enum ci_rolerole; > boolis_otg; > + struct usb_otg otg; > struct otg_fsm fsm; > struct ci_otg_fsm_timer_list*fsm_timer; > struct work_struct work; > diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c > index 0b67d78dd953..0952d4adfa4c 100644 > --- a/drivers/usb/chipidea/host.c > +++ b/drivers/usb/chipidea/host.c > @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) > if (ret) { > goto disable_reg; > } else { > - struct usb_otg *otg = ci->usb_phy->otg; > + struct usb_otg *otg = >otg; > > ci->hcd = hcd; > - if (otg) { > - otg->host = >self; > - hcd->self.otg_port = 1; > - } > + otg->host = >self; > + hcd->self.otg_port = 1; > } You may need use other way to identify if otg is supported or not > > if (ci->platdata->flags & CI_HDRC_DISABLE_STREAMING) > diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c > index 8a64ce87364e..7eb86863fb3c 100644 > --- a/drivers/usb/chipidea/otg_fsm.c > +++ b/drivers/usb/chipidea/otg_fsm.c > @@ -778,20 +778,9 @@ void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci) > int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci) > { > int retval = 0; > - struct usb_otg *otg; > > - otg = devm_kzalloc(ci->dev, > - sizeof(struct usb_otg), GFP_KERNEL); > - if (!otg) { > - dev_err(ci->dev, > - "Failed to allocate usb_otg structure for ci hdrc otg!\n"); > - return -ENOMEM; > - } > - > - otg->usb_phy = ci->usb_phy; > - otg->gadget = >gadget; > - ci->fsm.otg = otg; > - ci->usb_phy->otg = ci->fsm.otg; > + ci->otg.usb_phy = ci->usb_phy; > + ci->fsm.otg = >otg; > ci->fsm.power_up = 1; > ci->fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; > ci->fsm.otg->state = OTG_STATE_UNDEFINED; Why otg->gadget and ci->usb_phy->otg initialization are deleted? At least, the parameters of usb_otg_state_string at your 7th patch uses it. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
On Fri, Aug 22, 2014 at 05:50:19PM +0200, Antoine Ténart wrote: Move the usb_otg member from struct usb_phy to struct ci_hdrc. Rework its initialization taking in account this modification. If the common usb_otg and usb_phy struct still has another's pointer, you may not need to add this patch. Signed-off-by: Antoine Ténart antoine.ten...@free-electrons.com --- drivers/usb/chipidea/ci.h | 1 + drivers/usb/chipidea/host.c| 8 +++- drivers/usb/chipidea/otg_fsm.c | 15 ++- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h index b2caa1772712..dac5ab6adfa2 100644 --- a/drivers/usb/chipidea/ci.h +++ b/drivers/usb/chipidea/ci.h @@ -177,6 +177,7 @@ struct ci_hdrc { struct ci_role_driver *roles[CI_ROLE_END]; enum ci_rolerole; boolis_otg; + struct usb_otg otg; struct otg_fsm fsm; struct ci_otg_fsm_timer_list*fsm_timer; struct work_struct work; diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 0b67d78dd953..0952d4adfa4c 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) if (ret) { goto disable_reg; } else { - struct usb_otg *otg = ci-usb_phy-otg; + struct usb_otg *otg = ci-otg; ci-hcd = hcd; - if (otg) { - otg-host = hcd-self; - hcd-self.otg_port = 1; - } + otg-host = hcd-self; + hcd-self.otg_port = 1; } You may need use other way to identify if otg is supported or not if (ci-platdata-flags CI_HDRC_DISABLE_STREAMING) diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index 8a64ce87364e..7eb86863fb3c 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -778,20 +778,9 @@ void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci) int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci) { int retval = 0; - struct usb_otg *otg; - otg = devm_kzalloc(ci-dev, - sizeof(struct usb_otg), GFP_KERNEL); - if (!otg) { - dev_err(ci-dev, - Failed to allocate usb_otg structure for ci hdrc otg!\n); - return -ENOMEM; - } - - otg-usb_phy = ci-usb_phy; - otg-gadget = ci-gadget; - ci-fsm.otg = otg; - ci-usb_phy-otg = ci-fsm.otg; + ci-otg.usb_phy = ci-usb_phy; + ci-fsm.otg = ci-otg; ci-fsm.power_up = 1; ci-fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; ci-fsm.otg-state = OTG_STATE_UNDEFINED; Why otg-gadget and ci-usb_phy-otg initialization are deleted? At least, the parameters of usb_otg_state_string at your 7th patch uses it. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Move the usb_otg member from struct usb_phy to struct ci_hdrc. Rework its initialization taking in account this modification. Signed-off-by: Antoine Ténart --- drivers/usb/chipidea/ci.h | 1 + drivers/usb/chipidea/host.c| 8 +++- drivers/usb/chipidea/otg_fsm.c | 15 ++- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h index b2caa1772712..dac5ab6adfa2 100644 --- a/drivers/usb/chipidea/ci.h +++ b/drivers/usb/chipidea/ci.h @@ -177,6 +177,7 @@ struct ci_hdrc { struct ci_role_driver *roles[CI_ROLE_END]; enum ci_rolerole; boolis_otg; + struct usb_otg otg; struct otg_fsm fsm; struct ci_otg_fsm_timer_list*fsm_timer; struct work_struct work; diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 0b67d78dd953..0952d4adfa4c 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) if (ret) { goto disable_reg; } else { - struct usb_otg *otg = ci->usb_phy->otg; + struct usb_otg *otg = >otg; ci->hcd = hcd; - if (otg) { - otg->host = >self; - hcd->self.otg_port = 1; - } + otg->host = >self; + hcd->self.otg_port = 1; } if (ci->platdata->flags & CI_HDRC_DISABLE_STREAMING) diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index 8a64ce87364e..7eb86863fb3c 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -778,20 +778,9 @@ void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci) int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci) { int retval = 0; - struct usb_otg *otg; - otg = devm_kzalloc(ci->dev, - sizeof(struct usb_otg), GFP_KERNEL); - if (!otg) { - dev_err(ci->dev, - "Failed to allocate usb_otg structure for ci hdrc otg!\n"); - return -ENOMEM; - } - - otg->usb_phy = ci->usb_phy; - otg->gadget = >gadget; - ci->fsm.otg = otg; - ci->usb_phy->otg = ci->fsm.otg; + ci->otg.usb_phy = ci->usb_phy; + ci->fsm.otg = >otg; ci->fsm.power_up = 1; ci->fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; ci->fsm.otg->state = OTG_STATE_UNDEFINED; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v3 8/9] usb: chipidea: move usb_otg into struct ci_hdrc
Move the usb_otg member from struct usb_phy to struct ci_hdrc. Rework its initialization taking in account this modification. Signed-off-by: Antoine Ténart antoine.ten...@free-electrons.com --- drivers/usb/chipidea/ci.h | 1 + drivers/usb/chipidea/host.c| 8 +++- drivers/usb/chipidea/otg_fsm.c | 15 ++- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h index b2caa1772712..dac5ab6adfa2 100644 --- a/drivers/usb/chipidea/ci.h +++ b/drivers/usb/chipidea/ci.h @@ -177,6 +177,7 @@ struct ci_hdrc { struct ci_role_driver *roles[CI_ROLE_END]; enum ci_rolerole; boolis_otg; + struct usb_otg otg; struct otg_fsm fsm; struct ci_otg_fsm_timer_list*fsm_timer; struct work_struct work; diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 0b67d78dd953..0952d4adfa4c 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -85,13 +85,11 @@ static int host_start(struct ci_hdrc *ci) if (ret) { goto disable_reg; } else { - struct usb_otg *otg = ci-usb_phy-otg; + struct usb_otg *otg = ci-otg; ci-hcd = hcd; - if (otg) { - otg-host = hcd-self; - hcd-self.otg_port = 1; - } + otg-host = hcd-self; + hcd-self.otg_port = 1; } if (ci-platdata-flags CI_HDRC_DISABLE_STREAMING) diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index 8a64ce87364e..7eb86863fb3c 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -778,20 +778,9 @@ void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci) int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci) { int retval = 0; - struct usb_otg *otg; - otg = devm_kzalloc(ci-dev, - sizeof(struct usb_otg), GFP_KERNEL); - if (!otg) { - dev_err(ci-dev, - Failed to allocate usb_otg structure for ci hdrc otg!\n); - return -ENOMEM; - } - - otg-usb_phy = ci-usb_phy; - otg-gadget = ci-gadget; - ci-fsm.otg = otg; - ci-usb_phy-otg = ci-fsm.otg; + ci-otg.usb_phy = ci-usb_phy; + ci-fsm.otg = ci-otg; ci-fsm.power_up = 1; ci-fsm.id = hw_read_otgsc(ci, OTGSC_ID) ? 1 : 0; ci-fsm.otg-state = OTG_STATE_UNDEFINED; -- 1.9.1 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/