 +{
 +	struct ov490_priv *priv = i2c_get_clientdata(client);
 +
++	device_remove_file(&client->dev, &dev_attr_otp_id_ov490);
 +	v4l2_async_unregister_subdev(&priv->sd);
 +	media_entity_cleanup(&priv->sd.entity);
 +	v4l2_ctrl_handler_free(&priv->hdl);

+		return -EINVAL;
+	}
+
+	dev_info(&client->dev, "ov490/ov10640 Product ID %x Manufacturer ID %x, rev 1%x, res %dx%d, dvp %dbit\n",
+		 pid, ver, 0xa + rev, priv->width, priv->height, priv->dvp_width);
+
+	ret = ov490_set_regs(client, ov490_regs_wizard,
+			     ARRAY_SIZE(ov490_regs_wizard));

+		return -EINVAL;
+
+	code->code = MEDIA_BUS_FMT_YUYV8_2X8;
+
+	return 0;
+}
+
+static int ov490_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid)
+{
+	struct i2c_client *client = v4l2_get_subdevdata(sd);
+	struct ov490_priv *priv = to_ov490(client);
+
+	memcpy(edid->edid, priv->id, 6);
+
+	return 0;
+}
