From c9e88b69abf5be6d7afbdb60b03e22f1dfbd8048 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Wed, 6 Oct 2021 12:12:35 +0530 Subject: [PATCH] [i2c] Remove read_func() It still doesn't look correct to keep a separate routine for this, which can be called by others. Merge it with new() itself. Signed-off-by: Viresh Kumar --- src/i2c/src/i2c.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/i2c/src/i2c.rs b/src/i2c/src/i2c.rs index de0dbd6..6622b68 100644 --- a/src/i2c/src/i2c.rs +++ b/src/i2c/src/i2c.rs @@ -299,37 +299,30 @@ impl I2cAdapter { // Creates a new adapter corresponding to the specified number. fn new(adapter_no: u32) -> Result> { let i2cdev = format!("/dev/i2c-{}", adapter_no); - let mut adapter = I2cAdapter { - adapter_no, - smbus: false, - device: D::open(i2cdev)?, - }; - adapter.read_func()?; - - Ok(adapter) - } - - // Helper function for reading the adaptor functionalities. - fn read_func(&mut self) -> Result<()> { let func: u64 = I2C_FUNC_SMBUS_ALL; + let mut device = D::open(i2cdev)?; + let smbus; - let ret = self.device.funcs(func); - + let ret = device.funcs(func); if ret == -1 { println!("Failed to get I2C function"); return errno_result(); } if (func & I2C_FUNC_I2C) != 0 { - self.smbus = false; + smbus = false; } else if (func & I2C_FUNC_SMBUS_ALL) != 0 { - self.smbus = true; + smbus = true; } else { println!("Invalid functionality {:x}", func); return Err(Error::new(EINVAL)); } - Ok(()) + Ok(I2cAdapter { + device, + adapter_no, + smbus, + }) } /// Perform I2C_RDWR transfer