All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:mirror-pa-android12-5.10-staging 1588/1718] drivers/usb/typec/altmodes/displayport.c:159:45: error: macro "VDO" requires 4 arguments, but only 3 given
@ 2020-12-08  2:29 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-12-08  2:29 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 15858 bytes --]

Hi Kyle,

FYI, the error/warning still remains.

tree:   https://android.googlesource.com/kernel/common mirror-pa-android12-5.10-staging
head:   0927548be1b3d5699f9b9849f90bb711ca481a07
commit: 6ba5309851720219217a8569d3785dcae02ac927 [1588/1718] ANDROID: usb: typec: tcpm: Determine SVDM Versions
config: x86_64-randconfig-s021-20201208 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-179-ga00755aa-dirty
        git remote add android-common https://android.googlesource.com/kernel/common
        git fetch --no-tags android-common mirror-pa-android12-5.10-staging
        git checkout 6ba5309851720219217a8569d3785dcae02ac927
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/usb/typec/altmodes/displayport.c: In function 'dp_altmode_configure_vdm':
>> drivers/usb/typec/altmodes/displayport.c:159:45: error: macro "VDO" requires 4 arguments, but only 3 given
     159 |  u32 header = DP_HEADER(dp, DP_CMD_CONFIGURE);
         |                                             ^
   In file included from drivers/usb/typec/altmodes/displayport.c:14:
   include/linux/usb/pd_vdo.h:35: note: macro "VDO" defined here
      35 | #define VDO(vid, type, ver, custom)    \
         | 
>> drivers/usb/typec/altmodes/displayport.c:18:31: error: 'VDO' undeclared (first use in this function)
      18 | #define DP_HEADER(_dp, cmd)  (VDO((_dp)->alt->svid, 1, cmd) | \
         |                               ^~~
   drivers/usb/typec/altmodes/displayport.c:159:15: note: in expansion of macro 'DP_HEADER'
     159 |  u32 header = DP_HEADER(dp, DP_CMD_CONFIGURE);
         |               ^~~~~~~~~
   drivers/usb/typec/altmodes/displayport.c:18:31: note: each undeclared identifier is reported only once for each function it appears in
      18 | #define DP_HEADER(_dp, cmd)  (VDO((_dp)->alt->svid, 1, cmd) | \
         |                               ^~~
   drivers/usb/typec/altmodes/displayport.c:159:15: note: in expansion of macro 'DP_HEADER'
     159 |  u32 header = DP_HEADER(dp, DP_CMD_CONFIGURE);
         |               ^~~~~~~~~
   drivers/usb/typec/altmodes/displayport.c: In function 'dp_altmode_work':
   drivers/usb/typec/altmodes/displayport.c:197:46: error: macro "VDO" requires 4 arguments, but only 3 given
     197 |   header = DP_HEADER(dp, DP_CMD_STATUS_UPDATE);
         |                                              ^
   In file included from drivers/usb/typec/altmodes/displayport.c:14:
   include/linux/usb/pd_vdo.h:35: note: macro "VDO" defined here
      35 | #define VDO(vid, type, ver, custom)    \
         | 
>> drivers/usb/typec/altmodes/displayport.c:18:31: error: 'VDO' undeclared (first use in this function)
      18 | #define DP_HEADER(_dp, cmd)  (VDO((_dp)->alt->svid, 1, cmd) | \
         |                               ^~~
   drivers/usb/typec/altmodes/displayport.c:197:12: note: in expansion of macro 'DP_HEADER'
     197 |   header = DP_HEADER(dp, DP_CMD_STATUS_UPDATE);
         |            ^~~~~~~~~

vim +/VDO +159 drivers/usb/typec/altmodes/displayport.c

0e3bb7d6894d9b Heikki Krogerus 2018-06-27   17  
d266e96820cc36 Ajay Gupta      2019-04-23  @18  #define DP_HEADER(_dp, cmd)		(VDO((_dp)->alt->svid, 1, cmd) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   19  					 VDO_OPOS(USB_TYPEC_DP_MODE))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   20  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   21  enum {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   22  	DP_CONF_USB,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   23  	DP_CONF_DFP_D,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   24  	DP_CONF_UFP_D,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   25  	DP_CONF_DUAL_D,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   26  };
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   27  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   28  /* Pin assignments that use USB3.1 Gen2 signaling to carry DP protocol */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   29  #define DP_PIN_ASSIGN_GEN2_BR_MASK	(BIT(DP_PIN_ASSIGN_A) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   30  					 BIT(DP_PIN_ASSIGN_B))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   31  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   32  /* Pin assignments that use DP v1.3 signaling to carry DP protocol */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   33  #define DP_PIN_ASSIGN_DP_BR_MASK	(BIT(DP_PIN_ASSIGN_C) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   34  					 BIT(DP_PIN_ASSIGN_D) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   35  					 BIT(DP_PIN_ASSIGN_E) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   36  					 BIT(DP_PIN_ASSIGN_F))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   37  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   38  /* DP only pin assignments */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   39  #define DP_PIN_ASSIGN_DP_ONLY_MASK	(BIT(DP_PIN_ASSIGN_A) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   40  					 BIT(DP_PIN_ASSIGN_C) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   41  					 BIT(DP_PIN_ASSIGN_E))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   42  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   43  /* Pin assignments where one channel is for USB */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   44  #define DP_PIN_ASSIGN_MULTI_FUNC_MASK	(BIT(DP_PIN_ASSIGN_B) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   45  					 BIT(DP_PIN_ASSIGN_D) | \
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   46  					 BIT(DP_PIN_ASSIGN_F))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   47  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   48  enum dp_state {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   49  	DP_STATE_IDLE,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   50  	DP_STATE_ENTER,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   51  	DP_STATE_UPDATE,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   52  	DP_STATE_CONFIGURE,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   53  	DP_STATE_EXIT,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   54  };
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   55  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   56  struct dp_altmode {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   57  	struct typec_displayport_data data;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   58  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   59  	enum dp_state state;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   60  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   61  	struct mutex lock; /* device lock */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   62  	struct work_struct work;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   63  	struct typec_altmode *alt;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   64  	const struct typec_altmode *port;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   65  };
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   66  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   67  static int dp_altmode_notify(struct dp_altmode *dp)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   68  {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   69  	u8 state = get_count_order(DP_CONF_GET_PIN_ASSIGN(dp->data.conf));
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   70  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   71  	return typec_altmode_notify(dp->alt, TYPEC_MODAL_STATE(state),
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   72  				   &dp->data);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   73  }
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   74  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   75  static int dp_altmode_configure(struct dp_altmode *dp, u8 con)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   76  {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   77  	u32 conf = DP_CONF_SIGNALING_DP; /* Only DP signaling supported */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   78  	u8 pin_assign = 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   79  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   80  	switch (con) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   81  	case DP_STATUS_CON_DISABLED:
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   82  		return 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   83  	case DP_STATUS_CON_DFP_D:
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   84  		conf |= DP_CONF_UFP_U_AS_DFP_D;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   85  		pin_assign = DP_CAP_UFP_D_PIN_ASSIGN(dp->alt->vdo) &
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   86  			     DP_CAP_DFP_D_PIN_ASSIGN(dp->port->vdo);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   87  		break;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   88  	case DP_STATUS_CON_UFP_D:
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   89  	case DP_STATUS_CON_BOTH: /* NOTE: First acting as DP source */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   90  		conf |= DP_CONF_UFP_U_AS_UFP_D;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   91  		pin_assign = DP_CAP_DFP_D_PIN_ASSIGN(dp->alt->vdo) &
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   92  			     DP_CAP_UFP_D_PIN_ASSIGN(dp->port->vdo);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   93  		break;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   94  	default:
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   95  		break;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   96  	}
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   97  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   98  	/* Determining the initial pin assignment. */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27   99  	if (!DP_CONF_GET_PIN_ASSIGN(dp->data.conf)) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  100  		/* Is USB together with DP preferred */
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  101  		if (dp->data.status & DP_STATUS_PREFER_MULTI_FUNC &&
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  102  		    pin_assign & DP_PIN_ASSIGN_MULTI_FUNC_MASK)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  103  			pin_assign &= DP_PIN_ASSIGN_MULTI_FUNC_MASK;
09fed4d64d3f1c Hans de Goede   2019-02-25  104  		else if (pin_assign & DP_PIN_ASSIGN_DP_ONLY_MASK)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  105  			pin_assign &= DP_PIN_ASSIGN_DP_ONLY_MASK;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  106  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  107  		if (!pin_assign)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  108  			return -EINVAL;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  109  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  110  		conf |= DP_CONF_SET_PIN_ASSIGN(pin_assign);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  111  	}
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  112  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  113  	dp->data.conf = conf;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  114  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  115  	return 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  116  }
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  117  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  118  static int dp_altmode_status_update(struct dp_altmode *dp)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  119  {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  120  	bool configured = !!DP_CONF_GET_PIN_ASSIGN(dp->data.conf);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  121  	u8 con = DP_STATUS_CONNECTION(dp->data.status);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  122  	int ret = 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  123  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  124  	if (configured && (dp->data.status & DP_STATUS_SWITCH_TO_USB)) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  125  		dp->data.conf = 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  126  		dp->state = DP_STATE_CONFIGURE;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  127  	} else if (dp->data.status & DP_STATUS_EXIT_DP_MODE) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  128  		dp->state = DP_STATE_EXIT;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  129  	} else if (!(con & DP_CONF_CURRENTLY(dp->data.conf))) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  130  		ret = dp_altmode_configure(dp, con);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  131  		if (!ret)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  132  			dp->state = DP_STATE_CONFIGURE;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  133  	}
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  134  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  135  	return ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  136  }
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  137  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  138  static int dp_altmode_configured(struct dp_altmode *dp)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  139  {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  140  	int ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  141  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  142  	sysfs_notify(&dp->alt->dev.kobj, "displayport", "configuration");
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  143  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  144  	if (!dp->data.conf)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  145  		return typec_altmode_notify(dp->alt, TYPEC_STATE_USB,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  146  					    &dp->data);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  147  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  148  	ret = dp_altmode_notify(dp);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  149  	if (ret)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  150  		return ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  151  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  152  	sysfs_notify(&dp->alt->dev.kobj, "displayport", "pin_assignment");
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  153  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  154  	return 0;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  155  }
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  156  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  157  static int dp_altmode_configure_vdm(struct dp_altmode *dp, u32 conf)
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  158  {
d266e96820cc36 Ajay Gupta      2019-04-23 @159  	u32 header = DP_HEADER(dp, DP_CMD_CONFIGURE);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  160  	int ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  161  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  162  	ret = typec_altmode_notify(dp->alt, TYPEC_STATE_SAFE, &dp->data);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  163  	if (ret) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  164  		dev_err(&dp->alt->dev,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  165  			"unable to put to connector to safe mode\n");
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  166  		return ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  167  	}
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  168  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  169  	ret = typec_altmode_vdm(dp->alt, header, &conf, 2);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  170  	if (ret) {
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  171  		if (DP_CONF_GET_PIN_ASSIGN(dp->data.conf))
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  172  			dp_altmode_notify(dp);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  173  		else
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  174  			typec_altmode_notify(dp->alt, TYPEC_STATE_USB,
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  175  					     &dp->data);
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  176  	}
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  177  
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  178  	return ret;
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  179  }
0e3bb7d6894d9b Heikki Krogerus 2018-06-27  180  

:::::: The code at line 159 was first introduced by commit
:::::: d266e96820cc3654ba1338c55e5731fc67030d8e usb: typec: displayport: Export probe and remove functions

:::::: TO: Ajay Gupta <ajayg@nvidia.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38850 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-12-08  2:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-08  2:29 [android-common:mirror-pa-android12-5.10-staging 1588/1718] drivers/usb/typec/altmodes/displayport.c:159:45: error: macro "VDO" requires 4 arguments, but only 3 given kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.