Ubuntu 14.04, ASMedia and Re-enumeration

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi!

   

I found that if I do renumeration:

   
CyU3PConnectState(CyFalse, CyTrue); sleep_ms(200); CyU3PConnectState(CyTrue, CyTrue); 
   

I have no receive any Setup requests / Events from USB. As a result my device losts from the host. It happens only under Linux (3.13, 3.16, 3.19, 4.0) with ASMedia ASM1042A controller when connected with USB 3 cable. All other controllers works well.

   

If I repeat re-enumeration for a some time (2-7 times) it will done successfully.

   

Is it known issue?

0 Likes
4 Replies
Anonymous
Not applicable

 Hi,

   

This is not a known issue. What happens when you increase that delay?

   

Regards,

   

- Madhu Sudhan

0 Likes
Anonymous
Not applicable

Hi,

   

I increase timeout up to 5 seconds, nothing happens. Any ideas?

0 Likes
Anonymous
Not applicable

up. any ideas?

0 Likes
Anonymous
Not applicable

Hi again. As I describe above, timeout increasing does not helps at all. But I observe, that in this case there is no any Setup requests received. And if I repeat re-enumeration for the some time it done successful.

   

So, work around next:

   

0. Add boolean flag, set it to false. Example name: enumerationDone 🙂

   

1. Do re-enumeration as I describe above. Timeout increasing does not required.

   

2. Wait for a some time (100 ms so good)

   

3. Check enumarationDone flag, if true - exits, otherwise go to step 1

   

4. enumerationDone flag must be sets to the true by the Setup Request handler. Of course mutex protection is required.

   

Steps 0-3 done at the re-enumeration routine. Step 4 done at the Setup Request routine.

0 Likes