diff mbox series

[1/1] usb: typec: tcpm: remove unused static variable 'tcpm_altmode_ops'

Message ID 20210407091540.2815-1-thunder.leizhen@huawei.com
State New
Headers show
Series [1/1] usb: typec: tcpm: remove unused static variable 'tcpm_altmode_ops' | expand

Commit Message

Zhen Lei April 7, 2021, 9:15 a.m. UTC
Fixes the following W=1 kernel build warning:

drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

The reference to the variable 'tcpm_altmode_ops' is deleted by the
commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration
mechanism").

By the way, the static functions referenced only by the variable
'tcpm_altmode_ops' are deleted accordingly.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

---
 drivers/usb/typec/tcpm/tcpm.c | 60 -------------------------------------------
 1 file changed, 60 deletions(-)

-- 
1.8.3

Comments

Heikki Krogerus April 8, 2021, 8:28 a.m. UTC | #1
On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:
> Fixes the following W=1 kernel build warning:

> 

> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> 

> The reference to the variable 'tcpm_altmode_ops' is deleted by the

> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> mechanism").

> 

> By the way, the static functions referenced only by the variable

> 'tcpm_altmode_ops' are deleted accordingly.

> 

> Reported-by: Hulk Robot <hulkci@huawei.com>

> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>


Oh, I thought this was already fixed. Should this go into the stable
trees as well?

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>


> ---

>  drivers/usb/typec/tcpm/tcpm.c | 60 -------------------------------------------

>  1 file changed, 60 deletions(-)

> 

> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c

> index ce7af398c7c1c1f..2f89bae29c0c297 100644

> --- a/drivers/usb/typec/tcpm/tcpm.c

> +++ b/drivers/usb/typec/tcpm/tcpm.c

> @@ -1365,14 +1365,6 @@ static void tcpm_queue_vdm(struct tcpm_port *port, const u32 header,

>  	mod_vdm_delayed_work(port, 0);

>  }

>  

> -static void tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,

> -				    const u32 *data, int cnt)

> -{

> -	mutex_lock(&port->lock);

> -	tcpm_queue_vdm(port, header, data, cnt);

> -	mutex_unlock(&port->lock);

> -}

> -

>  static void svdm_consume_identity(struct tcpm_port *port, const u32 *p, int cnt)

>  {

>  	u32 vdo = p[VDO_INDEX_IDH];

> @@ -1705,8 +1697,6 @@ static void tcpm_handle_vdm_request(struct tcpm_port *port,

>  	 *

>  	 * And we also have this ordering:

>  	 * 1. alt-mode driver takes the alt-mode's lock

> -	 * 2. alt-mode driver calls tcpm_altmode_enter which takes the

> -	 *    tcpm port lock

>  	 *

>  	 * Dropping our lock here avoids this.

>  	 */

> @@ -2060,56 +2050,6 @@ static int tcpm_validate_caps(struct tcpm_port *port, const u32 *pdo,

>  	return 0;

>  }

>  

> -static int tcpm_altmode_enter(struct typec_altmode *altmode, u32 *vdo)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -	int svdm_version;

> -	u32 header;

> -

> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

> -	if (svdm_version < 0)

> -		return svdm_version;

> -

> -	header = VDO(altmode->svid, vdo ? 2 : 1, svdm_version, CMD_ENTER_MODE);

> -	header |= VDO_OPOS(altmode->mode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, vdo, vdo ? 1 : 0);

> -	return 0;

> -}

> -

> -static int tcpm_altmode_exit(struct typec_altmode *altmode)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -	int svdm_version;

> -	u32 header;

> -

> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

> -	if (svdm_version < 0)

> -		return svdm_version;

> -

> -	header = VDO(altmode->svid, 1, svdm_version, CMD_EXIT_MODE);

> -	header |= VDO_OPOS(altmode->mode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, NULL, 0);

> -	return 0;

> -}

> -

> -static int tcpm_altmode_vdm(struct typec_altmode *altmode,

> -			    u32 header, const u32 *data, int count)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, data, count - 1);

> -

> -	return 0;

> -}

> -

> -static const struct typec_altmode_ops tcpm_altmode_ops = {

> -	.enter = tcpm_altmode_enter,

> -	.exit = tcpm_altmode_exit,

> -	.vdm = tcpm_altmode_vdm,

> -};

> -

>  /*

>   * PD (data, control) command handling functions

>   */

> -- 

> 1.8.3

> 


-- 
heikki
Greg Kroah-Hartman April 8, 2021, 8:38 a.m. UTC | #2
On Thu, Apr 08, 2021 at 11:28:09AM +0300, Heikki Krogerus wrote:
> On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:

> > Fixes the following W=1 kernel build warning:

> > 

> > drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> > 

> > The reference to the variable 'tcpm_altmode_ops' is deleted by the

> > commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> > mechanism").

> > 

> > By the way, the static functions referenced only by the variable

> > 'tcpm_altmode_ops' are deleted accordingly.

> > 

> > Reported-by: Hulk Robot <hulkci@huawei.com>

> > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> 

> Oh, I thought this was already fixed. Should this go into the stable

> trees as well?


We do not build kernels by default with "W=1" yet, so it's not needed
in stable kernels.

thanks,

greg k-h
Heikki Krogerus April 8, 2021, 8:44 a.m. UTC | #3
On Thu, Apr 08, 2021 at 10:38:15AM +0200, Greg Kroah-Hartman wrote:
> On Thu, Apr 08, 2021 at 11:28:09AM +0300, Heikki Krogerus wrote:

> > On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:

> > > Fixes the following W=1 kernel build warning:

> > > 

> > > drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> > > 

> > > The reference to the variable 'tcpm_altmode_ops' is deleted by the

> > > commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> > > mechanism").

> > > 

> > > By the way, the static functions referenced only by the variable

> > > 'tcpm_altmode_ops' are deleted accordingly.

> > > 

> > > Reported-by: Hulk Robot <hulkci@huawei.com>

> > > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> > 

> > Oh, I thought this was already fixed. Should this go into the stable

> > trees as well?

> 

> We do not build kernels by default with "W=1" yet, so it's not needed

> in stable kernels.


Okay, got it.

thanks,

-- 
heikki
Hans de Goede April 8, 2021, 9:10 a.m. UTC | #4
Hi,

On 4/7/21 11:15 AM, Zhen Lei wrote:
> Fixes the following W=1 kernel build warning:

> 

> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> 

> The reference to the variable 'tcpm_altmode_ops' is deleted by the

> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> mechanism").

> 

> By the way, the static functions referenced only by the variable

> 'tcpm_altmode_ops' are deleted accordingly.

> 

> Reported-by: Hulk Robot <hulkci@huawei.com>

> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>


I have a patch pending:

https://www.spinics.net/lists/linux-usb/msg197684.html

Which actually uses this. I really need to (and plan to) brush the dust of
this one soon and submit a new version.

As such I would prefer for these ops to not get removed. But I guess I
can always include a patch in my series reverting the removal...

Regards,

Hans



> ---

>  drivers/usb/typec/tcpm/tcpm.c | 60 -------------------------------------------

>  1 file changed, 60 deletions(-)

> 

> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c

> index ce7af398c7c1c1f..2f89bae29c0c297 100644

> --- a/drivers/usb/typec/tcpm/tcpm.c

> +++ b/drivers/usb/typec/tcpm/tcpm.c

> @@ -1365,14 +1365,6 @@ static void tcpm_queue_vdm(struct tcpm_port *port, const u32 header,

>  	mod_vdm_delayed_work(port, 0);

>  }

>  

> -static void tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,

> -				    const u32 *data, int cnt)

> -{

> -	mutex_lock(&port->lock);

> -	tcpm_queue_vdm(port, header, data, cnt);

> -	mutex_unlock(&port->lock);

> -}

> -

>  static void svdm_consume_identity(struct tcpm_port *port, const u32 *p, int cnt)

>  {

>  	u32 vdo = p[VDO_INDEX_IDH];

> @@ -1705,8 +1697,6 @@ static void tcpm_handle_vdm_request(struct tcpm_port *port,

>  	 *

>  	 * And we also have this ordering:

>  	 * 1. alt-mode driver takes the alt-mode's lock

> -	 * 2. alt-mode driver calls tcpm_altmode_enter which takes the

> -	 *    tcpm port lock

>  	 *

>  	 * Dropping our lock here avoids this.

>  	 */

> @@ -2060,56 +2050,6 @@ static int tcpm_validate_caps(struct tcpm_port *port, const u32 *pdo,

>  	return 0;

>  }

>  

> -static int tcpm_altmode_enter(struct typec_altmode *altmode, u32 *vdo)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -	int svdm_version;

> -	u32 header;

> -

> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

> -	if (svdm_version < 0)

> -		return svdm_version;

> -

> -	header = VDO(altmode->svid, vdo ? 2 : 1, svdm_version, CMD_ENTER_MODE);

> -	header |= VDO_OPOS(altmode->mode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, vdo, vdo ? 1 : 0);

> -	return 0;

> -}

> -

> -static int tcpm_altmode_exit(struct typec_altmode *altmode)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -	int svdm_version;

> -	u32 header;

> -

> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

> -	if (svdm_version < 0)

> -		return svdm_version;

> -

> -	header = VDO(altmode->svid, 1, svdm_version, CMD_EXIT_MODE);

> -	header |= VDO_OPOS(altmode->mode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, NULL, 0);

> -	return 0;

> -}

> -

> -static int tcpm_altmode_vdm(struct typec_altmode *altmode,

> -			    u32 header, const u32 *data, int count)

> -{

> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

> -

> -	tcpm_queue_vdm_unlocked(port, header, data, count - 1);

> -

> -	return 0;

> -}

> -

> -static const struct typec_altmode_ops tcpm_altmode_ops = {

> -	.enter = tcpm_altmode_enter,

> -	.exit = tcpm_altmode_exit,

> -	.vdm = tcpm_altmode_vdm,

> -};

> -

>  /*

>   * PD (data, control) command handling functions

>   */

>
Heikki Krogerus April 8, 2021, 9:25 a.m. UTC | #5
On Thu, Apr 08, 2021 at 11:10:38AM +0200, Hans de Goede wrote:
> Hi,

> 

> On 4/7/21 11:15 AM, Zhen Lei wrote:

> > Fixes the following W=1 kernel build warning:

> > 

> > drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> > 

> > The reference to the variable 'tcpm_altmode_ops' is deleted by the

> > commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> > mechanism").

> > 

> > By the way, the static functions referenced only by the variable

> > 'tcpm_altmode_ops' are deleted accordingly.

> > 

> > Reported-by: Hulk Robot <hulkci@huawei.com>

> > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> 

> I have a patch pending:

> 

> https://www.spinics.net/lists/linux-usb/msg197684.html

> 

> Which actually uses this. I really need to (and plan to) brush the dust of

> this one soon and submit a new version.

> 

> As such I would prefer for these ops to not get removed. But I guess I

> can always include a patch in my series reverting the removal...


Well, can we then just leave the ops there? If we're going to
re-introduce them back soon in any case, then why drop them in the
first place.

thanks,

-- 
heikki
Hans de Goede April 8, 2021, 9:36 a.m. UTC | #6
Hi,

On 4/8/21 11:25 AM, Heikki Krogerus wrote:
> On Thu, Apr 08, 2021 at 11:10:38AM +0200, Hans de Goede wrote:

>> Hi,

>>

>> On 4/7/21 11:15 AM, Zhen Lei wrote:

>>> Fixes the following W=1 kernel build warning:

>>>

>>> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

>>>

>>> The reference to the variable 'tcpm_altmode_ops' is deleted by the

>>> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

>>> mechanism").

>>>

>>> By the way, the static functions referenced only by the variable

>>> 'tcpm_altmode_ops' are deleted accordingly.

>>>

>>> Reported-by: Hulk Robot <hulkci@huawei.com>

>>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

>>

>> I have a patch pending:

>>

>> https://www.spinics.net/lists/linux-usb/msg197684.html

>>

>> Which actually uses this. I really need to (and plan to) brush the dust of

>> this one soon and submit a new version.

>>

>> As such I would prefer for these ops to not get removed. But I guess I

>> can always include a patch in my series reverting the removal...

> 

> Well, can we then just leave the ops there? If we're going to

> re-introduce them back soon in any case, then why drop them in the

> first place.


Yes I'm in favor of just leaving them in place too, sorry if that was
not clear.

Regards,

Hans
Guenter Roeck April 8, 2021, 1:55 p.m. UTC | #7
On 4/8/21 1:28 AM, Heikki Krogerus wrote:
> On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:

>> Fixes the following W=1 kernel build warning:

>>

>> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

>>

>> The reference to the variable 'tcpm_altmode_ops' is deleted by the

>> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

>> mechanism").

>>

>> By the way, the static functions referenced only by the variable

>> 'tcpm_altmode_ops' are deleted accordingly.

>>

>> Reported-by: Hulk Robot <hulkci@huawei.com>

>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> 

> Oh, I thought this was already fixed. Should this go into the stable

> trees as well?

> 


I thought there was some code supposed to be coming which would make use of it,
but my memory may defeat me. Either case, it is getting old. It it is ever needed,
it can be reintroduced.

Reviewed-by: Guenter Roeck <linux@roeck-us.net>


Guenter

> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> 

>> ---

>>  drivers/usb/typec/tcpm/tcpm.c | 60 -------------------------------------------

>>  1 file changed, 60 deletions(-)

>>

>> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c

>> index ce7af398c7c1c1f..2f89bae29c0c297 100644

>> --- a/drivers/usb/typec/tcpm/tcpm.c

>> +++ b/drivers/usb/typec/tcpm/tcpm.c

>> @@ -1365,14 +1365,6 @@ static void tcpm_queue_vdm(struct tcpm_port *port, const u32 header,

>>  	mod_vdm_delayed_work(port, 0);

>>  }

>>  

>> -static void tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,

>> -				    const u32 *data, int cnt)

>> -{

>> -	mutex_lock(&port->lock);

>> -	tcpm_queue_vdm(port, header, data, cnt);

>> -	mutex_unlock(&port->lock);

>> -}

>> -

>>  static void svdm_consume_identity(struct tcpm_port *port, const u32 *p, int cnt)

>>  {

>>  	u32 vdo = p[VDO_INDEX_IDH];

>> @@ -1705,8 +1697,6 @@ static void tcpm_handle_vdm_request(struct tcpm_port *port,

>>  	 *

>>  	 * And we also have this ordering:

>>  	 * 1. alt-mode driver takes the alt-mode's lock

>> -	 * 2. alt-mode driver calls tcpm_altmode_enter which takes the

>> -	 *    tcpm port lock

>>  	 *

>>  	 * Dropping our lock here avoids this.

>>  	 */

>> @@ -2060,56 +2050,6 @@ static int tcpm_validate_caps(struct tcpm_port *port, const u32 *pdo,

>>  	return 0;

>>  }

>>  

>> -static int tcpm_altmode_enter(struct typec_altmode *altmode, u32 *vdo)

>> -{

>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>> -	int svdm_version;

>> -	u32 header;

>> -

>> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

>> -	if (svdm_version < 0)

>> -		return svdm_version;

>> -

>> -	header = VDO(altmode->svid, vdo ? 2 : 1, svdm_version, CMD_ENTER_MODE);

>> -	header |= VDO_OPOS(altmode->mode);

>> -

>> -	tcpm_queue_vdm_unlocked(port, header, vdo, vdo ? 1 : 0);

>> -	return 0;

>> -}

>> -

>> -static int tcpm_altmode_exit(struct typec_altmode *altmode)

>> -{

>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>> -	int svdm_version;

>> -	u32 header;

>> -

>> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

>> -	if (svdm_version < 0)

>> -		return svdm_version;

>> -

>> -	header = VDO(altmode->svid, 1, svdm_version, CMD_EXIT_MODE);

>> -	header |= VDO_OPOS(altmode->mode);

>> -

>> -	tcpm_queue_vdm_unlocked(port, header, NULL, 0);

>> -	return 0;

>> -}

>> -

>> -static int tcpm_altmode_vdm(struct typec_altmode *altmode,

>> -			    u32 header, const u32 *data, int count)

>> -{

>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>> -

>> -	tcpm_queue_vdm_unlocked(port, header, data, count - 1);

>> -

>> -	return 0;

>> -}

>> -

>> -static const struct typec_altmode_ops tcpm_altmode_ops = {

>> -	.enter = tcpm_altmode_enter,

>> -	.exit = tcpm_altmode_exit,

>> -	.vdm = tcpm_altmode_vdm,

>> -};

>> -

>>  /*

>>   * PD (data, control) command handling functions

>>   */

>> -- 

>> 1.8.3

>>

>
Hans de Goede April 8, 2021, 5:14 p.m. UTC | #8
Hi,

On 4/8/21 3:55 PM, Guenter Roeck wrote:
> On 4/8/21 1:28 AM, Heikki Krogerus wrote:

>> On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:

>>> Fixes the following W=1 kernel build warning:

>>>

>>> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

>>>

>>> The reference to the variable 'tcpm_altmode_ops' is deleted by the

>>> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

>>> mechanism").

>>>

>>> By the way, the static functions referenced only by the variable

>>> 'tcpm_altmode_ops' are deleted accordingly.

>>>

>>> Reported-by: Hulk Robot <hulkci@huawei.com>

>>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

>>

>> Oh, I thought this was already fixed. Should this go into the stable

>> trees as well?

>>

> 

> I thought there was some code supposed to be coming which would make use of it,

> but my memory may defeat me.


There is code coming which uses this; and this is necessary to make
DP altmode work on some devices.

I have dropped the ball a bit on posting a v2 of my series using this.

I'll prepare a v2 of my series, addressing Heikki's review comments
to my v1 right away. I'll post a v2 at the latest tomorrow.

This is something which is on my TODO list anyways and this way we will
save some churn with these functions going away only to be re-introduced
again relatively soon after they were removed.

Regards,

Hans


> Either case, it is getting old. It it is ever needed,

> it can be reintroduced.

> 

> Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> 

> Guenter

> 

>> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

>>

>>> ---

>>>  drivers/usb/typec/tcpm/tcpm.c | 60 -------------------------------------------

>>>  1 file changed, 60 deletions(-)

>>>

>>> diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c

>>> index ce7af398c7c1c1f..2f89bae29c0c297 100644

>>> --- a/drivers/usb/typec/tcpm/tcpm.c

>>> +++ b/drivers/usb/typec/tcpm/tcpm.c

>>> @@ -1365,14 +1365,6 @@ static void tcpm_queue_vdm(struct tcpm_port *port, const u32 header,

>>>  	mod_vdm_delayed_work(port, 0);

>>>  }

>>>  

>>> -static void tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,

>>> -				    const u32 *data, int cnt)

>>> -{

>>> -	mutex_lock(&port->lock);

>>> -	tcpm_queue_vdm(port, header, data, cnt);

>>> -	mutex_unlock(&port->lock);

>>> -}

>>> -

>>>  static void svdm_consume_identity(struct tcpm_port *port, const u32 *p, int cnt)

>>>  {

>>>  	u32 vdo = p[VDO_INDEX_IDH];

>>> @@ -1705,8 +1697,6 @@ static void tcpm_handle_vdm_request(struct tcpm_port *port,

>>>  	 *

>>>  	 * And we also have this ordering:

>>>  	 * 1. alt-mode driver takes the alt-mode's lock

>>> -	 * 2. alt-mode driver calls tcpm_altmode_enter which takes the

>>> -	 *    tcpm port lock

>>>  	 *

>>>  	 * Dropping our lock here avoids this.

>>>  	 */

>>> @@ -2060,56 +2050,6 @@ static int tcpm_validate_caps(struct tcpm_port *port, const u32 *pdo,

>>>  	return 0;

>>>  }

>>>  

>>> -static int tcpm_altmode_enter(struct typec_altmode *altmode, u32 *vdo)

>>> -{

>>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>>> -	int svdm_version;

>>> -	u32 header;

>>> -

>>> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

>>> -	if (svdm_version < 0)

>>> -		return svdm_version;

>>> -

>>> -	header = VDO(altmode->svid, vdo ? 2 : 1, svdm_version, CMD_ENTER_MODE);

>>> -	header |= VDO_OPOS(altmode->mode);

>>> -

>>> -	tcpm_queue_vdm_unlocked(port, header, vdo, vdo ? 1 : 0);

>>> -	return 0;

>>> -}

>>> -

>>> -static int tcpm_altmode_exit(struct typec_altmode *altmode)

>>> -{

>>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>>> -	int svdm_version;

>>> -	u32 header;

>>> -

>>> -	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);

>>> -	if (svdm_version < 0)

>>> -		return svdm_version;

>>> -

>>> -	header = VDO(altmode->svid, 1, svdm_version, CMD_EXIT_MODE);

>>> -	header |= VDO_OPOS(altmode->mode);

>>> -

>>> -	tcpm_queue_vdm_unlocked(port, header, NULL, 0);

>>> -	return 0;

>>> -}

>>> -

>>> -static int tcpm_altmode_vdm(struct typec_altmode *altmode,

>>> -			    u32 header, const u32 *data, int count)

>>> -{

>>> -	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);

>>> -

>>> -	tcpm_queue_vdm_unlocked(port, header, data, count - 1);

>>> -

>>> -	return 0;

>>> -}

>>> -

>>> -static const struct typec_altmode_ops tcpm_altmode_ops = {

>>> -	.enter = tcpm_altmode_enter,

>>> -	.exit = tcpm_altmode_exit,

>>> -	.vdm = tcpm_altmode_vdm,

>>> -};

>>> -

>>>  /*

>>>   * PD (data, control) command handling functions

>>>   */

>>> -- 

>>> 1.8.3

>>>

>>

> 

>
Heikki Krogerus April 9, 2021, 9:37 a.m. UTC | #9
On Thu, Apr 08, 2021 at 07:14:01PM +0200, Hans de Goede wrote:
> Hi,

> 

> On 4/8/21 3:55 PM, Guenter Roeck wrote:

> > On 4/8/21 1:28 AM, Heikki Krogerus wrote:

> >> On Wed, Apr 07, 2021 at 05:15:40PM +0800, Zhen Lei wrote:

> >>> Fixes the following W=1 kernel build warning:

> >>>

> >>> drivers/usb/typec/tcpm/tcpm.c:2107:39: warning: ‘tcpm_altmode_ops’ defined but not used [-Wunused-const-variable=]

> >>>

> >>> The reference to the variable 'tcpm_altmode_ops' is deleted by the

> >>> commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config configuration

> >>> mechanism").

> >>>

> >>> By the way, the static functions referenced only by the variable

> >>> 'tcpm_altmode_ops' are deleted accordingly.

> >>>

> >>> Reported-by: Hulk Robot <hulkci@huawei.com>

> >>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> >>

> >> Oh, I thought this was already fixed. Should this go into the stable

> >> trees as well?

> >>

> > 

> > I thought there was some code supposed to be coming which would make use of it,

> > but my memory may defeat me.

> 

> There is code coming which uses this; and this is necessary to make

> DP altmode work on some devices.

> 

> I have dropped the ball a bit on posting a v2 of my series using this.

> 

> I'll prepare a v2 of my series, addressing Heikki's review comments

> to my v1 right away. I'll post a v2 at the latest tomorrow.

> 

> This is something which is on my TODO list anyways and this way we will

> save some churn with these functions going away only to be re-introduced

> again relatively soon after they were removed.


Cool. Greg, I think we can skip this patch then.

thanks,

-- 
heikki
diff mbox series

Patch

diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c
index ce7af398c7c1c1f..2f89bae29c0c297 100644
--- a/drivers/usb/typec/tcpm/tcpm.c
+++ b/drivers/usb/typec/tcpm/tcpm.c
@@ -1365,14 +1365,6 @@  static void tcpm_queue_vdm(struct tcpm_port *port, const u32 header,
 	mod_vdm_delayed_work(port, 0);
 }
 
-static void tcpm_queue_vdm_unlocked(struct tcpm_port *port, const u32 header,
-				    const u32 *data, int cnt)
-{
-	mutex_lock(&port->lock);
-	tcpm_queue_vdm(port, header, data, cnt);
-	mutex_unlock(&port->lock);
-}
-
 static void svdm_consume_identity(struct tcpm_port *port, const u32 *p, int cnt)
 {
 	u32 vdo = p[VDO_INDEX_IDH];
@@ -1705,8 +1697,6 @@  static void tcpm_handle_vdm_request(struct tcpm_port *port,
 	 *
 	 * And we also have this ordering:
 	 * 1. alt-mode driver takes the alt-mode's lock
-	 * 2. alt-mode driver calls tcpm_altmode_enter which takes the
-	 *    tcpm port lock
 	 *
 	 * Dropping our lock here avoids this.
 	 */
@@ -2060,56 +2050,6 @@  static int tcpm_validate_caps(struct tcpm_port *port, const u32 *pdo,
 	return 0;
 }
 
-static int tcpm_altmode_enter(struct typec_altmode *altmode, u32 *vdo)
-{
-	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);
-	int svdm_version;
-	u32 header;
-
-	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);
-	if (svdm_version < 0)
-		return svdm_version;
-
-	header = VDO(altmode->svid, vdo ? 2 : 1, svdm_version, CMD_ENTER_MODE);
-	header |= VDO_OPOS(altmode->mode);
-
-	tcpm_queue_vdm_unlocked(port, header, vdo, vdo ? 1 : 0);
-	return 0;
-}
-
-static int tcpm_altmode_exit(struct typec_altmode *altmode)
-{
-	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);
-	int svdm_version;
-	u32 header;
-
-	svdm_version = typec_get_negotiated_svdm_version(port->typec_port);
-	if (svdm_version < 0)
-		return svdm_version;
-
-	header = VDO(altmode->svid, 1, svdm_version, CMD_EXIT_MODE);
-	header |= VDO_OPOS(altmode->mode);
-
-	tcpm_queue_vdm_unlocked(port, header, NULL, 0);
-	return 0;
-}
-
-static int tcpm_altmode_vdm(struct typec_altmode *altmode,
-			    u32 header, const u32 *data, int count)
-{
-	struct tcpm_port *port = typec_altmode_get_drvdata(altmode);
-
-	tcpm_queue_vdm_unlocked(port, header, data, count - 1);
-
-	return 0;
-}
-
-static const struct typec_altmode_ops tcpm_altmode_ops = {
-	.enter = tcpm_altmode_enter,
-	.exit = tcpm_altmode_exit,
-	.vdm = tcpm_altmode_vdm,
-};
-
 /*
  * PD (data, control) command handling functions
  */