[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8c1a3c26-e24d-014a-7bee-98d08c76ecfe@mleia.com>
Date: Fri, 4 Nov 2016 00:48:48 +0200
From: Vladimir Zapolskiy <vz@...ia.com>
To: vadimp@...lanox.com, wsa@...-dreams.de
Cc: linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org,
jiri@...nulli.us, Michael Shych <michaelsh@...lanox.com>
Subject: Re: [patch v3 1/1] i2c: add master driver for mellanox systems
On 04.11.2016 00:34, Vladimir Zapolskiy wrote:
>> +
>> +static int mlxcpld_i2c_probe(struct platform_device *pdev)
>> +{
>> + struct mlxcpld_i2c_priv *priv;
>> + int err;
>> +
>> + priv = devm_kzalloc(&pdev->dev, sizeof(struct mlxcpld_i2c_priv),
>> + GFP_KERNEL);
>> + if (!priv)
>> + return -ENOMEM;
>> +
>> + mutex_init(&priv->lock);
>> + platform_set_drvdata(pdev, priv);
>> +
>> + priv->dev = &pdev->dev;
>> +
>> + /* Register with i2c layer */
>> + priv->adap = mlxcpld_i2c_adapter;
See a correction below.
>> + priv->adap.dev.parent = &pdev->dev;
>> + priv->adap.retries = MLXCPLD_I2C_RETR_NUM;
>> + priv->adap.nr = MLXCPLD_I2C_BUS_NUM;
>
> So since you want to allow the registration of only one such controller
> on a board (by the way in the opposite case it is also expected that
> "struct i2c_adapter" is allocated dynamically to avoid rewriting of
> data), you probably know the good reason behind it.
I've just noticed that you do a struct copy-on-assignment, while I think
it is very rarely used in the kernel sources (I don't know why), it cancels
my concern expressed above.
>
> But in that case you may consider to move .retries and .nr
> instantiation to the "static struct i2c_adapter" declaration above.
>
--
With best wishes,
Vladimir
Powered by blists - more mailing lists