Re: [PATCH REBASE 1/2] i2c: tegra: I2_M_NOSTART functionality not supported in Tegra20

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for review.

On Saturday 18 August 2012 06:17 PM, Wolfram Sang wrote:
* PGP Signed by an unknown key

On Sat, Aug 18, 2012 at 12:32:34AM +0530, Laxman Dewangan wrote:
+	bool has_continue_xfer_support;
I wonder if it makes sense to carry a pointer here to the
tegra_i2c_hw_feature in use instead of copying all entries by hand,
since they might get more and more.


Ok, we can store the hw pointer in device structure. I will send the new patch.

  };

  static void dvc_writel(struct tegra_i2c_dev *i2c_dev, u32 val, unsigned long reg)
@@ -563,7 +574,17 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
  	if (i2c_dev->is_suspended)
  		return -EBUSY;

-	clk_prepare_enable(i2c_dev->div_clk);
+	/* Support I2C_M_NOSTART only if HW support continue xfer. */
+	for (i = 0; i<  num - 1; i++) {
+		if ((msgs[i + 1].flags&  I2C_M_NOSTART)&&
+			!i2c_dev->has_continue_xfer_support) {
+			dev_err(i2c_dev->dev,
+				"mesg %d have illegal flag\n", i + 1);
+			return -EINVAL;
+		}
+	}
Drivers are requested to explicitly check for features of the I2C bus
(like M_NOSTART) before using them, so I'd skip this extra check.


Ok, I kept this as part of flag checking so illegal flag should not be passed. I will remove this on next version patch.

+
+	clk_prepare_enable(i2c_dev->clk);
 From a glimpse, this change looks unrelated at least. Even wrong, no?


It was already there, just before above check. Due to insertion of check, this code shifted, otherwise it is not a new code.

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux