* Christian Gmeiner | 2011-09-13 10:18:41 [+0200]: >diff --git a/drivers/input/touchscreen/tsc40.c >b/drivers/input/touchscreen/tsc40.c >index b73ef2f..d914522 100644 >--- a/drivers/input/touchscreen/tsc40.c >+++ b/drivers/input/touchscreen/tsc40.c >@@ -49,7 +49,6 @@ struct tsc_ser { > > #define RESPONSE_ACK 0x06 >#define RESPONSE_NAK 0x15 >-#define NACK_DETAIL_NT (1 << 3) > > #define ID_EPROM_UNUSED (1 << 7) > >@@ -96,11 +95,25 @@ static void handle_reset(struct serio *serio, >unsigned char data) > > /* NAK + EEPROM available */ > if (ptsc->idx == 1) { >- if (!(data & NACK_DETAIL_NT)) { >+ if (data & (1 << 0)) { >+ dev_warn(&serio->dev, "EEPROM data empty\n"); >+ state_after_reset(ptsc, 1); >+ return; >+ } else if (data & (1 << 1)) { >+ dev_warn(&serio->dev, "EEPROM data abnormal\n"); > state_after_reset(ptsc, 0); > return; >- } >- state_after_reset(ptsc, 0); >+ } else if (data & (1 << 2)) { >+ dev_warn(&serio->dev, "EEPROM write error\n"); >+ state_after_reset(ptsc, 0); >+ return; >+ } else if (data & (1 << 3)) { >+ dev_warn(&serio->dev, "Touch screen not connected\n"); >+ state_after_reset(ptsc, 0); >+ return; >+ } else >+ BUG_ON(1); >+ That BUG() isn't really nice. Since you in probe at this time, couldn't you print something and abort loading the driver? Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html