2020-08-19 12:02:06

by penghao

[permalink] [raw]
Subject: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio

TI024Gen3 USB-audio is controlled by TI024Gen3,when TI024Gens
enter sleep mode, USB-audio will disconnect from USB bus port,
wakup form s3 state

Signed-off-by: penghao <[email protected]>
---
sound/usb/card.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/sound/usb/card.c b/sound/usb/card.c
index 696e788c5d31..6bdbb34009b3 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -658,6 +658,12 @@ static int usb_audio_probe(struct usb_interface *intf,
}

dev_set_drvdata(&dev->dev, chip);
+ /*
+ *ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo
+ *ThinkCentre TI024Gen3 usb-audio
+ */
+ if ((usb_id->idVendor == 0x17ef) && (usb_id->idProduct == 0xa012))
+ device_set_wakeup_enable(&dev->dev, 0);

/*
* For devices with more than one control interface, we assume the
--
2.11.0




2020-08-19 17:22:16

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio

[ Adding a few more relevant people to Cc. ]

On Wed, 19 Aug 2020 13:57:57 +0200,
penghao wrote:
>
> TI024Gen3 USB-audio is controlled by TI024Gen3,when TI024Gens
> enter sleep mode, USB-audio will disconnect from USB bus port,
> wakup form s3 state
>
> Signed-off-by: penghao <[email protected]>
> ---
> sound/usb/card.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/sound/usb/card.c b/sound/usb/card.c
> index 696e788c5d31..6bdbb34009b3 100644
> --- a/sound/usb/card.c
> +++ b/sound/usb/card.c
> @@ -658,6 +658,12 @@ static int usb_audio_probe(struct usb_interface *intf,
> }
>
> dev_set_drvdata(&dev->dev, chip);
> + /*
> + *ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo
> + *ThinkCentre TI024Gen3 usb-audio
> + */
> + if ((usb_id->idVendor == 0x17ef) && (usb_id->idProduct == 0xa012))
> + device_set_wakeup_enable(&dev->dev, 0);

Here it's no proper ASCII letter, and this must be broken.
Please check the actual patch before submitting.

In anyway, before going further, I'd like to hear from other people
whether this is really mandatory and appropriate. And whether it's
specific to that device, too (not other Lenovo devices?)


thanks,

Takashi

2020-08-19 17:32:52

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio

Hi penghao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on sound/for-next]
[also build test ERROR on v5.9-rc1 next-20200819]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: x86_64-randconfig-a004-20200818 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project b34b1e38381fa4d1b1d9751a6b5233b68e734cfe)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

>> sound/usb/card.c:666:28: error: non-ASCII characters are not allowed outside of literals and identifiers
device_set_wakeup_enable(&dev->dev, 0);
^~
>> sound/usb/card.c:666:31: error: passing 'struct device' to parameter of incompatible type 'struct device *'; take the address with &
device_set_wakeup_enable(&dev->dev, 0);
^~~~~~~~
&
include/linux/pm_wakeup.h:159:59: note: passing argument to parameter 'dev' here
static inline int device_set_wakeup_enable(struct device *dev, bool enable)
^
2 errors generated.

# https://github.com/0day-ci/linux/commit/b49bfa7145277ea86b0487f7fd4e51566477f092
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
git checkout b49bfa7145277ea86b0487f7fd4e51566477f092
vim +666 sound/usb/card.c

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (2.58 kB)
.config.gz (25.32 kB)
Download all attachments

2020-08-19 18:11:39

by Kai-Heng Feng

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio



> On Aug 20, 2020, at 01:18, Takashi Iwai <[email protected]> wrote:
>
> [ Adding a few more relevant people to Cc. ]
>
> On Wed, 19 Aug 2020 13:57:57 +0200,
> penghao wrote:
>>
>> TI024Gen3 USB-audio is controlled by TI024Gen3,when TI024Gens
>> enter sleep mode, USB-audio will disconnect from USB bus port,
>> wakup form s3 state
>>
>> Signed-off-by: penghao <[email protected]>
>> ---
>> sound/usb/card.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/sound/usb/card.c b/sound/usb/card.c
>> index 696e788c5d31..6bdbb34009b3 100644
>> --- a/sound/usb/card.c
>> +++ b/sound/usb/card.c
>> @@ -658,6 +658,12 @@ static int usb_audio_probe(struct usb_interface *intf,
>> }
>>
>> dev_set_drvdata(&dev->dev, chip);
>> + /*
>> + *ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo
>> + *ThinkCentre TI024Gen3 usb-audio
>> + */
>> + if ((usb_id->idVendor == 0x17ef) && (usb_id->idProduct == 0xa012))
>> + device_set_wakeup_enable(&dev->dev, 0);
>
> Here it's no proper ASCII letter, and this must be broken.
> Please check the actual patch before submitting.
>
> In anyway, before going further, I'd like to hear from other people
> whether this is really mandatory and appropriate. And whether it's
> specific to that device, too (not other Lenovo devices?)

If USB remote wakeup on this device is broken then we need to fix it in USB core instead of USB audio.
We need USB and xHCI logs to understand the real problem here, the commit message doesn't contain enough information.

Kai-Heng

>
>
> thanks,
>
> Takashi

2020-08-19 19:39:04

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio

Hi penghao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on sound/for-next]
[also build test ERROR on v5.9-rc1 next-20200819]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):

sound/usb/card.c: In function 'usb_audio_probe':
sound/usb/card.c:666:28: error: stray '\357' in program
666 | device_set_wakeup_enable(&dev->dev, 0);
| ^
sound/usb/card.c:666:29: error: stray '\274' in program
666 | device_set_wakeup_enable(&dev->dev, 0);
| ^
sound/usb/card.c:666:30: error: stray '\206' in program
666 | device_set_wakeup_enable(&dev->dev, 0);
| ^
>> sound/usb/card.c:666:34: error: incompatible type for argument 1 of 'device_set_wakeup_enable'
666 | device_set_wakeup_enable(&dev->dev, 0);
| ~~~^~~~~
| |
| struct device
In file included from include/linux/device.h:644,
from include/linux/usb/ch9.h:36,
from include/linux/usb.h:6,
from sound/usb/card.c:29:
include/linux/pm_wakeup.h:108:52: note: expected 'struct device *' but argument is of type 'struct device'
108 | extern int device_set_wakeup_enable(struct device *dev, bool enable);
| ~~~~~~~~~~~~~~~^~~

# https://github.com/0day-ci/linux/commit/b49bfa7145277ea86b0487f7fd4e51566477f092
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
git checkout b49bfa7145277ea86b0487f7fd4e51566477f092
vim +/device_set_wakeup_enable +666 sound/usb/card.c

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (2.73 kB)
.config.gz (44.44 kB)
Download all attachments

2020-08-19 19:49:33

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio

Hi penghao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on sound/for-next]
[also build test ERROR on v5.9-rc1 next-20200819]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
base: https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All errors (new ones prefixed by >>):


# https://github.com/0day-ci/linux/commit/b49bfa7145277ea86b0487f7fd4e51566477f092
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review penghao/ALSA-usb-audio-Add-prevent-wakeup-from-s3-state-trig-by-Lenovo-ThinkCentre-TI024Gen3-USB-audio/20200819-200006
git checkout b49bfa7145277ea86b0487f7fd4e51566477f092
vim +/357 +666 sound/usb/card.c

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (1.63 kB)
.config.gz (56.01 kB)
Download all attachments

2020-08-20 01:44:01

by Hui Wang

[permalink] [raw]
Subject: Re: [PATCH] ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo ThinkCentre TI024Gen3 USB-audio


On 2020/8/20 上午2:10, Kai-Heng Feng wrote:
>
>> On Aug 20, 2020, at 01:18, Takashi Iwai <[email protected]> wrote:
>>
>> [ Adding a few more relevant people to Cc. ]
>>
>> On Wed, 19 Aug 2020 13:57:57 +0200,
>> penghao wrote:
>>> TI024Gen3 USB-audio is controlled by TI024Gen3,when TI024Gens
>>> enter sleep mode, USB-audio will disconnect from USB bus port,
>>> wakup form s3 state
>>>
>>> Signed-off-by: penghao <[email protected]>
>>> ---
>>> sound/usb/card.c | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/sound/usb/card.c b/sound/usb/card.c
>>> index 696e788c5d31..6bdbb34009b3 100644
>>> --- a/sound/usb/card.c
>>> +++ b/sound/usb/card.c
>>> @@ -658,6 +658,12 @@ static int usb_audio_probe(struct usb_interface *intf,
>>> }
>>>
>>> dev_set_drvdata(&dev->dev, chip);
>>> + /*
>>> + *ALSA: usb-audio: Add prevent wakeup from s3 state trig by Lenovo
>>> + *ThinkCentre TI024Gen3 usb-audio
>>> + */
>>> + if ((usb_id->idVendor == 0x17ef) && (usb_id->idProduct == 0xa012))
>>> + device_set_wakeup_enable(&dev->dev, 0);
>> Here it's no proper ASCII letter, and this must be broken.
>> Please check the actual patch before submitting.
>>
>> In anyway, before going further, I'd like to hear from other people
>> whether this is really mandatory and appropriate. And whether it's
>> specific to that device, too (not other Lenovo devices?)
> If USB remote wakeup on this device is broken then we need to fix it in USB core instead of USB audio.
> We need USB and xHCI logs to understand the real problem here, the commit message doesn't contain enough information.
>
> Kai-Heng

I checked with our QA, we didn't enable this machine before.  And I
tried 2 different usb audio cards, neither of them has wakeup
capability. it is weird that your usb sound card (maybe a built-in usb
sound card) has wakeup capability.

You could file a bug to
https://bugs.launchpad.net/ubuntu/+source/linux/+filebug, then upload
the needed logs,  Kai-Heng and I will help investigate this issue.

Thanks,

Hui.

>>
>> thanks,
>>
>> Takashi