@@ -594,10 +594,13 @@ static int max9286_notify_bound(struct v4l2_async_notifier *notifier,
* All enabled sources have probed and enabled their reverse control
* channels:
*
- * - Verify all configuration links are properly detected
+ * - Increase reverse channel amplitude to 170mV
* - Disable auto-ack as communication on the control channel are now
* stable.
*/
+ max9286_write(priv, 0x3b, MAX9286_REV_TRF(1) | MAX9286_REV_AMP(70) |
+ MAX9286_REV_AMP_X);
+
max9286_check_config_link(priv, priv->source_mask);
/*
@@ -984,12 +987,11 @@ static int max9286_setup(struct max9286_priv *priv)
*
* - Enable custom reverse channel configuration (through register 0x3f)
* and set the first pulse length to 35 clock cycles.
- * - Increase the reverse channel amplitude to 170mV to accommodate the
- * high threshold enabled by the serializer driver.
+ * - Set reverse channel amplitude to 100mV and increase it later after
+ * the serializer high threshold have been increased.
*/
max9286_write(priv, 0x3f, MAX9286_EN_REV_CFG | MAX9286_REV_FLEN(35));
- max9286_write(priv, 0x3b, MAX9286_REV_TRF(1) | MAX9286_REV_AMP(70) |
- MAX9286_REV_AMP_X);
+ max9286_write(priv, 0x3b, MAX9286_REV_TRF(1) | MAX9286_REV_AMP(100));
usleep_range(2000, 2500);
/*
Start with reverse channel amplitude set to 100mV and later increase it to 170mV to compensate the serializer high threshold. This allows more reliable communications with RDACM21 camera which have not been pre-programmed with an already compensated reverse channel configuration. Warning: this change breaks operation with pre-programmed RDACM20 camera modules Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org> --- v7: - new patch required to operate with RDACM21 --- drivers/media/i2c/max9286.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)