Re: [PATCH v7 3/4] SFH: Transport Driver to add support of AMD Sensor Fusion Hub (SFH)

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

 



On Tue, Aug 11, 2020 at 12:31 AM Sandeep Singh <Sandeep.Singh@xxxxxxx> wrote:

> This part of module will provide the interaction between HID framework

of the module

> and client layer.This module will registered client layer with

register

> HID framework.

...

> +/*

Is it kernel doc or not? Fix this in all occurrences.

> + * amdtp_hid_parse() - hid-core .parse() callback
> + * @hid:       hid device instance
> + *
> + * This function gets called during call to hid_add_device
> + *
> + * Return: 0 on success and non zero on error
> + */

...

> +static void amdtp_hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype)
> +{
> +       int rc;
> +
> +       switch (reqtype) {
> +       case HID_REQ_GET_REPORT:
> +               rc = amd_sfh_get_report(hid, rep->id, rep->type);
> +               if (rc)
> +                       pr_err("AMDSFH  get report error ");

Use dev_err() and similar in the other places.

> +               break;
> +       case HID_REQ_SET_REPORT:
> +               amd_sfh_set_report(hid, rep->id, reqtype);
> +               break;
> +       default:
> +               break;
> +       }
> +}

...

> +       if (!cli_data->request_done[i])
> +               ret = wait_event_interruptible_timeout(hid_data->hid_wait,
> +                                                      cli_data->request_done[i], 1500);

Magic number!

> +       if (ret > 0)
> +               return 0;

Usually we return errors first...

> +       else if (ret == -ERESTARTSYS)
> +               return -ERESTARTSYS;
> +       else
> +               return -ETIMEDOUT;
> +}

...

> +       hid = hid_allocate_device();
> +       if (IS_ERR(hid)) {

> +               rc = PTR_ERR(hid);
> +               return rc;

Why do you need two lines here?

> +       }

...

> +       hid_data = kzalloc(sizeof(*hid_data), GFP_KERNEL);

devm_kzalloc() ?

> +       if (!hid_data) {
> +               rc = -ENOMEM;
> +               goto err_hid_data;
> +       }

...

> +#define AMD_SFH_HID_VENDOR     1022

Decimal?!

> +#define AMD_SFH_HID_PRODUCT    0x0001

...

> +#include <linux/dma-mapping.h>
> +#include <linux/hid.h>
> +#include <linux/list.h>
> +#include <linux/slab.h>
> +#include <linux/workqueue.h>

> +#include <uapi/asm-generic/errno-base.h>

Huh?! linux/errno.h

+ blank line here.

> +#include "hid_descriptor/amd_sfh_hid_descriptor.h"
> +#include "amdsfh_hid.h"
> +#include "amd_mp2_pcie.h"

...

> +#define PERIOD  200

Too generic name (namespace?), absence of unit.

...

> +       for (i = 0; i < cli_data->num_hid_devices; i++) {
> +               if (cli_data->hid_sensor_hubs[i] == hid) {

if (!...)
  continue;

?

> +                       struct request_list *new = kzalloc(sizeof(*new), GFP_KERNEL);
> +
> +                       if (!new)
> +                               return -ENOMEM;
> +                       new->current_index = i;
> +                       new->sensor_idx = cli_data->sensor_idx[i];
> +                       new->hid = hid;
> +                       new->report_type = report_type;
> +                       new->report_id = report_id;
> +                       cli_data->report_id[i] = report_id;
> +                       cli_data->request_done[i] = false;
> +                       list_add(&new->list, &req_list.list);
> +                       break;
> +               }
> +       }

-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux