Жил был контроллер сенсорного экрана maXTouch 1386 производства корпорации Atmel. Имел он аж 1386 каналов — 33 для Х-координаты и 42 для Y. Для этого у него было еще 3 помощника для разводки каналов — maXTouch 154. Вместе они жили дружной четырёхчиповой семьей.
Жили они мирно и счастливо, пока однажды им не пришлось работать в планшетах с большими сенсорными экранами. И сенсорные панели в планшетах стали почему-то отказываться работать как надо или вообще посылали в лес за грибами.
Проблема эта известна уже давно, но новая буря началась, когда Dr.Web на Андроид примудрился отключать насовсем сенсорную панель на Samsung Galaxy Tab 10.1.
Дело в том, что драйвер для контроллера написан как попало, что учитывая сжатые сроки разработки в наше время совсем не редкость. И когда контроллер возвращает код ошибки (по шине I2C на картинке выше) из-за любого всевозможного глюка, драйвер не очищает эту ошибочную информацию, а в драйвере Асуса возвращает -ENODEV (operation not supported by device или device does not exist), в драйвере Эйсера он же просто зависает намертво. У кривого драйвера Самсунга своя история — он может писать в EEPROM контроллера ненужный код, ибо обмен информацией с контроллером в драйвере чудесным образом завязали через системную виртуальную директорию, прочитав список файлов в которой любым способом, и происходит отказ.
Контроллер maXTouch 1386 используется в Lenovo IdeaPad Tablet K1
Asus Eee Pad Transformer TR101
Acer Iconia Tab A500
Samsung Galaxy Tab 10.1
Motorola XOOM
и бог весть знает еще где.
Если у одних явных проблем не возникало, то у других драйвера оказались самым слабым местом.
Битва с драйвером Самсунга на XDA
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: