Как не надо писать драйвера или приключения на рынке планшетов

Жил был контроллер сенсорного экрана maXTouch 1386 производства корпорации Atmel. Имел он аж 1386 каналов — 33 для Х-координаты и 42 для Y. Для этого у него было еще 3 помощника для разводки каналов — maXTouch 154. Вместе они жили дружной четырёхчиповой семьей.
Как не надо писать драйвера или приключения на рынке планшетов

Жили они мирно и счастливо, пока однажды им не пришлось работать в планшетах с большими сенсорными экранами. И сенсорные панели в планшетах стали почему-то отказываться работать как надо или вообще посылали в лес за грибами.

Проблема эта известна уже давно, но новая буря началась, когда Dr.Web на Андроид примудрился отключать насовсем сенсорную панель на Samsung Galaxy Tab 10.1.

Разборки на форуме Dr.Web бурлят уже с сентября. Дошло почти до требований компенсировать стоимость планшета

Дело в том, что драйвер для контроллера написан как попало, что учитывая сжатые сроки разработки в наше время совсем не редкость. И когда контроллер возвращает код ошибки (по шине 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

Мысли alexst о Acer Iconia Tab A500 и некоторых других

Разбор полетов на Хабре