Re: [PATCH v6] usb: gadget: mv: Add USB 3.0 device driver for Marvell PXA2128 chip.

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

 



Hi Yu Xu,

On Fri, Jun 15, 2012 at 08:21:45PM +0800, Yu Xu wrote:
> > the whole idea of udc_start() and udc_stop() is that you only power up
> > your controller when you know that you will need it. So on driver probe
> > you shouldn't really enable your clocks or configure anything and
> > instead, should move it all here. This is exactly the place you know
> > your controller will be needed, because you're probing a gadget driver.
> >
> > Other that that, it's all good.
> >
> We enable clock to access the usb controller register to read the address of
> op_regs and uvc_regs, and store to the mv_u3d structure. Then we disable
> clock. This is the only purpose of clock enable/disable in probe, but not intend
> to enable and configure usb controller in probe:)

I see, that's ok... but if I look at your udc_start:

> +static int mv_u3d_start(struct usb_gadget *g,
> +             struct usb_gadget_driver *driver)
> +{
> +     struct mv_u3d *u3d = container_of(g, struct mv_u3d, gadget);
> +     unsigned long flags;
> +
> +     if (u3d->driver)
> +             return -EBUSY;
> +
> +     spin_lock_irqsave(&u3d->lock, flags);
> +
> +     /* hook up the driver ... */
> +     driver->driver.bus = NULL;
> +     u3d->driver = driver;
> +     u3d->gadget.dev.driver = &driver->driver;
> +
> +     u3d->ep0_dir = USB_DIR_OUT;
> +
> +     spin_unlock_irqrestore(&u3d->lock, flags);
> +
> +     u3d->vbus_valid_detect = 1;
> +
> +     return 0;
> +}

you're not configuring your controller here, so it has to be powered up
already, no ? Where you configuring and enabling the controller ?

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux