From: Petr Cvek <petr.cvek@tul.cz>
To: Lee Jones <lee.jones@linaro.org>
Cc: robert.jarzmik@free.fr, philipp.zabel@gmail.com,
daniel@zonque.org, haojian.zhuang@gmail.com,
sameo@linux.intel.com, cooloney@gmail.com, rpurdie@rpsys.net,
j.anaszewski@samsung.com, linux@arm.linux.org.uk, sre@kernel.org,
dbaryshkov@gmail.com, dwmw2@infradead.org,
linux-leds@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 18/21] mfd: htc-pasic3: Prepare driver for leds-pasic3
Date: Tue, 18 Aug 2015 23:01:25 +0200 [thread overview]
Message-ID: <55D39D25.7010909@tul.cz> (raw)
In-Reply-To: <20150818065207.GC6180@x1>
Dne 18.8.2015 v 08:52 Lee Jones napsal(a):
> On Tue, 18 Aug 2015, Petr Cvek wrote:
>
>> Fix register definitions and prepare structures for new leds-pasic3
>> driver.
>>
>> Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
>> ---
>> drivers/mfd/htc-pasic3.c | 54 ++++++++++++++++-----------
>> include/linux/mfd/htc-pasic3.h | 85 +++++++++++++++++++++++++++++++-----------
>> 2 files changed, 97 insertions(+), 42 deletions(-)
>>
>> diff --git a/drivers/mfd/htc-pasic3.c b/drivers/mfd/htc-pasic3.c
>> index e88d4f6..16e156d 100644
>> --- a/drivers/mfd/htc-pasic3.c
>> +++ b/drivers/mfd/htc-pasic3.c
>> @@ -3,6 +3,9 @@
>> *
>> * Copyright (C) 2006 Philipp Zabel <philipp.zabel@gmail.com>
>> *
>> + * 2015: Added registers for LED and RESET, see htc-pasic3.h
>> + * -- Petr Cvek
>> + *
>
> This is pretty unconventional.
>
> Please look to see what others have done.
LED support: Petr Cvek <petr.cvek@tul.cz>
OK?
>> @@ -130,6 +140,7 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> struct device *dev = &pdev->dev;
>> struct pasic3_data *asic;
>> struct resource *r;
>> + struct pasic3_leds_pdata *leds_pdata;
>> int ret;
>> int irq = 0;
>>
>> @@ -162,6 +173,8 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> /* calculate bus shift from mem resource */
>> asic->bus_shift = (resource_size(r) - 5) >> 3;
>>
>> + spin_lock_init(&asic->lock);
>> +
>> if (pdata && pdata->clock_rate) {
>> ds1wm_pdata.clock_rate = pdata->clock_rate;
>> /* the first 5 PASIC3 registers control the DS1WM */
>> @@ -172,13 +185,12 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> dev_warn(dev, "failed to register DS1WM\n");
>> }
>>
>> - if (pdata && pdata->led_pdata) {
>> - led_cell.platform_data = pdata->led_pdata;
>> - led_cell.pdata_size = sizeof(struct pasic3_leds_machinfo);
>> - ret = mfd_add_devices(&pdev->dev, pdev->id, &led_cell, 1, r,
>> - 0, NULL);
>> - if (ret < 0)
>> - dev_warn(dev, "failed to register LED device\n");
>> + if (pdata && pdata->pasic3_leds) {
>> + leds_pdata = dev_get_platdata(&pdata->pasic3_leds->dev);
>
> Whoa! You're passing a pointer to a device through pdata?
>
> I don't like that at all. Please explain.
>
>> + if (leds_pdata) {
>> + leds_pdata->mfd_dev = dev;
>> + platform_device_register(pdata->pasic3_leds);
>
> What's the idea here?
Actually, I don't know how to do this in a clean way as pasic3_read_register() and pasic3_write_register() require device struct to pass address for accessing the registers. Only way would be to rewrite all functions which call pasic3_*_register() (removing struct device *dev and change it to struct pasic3_data *asic).
Petr
WARNING: multiple messages have this Message-ID (diff)
From: petr.cvek@tul.cz (Petr Cvek)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 18/21] mfd: htc-pasic3: Prepare driver for leds-pasic3
Date: Tue, 18 Aug 2015 23:01:25 +0200 [thread overview]
Message-ID: <55D39D25.7010909@tul.cz> (raw)
In-Reply-To: <20150818065207.GC6180@x1>
Dne 18.8.2015 v 08:52 Lee Jones napsal(a):
> On Tue, 18 Aug 2015, Petr Cvek wrote:
>
>> Fix register definitions and prepare structures for new leds-pasic3
>> driver.
>>
>> Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
>> ---
>> drivers/mfd/htc-pasic3.c | 54 ++++++++++++++++-----------
>> include/linux/mfd/htc-pasic3.h | 85 +++++++++++++++++++++++++++++++-----------
>> 2 files changed, 97 insertions(+), 42 deletions(-)
>>
>> diff --git a/drivers/mfd/htc-pasic3.c b/drivers/mfd/htc-pasic3.c
>> index e88d4f6..16e156d 100644
>> --- a/drivers/mfd/htc-pasic3.c
>> +++ b/drivers/mfd/htc-pasic3.c
>> @@ -3,6 +3,9 @@
>> *
>> * Copyright (C) 2006 Philipp Zabel <philipp.zabel@gmail.com>
>> *
>> + * 2015: Added registers for LED and RESET, see htc-pasic3.h
>> + * -- Petr Cvek
>> + *
>
> This is pretty unconventional.
>
> Please look to see what others have done.
LED support: Petr Cvek <petr.cvek@tul.cz>
OK?
>> @@ -130,6 +140,7 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> struct device *dev = &pdev->dev;
>> struct pasic3_data *asic;
>> struct resource *r;
>> + struct pasic3_leds_pdata *leds_pdata;
>> int ret;
>> int irq = 0;
>>
>> @@ -162,6 +173,8 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> /* calculate bus shift from mem resource */
>> asic->bus_shift = (resource_size(r) - 5) >> 3;
>>
>> + spin_lock_init(&asic->lock);
>> +
>> if (pdata && pdata->clock_rate) {
>> ds1wm_pdata.clock_rate = pdata->clock_rate;
>> /* the first 5 PASIC3 registers control the DS1WM */
>> @@ -172,13 +185,12 @@ static int __init pasic3_probe(struct platform_device *pdev)
>> dev_warn(dev, "failed to register DS1WM\n");
>> }
>>
>> - if (pdata && pdata->led_pdata) {
>> - led_cell.platform_data = pdata->led_pdata;
>> - led_cell.pdata_size = sizeof(struct pasic3_leds_machinfo);
>> - ret = mfd_add_devices(&pdev->dev, pdev->id, &led_cell, 1, r,
>> - 0, NULL);
>> - if (ret < 0)
>> - dev_warn(dev, "failed to register LED device\n");
>> + if (pdata && pdata->pasic3_leds) {
>> + leds_pdata = dev_get_platdata(&pdata->pasic3_leds->dev);
>
> Whoa! You're passing a pointer to a device through pdata?
>
> I don't like that at all. Please explain.
>
>> + if (leds_pdata) {
>> + leds_pdata->mfd_dev = dev;
>> + platform_device_register(pdata->pasic3_leds);
>
> What's the idea here?
Actually, I don't know how to do this in a clean way as pasic3_read_register() and pasic3_write_register() require device struct to pass address for accessing the registers. Only way would be to rewrite all functions which call pasic3_*_register() (removing struct device *dev and change it to struct pasic3_data *asic).
Petr
next prev parent reply other threads:[~2015-08-18 21:01 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1439843482.git.petr.cvek@tul.cz>
2015-08-17 21:56 ` [PATCH v2 01/21] ARM: pxa: magician: Fix Kconfig for magician to always include htc-egpio Petr Cvek
2015-08-17 21:56 ` Petr Cvek
2015-08-18 18:31 ` Robert Jarzmik
2015-08-18 18:31 ` Robert Jarzmik
2015-08-18 20:02 ` Petr Cvek
2015-08-18 20:02 ` Petr Cvek
2015-08-19 7:29 ` Philipp Zabel
2015-08-19 7:29 ` Philipp Zabel
2015-08-24 3:39 ` Petr Cvek
2015-08-24 3:39 ` Petr Cvek
2015-08-17 21:56 ` [PATCH v2 02/21] ARM: pxa: magician: Fix indentation and whitespaces Petr Cvek
2015-08-17 21:56 ` Petr Cvek
2015-08-18 18:32 ` Robert Jarzmik
2015-08-18 18:32 ` Robert Jarzmik
2015-08-19 7:42 ` Philipp Zabel
2015-08-19 7:42 ` Philipp Zabel
2015-08-17 21:57 ` [PATCH v2 03/21] ARM: pxa: magician: Fix comments, debug functions and print strings Petr Cvek
2015-08-17 21:57 ` Petr Cvek
2015-08-18 18:39 ` Robert Jarzmik
2015-08-18 18:39 ` Robert Jarzmik
2015-08-18 23:09 ` Petr Cvek
2015-08-18 23:09 ` Petr Cvek
2015-08-19 7:57 ` Philipp Zabel
2015-08-19 7:57 ` Philipp Zabel
2015-08-17 21:58 ` [PATCH v2 04/21] ARM: pxa: magician: Add, fix and init (new) GPIOs Petr Cvek
2015-08-17 21:58 ` Petr Cvek
2015-08-18 19:01 ` Robert Jarzmik
2015-08-18 19:01 ` Robert Jarzmik
2015-08-18 22:46 ` Petr Cvek
2015-08-18 22:46 ` Petr Cvek
2015-08-17 21:58 ` [PATCH v2 05/21] ARM: pxa: magician: Add support for ADS7846 touchscreen Petr Cvek
2015-08-17 21:58 ` Petr Cvek
2015-08-19 18:41 ` Robert Jarzmik
2015-08-19 18:41 ` Robert Jarzmik
2015-08-17 21:59 ` [PATCH v2 06/21] ARM: pxa: magician: Add normal and power I2C definition Petr Cvek
2015-08-17 21:59 ` Petr Cvek
2015-08-19 8:02 ` Philipp Zabel
2015-08-19 8:02 ` Philipp Zabel
2015-08-19 18:41 ` Robert Jarzmik
2015-08-19 18:41 ` Robert Jarzmik
2015-08-17 21:59 ` [PATCH v2 07/21] ARM: pxa: magician: Fix IrDA pdata and redundant GPIO request Petr Cvek
2015-08-17 21:59 ` Petr Cvek
2015-08-19 18:41 ` Robert Jarzmik
2015-08-19 18:41 ` Robert Jarzmik
2015-08-17 22:00 ` [PATCH v2 08/21] ARM: pxa: magician: Add StrataFlash Vpp GPIO and alternative driver Petr Cvek
2015-08-17 22:00 ` Petr Cvek
2015-08-17 22:01 ` [PATCH v2 09/21] ARM: pxa: magician: Add OV9640 camera support Petr Cvek
2015-08-17 22:01 ` Petr Cvek
2015-08-20 19:48 ` Robert Jarzmik
2015-08-20 19:48 ` Robert Jarzmik
2015-08-20 20:26 ` Arnd Bergmann
2015-08-20 20:26 ` Arnd Bergmann
2015-08-20 22:39 ` Petr Cvek
2015-08-20 22:39 ` Petr Cvek
2015-08-21 13:45 ` Arnd Bergmann
2015-08-21 13:45 ` Arnd Bergmann
2015-08-21 17:36 ` Robert Jarzmik
2015-08-21 22:09 ` Petr Cvek
2015-08-21 22:09 ` Petr Cvek
2015-08-22 12:41 ` Robert Jarzmik
2015-08-22 12:41 ` Robert Jarzmik
2015-08-24 6:53 ` Lee Jones
2015-08-24 6:53 ` Lee Jones
2015-08-17 22:01 ` [PATCH v2 10/21] ARM: pxa: magician: Add UDA1380 sound support Petr Cvek
2015-08-17 22:01 ` Petr Cvek
2015-08-20 19:51 ` Robert Jarzmik
2015-08-20 19:51 ` Robert Jarzmik
2015-08-20 23:01 ` Petr Cvek
2015-08-20 23:01 ` Petr Cvek
2015-08-28 8:48 ` Robert Jarzmik
2015-08-28 8:48 ` Robert Jarzmik
2015-08-17 22:01 ` [PATCH v2 11/21] ARM: pxa: magician: Add MAX1586 Vcore regulator support Petr Cvek
2015-08-17 22:01 ` Petr Cvek
2015-08-20 19:32 ` Robert Jarzmik
2015-08-20 19:32 ` Robert Jarzmik
2015-08-20 22:33 ` Petr Cvek
2015-08-20 22:33 ` Petr Cvek
2015-08-28 8:49 ` Robert Jarzmik
2015-08-28 8:49 ` Robert Jarzmik
2015-08-17 22:02 ` [PATCH v2 12/21] ARM: pxa: magician: Add PXA27x UDC support Petr Cvek
2015-08-17 22:02 ` Petr Cvek
2015-08-20 17:23 ` Robert Jarzmik
2015-08-20 17:23 ` Robert Jarzmik
2015-08-20 22:21 ` Petr Cvek
2015-08-20 22:21 ` Petr Cvek
2015-08-28 9:58 ` Robert Jarzmik
2015-08-28 9:58 ` Robert Jarzmik
2015-08-17 22:03 ` [PATCH v2 13/21] ARM: pxa: magician: Fix charging source and add NiCd backup charging Petr Cvek
2015-08-17 22:03 ` Petr Cvek
2015-08-17 22:18 ` Petr Cvek
2015-08-17 22:18 ` Petr Cvek
2015-08-17 22:03 ` [PATCH v2 14/21] ARM: pxa: magician: Fix PXA USB OHCI port enable flags Petr Cvek
2015-08-17 22:03 ` Petr Cvek
2015-08-17 22:03 ` [PATCH v2 15/21] ARM: pxa: magician: Fix PWM backlight regulator Petr Cvek
2015-08-17 22:03 ` Petr Cvek
2015-08-20 19:58 ` Robert Jarzmik
2015-08-20 19:58 ` Robert Jarzmik
2015-08-17 22:04 ` [PATCH v2 16/21] ARM: pxa: magician: Add support for alternative LCD backlight Petr Cvek
2015-08-17 22:04 ` Petr Cvek
2015-08-20 20:01 ` Robert Jarzmik
2015-08-20 20:01 ` Robert Jarzmik
2015-08-23 20:55 ` Petr Cvek
2015-08-23 20:55 ` Petr Cvek
2015-08-24 8:25 ` Robert Jarzmik
2015-08-24 8:25 ` Robert Jarzmik
2015-08-17 22:04 ` [PATCH v2 17/21] ARM: pxa: magician: Remove (temporarily) pasic3 LED support Petr Cvek
2015-08-17 22:04 ` Petr Cvek
2015-08-22 16:25 ` Robert Jarzmik
2015-08-22 16:25 ` Robert Jarzmik
2015-08-17 22:05 ` [PATCH v2 18/21] mfd: htc-pasic3: Prepare driver for leds-pasic3 Petr Cvek
2015-08-17 22:05 ` Petr Cvek
2015-08-18 6:52 ` Lee Jones
2015-08-18 6:52 ` Lee Jones
2015-08-18 21:01 ` Petr Cvek [this message]
2015-08-18 21:01 ` Petr Cvek
2015-08-19 6:58 ` Lee Jones
2015-08-19 6:58 ` Lee Jones
2015-08-17 22:06 ` [PATCH v2 19/21] leds: leds-pasic3: Add support for PASIC3 LED controller Petr Cvek
2015-08-17 22:06 ` Petr Cvek
2015-08-17 22:14 ` Petr Cvek
2015-08-17 22:14 ` Petr Cvek
2015-08-18 10:27 ` Jacek Anaszewski
2015-08-18 10:27 ` Jacek Anaszewski
2015-08-18 21:48 ` Petr Cvek
2015-08-18 21:48 ` Petr Cvek
2015-08-19 8:09 ` Philipp Zabel
2015-08-19 8:09 ` Philipp Zabel
2015-08-19 8:49 ` Jacek Anaszewski
2015-08-19 8:49 ` Jacek Anaszewski
2015-08-17 22:06 ` [PATCH v2 20/21] ARM: pxa: magician: Re-add pdata for new leds-pasic3 driver Petr Cvek
2015-08-17 22:06 ` Petr Cvek
2015-08-17 22:07 ` [PATCH v2 21/21] ARM: pxa: magician: Move platform_add_devices() to the end of magician_init() Petr Cvek
2015-08-17 22:07 ` Petr Cvek
2015-08-22 16:27 ` Robert Jarzmik
2015-08-22 16:27 ` Robert Jarzmik
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=55D39D25.7010909@tul.cz \
--to=petr.cvek@tul.cz \
--cc=cooloney@gmail.com \
--cc=daniel@zonque.org \
--cc=dbaryshkov@gmail.com \
--cc=dwmw2@infradead.org \
--cc=haojian.zhuang@gmail.com \
--cc=j.anaszewski@samsung.com \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=philipp.zabel@gmail.com \
--cc=robert.jarzmik@free.fr \
--cc=rpurdie@rpsys.net \
--cc=sameo@linux.intel.com \
--cc=sre@kernel.org \
/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.