Thread (16 messages) 16 messages, 3 authors, 2023-10-11

RE: [PATCH v12 2/2] i2c: aspeed: support ast2600 i2c new register mode driver

flat view

From: Ryan Chen <ryan_chen@aspeedtech.com>
Date: 2023-07-14 08:11:14
Also in: linux-aspeed, linux-devicetree, linux-i2c, openbmc

Hello,

On 14/07/2023 09:45, Ryan Chen wrote:
Add i2c new register mode driver to support AST2600 i2c new register 
mode. AST2600 i2c controller have legacy and new register mode. The 
new register mode have global register support 4 base clock for scl 
clock selection, and new clock divider mode. The i2c new register mode 
have separate register set to control i2c master and slave.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
---
...
quoted hunk ↗ jump to hunk
+	ret = devm_i2c_add_adapter(dev, &i2c_bus->adap);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static int ast2600_i2c_remove(struct platform_device *pdev) {
+	struct ast2600_i2c_bus *i2c_bus = platform_get_drvdata(pdev);
+
+	/* Disable everything. */
+	writel(0, i2c_bus->reg_base + AST2600_I2CC_FUN_CTRL);
+	writel(0, i2c_bus->reg_base + AST2600_I2CM_IER);
+
+	i2c_del_adapter(&i2c_bus->adap);
I have doubts that you tested this. I think you have here double free/del of the adapter.
Sorry, i can't catch your point for double free the adapter.
It should use i2c_del_adapter in driver remove function.
All the driver doing this 
https://github.com/torvalds/linux/blob/master/drivers/i2c/busses/i2c-npcm7xx.c#L2373
https://github.com/torvalds/linux/blob/master/drivers/i2c/busses/i2c-altera.c#L473

Do you mean it is not necessary? 
+	devm_free_irq(&pdev->dev, i2c_bus->irq, i2c_bus);
+

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help