Два дня интенсивных экспериментов, без результата, я пока иссяк ...
Итак, по поводу "Попробуйте в обработчике прерываний вот это зауоментировать ..", мы тогда бодались с тем, что от дребезга нажатия на экран ядро тихо падало (из-за каких то косяков с обработкой прерываний), а в этом случае виснет только драйвер и явно ожидая ответа (при возникающей ошибке при передаче команды контроллеру).
Первой була тупейшая идея - добавить в драйвер секундный таймер и тупо посылать команду чтения, чтобы выводить его из стопора.
В принципе, такой механизм оказался вполне приемлем, при общении через ts_print, при этом все работает, но в ts_test такой "пинок" весит драйвер (если после выйти из ts_test, этот "пинок" приведет драйвер в чувства).
Дальше я попытался сделать некий детект зависания драйвера, т.к. во время гклюка драйвер интенсивно крутится в hard_irq обработчике, детектор получился корявый.
Заметил странность (хотя, пожалуй, тут сплошные странности :)), количество вызовов обработчика парерывания hard_irq при работе утилиты ts_print и ts_test радикально различается, для ts_test это около сотни в секунду, а для ts_test это около тысячи в секунду (при условии постоянного нажатия на экран).
Пробовал играть с частотой SPI и более надежным чтением с шины - без результата.
Начал выкорчевывать ts_test, на предмет поиска причины, основная гипотеза была из-за синхронной наводки, т.е. нажали на экран - пошла SPI передача и синхронное обновление FB которое приводит к сбою SPI передачи, но похоже дело не в этом, никакой зависимости не обнаружил.
Привел ts_test к подобию ts_print (т.е. отключил все на экране), работает, но стоит вывести на экран начальную страницу (две строки и кнопки) и при этом во время работы не выводить ничего более на FB - этого уже достаточно для зависания драйвера. Причем, если прервать ts_test и запустить ts_print (с экраном от ts_test) тоже виснет, хотя, например, при выводе видео на экран повисания ts_test я не обнаруживал.
Мой текущий драйвер для экспериментов:
Attachment file: uploads/forum/forum-138WwTTlwB-7.rar