Re: [PATCH v2 05/13] HID: playstation: add DualSense accelerometer and gyroscope support.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Roderick,

Is there any way to align the sensor timestamps with the real clock on
this new device? If so, there's input_set_timestamp api [0] that could
be used for setting the timestamps of the actual input_events rather
than having to send out parallel MSC_TIMESTAMP messages. It would make
it easier for user space to process these events.

[0] https://patchwork.kernel.org/project/linux-input/patch/20190718194133.64034-1-atifniyaz@xxxxxxxxxx/


On Fri, Jan 8, 2021 at 2:03 AM Barnabás Pőcze <pobrn@xxxxxxxxxxxxxx> wrote:
>
> Hi
>
>
> 2021. január 8., péntek 7:06 keltezéssel, Roderick Colenbrander írta:
>
> > [...]
> > > > +static int dualsense_get_calibration_data(struct dualsense *ds)
> > > > +{
> > > > +     short gyro_pitch_bias, gyro_pitch_plus, gyro_pitch_minus;
> > > > +     short gyro_yaw_bias, gyro_yaw_plus, gyro_yaw_minus;
> > > > +     short gyro_roll_bias, gyro_roll_plus, gyro_roll_minus;
> > > > +     short gyro_speed_plus, gyro_speed_minus;
> > > > +     short acc_x_plus, acc_x_minus;
> > > > +     short acc_y_plus, acc_y_minus;
> > > > +     short acc_z_plus, acc_z_minus;
> > > > +     int speed_2x;
> > > > +     int range_2g;
> > > > +     int ret = 0;
> > > > +     uint8_t *buf;
> > > > +
> > > > +     buf = kzalloc(DS_FEATURE_REPORT_CALIBRATION_SIZE, GFP_KERNEL);
> > > > +     if (!buf)
> > > > +             return -ENOMEM;
> > > > +
> > > > +     ret = hid_hw_raw_request(ds->base.hdev, DS_FEATURE_REPORT_CALIBRATION, buf,
> > > > +                     DS_FEATURE_REPORT_CALIBRATION_SIZE, HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
> > >
> > > I think it would be better if lines were aligned. I have missed this in other patches,
> > > so if you decide to make this change, please do it everywhere.
> >
> > What do you mean with "if lines were aligned"? You mean aligning the
> > DS_FEATURE.. part with ds->base.hdev?
>
> Yes, exactly.
>
>
> >
> > I'm almost tempted in the future (as part of a future patch series) to
> > perhaps have a ps_device_get_feature_report or something like that as
> > there is the same code in multiple places. It can do some nicer
> > checking as well (including to see if the first byte is the report ID
> > number, which is guaranteed for DualSense). I think it is a bit much
> > to add now, but probably in the future also when I add DualShock 4 in
> > here.
>
> I think it's a good idea to add such a function sometime.
>
>
> >
> > >
> > > > +     if (ret < 0)
> > > > +             goto err_free;
> > > > +     else if (ret != DS_FEATURE_REPORT_CALIBRATION_SIZE) {
> > >
> > > As per coding style[1], please either use {} for all branches, or just drop the
> > > `else` and maybe add a new line:
> > >
> > > ```
> > > if (ret < 0)
> > >   goto ...
> > >
> > > if (ret != ...) {
> > >   ...
> > > }
> > > ```
> > >
> > >
> > > > +             hid_err(ds->base.hdev, "failed to retrieve DualSense calibration info\n");
> > >
> > > I think this message could be improved to better pinpoint the exact problem
> > > that triggered it.
> > >
> > >
> > > > +             ret = -EINVAL;
> > > > +             goto err_free;
> > > > +     }
> > [...]
>
>
> Regards,
> Barnabás Pőcze




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux