linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Tissoires <benjamin.tissoires@gmail.com>
To: Jean Delvare <khali@linux-fr.org>
Cc: Jiri Kosina <jkosina@suse.cz>,
	linux-input@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 09/14] HID: i2c-hid: i2c_hid_get_report may fail
Date: Wed, 5 Dec 2012 11:07:17 +0100	[thread overview]
Message-ID: <CAN+gG=EqRgaUCg=Af_LtU6ez+x+gf=s+TM2h5v9dtTx0uQwLHg@mail.gmail.com> (raw)
In-Reply-To: <20121205105917.291f483f@endymion.delvare>

On Wed, Dec 5, 2012 at 10:59 AM, Jean Delvare <khali@linux-fr.org> wrote:
> On Tue,  4 Dec 2012 16:27:50 +0100, Benjamin Tissoires wrote:
>> If i2c_hid_get_report fails, exit i2c_hid_init_report.
>> The printk log is already called by i2c_hid_get_report, so no need
>> to add some more printks.
>>
>> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
>> ---
>>  drivers/hid/i2c-hid/i2c-hid.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
>> index da04948..dcacfc4 100644
>> --- a/drivers/hid/i2c-hid/i2c-hid.c
>> +++ b/drivers/hid/i2c-hid/i2c-hid.c
>> @@ -400,9 +400,10 @@ static void i2c_hid_init_report(struct hid_report *report, u8 *buffer,
>>       unsigned int size, ret_size;
>>
>>       size = i2c_hid_get_report_length(report);
>> -     i2c_hid_get_report(client,
>> +     if (i2c_hid_get_report(client,
>>                       report->type == HID_FEATURE_REPORT ? 0x03 : 0x01,
>> -                     report->id, buffer, size);
>> +                     report->id, buffer, size))
>> +             return;
>>
>>       i2c_hid_dbg(ihid, "report (len=%d): %*ph\n", size, size, ihid->inbuf);
>>
>
> OK, although I don't quite get the rationale for not reporting the
> errors from i2c_hid_init_report() and i2c_hid_init_reports() to their
> respective callers. Does the device have any chance to work properly if
> i2c_hid_init_reports() fails?

Hi Jean,

first thanks for the review you have started.

For your question, the answer is yes, the device works properly even
if i2c_hid_init_reports().
IIRC, the only required steps are:
- get HID descriptor
- get HID report descriptors
- send reset
- set power on

 i2c_hid_init_reports is not part of the specification for the boot
process, and the Windows driver does not retrieve the reports for
input reports at all (it does it though for the features).
Actually, the device I have does not implement get_report for inputs
(it returns 0), but it's not a problem for it to work.

I put the whole init_reports in place to get the features values
before sending them to the hid driver, and also to copy the behavior
of usbhid.

Cheers,
Benjamin

>
> Reviewed-by: Jean Delvare <khali@linux-fr.org>
>
> --
> Jean Delvare

  reply	other threads:[~2012-12-05 10:07 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-04 15:27 [PATCH 00/14] i2c-hid cleanup and bug fixes Benjamin Tissoires
2012-12-04 15:27 ` [PATCH 01/14] HID: i2c-hid: change I2C name Benjamin Tissoires
2012-12-04 16:07   ` Jean Delvare
2012-12-05  9:52     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 02/14] HID: i2c-hid: fix memory corruption due to missing hid declaration Benjamin Tissoires
2012-12-04 21:42   ` Jean Delvare
2012-12-05 10:10     ` Benjamin Tissoires
2012-12-05 10:13       ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 03/14] HID: i2c-hid: enhance Kconfig Benjamin Tissoires
2012-12-04 21:43   ` Jean Delvare
2012-12-05  9:55     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 04/14] HID: i2c-hid: fix checkpatch.pl warning Benjamin Tissoires
2012-12-04 21:43   ` Jean Delvare
2012-12-05  9:55     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 05/14] HID: i2c-hid: fix i2c_hid_dbg macro Benjamin Tissoires
2012-12-04 21:49   ` Jean Delvare
2012-12-05  9:56     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 06/14] HID: i2c-hid: remove unused static declarations Benjamin Tissoires
2012-12-04 21:51   ` Jean Delvare
2012-12-05 10:03     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 07/14] HID: i2c-hid: fix return paths Benjamin Tissoires
2012-12-05  9:47   ` Jean Delvare
2012-12-05 10:05   ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 08/14] HID: i2c-hid: fix error messages Benjamin Tissoires
2012-12-05  9:51   ` Jean Delvare
2012-12-05 10:07     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 09/14] HID: i2c-hid: i2c_hid_get_report may fail Benjamin Tissoires
2012-12-05  9:59   ` Jean Delvare
2012-12-05 10:07     ` Benjamin Tissoires [this message]
2012-12-05 10:28   ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 10/14] HID: i2c-hid: reorder allocation/free of buffers Benjamin Tissoires
2012-12-05 10:10   ` Jean Delvare
2012-12-05 10:12     ` Benjamin Tissoires
2012-12-04 15:27 ` [PATCH 11/14] HID: i2c-hid: remove unneeded test in i2c_hid_remove Benjamin Tissoires
2012-12-05 10:13   ` Jean Delvare
2012-12-05 10:30     ` Jiri Kosina
2012-12-04 15:27 ` [PATCH 12/14] HID: i2c-hid: remove extra .irq field in struct i2c_hid Benjamin Tissoires
2012-12-05 10:29   ` Jean Delvare
2012-12-04 15:27 ` [PATCH 13/14] HID: i2c-hid: also call i2c_hid_free_buffers in i2c_hid_remove Benjamin Tissoires
2012-12-05 10:27   ` Jiri Kosina
2012-12-05 10:32   ` Jean Delvare
2012-12-04 15:27 ` [PATCH 14/14] HID: i2c-hid: fix i2c_hid_get_raw_report count mismatches Benjamin Tissoires
2012-12-05 10:40   ` Benjamin Tissoires

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='CAN+gG=EqRgaUCg=Af_LtU6ez+x+gf=s+TM2h5v9dtTx0uQwLHg@mail.gmail.com' \
    --to=benjamin.tissoires@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=khali@linux-fr.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.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 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).