Hi! > We can sometimes get bogus thermal shutdowns on omap4430 at least with > droid4 running idle with a battery charger connected: > > thermal thermal_zone0: critical temperature reached (143 C), shutting down > > Dumping out the register values shows we can occasionally get a 0x7f value > that is outside the TRM listed values in the ADC conversion table. And then > we get a normal value when reading again after that. Reading the register > multiple times does not seem help avoiding the bogus values as they stay > until the next sample is ready. > > Looking at the TRM chapter "18.4.10.2.3 ADC Codes Versus Temperature", we > should have values from 13 to 107 listed with a total of 95 values. But > looking at the omap4430_adc_to_temp array, the values are off, and the > end values are missing. And it seems that the 4430 ADC table is similar > to omap3630 rather than omap4460. > > Let's fix the issue by using values based on the omap3630 table and just > ignoring invalid values. Compared to the 4430 TRM, the omap3630 table has > the missing values added while the TRM table only shows every second > value. > > Note that sometimes the ADC register values within the valid table can > also be way off for about 1 out of 10 values. But it seems that those > just show about 25 C too low values rather than too high values. So those > do not cause a bogus thermal shutdown. This does not seem to be in recent -next. Ping? Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: PGP signature