2019-07-19 09:59:29

by Marek Szyprowski

[permalink] [raw]
Subject: [PATCH] phy: core: document calibrate() method

Commit 36914111e682 ("drivers: phy: add calibrate method") added support
for generic phy_calibrate() method, but it didn't explain in detail when
such method is supposed to be called. Add some more documentation directly
to the phy.h to make it clean that it is intended to be called after every
host controller reset.

Signed-off-by: Marek Szyprowski <[email protected]>
---
include/linux/phy/phy.h | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
index 15032f145063..46775e8b0ed9 100644
--- a/include/linux/phy/phy.h
+++ b/include/linux/phy/phy.h
@@ -101,6 +101,18 @@ struct phy_ops {
int (*validate)(struct phy *phy, enum phy_mode mode, int submode,
union phy_configure_opts *opts);
int (*reset)(struct phy *phy);
+
+ /**
+ * @calibrate:
+ *
+ * Optional.
+ *
+ * Used to calibrate phy, typically by adjusting some parameters
+ * in runtime, which are otherwise lost after host controller
+ * reset and cannot be set in phy_init() and phy_power_on().
+ *
+ * Returns: 0 if successful, an negative error code otherwise
+ */
int (*calibrate)(struct phy *phy);
void (*release)(struct phy *phy);
struct module *owner;
--
2.17.1


2019-07-19 10:07:30

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: Re: [PATCH] phy: core: document calibrate() method

Hi Marek,

On 19/07/19 3:22 PM, Marek Szyprowski wrote:
> Commit 36914111e682 ("drivers: phy: add calibrate method") added support
> for generic phy_calibrate() method, but it didn't explain in detail when
> such method is supposed to be called. Add some more documentation directly
> to the phy.h to make it clean that it is intended to be called after every
> host controller reset.
>
> Signed-off-by: Marek Szyprowski <[email protected]>
> ---
> include/linux/phy/phy.h | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
> index 15032f145063..46775e8b0ed9 100644
> --- a/include/linux/phy/phy.h
> +++ b/include/linux/phy/phy.h
> @@ -101,6 +101,18 @@ struct phy_ops {
> int (*validate)(struct phy *phy, enum phy_mode mode, int submode,
> union phy_configure_opts *opts);
> int (*reset)(struct phy *phy);
> +
> + /**
> + * @calibrate:
> + *
> + * Optional.
> + *
> + * Used to calibrate phy, typically by adjusting some parameters
> + * in runtime, which are otherwise lost after host controller
> + * reset and cannot be set in phy_init() and phy_power_on().
> + *
> + * Returns: 0 if successful, an negative error code otherwise
> + */
> int (*calibrate)(struct phy *phy);

This should be added in drivers/phy/phy-core.c before phy_calibrate()? We could
add a separate section in Documentation/phy.txt to document these phy_ops.

Thanks
Kishon

2019-07-19 12:29:27

by Kishon Vijay Abraham I

[permalink] [raw]
Subject: Re: [PATCH] phy: core: document calibrate() method

Hi Marek,

On 19/07/19 5:51 PM, Marek Szyprowski wrote:
> Hi Kishon,
>
> On 2019-07-19 12:04, Kishon Vijay Abraham I wrote:
>> Hi Marek,
>>
>> On 19/07/19 3:22 PM, Marek Szyprowski wrote:
>>> Commit 36914111e682 ("drivers: phy: add calibrate method") added support
>>> for generic phy_calibrate() method, but it didn't explain in detail when
>>> such method is supposed to be called. Add some more documentation directly
>>> to the phy.h to make it clean that it is intended to be called after every
>>> host controller reset.
>>>
>>> Signed-off-by: Marek Szyprowski <[email protected]>
>>> ---
>>> include/linux/phy/phy.h | 12 ++++++++++++
>>> 1 file changed, 12 insertions(+)
>>>
>>> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
>>> index 15032f145063..46775e8b0ed9 100644
>>> --- a/include/linux/phy/phy.h
>>> +++ b/include/linux/phy/phy.h
>>> @@ -101,6 +101,18 @@ struct phy_ops {
>>> int (*validate)(struct phy *phy, enum phy_mode mode, int submode,
>>> union phy_configure_opts *opts);
>>> int (*reset)(struct phy *phy);
>>> +
>>> + /**
>>> + * @calibrate:
>>> + *
>>> + * Optional.
>>> + *
>>> + * Used to calibrate phy, typically by adjusting some parameters
>>> + * in runtime, which are otherwise lost after host controller
>>> + * reset and cannot be set in phy_init() and phy_power_on().
>>> + *
>>> + * Returns: 0 if successful, an negative error code otherwise
>>> + */
>>> int (*calibrate)(struct phy *phy);
>> This should be added in drivers/phy/phy-core.c before phy_calibrate()?
>
> Okay. Do you want to keep it also in phy.h (like for validate and
> configure)?

No. Adding in phy.txt and before phy_calibrate() should suffice IMO.

Thanks
Kishon

2019-07-19 13:14:37

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH] phy: core: document calibrate() method

Hi Kishon,

On 2019-07-19 12:04, Kishon Vijay Abraham I wrote:
> Hi Marek,
>
> On 19/07/19 3:22 PM, Marek Szyprowski wrote:
>> Commit 36914111e682 ("drivers: phy: add calibrate method") added support
>> for generic phy_calibrate() method, but it didn't explain in detail when
>> such method is supposed to be called. Add some more documentation directly
>> to the phy.h to make it clean that it is intended to be called after every
>> host controller reset.
>>
>> Signed-off-by: Marek Szyprowski <[email protected]>
>> ---
>> include/linux/phy/phy.h | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
>> index 15032f145063..46775e8b0ed9 100644
>> --- a/include/linux/phy/phy.h
>> +++ b/include/linux/phy/phy.h
>> @@ -101,6 +101,18 @@ struct phy_ops {
>> int (*validate)(struct phy *phy, enum phy_mode mode, int submode,
>> union phy_configure_opts *opts);
>> int (*reset)(struct phy *phy);
>> +
>> + /**
>> + * @calibrate:
>> + *
>> + * Optional.
>> + *
>> + * Used to calibrate phy, typically by adjusting some parameters
>> + * in runtime, which are otherwise lost after host controller
>> + * reset and cannot be set in phy_init() and phy_power_on().
>> + *
>> + * Returns: 0 if successful, an negative error code otherwise
>> + */
>> int (*calibrate)(struct phy *phy);
> This should be added in drivers/phy/phy-core.c before phy_calibrate()?

Okay. Do you want to keep it also in phy.h (like for validate and
configure)?


> We could
> add a separate section in Documentation/phy.txt to document these phy_ops.

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

2019-07-22 17:43:45

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH] phy: core: document calibrate() method

Hi Kishon,

On 2019-07-19 14:25, Kishon Vijay Abraham I wrote:
> On 19/07/19 5:51 PM, Marek Szyprowski wrote:
>> On 2019-07-19 12:04, Kishon Vijay Abraham I wrote:
>>> On 19/07/19 3:22 PM, Marek Szyprowski wrote:
>>>> Commit 36914111e682 ("drivers: phy: add calibrate method") added support
>>>> for generic phy_calibrate() method, but it didn't explain in detail when
>>>> such method is supposed to be called. Add some more documentation directly
>>>> to the phy.h to make it clean that it is intended to be called after every
>>>> host controller reset.
>>>>
>>>> Signed-off-by: Marek Szyprowski <[email protected]>
>>>> ---
>>>> include/linux/phy/phy.h | 12 ++++++++++++
>>>> 1 file changed, 12 insertions(+)
>>>>
>>>> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
>>>> index 15032f145063..46775e8b0ed9 100644
>>>> --- a/include/linux/phy/phy.h
>>>> +++ b/include/linux/phy/phy.h
>>>> @@ -101,6 +101,18 @@ struct phy_ops {
>>>> int (*validate)(struct phy *phy, enum phy_mode mode, int submode,
>>>> union phy_configure_opts *opts);
>>>> int (*reset)(struct phy *phy);
>>>> +
>>>> + /**
>>>> + * @calibrate:
>>>> + *
>>>> + * Optional.
>>>> + *
>>>> + * Used to calibrate phy, typically by adjusting some parameters
>>>> + * in runtime, which are otherwise lost after host controller
>>>> + * reset and cannot be set in phy_init() and phy_power_on().
>>>> + *
>>>> + * Returns: 0 if successful, an negative error code otherwise
>>>> + */
>>>> int (*calibrate)(struct phy *phy);
>>> This should be added in drivers/phy/phy-core.c before phy_calibrate()?
>> Okay. Do you want to keep it also in phy.h (like for validate and
>> configure)?
> No. Adding in phy.txt and before phy_calibrate() should suffice IMO.

OKay, I will move it to phy.c. Generic PHYs documentation is converted
to RST (Documentation/driver-api/phy/phy.rst), so it could simply
include those comments from .c file. This can be done in separate patch.

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland