• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » Linux » Linux forum » usb webcam can't work on DM365
Share
Linux
  • Forum
Options
  • Subscribe via RSS

Forums

usb webcam can't work on DM365

This question is not answered
Peter Chen14428
Posted by Peter Chen14428
on Jul 23 2010 03:12 AM
Prodigy245 points

Hello :

I have a problem with usb webcam working on dm365.
I load usbcore and musb_hdrc modules first, then I plug in the usb webcam.
After that I load the usb webccam driver module gspca.ko, I got the following messages:

/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: USB GSPCA cam
era found.(ZC3XX)
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_prob
e:4275] Camera type JPEG
/home/pencil722/獢/DM365/useful/gspcav1-20071224/Vimicro/zc3xx.h: [zc3xx_con
fig:669] Find Sensor HV7131R(c)
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_getc
apability:1249] maxw 640 maxh 480 minw 160 minh 120
usbcore: registered new driver gspca
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: gspca driver
01.00.20 registered

I think this message means the usb webcam devices is working with the driver.
And I can see the /dev/video.
But When I ran the DVSDK sample code encode, I got the following error message:

/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: init isoc: us
b_submit_urb(0) ret -28
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [gspca_set_is
oc_ep:945] ISO EndPoint found 0x81 AlternateSet 6
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: init isoc: us
b_submit_urb(0) ret -28
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [gspca_set_is
oc_ep:945] ISO EndPoint found 0x81 AlternateSet 5
/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca50x_move
_data:1611] ISOC data error: [1] len=0, status=-18

/home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca50x_move
_data:1611] ISOC data error: [2] len=0, status=-18

I don't know what happened? Is the sample code wrong? Or the driver can't work for dm365?
can anyone help solving the problems.

Peter. 

Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Ajay
    Posted by Ajay
    on Aug 18 2010 23:46 PM
    Genius9470 points

    Peter,

    The error -28 shows NOSPC which points that dm365 is finding a matching endpoint for camera. This could be due to,

    1. Endpoint packet size not set to camera's requirement (could be 1K). For this you can see the driver/usb/musb/musb_core.c

    and fifo config _2_. You might need to modify one RX endpoint packet size to 1K. (Please make sure that the total size is less than (4096-64))

    2. All endpoint have been used by hubs and other devices. For this you can enable interrupt endpoint scheduling at drivers->USB support->Inventra MUSB

    Regards,
    Ajay

     

     

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Chen14428
    Posted by Peter Chen14428
    on Aug 19 2010 09:35 AM
    Prodigy245 points

    Ajay:

    Thanks for your reply.

    I have try the two ways you suggested, I fix some errors but I got other error messages.
    When I enable interrupt endpoint scheduling, I didn't see the error "init isoc: usb_submit_urb(0) ret -28".
    Then I edit the driver/usb/musb/musb_core.c as following:

    /* mode 2 - fits in 4KB */
    static struct fifo_cfg __initdata mode_2_cfg[] = {
    { .hw_ep_num = 1, .style = FIFO_TX,   .maxpacket = 256, },
    { .hw_ep_num = 1, .style = FIFO_RX,   .maxpacket = 256, },
    { .hw_ep_num = 2, .style = FIFO_TX,   .maxpacket = 512, },
    { .hw_ep_num = 2, .style = FIFO_RX,   .maxpacket = 512, },
    { .hw_ep_num = 3, .style = FIFO_TX,   .maxpacket = 1024, },
    { .hw_ep_num = 3, .style = FIFO_RX,   .maxpacket = 1024, },
    { .hw_ep_num = 4, .style = FIFO_RXTX, .maxpacket = 256, },
    };

    After this changed, I got other error messages:

    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_set_
    light_freq:1932] Sensor currently not support light frequency banding filters.
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [gspca_set_is
    oc_ep:945] ISO EndPoint found 0x81 AlternateSet 7
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: init isoc: us
    b_submit_urb(0) ret -90
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_open
    :1996]  DEALLOC error on init_Isoc

    Cannot open '/dev/video0': 90, Message too long

    (/dev/video exists after I load the driver module)
    These error messages seems to be related with the fifo space.
    I want to set them to 1024 as you suggested, but it seems not work.

    By the way, the steps I did are :
    1. insmod usbcore.ko
    2. insmod musb_hdrc,ko mode_default=1
    3. insmod gspca.ko

    Can you find what is the problem or what steps I did wrong?

    regards,
    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Aug 19 2010 10:15 AM
    Genius9470 points

    Your camera seems to work only with high bandwidth isochronous interfaces only which is not available on DM365 platform. Can you send output of "cat /proc/bus/usb/devices" to confirm this?

    OR connect the camera to linux PC and send output of "lsusb -v".

    If this is the cause of the error then you need to use a camera which work with non-high bandwidth iso endpoints.

    Regards,

    Ajay

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Chen14428
    Posted by Peter Chen14428
    on Aug 23 2010 03:45 AM
    Prodigy245 points

    Ajay,

    Thanks for your reply.

    I try to check my usb webcam which work with high bandwidth isochronous or non-high bandwidth iso endpoints,
    but I can't distinguish from the messages.
    Here is the messages come from the dm365 and PC.
    dm365:

    T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=12  MxCh= 0
    D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=046d ProdID=08af Rev= 1.00
    C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 128 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 192 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 256 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 384 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 512 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 6 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS= 768 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 0 Alt= 7 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=gspca
    E:  Ad=81(I) Atr=01(Isoc) MxPS=1023 Ivl=1ms
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

    PC:

    Bus 003 Device 014: ID 046d:08af Logitech, Inc. QuickCam Easy/Cool
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass          255 Vendor Specific Class
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0         8
      idVendor           0x046d Logitech, Inc.
      idProduct          0x08af QuickCam Easy/Cool
      bcdDevice            1.00
      iManufacturer           0
      iProduct                0
      iSerial                 0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength          193
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0
        bmAttributes         0xa0
          (Bus Powered)
          Remote Wakeup
        MaxPower              100mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0000  1x 0 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       1
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0080  1x 128 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       2
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x00c0  1x 192 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       3
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0100  1x 256 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       4
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0180  1x 384 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       5
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       6
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0300  1x 768 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       7
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass    255 Vendor Specific Subclass
          bInterfaceProtocol    255 Vendor Specific Protocol
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            1
              Transfer Type            Isochronous
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x03ff  1x 1023 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0008  1x 8 bytes
            bInterval              10
    Device Status:     0x0000
      (Bus Powered)

    Can you tell me how to get the information about bandwidth speed?

    regards,

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Aug 23 2010 05:39 AM
    Genius9470 points

    This camera works on non highbandwidth endpoints. You can see value of wMaxPacketSize and if its <= 1024 then it's non high bandwidth but if is more than 1024 then that would require high bandwidth endpoints.

    Ajay  

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Aug 23 2010 05:42 AM
    Genius9470 points

    now we need to see why you are getting below error,

    Cannot open '/dev/video0': 90, Message too long

    Can you check if video0 is the mode which gets created after attaching the camera ?

    -Ajay

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Chen14428
    Posted by Peter Chen14428
    on Aug 23 2010 23:40 PM
    Prodigy245 points

    Ajay,

    I check the /dev/video0 gets created after attaching the camera.
    Following is my checking process:

    Before attaching the camera and load the module:
    I cat the "/dev/video0",and get the messages:
    cat: video0: No such file or directory

    After attaching the camera and load the module:
    I cat the "/dev/video0" again,and I get the messages:
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_set_
    light_freq:1932] Sensor currently not support light frequency banding filters.
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [gspca_set_is
    oc_ep:945] ISO EndPoint found 0x81 AlternateSet 7
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: init isoc: us
    b_submit_urb(0) ret -90
    /home/pencil722/獢/DM365/useful/gspcav1-20071224/gspca_core.c: [spca5xx_open
    :1996]  DEALLOC error on init_Isoc

    cat: video0: Message too long

    During the process I did, I think the /dev/video0 gets created afte attaching the camera.

    Is there something with symbo llink (something like this)?

    Can you find where the problem?

    regards,

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Aug 24 2010 00:30 AM
    Genius9470 points

    Peter,

    Please provide more details of kernel version used ?

    Regards,
    Ajay

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Chen14428
    Posted by Peter Chen14428
    on Aug 24 2010 10:47 AM
    Prodigy245 points

    Ajay,

    The kernel version I used is linux-2.6.18_pro500 which I got from the TI's website.

    The messages I got from dm365 board are:

    Linux version 2.6.18_pro500-davinci_evm-arm_v5t_le (pencil722@lab745-desktop) (g
    cc ? 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30))

    regards,

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Aug 25 2010 00:38 AM
    Genius9470 points

     

    Peter,

    I am not sure if Webcam is supported in v2.6.18 version of kernel. There have been major changes after 2.6.18 in musb driver and it can be found in linus's tree.

    Now there seems to be two option for you,

    1. Move to latest kernel OR

    2. Back port all the musb driver patches to v2.6.18.

    You might have access to release notes/user guide for v2.6.18_pro500 which you can refer to confirm if WebCam is supported.

    Regards,

    Ajay

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Chen14428
    Posted by Peter Chen14428
    on Sep 02 2010 04:06 AM
    Prodigy245 points

    Ajay,

    Thank you for your reply.
    Because our kernel has been edited with the display component, I can't change my kernel version.
    Then I want to patch my musb driver back, but I ca't find the old version of kernel source on TI's website.(TI's website provide DM365 only with the 2.6.18_pro500 version)
    Could you tell me where I can get the kernel version which you know can support the usb webcam?
    Or could you send me an email with that musb driver?

    My email address is : pencil722@gmail.com

    Regards,

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Ajay
    Posted by Ajay
    on Sep 03 2010 00:16 AM
    Genius9470 points

    The latest musb driver can be found at linus's tree below,

    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;h=2bfc96a127bc1cc94d26bfaa40159966064f9c8c;hb=2bfc96a127bc1cc94d26bfaa40159966064f9c8c

    Please be aware that there was a API change between usb core and HCD so using complete musb folder may not compile. You might have to change some code to make latest

    driver compatible to v2.6.18.

    Regards,
    Ajay

    If my reply answers your question then please click on the green button "Verify Answer"

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Sudheesh
    Posted by Sudheesh
    on Dec 01 2010 00:06 AM
    Intellectual455 points

    Hi ,

    I have problem with musb driver when tried to support Realtek 8192CU wifi module over usb. It give kernel oops message, and major portion of that is shown below. I'm also using 2.6.18 kernel.

    Unable to handle kernel NULL pointer dereference at virtual address 00000038

    pgd = c0004000

    [00000038] *pgd=00000000

    Internal error: Oops: 17 [#1]

    Modules linked in: 8192cu sbull iscsi_tcp libiscsi scsi_transport_iscsi usbmon musb_hdrc usbcore ppp_deflate ppp_async ppp_synctty ppp_generic slhc tun loopl

    CPU: 0

    PC is at musb_start_urb+0x4c/0x928 [musb_hdrc]

    LR is at musb_urb_enqueue+0x3cc/0x454 [musb_hdrc]

    pc : [<bf0bf704>]    lr : [<bf0c0a4c>]    Not tainted

    .........

    Backtrace: 

    [<bf0bf6b8>] (musb_start_urb+0x0/0x928 [musb_hdrc]) from [<bf0c0a4c>] (musb_urb_enqueue+0x3cc/0x454 [musb_hdrc])

    [<bf0c0680>] (musb_urb_enqueue+0x0/0x454 [musb_hdrc]) from [<bf0a40a4>] (hcd_submit_urb+0x86c/0x964 [usbcore])

    [<bf0a3838>] (hcd_submit_urb+0x0/0x964 [usbcore]) from [<bf0a4534>] (usb_submit_urb+0x300/0x350 [usbcore])

    [<bf0a4234>] (usb_submit_urb+0x0/0x350 [usbcore]) from [<bf0a4d00>] (usb_start_wait_urb+0x44/0x174 [usbcore])

    [<bf0a4cbc>] (usb_start_wait_urb+0x0/0x174 [usbcore]) from [<bf0a5030>] (usb_control_msg+0xe0/0x104 [usbcore])

    [<bf0a4f50>] (usb_control_msg+0x0/0x104 [usbcore]) from [<bf108184>] (usbctrl_vendorreq+0xd0/0x158 [8192cu])

    [<bf1080b4>] (usbctrl_vendorreq+0x0/0x158 [8192cu]) from [<bf108364>] (usb_write8+0x48/0x88 [8192cu])

     

    Video and audio is streaming over wifi for around 5 mins @ 720P resoution, 30 FPS.

    I tried the methods described above in the thread except backporting to the latest usb driver. Could you please suggest me if any workaround possible in 2.6.18 musb driver ?

     

    Thank you

    tvs

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • zanget
    Posted by zanget
    on Sep 02 2011 01:06 AM
    Expert1840 points

    the problem comes form the High-bandwidth ISO mode webcam with DM365.

    check it out: section 4.72 about USB. the source code about this part is
    now:

    musb_core.c,musb_core_init:
       if (reg & MUSB_CONFIGDATA_HBRXE) {
                  strcat(aInfo, ", HB-ISO Rx");
                  musb->hb_iso_rx = true;
           }
           if (reg & MUSB_CONFIGDATA_HBTXE) {
                  strcat(aInfo, ", HB-ISO Tx");
                  musb->hb_iso_tx = true;
           }

    musb_host.c, musb_urb_enqueue
          /* Bits 11 & 12 of wMaxPacketSize encode high bandwidth multiplier.
           * Some musb cores don't support high bandwidth ISO transfers; and
           * we don't (yet!) support high bandwidth interrupt transfers.
           */
           qh->hb_mult = 1 + ((qh->maxpacket >> 11) & 0x03);
           if (qh->hb_mult > 1) {
                  int ok = (qh->type == USB_ENDPOINT_XFER_ISOC);

                  if (ok)
                         ok = (usb_pipein(urb->pipe) && musb->hb_iso_rx)
                                || (usb_pipeout(urb->pipe) && musb->hb_iso_tx);
                  if (!ok) {
                         ret = -EMSGSIZE;
                         goto done;
                  }
                  qh->maxpacket &= 0x7ff;
           }

    please check link1, link2 and link3   out

    Regards, Mike

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • zanget
    Posted by zanget
    on Sep 02 2011 01:08 AM
    Expert1840 points

     i just want to know is there anyway to implement the driver to support the High-bandwidth ISO mode on DM365 ? can we try to init the usb webcam to negotiate about the bandwidth ??
    someone told me that:

    "However, it is very difficult to find a ISO mode webcam chip which have the packet size smaller than 1024 bytes in VGA/D1 or 720p resolution."

    we get a webcam to be supported but it is :
    usb.txt

    it seems to be High-bandwidth ISO mode ?
         wMaxPacketSize     0x0b20  2x 800 bytes
         wMaxPacketSize     0x1320  3x 800 bytes
         wMaxPacketSize     0x1400  3x 1024 bytes

    usb webcam usb camera DM365 High-bandwidth ISO mode
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
12
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use