RE: [RFC PATCH v9 03/10] dpll: core: Add DPLL framework base functions

Kubalewski, Arkadiusz
2023-07-10T09:57:33Z

>From: Jiri Pirko <jiri@resnulli.us>
>Sent: Thursday, June 29, 2023 10:14 AM
>
>Fri, Jun 23, 2023 at 02:38:13PM CEST, arkadiusz.kubalewski@intel.com wrote:
>>From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
>>
>
>One thing I forgot to point out the last time:
>
>[...]
>
>>+int
>>+dpll_pin_register(struct dpll_device *dpll, struct dpll_pin *pin,
>>+ const struct dpll_pin_ops *ops, void *priv)
>>+{
>>+ int ret;
>>+
>>+ if (WARN_ON(!ops) ||
>>+ WARN_ON(!ops->state_on_dpll_get) ||
>>+ WARN_ON(!ops->direction_get))
>
>Please add check that you don't register to dpll instance which is
>unregistered. Similar check needs to be added to pin_on_pin register.
>
>Also, make sure you don't unregister dpll device/pin which has child
>pins registered under it.
>

Fixed for v10.

Thank you!
Arkadiusz

>
>>+ return -EINVAL;
>>+
>>+ mutex_lock(&dpll_lock);
>>+ if (WARN_ON(!(dpll->module == pin->module &&
>>+ dpll->clock_id == pin->clock_id)))
>>+ ret = -EINVAL;
>>+ else
>>+ ret = __dpll_pin_register(dpll, pin, ops, priv);
>>+ mutex_unlock(&dpll_lock);
>>+
>>+ return ret;
>>+}
>
> …