UCSI version 2.0 and above define new PPM notifications. Update the
logic to determine which notifications to enable taking into account
these changes.
Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
---
drivers/usb/typec/ucsi/ucsi.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index cb52e7b0a2c5..0cc1c49da4a0 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -1664,7 +1664,7 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con)
static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
{
- u8 features = ucsi->cap.features;
+ u16 features = ucsi->cap.features;
u64 ntfy = UCSI_ENABLE_NTFY_ALL;
if (!(features & UCSI_CAP_ALT_MODE_DETAILS))
@@ -1680,6 +1680,23 @@ static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
if (!(features & UCSI_CAP_PD_RESET))
ntfy &= ~UCSI_ENABLE_NTFY_PD_RESET_COMPLETE;
+ if (ucsi->version <= UCSI_VERSION_1_2)
+ return ntfy;
+
+ ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
+
+ if (features & UCSI_CAP_GET_ATTENTION_VDO)
+ ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
+
+ if (features & UCSI_CAP_FW_UPDATE_REQUEST)
+ ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
+
+ if (features & UCSI_CAP_SECURITY_REQUEST)
+ ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
+
+ if (features & UCSI_CAP_SET_RETIMER_MODE)
+ ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
+
return ntfy;
}
--
2.45.1
On Fri, May 24, 2024 at 11:58:21AM +0100, Diogo Ivo wrote:
> UCSI version 2.0 and above define new PPM notifications. Update the
> logic to determine which notifications to enable taking into account
> these changes.
>
> Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/ucsi/ucsi.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index cb52e7b0a2c5..0cc1c49da4a0 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -1664,7 +1664,7 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con)
>
> static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
> {
> - u8 features = ucsi->cap.features;
> + u16 features = ucsi->cap.features;
> u64 ntfy = UCSI_ENABLE_NTFY_ALL;
>
> if (!(features & UCSI_CAP_ALT_MODE_DETAILS))
> @@ -1680,6 +1680,23 @@ static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
> if (!(features & UCSI_CAP_PD_RESET))
> ntfy &= ~UCSI_ENABLE_NTFY_PD_RESET_COMPLETE;
>
> + if (ucsi->version <= UCSI_VERSION_1_2)
> + return ntfy;
> +
> + ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
> +
> + if (features & UCSI_CAP_GET_ATTENTION_VDO)
> + ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
> +
> + if (features & UCSI_CAP_FW_UPDATE_REQUEST)
> + ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
> +
> + if (features & UCSI_CAP_SECURITY_REQUEST)
> + ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
> +
> + if (features & UCSI_CAP_SET_RETIMER_MODE)
> + ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
> +
> return ntfy;
> }
>
> --
> 2.45.1
--
heikki
On Fri, May 24, 2024 at 11:58:21AM +0100, Diogo Ivo wrote: > UCSI version 2.0 and above define new PPM notifications. Update the > logic to determine which notifications to enable taking into account > these changes. > > Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt> > --- > drivers/usb/typec/ucsi/ucsi.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> -- With best wishes Dmitry
Hi Diogo,
kernel test robot noticed the following build errors:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next usb/usb-linus linus/master next-20240523]
[cannot apply to v6.9]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Diogo-Ivo/usb-typec-ucsi-Add-new-capability-bits/20240524-190924
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/r/20240524105837.15342-3-diogo.ivo%40tecnico.ulisboa.pt
patch subject: [PATCH 2/2] usb: typec: ucsi: Enable UCSI v2.0 notifications
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20240524/202405242300.OetIYSh1-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240524/202405242300.OetIYSh1-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405242300.OetIYSh1-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/usb/typec/ucsi/ucsi.c: In function 'ucsi_get_supported_notifications':
>> drivers/usb/typec/ucsi/ucsi.c:1686:17: error: 'UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE' undeclared (first use in this function); did you mean 'UCSI_ENABLE_NTFY_EXT_PWR_SRC_CHANGE'?
1686 | ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| UCSI_ENABLE_NTFY_EXT_PWR_SRC_CHANGE
drivers/usb/typec/ucsi/ucsi.c:1686:17: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/usb/typec/ucsi/ucsi.c:1689:25: error: 'UCSI_ENABLE_NTFY_ATTENTION' undeclared (first use in this function); did you mean 'UCSI_ENABLE_NTFY_ERROR'?
1689 | ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| UCSI_ENABLE_NTFY_ERROR
>> drivers/usb/typec/ucsi/ucsi.c:1692:25: error: 'UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ' undeclared (first use in this function)
1692 | ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/typec/ucsi/ucsi.c:1695:25: error: 'UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER' undeclared (first use in this function)
1695 | ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/typec/ucsi/ucsi.c:1698:25: error: 'UCSI_ENABLE_NTFY_SET_RETIMER_MODE' undeclared (first use in this function); did you mean 'UCSI_CAP_SET_RETIMER_MODE'?
1698 | ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| UCSI_CAP_SET_RETIMER_MODE
vim +1686 drivers/usb/typec/ucsi/ucsi.c
1664
1665 static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
1666 {
1667 u16 features = ucsi->cap.features;
1668 u64 ntfy = UCSI_ENABLE_NTFY_ALL;
1669
1670 if (!(features & UCSI_CAP_ALT_MODE_DETAILS))
1671 ntfy &= ~UCSI_ENABLE_NTFY_CAM_CHANGE;
1672
1673 if (!(features & UCSI_CAP_PDO_DETAILS))
1674 ntfy &= ~(UCSI_ENABLE_NTFY_PWR_LEVEL_CHANGE |
1675 UCSI_ENABLE_NTFY_CAP_CHANGE);
1676
1677 if (!(features & UCSI_CAP_EXT_SUPPLY_NOTIFICATIONS))
1678 ntfy &= ~UCSI_ENABLE_NTFY_EXT_PWR_SRC_CHANGE;
1679
1680 if (!(features & UCSI_CAP_PD_RESET))
1681 ntfy &= ~UCSI_ENABLE_NTFY_PD_RESET_COMPLETE;
1682
1683 if (ucsi->version <= UCSI_VERSION_1_2)
1684 return ntfy;
1685
> 1686 ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
1687
1688 if (features & UCSI_CAP_GET_ATTENTION_VDO)
> 1689 ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
1690
1691 if (features & UCSI_CAP_FW_UPDATE_REQUEST)
> 1692 ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
1693
1694 if (features & UCSI_CAP_SECURITY_REQUEST)
> 1695 ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
1696
1697 if (features & UCSI_CAP_SET_RETIMER_MODE)
> 1698 ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
1699
1700 return ntfy;
1701 }
1702
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Diogo,
kernel test robot noticed the following build errors:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next usb/usb-linus linus/master next-20240523]
[cannot apply to v6.9]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Diogo-Ivo/usb-typec-ucsi-Add-new-capability-bits/20240524-190924
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/r/20240524105837.15342-3-diogo.ivo%40tecnico.ulisboa.pt
patch subject: [PATCH 2/2] usb: typec: ucsi: Enable UCSI v2.0 notifications
config: arm-defconfig (https://download.01.org/0day-ci/archive/20240524/202405242305.UrCRaTK0-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240524/202405242305.UrCRaTK0-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405242305.UrCRaTK0-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/usb/typec/ucsi/ucsi.c:1686:10: error: use of undeclared identifier 'UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE'
ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
^
>> drivers/usb/typec/ucsi/ucsi.c:1689:11: error: use of undeclared identifier 'UCSI_ENABLE_NTFY_ATTENTION'
ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
^
>> drivers/usb/typec/ucsi/ucsi.c:1692:11: error: use of undeclared identifier 'UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ'
ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
^
>> drivers/usb/typec/ucsi/ucsi.c:1695:11: error: use of undeclared identifier 'UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER'
ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
^
>> drivers/usb/typec/ucsi/ucsi.c:1698:11: error: use of undeclared identifier 'UCSI_ENABLE_NTFY_SET_RETIMER_MODE'
ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
^
5 errors generated.
vim +/UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE +1686 drivers/usb/typec/ucsi/ucsi.c
1664
1665 static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
1666 {
1667 u16 features = ucsi->cap.features;
1668 u64 ntfy = UCSI_ENABLE_NTFY_ALL;
1669
1670 if (!(features & UCSI_CAP_ALT_MODE_DETAILS))
1671 ntfy &= ~UCSI_ENABLE_NTFY_CAM_CHANGE;
1672
1673 if (!(features & UCSI_CAP_PDO_DETAILS))
1674 ntfy &= ~(UCSI_ENABLE_NTFY_PWR_LEVEL_CHANGE |
1675 UCSI_ENABLE_NTFY_CAP_CHANGE);
1676
1677 if (!(features & UCSI_CAP_EXT_SUPPLY_NOTIFICATIONS))
1678 ntfy &= ~UCSI_ENABLE_NTFY_EXT_PWR_SRC_CHANGE;
1679
1680 if (!(features & UCSI_CAP_PD_RESET))
1681 ntfy &= ~UCSI_ENABLE_NTFY_PD_RESET_COMPLETE;
1682
1683 if (ucsi->version <= UCSI_VERSION_1_2)
1684 return ntfy;
1685
> 1686 ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
1687
1688 if (features & UCSI_CAP_GET_ATTENTION_VDO)
> 1689 ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
1690
1691 if (features & UCSI_CAP_FW_UPDATE_REQUEST)
> 1692 ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
1693
1694 if (features & UCSI_CAP_SECURITY_REQUEST)
> 1695 ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
1696
1697 if (features & UCSI_CAP_SET_RETIMER_MODE)
> 1698 ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
1699
1700 return ntfy;
1701 }
1702
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.