On Tue, Mar 11, 2014 at 04:15:01PM +0100, Takashi Iwai wrote:
This should be decided for each case, and I agree with the usefulness of error logging for this particular case. The I/O errors are basically exceptions, and shouldn't happen in normal operations.
Quite.
That said, if the driver behavior depends on such lowlevel errors, its design is wrong, must be fixed in anyway.
Indeed, this shouldn't be something that happens in normal operation. Usually you'd see this during board bringup if you'd got something like I2C, regulators or reset GPIOs hooked up wrongly or missing, though you can see things like incorrectly handled ramp or reset times triggering it too. By the time the system is actually in use it shouldn't happen which is why we've not been having problems with ignoring errors.
Still an open question is whether it should be dev_err() or dev_dbg(). Ideally speaking, dev_dbg() should be used, while dev_err() would be more practical.
I think given that it's generally a sign of substantial hardware failure dev_err() is justified, probably the user will be noticing other issues and it'll help a lot with root causing. I'd guess Ben had something like one of the situations above and needed this to figure it out.