From: Guenter Roeck <linux@roeck-us.net>
To: Andreas Werner <andreas.werner@men.de>, Lee Jones <lee.jones@linaro.org>
Cc: Johannes Thumshirn <johannes.thumshirn@men.de>,
linux-kernel@vger.kernel.org, sameo@linux.intel.com,
wim@iguana.be, linux-watchdog@vger.kernel.org,
cooloney@gmail.com, rpurdie@rpsys.net,
linux-leds@vger.kernel.org
Subject: Re: [PATCH v2 1/3] drivers/mfd/menf21bmc: introduce MEN 14F021P00 BMC MFD Core driver
Date: Wed, 28 May 2014 06:52:56 -0700 [thread overview]
Message-ID: <5385EA38.9090200@roeck-us.net> (raw)
In-Reply-To: <5385E4C9.2010204@roeck-us.net>
On 05/28/2014 06:29 AM, Guenter Roeck wrote:
> On 05/28/2014 04:51 AM, Andreas Werner wrote:
>> aOn Wed, May 28, 2014 at 09:24:05AM +0100, Lee Jones wrote:
>>>>>> The MEN 14F021P00 Board Management Controller provides an
>>>>>> I2C interface to the host to access the feature implemented in the BMC.
>>>>>> The BMC is a PIC Microntroller assembled on CPCI Card from MEN Mikroelektronik
>>>>>> and on a few Box/Display Computer.
>>>>>>
>>>>>> Added MFD Core driver, supporting the I2C communication to the device.
>>>>>>
>>>>>> The MFD driver currently supports the following features:
>>>>>> - Watchdog
>>>>>> - LEDs
>>>>>>
>>>>>> Signed-off-by: Andreas Werner <andreas.werner@men.de>
>>>>>> ---
>>>>>> drivers/mfd/Kconfig | 12 +++
>>>>>> drivers/mfd/Makefile | 1 +
>>>>>> drivers/mfd/menf21bmc.c | 220 ++++++++++++++++++++++++++++++++++++++++++
>>>>>> include/linux/mfd/menf21bmc.h | 31 ++++++
>>>>>> 4 files changed, 264 insertions(+)
>>>>>> create mode 100644 drivers/mfd/menf21bmc.c
>>>>>> create mode 100644 include/linux/mfd/menf21bmc.h
>>>
>>> [...]
>>>
>>>>>> +static int menf21bmc_write_byte(struct i2c_client *client, u8 val)
>>>>>> +{
>>>>>> + int ret;
>>>>>> + struct menf21bmc *data = i2c_get_clientdata(client);
>>>>>> +
>>>>>> + mutex_lock(&data->lock);
>>>>>> + ret = i2c_smbus_write_byte(client, val);
>>>>>> + mutex_unlock(&data->lock);
>>>>>> +
>>>>>> + return ret;
>>>>>> +}
>>>>>
>>>>> Didn't we ask you to remove these? Just make the i2c_smbus_* calls
>>>>> from within the driver. The I2C subsystem conducts its own locking.
>>>>> I'm really starting to frown on aggregation for the sake of
>>>>> aggregation. It's just overhead.
>>>>>
>>>>
>>>> Correct me if I'm wrong but as far as I remember Guenther asked to retain the
>>>> original API, not the remove the "abstraction layer". Once we build a board with
>>>> one of these BMCs attached via e.g. SPI we would have to reintroduce it anyways,
>>>> in order to re-use these drivers.
>>>
>>> If there are two or more possible interfaces then I agree, these
>>> aggregations would be the best approach. However, as it stands, that's
>>> not currently the case.
>>>
>>> Genuine question; are Men on the verge of building such a board, or
>>> are we talking about 'ifs' and 'maybes'?
>>>
>>
>> I think it was a missunderstanding. I also thought that i just
>> have to adapt the wrapper to the original API, that is what I did in the patch,
>> and not to delete the functions completly.
>>
>> Anayway, we currently have another project which use a STM32 MCR connected to USB.
>> A nice feature of this STM is to update the firmware using the USB interface.
>> This is easy to implement and fast.
>>
>> We want to use such a functionality in all of our MCRs to easily update the firmware
>> at the customer if we found a bug.
>>
>> We also plan to have a BMC connected to USB. Then we have i2c and USB.
>>
>
> Even more likely that you would have to change the API in that case to be less
> I2C centric.
>
... especially since you have "struct i2c_client *client" in your API function.
Guenter
next prev parent reply other threads:[~2014-05-28 13:53 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-27 9:05 [PATCH v2 0/3] Introduce MEN 14F02100 BMC driver series Andreas Werner
2014-05-27 9:05 ` Andreas Werner
2014-05-27 9:06 ` [PATCH v2 1/3] drivers/mfd/menf21bmc: introduce MEN 14F021P00 BMC MFD Core driver Andreas Werner
2014-05-27 9:06 ` Andreas Werner
2014-05-27 15:05 ` Lee Jones
2014-05-28 7:02 ` Johannes Thumshirn
2014-05-28 7:02 ` Johannes Thumshirn
2014-05-28 8:24 ` Lee Jones
2014-05-28 11:51 ` Andreas Werner
2014-05-28 11:51 ` Andreas Werner
2014-05-28 13:29 ` Guenter Roeck
2014-05-28 13:52 ` Guenter Roeck [this message]
2014-06-02 8:06 ` Andreas Werner
2014-06-02 8:06 ` Andreas Werner
2014-05-28 13:27 ` Guenter Roeck
2014-06-04 13:50 ` Andreas Werner
2014-06-04 13:50 ` Andreas Werner
2014-06-04 13:50 ` Andreas Werner
2014-05-27 9:07 ` [PATCH v2 2/3] drivers/watchdog/menf21bmc_wd: introduce MEN 14F021P00 BMC Watchdog driver Andreas Werner
2014-05-27 9:07 ` Andreas Werner
2014-05-27 9:08 ` [PATCH v2 3/3] drivers/leds/leds-menf21bmc: introduce MEN 14F021P00 BMC LED driver Andreas Werner
2014-05-27 9:08 ` Andreas Werner
2014-06-25 23:10 ` Bryan Wu
2014-06-26 7:34 ` AW: " Thumshirn, Johannes Tobias
2014-06-26 7:34 ` Thumshirn, Johannes Tobias
2014-06-26 7:34 ` Thumshirn, Johannes Tobias
2014-07-18 10:48 ` Andreas Werner
2014-07-18 10:48 ` Andreas Werner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5385EA38.9090200@roeck-us.net \
--to=linux@roeck-us.net \
--cc=andreas.werner@men.de \
--cc=cooloney@gmail.com \
--cc=johannes.thumshirn@men.de \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=rpurdie@rpsys.net \
--cc=sameo@linux.intel.com \
--cc=wim@iguana.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.