Re: high bandwidth ISO transfer and MUSB host

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

 



Il 21/02/2011 18:43, mark205@xxxxxxxx ha scritto:
Il 18/02/2011 05:04, Gupta, Ajay Kumar ha scritto:
Hi,
This problem is driving me crazy o.O

I have patched my code with that but it still doesn't work..

I get the errno 28 cause of the the ENOSPC of void musb_host_rx(struct
musb *musb, u8 epnum):
Looks like your FIFO config doesn't have a matching endpoint with required
FIFO size.

Please check what fifo config is being used inside ep_config_from_table()
(musb_core.c). By default all the OMAP3 platform uses config *_4_*.

The FIFO config should have any endpoint entry with FIFO size of 4K as
Being change in high bandwidth patch link provided earlier.

You can enable the debug either by changing the musb_debug before
Compiling or assign a value to it with musb as module.

Regards,
Ajay
          ....
           goto success;
          } else if (best_end<  0) {
                  return -ENOSPC;
          }
          .....

It seems that the variable best_end is<0 or because musb->nr_endpoints
is<  0 (that means no endpoints are found.. why????) or because the
condition: if (diff>= 0&&  best_diff>  diff) is never true.

I modified the kernel deleting the "return  -ENOSPC" but in this way
after a few seconds the system reboots..


I saw that there are a lot of DBG messages like: DBG(4, "qh %p periodic
slot %d\n", qh, best_end);
Do you know how can I turn on this debugging mode in order to print
these messages in the console?

Hi,

Thank you very much for your advices!

It was using the config  *_5_*

Now at least one endpoint initializes but the other still doesn't work, the same error. The callback anyway are not called in both cases so I need to debug again. Maybe I have to modify those values (or anyway, those files) in some different way because I still don't think it's a CPU speed problem. Do you know where I can find some documentation (if there is) about that beside the usb specifications?

About the debugging: I changed musb_debug also before but no message is displayed (I checked also the stderr).

Thank you very much again
--
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


Debugging I've found out that initially there are transfers completed (but not enought for a whole frame). After a little starts a massive packet loss:


.....
Creating EP 81 transfer #14
Creating EP 81 transfer #15
.....
Write Reg 0x0005 <= 0x00
Control cmd=0003 tag=0000 len=0004: 12
Control reply: 12

[stram 70] Invalid magic ffff
....
...
[stream 70] Not synced yet...
..
[stream 70] Lost 8 packets
[Stream 70] Lost too many packets, resyncing...
..
[Stream 70] Invalid magic c458
[Stream 70] Invalid magic af39
..



The packets used in this type of exchanges are of 1760 and 1920 bytes.

I've read in the sourcecode of musb_core.c that:

Interrupt and isochronous will dynamically allocate endpoint
 *        hardware, but (a) there's no record keeping for bandwidth;
 *        (b) in the common case that few endpoints are available, there
 *        is no mechanism to reuse endpoints to talk to multiple devices.
....
You can't yet hook
 *        up both a keyboard and a mouse to an external USB hub.


So I have three questions:
Is a female to female usb adapter considerd like a USB hub?
If I want to create that mechanism to reuse the endpoints to talk to multiple devices, is there any documentation that I can read?

--
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