Re: [PATCH 3/6] USB: s3c-hsotg: Ensure TX FIFO addresses setup when initialising FIFOs

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

 



On Tue, May 25, 2010 at 11:00:39AM +0530, Maulik Mankad wrote:
> On Tue, May 25, 2010 at 10:06 AM, Ben Dooks <ben-linux@xxxxxxxxx> wrote:
> > Some versions of the S3C HS OtG block startup with overlapping TX FIFO
> > information, so change the fifo_init code to ensure that known values
> > are set into the FIFO registers at initialisation/reset time.
> >
> > This also ensures that the FIFO RAM pointers are in a known state
> > before use.
> >
> > Signed-off-by: Ben Dooks <ben-linux@xxxxxxxxx>
> > ---
> >  drivers/usb/gadget/s3c-hsotg.c |   25 +++++++++++++++++++++++++
> >  1 files changed, 25 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> > index dce9366..2ee75a7 100644
> > --- a/drivers/usb/gadget/s3c-hsotg.c
> > +++ b/drivers/usb/gadget/s3c-hsotg.c
> > @@ -298,6 +298,11 @@ static void s3c_hsotg_ctrl_epint(struct s3c_hsotg *hsotg,
> >  */
> >  static void s3c_hsotg_init_fifo(struct s3c_hsotg *hsotg)
> >  {
> > +       unsigned int ep;
> > +       unsigned int addr;
> > +       unsigned int size;
> > +       u32 val;
> > +
> >        /* the ryu 2.6.24 release ahs
> >           writel(0x1C0, hsotg->regs + S3C_GRXFSIZ);
> >           writel(S3C_GNPTXFSIZ_NPTxFStAddr(0x200) |
> > @@ -311,6 +316,26 @@ static void s3c_hsotg_init_fifo(struct s3c_hsotg *hsotg)
> >        writel(S3C_GNPTXFSIZ_NPTxFStAddr(2048) |
> >               S3C_GNPTXFSIZ_NPTxFDep(0x1C0),
> >               hsotg->regs + S3C_GNPTXFSIZ);
> > +
> > +       /* arange all the rest of the TX FIFOs, as some versions of this
> > +        * block have overlapping default addresses. This also ensures
> > +        * that if the settings have been changed, then they are set to
> > +        * known values. */
> 
> Please see Documentation/CodingStyle for multi-line comments.
> 
> > +
> > +       /* start at the end of the GNPTXFSIZ, rounded up */
> > +       addr = 2048 + 1024;
> > +       size = 768;
> > +
> > +       /* currently we allocate TX FIFOs for all possible endpoints,
> > +        * and assume that they are all the same size. */
> 
> Same here.
> 
> > +
> > +       for (ep = 0; ep <= 15; ep++) {
> > +               val = addr;
> > +               val |= size << S3C_DPTXFSIZn_DPTxFSize_SHIFT;
> > +               addr += size;
> > +
> > +               writel(val, hsotg->regs + S3C_DPTXFSIZn(ep));
> > +       }
> >  }
> 
> Regards,
> Maulik

ok, fixed both,

-- 
Ben

Q:      What's a light-year?
A:      One-third less calories than a regular year.

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux