Takashi Sakamoto wrote:
Because every device can have settings that should not be changed while streaming.
Currently my Fireworks/BeBoB driver give Control interfaces for these settings, like changing sampling rate, switching digital interface. The primarry purpose of these is the same, a prevention from stopping streaming. The secondary purpose is debug codes for these functionality.
But based on firewire.h interface, it is the applications' responsibility, not drivers'. Is my understanding correct?
Yes; the intent is for the kernel driver to handle only those settings that would be impossible or very difficult to handle with a separate user space process. (For example, the sample rate is set by the application on the ALSA device; it would be a bad idea for the driver to _ask_ the control panel application to change it.)
Here some devices has "write-only" settings. For such device, my driver remember these settings. If the applications has such responsibility, there may be some inconsistency.
This is another example of a setting that must be in the kernel driver.
Regards, Clemens