I took the time to clean up the patch, and test it on a Dell PowerEdge R610
with the TPM enabled in BIOS SETUP. This works as expected, drawing from both
/dev/hw_random (if present), and /dev/tpm0 (if present), and failing only if
neither are present.
In testing, I can see the entropy pool shrinking by 128 bytes every time I
and growing again by the amount specified in -W every -t timeout period, on a
system with no other /dev/hw_random, using only /dev/tpm0.