...
I have not currently added the code to detect critical temp and disable the device. But this function is also present in the PIC so it's kind of a backup that the driver would take any action.
One thing I have said many times on this subject ... it really should be that the hardware takes over when the device is close to killing itself.
The hardware shouldn't decide normal temperature control.
Look at how the GPU's work, they shut down at what we would all consider to be a ridiculously high temperature, thus cgminer by default uses a lower temperature to consider pausing mining and waiting for a cool down and thus most people find they've been able to mine on their GPUs non-stop for literally years.
We do the same with the other USB devices - a good example of that is the MMQ where I deal with it in software coz the sensors themselves are known to read low so I use a quite low setting in the cgminer control.
Not every shipped device will have the same characteristics, so people should be able to adjust these settings in software and that is easiest if the software can make the decision before 'absolute critical'
The best example of how NOT to do it is the BFL FPGA where the damn throttling hardware is a PITA for many when it stops mining too early.