[V8 PATCH 02/16] usb: gadget: mv_udc: use PHY driver for udc
Chao Xie
xiechao.mail at gmail.com
Mon Mar 4 21:11:59 EST 2013
On Mon, Mar 4, 2013 at 10:24 PM, Felipe Balbi <balbi at ti.com> wrote:
> On Wed, Feb 20, 2013 at 11:07:12PM -0500, Chao Xie wrote:
>> Originaly, udc driver will call the callbacks in platform data
>> for PHY initialization and shut down.
>> With PHY driver, it will call the APIs provided by PHY driver
>> for PHY initialization and shut down. It removes the callbacks
>> in platform data, and at same time it removes one block in the
>> way of enabling device tree for udc driver.
>>
>> Signed-off-by: Chao Xie <chao.xie at marvell.com>
>> ---
>> drivers/usb/gadget/mv_udc.h | 2 +-
>> drivers/usb/gadget/mv_udc_core.c | 45 ++++++++++++++-----------------------
>> 2 files changed, 18 insertions(+), 29 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/mv_udc.h b/drivers/usb/gadget/mv_udc.h
>> index 9073436..f339df4 100644
>> --- a/drivers/usb/gadget/mv_udc.h
>> +++ b/drivers/usb/gadget/mv_udc.h
>> @@ -180,7 +180,6 @@ struct mv_udc {
>>
>> struct mv_cap_regs __iomem *cap_regs;
>> struct mv_op_regs __iomem *op_regs;
>> - void __iomem *phy_regs;
>> unsigned int max_eps;
>> struct mv_dqh *ep_dqh;
>> size_t ep_dqh_size;
>> @@ -217,6 +216,7 @@ struct mv_udc {
>> struct work_struct vbus_work;
>> struct workqueue_struct *qwork;
>>
>> + struct usb_phy *phy;
>> struct usb_phy *transceiver;
>>
>> struct mv_usb_platform_data *pdata;
>> diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
>> index c8cf959..4876d2f 100644
>> --- a/drivers/usb/gadget/mv_udc_core.c
>> +++ b/drivers/usb/gadget/mv_udc_core.c
>> @@ -35,6 +35,7 @@
>> #include <linux/platform_device.h>
>> #include <linux/clk.h>
>> #include <linux/platform_data/mv_usb.h>
>> +#include <linux/usb/mv_usb2.h>
>> #include <asm/unaligned.h>
>>
>> #include "mv_udc.h"
>> @@ -1121,15 +1122,14 @@ static int mv_udc_enable_internal(struct mv_udc *udc)
>>
>> dev_dbg(&udc->dev->dev, "enable udc\n");
>> udc_clock_enable(udc);
>> - if (udc->pdata->phy_init) {
>> - retval = udc->pdata->phy_init(udc->phy_regs);
>> - if (retval) {
>> - dev_err(&udc->dev->dev,
>> - "init phy error %d\n", retval);
>> - udc_clock_disable(udc);
>> - return retval;
>> - }
>
> dude, you really don't test your patches, do you ? Your previous patch
> removed ->phy_init(), ->phy_deinit() and ->private_init() from your
> platform_data.
>
> Are you seriously telling me you didn't compile test your patches ?
>
> Rewrite your series again and make sure that each and every patch
> compiles and works on its own. You shouldn't cause any regressions or
> build breaks or build warnings while converting this driver.
>
> I won't review the rest of this series and I'm purging it from my TODO
> list.
>
Thanks for your review.
The patches are seperated into two parts. for each part it includes
some patches.
I have compiled and tested each part for our configurartion and x86
configuration, but
not for every patch. i will do it.
> cheers
>
> --
> balbi
More information about the linux-arm-kernel
mailing list