On Tue, Apr 12, 2016 at 02:43:36PM +0300, Heikki Krogerus wrote:
> +     ucsi.usb_data_role=

Ick, this isn't the 1990's anymore, please don't use module parameters
for anything that is required for a driver.  Make it automatic if at all
possible, and if not, then make it at the least, a per-device attribute.

> +struct ucsi {
> +     struct device *dev;
> +     struct ucsi_data __iomem *data;
> +
> +     int status;
> +     struct completion complete;
> +     struct ucsi_capability cap;
> +     struct ucsi_connector *connector;
> +
> +     struct mutex ppm_lock;

What does this lock?  Document it please.

> +     atomic_t event_pending;

Your atomic_t is a poor-man's lock, I don't see why it's even needed.
If you feel you need to keep it around, you better document the heck out
of it proving that you used it correctly everywhere (hint, I saw a few
places it was not used correctly...)




> +};
> +
> +static char data_role[7];
> +module_param_string(usb_data_role, data_role, sizeof(data_role), 0644);
> +MODULE_PARM_DESC(usb_data_role, " USB Data Role - host or device");

Again, don't use module parameters.

> +static void ucsi_acpi_notify(acpi_handle handle, u32 event, void *data)
> +{
> +     struct ucsi *ucsi = data;
> +     u32 cci = ucsi->data->cci;
> +
> +     dev_dbg(ucsi->dev, "%s: cci 0x%x\n", __func__, cci);

Delete all of your debugging code please, that's what ftrace is for.

> +             if (!atomic_read(&ucsi->event_pending)) {
> +                     atomic_inc(&ucsi->event_pending);

Oh look, a bug :(

Again, document it if you think you need it, but really, I think you can
get rid of it entirely.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to