From: Trilok Soni <tsoni@codeaurora.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Anirudh Ghayal <aghayal@codeaurora.org>,
linux-kernel@vger.kernel.org, linux-input@vger.kernel.org,
rtc-linux@googlegroups.com, linux-arm-msm@vger.kernel.org,
Amy Maloche <amaloche@codeaurora.org>,
Mohan Pallaka <mpallaka@codeaurora.org>
Subject: Re: [RFC v2 PATCH 7/7] input: misc: Add support for PM8058 based vibrator driver
Date: Wed, 02 Feb 2011 14:23:57 +0530 [thread overview]
Message-ID: <4D491BA5.5080107@codeaurora.org> (raw)
In-Reply-To: <20110202083315.GA23573@core.coreip.homeip.net>
Hi Dmitry,
On 2/2/2011 2:03 PM, Dmitry Torokhov wrote:
> Hi Anirudh,
>
> On Tue, Feb 01, 2011 at 07:17:43PM +0530, Anirudh Ghayal wrote:
>> +
>> +#include <linux/mfd/pmic8058.h>
>> +#include <linux/input/pmic8058-vibrator.h>
>
> Where is this header file? Shouldn't it be part of this patch?
Looks like someone forgot "git add" on it. We will fix this in v3.
>
>> +
>> +#define VIB_DRV 0x4A
>> +
>> +#define VIB_DRV_SEL_MASK 0xf8
>> +#define VIB_DRV_SEL_SHIFT 0x03
>> +#define VIB_DRV_EN_MANUAL_MASK 0xfc
>> +
>> +#define VIB_MAX_LEVEL_mV (3100)
>> +#define VIB_MIN_LEVEL_mV (1200)
>> +#define VIB_MAX_LEVELS (VIB_MAX_LEVEL_mV - VIB_MIN_LEVEL_mV)
>> +
>> +#define MAX_FF_SPEED 0xff
>> +
>> +/*
>> + * struct pmic8058_vib - structure to hold vibrator data
>> + * vib_input_dev: input device supporting force feedback
>> + * work: work structure to set the vibration parameters
>> + * dev: device supporting force feedback
>> + * pdata: platform data
>> + * pm_chip: reference to pmic chip to carry out read/write operations
>> + * speed: speed of vibration set from userland
>> + * state: state of vibrator
>> + * level: level of vibration to set in the chip
>> + * reg_vib_drv: VIB_DRV register value
>
> Hmm, this is kind of kerneldoc but not quite (kerneldoc's arguments
> start with '@').
Ack. It will be fixed.
>> +
>> +static int __devinit pmic8058_vib_probe(struct platform_device *pdev)
>> +
>> +{
>> + struct pm8058_chip *pm_chip;
>> + struct pmic8058_vib *vib;
>> + const struct pmic8058_vibrator_pdata *pdata = pdev->dev.platform_data;
>> + int rc;
>> + u8 val;
>> +
>> + pm_chip = platform_get_drvdata(pdev);
>
> The parent should not abuse platform data of _this_ device, it belongs
> to this driver. In fact you overwrite it with pmic8058_vib below, which
> means that you can't unbind the driver and bind it again.
>
> Please find other way to pass pm_chip.
This will be fixed through pmic8058 core driver, when we submit. We are aware of it,
and the all the sub-device driver will be changed to do it properly once we release
them again with pmic core driver submission.
>> +
>> + platform_set_drvdata(pdev, vib);
>> +
>> + rc = input_register_device(vib->vib_input_dev);
>> + if (rc < 0) {
>> + dev_dbg(&pdev->dev, "couldn't register input device\n");
>> + goto err_reg_input_dev;
>> + }
>
> platform_set_drvdata(pdev, vib) should go here so you do not need to
> clean it if input_register_device() fails.
Ack
>> +
>> +static int __devexit pmic8058_vib_remove(struct platform_device *pdev)
>> +{
>> + struct pmic8058_vib *vib = platform_get_drvdata(pdev);
>> +
>> + cancel_work_sync(&vib->work);
>> + if (vib->state)
>> + pmic8058_vib_set(vib, 0);
>
> This should probably be part of pmic8058_vib_close() method.
>
Ok. We will check and fix.
>> +
>> + input_unregister_device(vib->vib_input_dev);
>> + kfree(vib);
>
> Need to call platform_set_drvdata(pdev, NULL);
Ack.
>
> What about PM? Do you need to shut off vibration if device goes to sleep?
Yes. Let me check and add it to v3 patch series.
I will drop the PMIC8058 OTHC from v3 series, as Mark suggested to explore ASoC way of
doing it.
---Trilok Soni
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
prev parent reply other threads:[~2011-02-02 8:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-01 13:47 [RFC v2 PATCH 0/7] Qualcomm PMIC8058 sub-device drivers Anirudh Ghayal
2011-02-01 13:47 ` [RFC v2 PATCH 1/7] matrix_keypad: Increase the max limit of rows and columns Anirudh Ghayal
2011-02-09 8:02 ` Eric Miao
2011-02-10 12:20 ` Trilok Soni
2011-02-10 12:40 ` Eric Miao
2011-02-01 13:47 ` [RFC v2 PATCH 2/7] input: pm8058_keypad: Qualcomm PMIC8058 keypad controller driver Anirudh Ghayal
2011-02-01 13:47 ` [RFC v2 PATCH 3/7] led: pmic8058: Add PMIC8058 leds driver Anirudh Ghayal
2011-02-06 1:47 ` Lars-Peter Clausen
2011-02-01 13:47 ` [RFC v2 PATCH 4/7] input: pmic8058_pwrkey: Add support for power key Anirudh Ghayal
2011-02-01 17:49 ` Dmitry Torokhov
2011-02-02 7:43 ` Trilok Soni
2011-02-01 13:47 ` [RFC v2 PATCH 5/7] input: pmic8058-othc: Add support for PM8058 based OTHC Anirudh Ghayal
2011-02-01 14:33 ` [rtc-linux] " Mark Brown
2011-02-02 7:51 ` Trilok Soni
2011-02-01 13:47 ` [RFC v2 PATCH 6/7] drivers: rtc: Add support for Qualcomm PMIC8058 RTC Anirudh Ghayal
2011-02-01 13:47 ` [RFC v2 PATCH 7/7] input: misc: Add support for PM8058 based vibrator driver Anirudh Ghayal
2011-02-02 8:33 ` Dmitry Torokhov
2011-02-02 8:53 ` Trilok Soni [this message]
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=4D491BA5.5080107@codeaurora.org \
--to=tsoni@codeaurora.org \
--cc=aghayal@codeaurora.org \
--cc=amaloche@codeaurora.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpallaka@codeaurora.org \
--cc=rtc-linux@googlegroups.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).