Jan,
I tried to implement the Set_Idle request for my HID. Initially, when I was not implementing the request, the host was polling for IN reports on EP1. This was a good thing as this is the endpoint that my descriptor said would implement the IN interrupts. Once I changed my firmware to allow the use of the Set_Idle request, the host started polling EP0 for the IN rather than EP1. This now meant that the IN was always NAK'd as I was updating EP1 and not EP0. My HID Enpoint descriptor has not changed. I am still declaring that the IN is on EP1 (Address 0x81). Once I changed the firmware back to handshake a stall on receipt of a Set_Idle request the host again started polling EP1.
Implementing the Set_Idle is not that important to me, but I am curious as to why this happens.
Regards,
Ray