All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
To: Christopher Covington <cov@codeaurora.org>
Cc: balbi@ti.com, gregkh@linuxfoundation.org,
	rob.herring@calxeda.com, pawel.moll@arm.com,
	mark.rutland@arm.com, swarren@wwwdotorg.org,
	ijc+devicetree@hellion.org.uk, davidb@codeaurora.org,
	linux-usb@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org, Daniel Walker <dwalker@fifo99.com>
Subject: Re: [PATCH v4 01/15] usb: phy: msm: Move mach dependent code to platform data
Date: Tue, 12 Nov 2013 21:11:58 +0200	[thread overview]
Message-ID: <1384283518.12216.10.camel@localhost> (raw)
In-Reply-To: <52827311.6060206@codeaurora.org>


Hi Christopher,

On Tue, 2013-11-12 at 13:27 -0500, Christopher Covington wrote:
> Hi Ivan,
> 
> On 11/12/2013 09:51 AM, Ivan T. Ivanov wrote:
> > From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
> > 
> > This patch fix compilation error when driver is compiled
> > in multi-platform builds.
> > 
> > drivers/built-in.o: In function `msm_otg_link_clk_reset':
> > ./drivers/usb/phy/phy-msm-usb.c:314: undefined reference to `clk_reset'
> > ./drivers/usb/phy/phy-msm-usb.c:318: undefined reference to `clk_reset'
> > 
> > Use platform data supplied reset handlers and adjust error
> > messages reported when reset sequence fail.
> > 
> > This is an intermediate step before adding support for reset
> > framework and newer targets.
> > 
> > Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
> > Acked-by: David Brown <davidb@codeaurora.org>
> > Cc: Daniel Walker <dwalker@fifo99.com>
> > Cc: Felipe Balbi <balbi@ti.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> >  arch/arm/mach-msm/board-msm7x30.c |   35 +++++++++++++++++++++++++++++++++++
> >  arch/arm/mach-msm/board-qsd8x50.c |   35 +++++++++++++++++++++++++++++++++++
> >  drivers/usb/phy/phy-msm-usb.c     |   35 +++++++++++++++--------------------
> >  include/linux/usb/msm_hsusb.h     |    3 +++
> >  4 files changed, 88 insertions(+), 20 deletions(-)
> > 
> > diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c
> > index f9af5a4..46de789 100644
> > --- a/arch/arm/mach-msm/board-msm7x30.c
> > +++ b/arch/arm/mach-msm/board-msm7x30.c
> > @@ -30,6 +30,7 @@
> >  #include <asm/memory.h>
> >  #include <asm/setup.h>
> >  
> > +#include <mach/clk.h>
> >  #include <mach/msm_iomap.h>
> >  #include <mach/dma.h>
> >  
> > @@ -60,10 +61,44 @@ static int hsusb_phy_init_seq[] = {
> >  	-1
> >  };
> >  
> > +static int hsusb_link_clk_reset(struct clk *link_clk, bool assert)
> > +{
> > +	int ret;
> > +
> > +	if (assert) {
> > +		ret = clk_reset(link_clk, CLK_RESET_ASSERT);
> > +		if (ret)
> > +			pr_err("usb hs_clk assert failed\n");
> > +	} else {
> > +		ret = clk_reset(link_clk, CLK_RESET_DEASSERT);
> > +		if (ret)
> > +			pr_err("usb hs_clk deassert failed\n");
> > +	}
> > +	return ret;
> > +}
> > +
> > +static int hsusb_phy_clk_reset(struct clk *phy_clk)
> > +{
> > +	int ret;
> > +
> > +	ret = clk_reset(phy_clk, CLK_RESET_ASSERT);
> > +	if (ret) {
> > +		pr_err("usb phy clk assert failed\n");
> > +		return ret;
> > +	}
> > +	usleep_range(10000, 12000);
> > +	ret = clk_reset(phy_clk, CLK_RESET_DEASSERT);
> > +	if (ret)
> > +		pr_err("usb phy clk deassert failed\n");
> > +	return ret;
> > +}
> > +
> >  static struct msm_otg_platform_data msm_otg_pdata = {
> >  	.phy_init_seq		= hsusb_phy_init_seq,
> >  	.mode                   = USB_PERIPHERAL,
> >  	.otg_control		= OTG_PHY_CONTROL,
> > +	.link_clk_reset		= hsusb_link_clk_reset,
> > +	.phy_clk_reset		= hsusb_phy_clk_reset,
> >  };
> >  
> >  struct msm_gpiomux_config msm_gpiomux_configs[GPIOMUX_NGPIOS] = {
> > diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c
> > index 5f933bc..9169ec3 100644
> > --- a/arch/arm/mach-msm/board-qsd8x50.c
> > +++ b/arch/arm/mach-msm/board-qsd8x50.c
> > @@ -31,6 +31,7 @@
> >  #include <mach/irqs.h>
> >  #include <mach/sirc.h>
> >  #include <mach/vreg.h>
> > +#include <mach/clk.h>
> >  #include <linux/platform_data/mmc-msm_sdcc.h>
> >  
> >  #include "devices.h"
> > @@ -81,10 +82,44 @@ static int hsusb_phy_init_seq[] = {
> >  	-1
> >  };
> >  
> > +static int hsusb_link_clk_reset(struct clk *link_clk, bool assert)
> > +{
> > +	int ret;
> > +
> > +	if (assert) {
> > +		ret = clk_reset(link_clk, CLK_RESET_ASSERT);
> > +		if (ret)
> > +			pr_err("usb hs_clk assert failed\n");
> > +	} else {
> > +		ret = clk_reset(link_clk, CLK_RESET_DEASSERT);
> > +		if (ret)
> > +			pr_err("usb hs_clk deassert failed\n");
> > +	}
> > +	return ret;
> > +}
> > +
> > +static int hsusb_phy_clk_reset(struct clk *phy_clk)
> > +{
> > +	int ret;
> > +
> > +	ret = clk_reset(phy_clk, CLK_RESET_ASSERT);
> > +	if (ret) {
> > +		pr_err("usb phy clk assert failed\n");
> > +		return ret;
> > +	}
> > +	usleep_range(10000, 12000);
> > +	ret = clk_reset(phy_clk, CLK_RESET_DEASSERT);
> > +	if (ret)
> > +		pr_err("usb phy clk deassert failed\n");
> > +	return ret;
> > +}
> 
> Why are there identical, static definitions of hsusb_link_clk_reset and
> hsusb_phy_clk_reset across the two board files? Why not share a single
> non-static set of definitions?

One file which is used by both boards and is compiled unconditionally 
is clock.c, but I don't think that it will be appropriate to put USB
specific functions there. Creating new file for just these functions
also do not sound good to me.

Regards,
Ivan

> 
> Thanks,
> Christopher
> 

  reply	other threads:[~2013-11-12 19:11 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-12 14:51 [PATCH v4 00/15] usb: phy: msm: Fixes, cleanups and DT support Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 01/15] usb: phy: msm: Move mach dependent code to platform data Ivan T. Ivanov
     [not found]   ` <1384267910-32066-2-git-send-email-iivanov-NEYub+7Iv8PQT0dZR+AlfA@public.gmane.org>
2013-11-12 18:27     ` Christopher Covington
2013-11-12 18:27       ` Christopher Covington
2013-11-12 19:11       ` Ivan T. Ivanov [this message]
2013-12-11 10:11     ` Ivan T. Ivanov
2013-12-11 10:11       ` Ivan T. Ivanov
2013-12-27 18:10   ` Felipe Balbi
2013-12-27 18:10     ` Felipe Balbi
2013-12-27 18:23     ` Stephen Boyd
2013-12-27 18:44       ` Felipe Balbi
2013-12-27 18:44         ` Felipe Balbi
2013-11-12 14:51 ` [PATCH v4 02/15] usb: phy: msm: Move global regulators variables to driver state Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 03/15] usb: phy: msm: Migrate to Managed Device Resource allocation Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 04/15] usb: phy: msm: Remove unnecessarily check for valid regulators Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 05/15] usb: phy: msm: Fix checkpatch.pl warnings Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 06/15] usb: phy: msm: Replace custom enum usb_mode_type with enum usb_dr_mode Ivan T. Ivanov
     [not found]   ` <1384267910-32066-7-git-send-email-iivanov-NEYub+7Iv8PQT0dZR+AlfA@public.gmane.org>
2013-12-19 23:03     ` David Brown
2013-12-19 23:03       ` David Brown
2013-11-12 14:51 ` [PATCH v4 07/15] usb: phy: msm: Remove unused pclk_src_name Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 08/15] usb: phy: msm: Remove HSUSB prefix from regulator names Ivan T. Ivanov
     [not found] ` <1384267910-32066-1-git-send-email-iivanov-NEYub+7Iv8PQT0dZR+AlfA@public.gmane.org>
2013-11-12 14:51   ` [PATCH v4 09/15] usb: phy: msm: Properly check result from platform_get_irq() Ivan T. Ivanov
2013-11-12 14:51     ` Ivan T. Ivanov
2013-11-12 14:51   ` [PATCH v4 12/15] usb: phy: msm: Add support for secondary PHY control Ivan T. Ivanov
2013-11-12 14:51     ` Ivan T. Ivanov
2013-11-15 16:42     ` Mark Rutland
2013-11-18 12:57       ` Ivan T. Ivanov
2013-12-05 10:42         ` Mark Rutland
2013-12-11  8:23           ` Ivan T. Ivanov
2013-11-12 14:51   ` [PATCH v4 13/15] usb: phy: msm: Correct USB PHY Reset sequence for newer platform Ivan T. Ivanov
2013-11-12 14:51     ` Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 10/15] usb: phy: msm: Add device tree support and binding information Ivan T. Ivanov
2013-11-15 16:38   ` Mark Rutland
2013-11-18 12:54     ` Ivan T. Ivanov
     [not found]       ` <1384779277.13631.13.camel-yvhxILDKWb8ylMT5ByZ5bDRGLm/uyL/D0E9HWUfgJXw@public.gmane.org>
2013-12-05 10:41         ` Mark Rutland
2013-12-05 10:41           ` Mark Rutland
2013-12-11  9:45           ` Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 11/15] usb: phy: msm: Use reset framework for LINK and PHY resets Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 14/15] usb: phy: msm: Handle disconnect events Ivan T. Ivanov
2013-11-12 14:51 ` [PATCH v4 15/15] usb: phy: msm: Vote for corner of VDD CX instead of voltage of VDD CX Ivan T. Ivanov
2013-11-26 16:38 ` [PATCH v4 00/15] usb: phy: msm: Fixes, cleanups and DT support Felipe Balbi
2013-11-26 16:38   ` Felipe Balbi
2013-12-19 23:03   ` David Brown
2013-12-19 23:26     ` Felipe Balbi
2013-12-19 23:26       ` Felipe Balbi
2013-12-20 19:59       ` David Brown
2013-12-27  0:26         ` Stephen Boyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1384283518.12216.10.camel@localhost \
    --to=iivanov@mm-sol.com \
    --cc=balbi@ti.com \
    --cc=cov@codeaurora.org \
    --cc=davidb@codeaurora.org \
    --cc=dwalker@fifo99.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@wwwdotorg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.