Title: [9113] trunk/drivers/input/touchscreen/ad7160.c: [#6066] AD7160 Linux Driver Support: Don't abort on unflashed devices
- Revision
- 9113
- Author
- hennerich
- Date
- 2010-08-26 09:30:54 -0400 (Thu, 26 Aug 2010)
Log Message
[#6066] AD7160 Linux Driver Support: Don't abort on unflashed devices
In case the device doesn't have a firmware DEVID reads 0x10AD.
Allow this case and don't abort.
Modified Paths
Diff
Modified: trunk/drivers/input/touchscreen/ad7160.c (9112 => 9113)
--- trunk/drivers/input/touchscreen/ad7160.c 2010-08-26 11:51:31 UTC (rev 9112)
+++ trunk/drivers/input/touchscreen/ad7160.c 2010-08-26 13:30:54 UTC (rev 9113)
@@ -834,7 +834,7 @@
hlenght = le32_to_cpu(header->hlenght);
if ((fw->size - hlenght) > AD7160_MAX_FW_SIZE) {
- dev_err(dev, "invalid firmware size (%d)\n", fw->size);
+ dev_err(dev, "invalid firmware size (%d)\n", (int)fw->size);
ret = -EFAULT;
goto out_release_fw;
}
@@ -1019,10 +1019,15 @@
input_dev->id.product = ad7160_read(ts, AD7160_REG_DEVICE_ID) & 0xFFFF;
if (input_dev->id.product != AD7160_SIL_ID) {
- dev_err(dev, "Failed to probe %s (%x vs %x)\n",
- input_dev->name, input_dev->id.product, AD7160_SIL_ID);
- err = -ENODEV;
- goto err_free_mem;
+ if ((ad7160_read(ts, AD7160_REG_AFE_DEVID) >> MODE_REVID_SHIFT)
+ == BOOT_MODE_REVID) {
+ dev_warn(dev, "Device in boot mode - upload firmware!\n");
+ } else {
+ dev_err(dev, "Failed to probe %s (%x vs %x)\n",
+ input_dev->name, input_dev->id.product, AD7160_SIL_ID);
+ err = -ENODEV;
+ goto err_free_mem;
+ }
}
fw_revid = ad7160_read(ts, AD7160_REG_FW_REV);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits