Message ID | 20090626065917.22683.38507.sendpatchset@rx1.opensource.se (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Magnus Damm wrote: > From: Magnus Damm <damm@igel.co.jp> > > This patch updates the m66592-udc buffer management code. > > Use fixed buffers for bulk and isochronous pipes, also make > sure to handle the isochronous-as-bulk case. With fixed buffers > there is no need to keep track of used buffers with bi_bufnum. > > Also, this fixes a potential buffer offset problem where the > base offset incorrectly varies with the number of pipes used. > > With this patch applied it is possible to use m66592-udc for > both Ethernet and Serial using CONFIG_USB_CDC_COMPOSITE. > > Signed-off-by: Magnus Damm <damm@igel.co.jp> Thank you for your patch. I also thought that this management method was good. In addition, thank you for finding a potential problem. I tested this patch and confirmed it is working. Thanks, Yoshihiro Shimoda -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Yoshihiro Shimoda wrote: > Magnus Damm wrote: >> From: Magnus Damm <damm@igel.co.jp> >> >> This patch updates the m66592-udc buffer management code. >> >> Use fixed buffers for bulk and isochronous pipes, also make >> sure to handle the isochronous-as-bulk case. With fixed buffers >> there is no need to keep track of used buffers with bi_bufnum. >> >> Also, this fixes a potential buffer offset problem where the >> base offset incorrectly varies with the number of pipes used. >> >> With this patch applied it is possible to use m66592-udc for >> both Ethernet and Serial using CONFIG_USB_CDC_COMPOSITE. >> >> Signed-off-by: Magnus Damm <damm@igel.co.jp> > > Thank you for your patch. > I also thought that this management method was good. > In addition, thank you for finding a potential problem. > I tested this patch and confirmed it is working. I'm sorry. I forgot to write the Acked-by: Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Thanks, Yoshihiro Shimoda -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Jul 03, 2009 at 05:34:41PM +0900, Yoshihiro Shimoda wrote: > Yoshihiro Shimoda wrote: > > Magnus Damm wrote: > >> From: Magnus Damm <damm@igel.co.jp> > >> > >> This patch updates the m66592-udc buffer management code. > >> > >> Use fixed buffers for bulk and isochronous pipes, also make > >> sure to handle the isochronous-as-bulk case. With fixed buffers > >> there is no need to keep track of used buffers with bi_bufnum. > >> > >> Also, this fixes a potential buffer offset problem where the > >> base offset incorrectly varies with the number of pipes used. > >> > >> With this patch applied it is possible to use m66592-udc for > >> both Ethernet and Serial using CONFIG_USB_CDC_COMPOSITE. > >> > >> Signed-off-by: Magnus Damm <damm@igel.co.jp> > > > > Thank you for your patch. > > I also thought that this management method was good. > > In addition, thank you for finding a potential problem. > > I tested this patch and confirmed it is working. > > I'm sorry. I forgot to write the Acked-by: > > Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> > Greg, any preferences? I was planning on just rolling this in to my 2.6.32 queue unless you have any objections. -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Jul 03, 2009 at 05:37:47PM +0900, Paul Mundt wrote: > On Fri, Jul 03, 2009 at 05:34:41PM +0900, Yoshihiro Shimoda wrote: > > Yoshihiro Shimoda wrote: > > > Magnus Damm wrote: > > >> From: Magnus Damm <damm@igel.co.jp> > > >> > > >> This patch updates the m66592-udc buffer management code. > > >> > > >> Use fixed buffers for bulk and isochronous pipes, also make > > >> sure to handle the isochronous-as-bulk case. With fixed buffers > > >> there is no need to keep track of used buffers with bi_bufnum. > > >> > > >> Also, this fixes a potential buffer offset problem where the > > >> base offset incorrectly varies with the number of pipes used. > > >> > > >> With this patch applied it is possible to use m66592-udc for > > >> both Ethernet and Serial using CONFIG_USB_CDC_COMPOSITE. > > >> > > >> Signed-off-by: Magnus Damm <damm@igel.co.jp> > > > > > > Thank you for your patch. > > > I also thought that this management method was good. > > > In addition, thank you for finding a potential problem. > > > I tested this patch and confirmed it is working. > > > > I'm sorry. I forgot to write the Acked-by: > > > > Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> > > > Greg, any preferences? I was planning on just rolling this in to my > 2.6.32 queue unless you have any objections. No objection from me, please do so. Acked-by: Greg Kroah-Hartman <gregkh@suse.de> thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Jul 03, 2009 at 10:07:23AM -0700, Greg KH wrote: > On Fri, Jul 03, 2009 at 05:37:47PM +0900, Paul Mundt wrote: > > On Fri, Jul 03, 2009 at 05:34:41PM +0900, Yoshihiro Shimoda wrote: > > > Yoshihiro Shimoda wrote: > > > > Magnus Damm wrote: > > > >> From: Magnus Damm <damm@igel.co.jp> > > > >> > > > >> This patch updates the m66592-udc buffer management code. > > > >> > > > >> Use fixed buffers for bulk and isochronous pipes, also make > > > >> sure to handle the isochronous-as-bulk case. With fixed buffers > > > >> there is no need to keep track of used buffers with bi_bufnum. > > > >> > > > >> Also, this fixes a potential buffer offset problem where the > > > >> base offset incorrectly varies with the number of pipes used. > > > >> > > > >> With this patch applied it is possible to use m66592-udc for > > > >> both Ethernet and Serial using CONFIG_USB_CDC_COMPOSITE. > > > >> > > > >> Signed-off-by: Magnus Damm <damm@igel.co.jp> > > > > > > > > Thank you for your patch. > > > > I also thought that this management method was good. > > > > In addition, thank you for finding a potential problem. > > > > I tested this patch and confirmed it is working. > > > > > > I'm sorry. I forgot to write the Acked-by: > > > > > > Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> > > > > > Greg, any preferences? I was planning on just rolling this in to my > > 2.6.32 queue unless you have any objections. > > No objection from me, please do so. > > Acked-by: Greg Kroah-Hartman <gregkh@suse.de> > Done, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- 0001/drivers/usb/gadget/m66592-udc.c +++ work/drivers/usb/gadget/m66592-udc.c 2009-06-26 15:12:37.000000000 +0900 @@ -37,7 +37,7 @@ MODULE_LICENSE("GPL"); MODULE_AUTHOR("Yoshihiro Shimoda"); MODULE_ALIAS("platform:m66592_udc"); -#define DRIVER_VERSION "18 Oct 2007" +#define DRIVER_VERSION "26 Jun 2009" /* module parameters */ #if defined(CONFIG_SUPERH_BUILT_IN_M66592) @@ -276,24 +276,27 @@ static int pipe_buffer_setting(struct m6 buf_bsize = 0; break; case M66592_BULK: - bufnum = m66592->bi_bufnum + - (info->pipe - M66592_BASE_PIPENUM_BULK) * 16; - m66592->bi_bufnum += 16; + /* isochronous pipes may be used as bulk pipes */ + if (info->pipe > M66592_BASE_PIPENUM_BULK) + bufnum = info->pipe - M66592_BASE_PIPENUM_BULK; + else + bufnum = info->pipe - M66592_BASE_PIPENUM_ISOC; + + bufnum = M66592_BASE_BUFNUM + (bufnum * 16); buf_bsize = 7; pipecfg |= M66592_DBLB; if (!info->dir_in) pipecfg |= M66592_SHTNAK; break; case M66592_ISO: - bufnum = m66592->bi_bufnum + + bufnum = M66592_BASE_BUFNUM + (info->pipe - M66592_BASE_PIPENUM_ISOC) * 16; - m66592->bi_bufnum += 16; buf_bsize = 7; break; } - if (m66592->bi_bufnum > M66592_MAX_BUFNUM) { - pr_err("m66592 pipe memory is insufficient(%d)\n", - m66592->bi_bufnum); + + if (buf_bsize && ((bufnum + 16) >= M66592_MAX_BUFNUM)) { + pr_err("m66592 pipe memory is insufficient\n"); return -ENOMEM; } @@ -313,17 +316,6 @@ static void pipe_buffer_release(struct m if (info->pipe == 0) return; - switch (info->type) { - case M66592_BULK: - if (is_bulk_pipe(info->pipe)) - m66592->bi_bufnum -= 16; - break; - case M66592_ISO: - if (is_isoc_pipe(info->pipe)) - m66592->bi_bufnum -= 16; - break; - } - if (is_bulk_pipe(info->pipe)) { m66592->bulk--; } else if (is_interrupt_pipe(info->pipe)) @@ -1603,8 +1595,6 @@ static int __init m66592_probe(struct pl m66592->timer.data = (unsigned long)m66592; m66592->reg = reg; - m66592->bi_bufnum = M66592_BASE_BUFNUM; - ret = request_irq(irq, m66592_irq, IRQF_DISABLED | IRQF_SHARED, udc_name, m66592); if (ret < 0) { --- 0001/drivers/usb/gadget/m66592-udc.h +++ work/drivers/usb/gadget/m66592-udc.h 2009-06-26 15:12:14.000000000 +0900 @@ -506,7 +506,6 @@ struct m66592 { int interrupt; int isochronous; int num_dma; - int bi_bufnum; /* bulk and isochronous's bufnum */ }; #define gadget_to_m66592(_gadget) container_of(_gadget, struct m66592, gadget)