V4L/DVB (7610): em28xx: Select reg wait time based on chip ID

This is more conservative than just removing the msleep() from
em28xx_write_regs_req(), since some old hardware may still need it.
So, it will remove the sleep time only for those chips where this
removal were tested.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 7dfea3a..0c71e59 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -525,6 +525,20 @@
  */
 void em28xx_pre_card_setup(struct em28xx *dev)
 {
+	int rc;
+
+	dev->wait_after_write = 5;
+	rc = em28xx_read_reg(dev, CHIPID_REG);
+	if (rc > 0) {
+		switch (rc) {
+		case 36:
+			em28xx_info("chip ID is em2882/em2883\n");
+			dev->wait_after_write = 0;
+			break;
+		default:
+			em28xx_info("em28xx chip ID = %d\n", rc);
+		}
+	}
 	em28xx_set_model(dev);
 
 	/* request some modules */