Message ID | 1527475967-15201-6-git-send-email-jun.li@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Li, Thank you for the patch! Yet something to improve: [auto build test ERROR on usb/usb-testing] [also build test ERROR on v4.17-rc7 next-20180529] [cannot apply to staging/staging-testing] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Li-Jun/staging-typec-tcpci-move-out-of-staging/20180530-110011 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: i386-randconfig-x017-201821 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from include/linux/linkage.h:7:0, from include/linux/kernel.h:7, from include/linux/list.h:9, from include/linux/kobject.h:19, from include/linux/device.h:16, from drivers/usb/typec/class.c:9: >> drivers/usb/typec/class.c:1274:19: error: 'typec_find_power_type' undeclared here (not in a function); did you mean 'typec_find_power_role'? EXPORT_SYMBOL_GPL(typec_find_power_type); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ >> drivers/usb/typec/class.c:1274:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_power_type); ^~~~~~~~~~~~~~~~~ >> drivers/usb/typec/class.c:1288:19: error: 'typec_find_preferred_role' undeclared here (not in a function); did you mean 'typec_find_power_role'? EXPORT_SYMBOL_GPL(typec_find_preferred_role); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ drivers/usb/typec/class.c:1288:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_preferred_role); ^~~~~~~~~~~~~~~~~ >> drivers/usb/typec/class.c:1303:19: error: 'typec_find_data_type' undeclared here (not in a function); did you mean 'typec_find_power_type'? EXPORT_SYMBOL_GPL(typec_find_data_type); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ drivers/usb/typec/class.c:1303:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_data_type); ^~~~~~~~~~~~~~~~~ vim +1274 drivers/usb/typec/class.c 1260 1261 /** 1262 * typec_find_port_power_role - Get the typec port power capability 1263 * @name: port power capability string 1264 * 1265 * This routine is used to find the typec_port_type by its string name. 1266 * 1267 * Returns typec_port_type if success, otherwise negative error code. 1268 */ 1269 int typec_find_port_power_role(const char *name) 1270 { 1271 return match_string(typec_port_types, ARRAY_SIZE(typec_port_types), 1272 name); 1273 } > 1274 EXPORT_SYMBOL_GPL(typec_find_power_type); 1275 1276 /** 1277 * typec_find_power_role - Find the typec one specific power role 1278 * @name: power role string 1279 * 1280 * This routine is used to find the typec_role by its string name. 1281 * 1282 * Returns typec_role if success, otherwise negative error code. 1283 */ 1284 int typec_find_power_role(const char *name) 1285 { 1286 return match_string(typec_roles, ARRAY_SIZE(typec_roles), name); 1287 } > 1288 EXPORT_SYMBOL_GPL(typec_find_preferred_role); 1289 1290 /** 1291 * typec_find_port_data_role - Get the typec port data capability 1292 * @name: port data capability string 1293 * 1294 * This routine is used to find the typec_port_data by its string name. 1295 * 1296 * Returns typec_port_data if success, otherwise negative error code. 1297 */ 1298 int typec_find_port_data_role(const char *name) 1299 { 1300 return match_string(typec_data_caps, ARRAY_SIZE(typec_data_caps), 1301 name); 1302 } > 1303 EXPORT_SYMBOL_GPL(typec_find_data_type); 1304 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
SGkNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbToga2J1aWxkIHRlc3Qgcm9i b3QgW21haWx0bzpsa3BAaW50ZWwuY29tXQ0KPiBTZW50OiAyMDE4xOo11MIzMMjVIDEyOjI2DQo+ IFRvOiBKdW4gTGkgPGp1bi5saUBueHAuY29tPg0KPiBDYzoga2J1aWxkLWFsbEAwMS5vcmc7IHJv YmgrZHRAa2VybmVsLm9yZzsgZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7DQo+IGhlaWtraS5r cm9nZXJ1c0BsaW51eC5pbnRlbC5jb207IGxpbnV4QHJvZWNrLXVzLm5ldDsNCj4gY3cwMC5jaG9p QHNhbXN1bmcuY29tOyBhLmhhamRhQHNhbXN1bmcuY29tOyBzaHVmYW5fbGVlQHJpY2h0ZWsuY29t Ow0KPiBQZXRlciBDaGVuIDxwZXRlci5jaGVuQG54cC5jb20+OyBnYXJzaWx2YUBlbWJlZGRlZG9y LmNvbTsNCj4gZ3NvbWxvQGdtYWlsLmNvbTsgSnVuIExpIDxqdW4ubGlAbnhwLmNvbT47IGxpbnV4 LXVzYkB2Z2VyLmtlcm5lbC5vcmc7DQo+IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBkbC1s aW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDA1 LzE1XSB1c2I6IHR5cGVjOiBhZGQgQVBJIHRvIGdldCB0eXBlYyBiYXNpYyBwb3J0IHBvd2VyDQo+ IGFuZCBkYXRhIGNvbmZpZw0KPiANCj4gSGkgTGksDQo+IA0KPiBUaGFuayB5b3UgZm9yIHRoZSBw YXRjaCEgWWV0IHNvbWV0aGluZyB0byBpbXByb3ZlOg0KPiANCj4gW2F1dG8gYnVpbGQgdGVzdCBF UlJPUiBvbiB1c2IvdXNiLXRlc3RpbmddIFthbHNvIGJ1aWxkIHRlc3QgRVJST1Igb24gdjQuMTct cmM3DQo+IG5leHQtMjAxODA1MjldIFtjYW5ub3QgYXBwbHkgdG8gc3RhZ2luZy9zdGFnaW5nLXRl c3RpbmddIFtpZiB5b3VyIHBhdGNoIGlzDQo+IGFwcGxpZWQgdG8gdGhlIHdyb25nIGdpdCB0cmVl LCBwbGVhc2UgZHJvcCB1cyBhIG5vdGUgdG8gaGVscCBpbXByb3ZlIHRoZQ0KPiBzeXN0ZW1dDQo+ IA0KPiB1cmw6DQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZnaXRodQ0KPiBiLmNvbSUyRjBkYXktY2klMkZsaW51eCUy RmNvbW1pdHMlMkZMaS1KdW4lMkZzdGFnaW5nLXR5cGVjLXRjcGNpLW1vdmUtDQo+IG91dC1vZi1z dGFnaW5nJTJGMjAxODA1MzAtMTEwMDExJmRhdGE9MDIlN0MwMSU3Q2p1bi5saSU0MG54cC5jb20l Nw0KPiBDNTYxMTZjNTAyNjlmNDhhYzJhZjIwOGQ1YzVlNTkwYjMlN0M2ODZlYTFkM2JjMmI0YzZm YTkyY2Q5OWM1YzMwMQ0KPiA2MzUlN0MwJTdDMCU3QzYzNjYzMjUxNTQ4MzY3MzEwMSZzZGF0YT0w REZBWXdjQmpsTE4xU21PJTJCdkNHDQo+IHMxWUxveWpMQ2psaDg5VFR5SEgxVEZzJTNEJnJlc2Vy dmVkPTANCj4gYmFzZToNCj4gaHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdC5rZQ0KPiBybmVsLm9yZyUyRnB1YiUyRnNj bSUyRmxpbnV4JTJGa2VybmVsJTJGZ2l0JTJGZ3JlZ2toJTJGdXNiLmdpdCZkYXRhPQ0KPiAwMiU3 QzAxJTdDanVuLmxpJTQwbnhwLmNvbSU3QzU2MTE2YzUwMjY5ZjQ4YWMyYWYyMDhkNWM1ZTU5MGIz JTdDNg0KPiA4NmVhMWQzYmMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2MzY2MzI1 MTU0ODM2NzMxMDEmc2QNCj4gYXRhPU9KblN6UFNHTWRLa1Y5dzJ3VDhhN09qd0tJTUUyZzBWR21W eEplckloVGMlM0QmcmVzZXJ2ZWQ9MA0KPiB1c2ItdGVzdGluZw0KPiBjb25maWc6IGkzODYtcmFu ZGNvbmZpZy14MDE3LTIwMTgyMSAoYXR0YWNoZWQgYXMgLmNvbmZpZykNCj4gY29tcGlsZXI6IGdj Yy03IChEZWJpYW4gNy4zLjAtMTYpIDcuMy4wDQo+IHJlcHJvZHVjZToNCj4gICAgICAgICAjIHNh dmUgdGhlIGF0dGFjaGVkIC5jb25maWcgdG8gbGludXggYnVpbGQgdHJlZQ0KPiAgICAgICAgIG1h a2UgQVJDSD1pMzg2DQo+IA0KPiBBbGwgZXJyb3Ivd2FybmluZ3MgKG5ldyBvbmVzIHByZWZpeGVk IGJ5ID4+KToNCj4gDQo+ICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSBpbmNsdWRlL2xpbnV4L2xp bmthZ2UuaDo3OjAsDQo+ICAgICAgICAgICAgICAgICAgICAgZnJvbSBpbmNsdWRlL2xpbnV4L2tl cm5lbC5oOjcsDQo+ICAgICAgICAgICAgICAgICAgICAgZnJvbSBpbmNsdWRlL2xpbnV4L2xpc3Qu aDo5LA0KPiAgICAgICAgICAgICAgICAgICAgIGZyb20gaW5jbHVkZS9saW51eC9rb2JqZWN0Lmg6 MTksDQo+ICAgICAgICAgICAgICAgICAgICAgZnJvbSBpbmNsdWRlL2xpbnV4L2RldmljZS5oOjE2 LA0KPiAgICAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy91c2IvdHlwZWMvY2xhc3MuYzo5 Og0KPiA+PiBkcml2ZXJzL3VzYi90eXBlYy9jbGFzcy5jOjEyNzQ6MTk6IGVycm9yOiAndHlwZWNf ZmluZF9wb3dlcl90eXBlJw0KPiB1bmRlY2xhcmVkIGhlcmUgKG5vdCBpbiBhIGZ1bmN0aW9uKTsg ZGlkIHlvdSBtZWFuICd0eXBlY19maW5kX3Bvd2VyX3JvbGUnPw0KPiAgICAgRVhQT1JUX1NZTUJP TF9HUEwodHlwZWNfZmluZF9wb3dlcl90eXBlKTsNCj4gICAgICAgICAgICAgICAgICAgICAgIF4N Cj4gICAgaW5jbHVkZS9saW51eC9leHBvcnQuaDo2NToxNjogbm90ZTogaW4gZGVmaW5pdGlvbiBv ZiBtYWNybw0KPiAnX19fRVhQT1JUX1NZTUJPTCcNCj4gICAgICBleHRlcm4gdHlwZW9mKHN5bSkg c3ltOyAgICAgIFwNCj4gICAgICAgICAgICAgICAgICAgIF5+fg0KPiA+PiBkcml2ZXJzL3VzYi90 eXBlYy9jbGFzcy5jOjEyNzQ6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvDQo+ICdFWFBP UlRfU1lNQk9MX0dQTCcNCj4gICAgIEVYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2ZpbmRfcG93ZXJf dHlwZSk7DQo+ICAgICBefn5+fn5+fn5+fn5+fn5+fg0KPiA+PiBkcml2ZXJzL3VzYi90eXBlYy9j bGFzcy5jOjEyODg6MTk6IGVycm9yOiAndHlwZWNfZmluZF9wcmVmZXJyZWRfcm9sZScNCj4gdW5k ZWNsYXJlZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiAndHlwZWNfZmlu ZF9wb3dlcl9yb2xlJz8NCj4gICAgIEVYUE9SVF9TWU1CT0xfR1BMKHR5cGVjX2ZpbmRfcHJlZmVy cmVkX3JvbGUpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgXg0KPiAgICBpbmNsdWRlL2xpbnV4 L2V4cG9ydC5oOjY1OjE2OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvDQo+ICdfX19FWFBP UlRfU1lNQk9MJw0KPiAgICAgIGV4dGVybiB0eXBlb2Yoc3ltKSBzeW07ICAgICAgXA0KPiAgICAg ICAgICAgICAgICAgICAgXn5+DQo+ICAgIGRyaXZlcnMvdXNiL3R5cGVjL2NsYXNzLmM6MTI4ODox OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8NCj4gJ0VYUE9SVF9TWU1CT0xfR1BMJw0KPiAg ICAgRVhQT1JUX1NZTUJPTF9HUEwodHlwZWNfZmluZF9wcmVmZXJyZWRfcm9sZSk7DQo+ICAgICBe fn5+fn5+fn5+fn5+fn5+fg0KPiA+PiBkcml2ZXJzL3VzYi90eXBlYy9jbGFzcy5jOjEzMDM6MTk6 IGVycm9yOiAndHlwZWNfZmluZF9kYXRhX3R5cGUnIHVuZGVjbGFyZWQNCj4gaGVyZSAobm90IGlu IGEgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4gJ3R5cGVjX2ZpbmRfcG93ZXJfdHlwZSc/DQo+ICAg ICBFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19maW5kX2RhdGFfdHlwZSk7DQo+ICAgICAgICAgICAg ICAgICAgICAgICBeDQo+ICAgIGluY2x1ZGUvbGludXgvZXhwb3J0Lmg6NjU6MTY6IG5vdGU6IGlu IGRlZmluaXRpb24gb2YgbWFjcm8NCj4gJ19fX0VYUE9SVF9TWU1CT0wnDQo+ICAgICAgZXh0ZXJu IHR5cGVvZihzeW0pIHN5bTsgICAgICBcDQo+ICAgICAgICAgICAgICAgICAgICBefn4NCj4gICAg ZHJpdmVycy91c2IvdHlwZWMvY2xhc3MuYzoxMzAzOjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybw0KPiAnRVhQT1JUX1NZTUJPTF9HUEwnDQo+ICAgICBFWFBPUlRfU1lNQk9MX0dQTCh0eXBl Y19maW5kX2RhdGFfdHlwZSk7DQo+ICAgICBefn5+fn5+fn5+fn5+fn5+fg0KPiANCj4gdmltICsx Mjc0IGRyaXZlcnMvdXNiL3R5cGVjL2NsYXNzLmMNCg0KV2lsbCBmaXggYWxsIGFib3ZlIDMgZXhw b3J0IHN5bWJvbCBtaXNtYXRjaC4NCg0KTGkgSnVuDQo+IA0KPiAgIDEyNjANCj4gICAxMjYxCS8q Kg0KPiAgIDEyNjIJICogdHlwZWNfZmluZF9wb3J0X3Bvd2VyX3JvbGUgLSBHZXQgdGhlIHR5cGVj IHBvcnQgcG93ZXIgY2FwYWJpbGl0eQ0KPiAgIDEyNjMJICogQG5hbWU6IHBvcnQgcG93ZXIgY2Fw YWJpbGl0eSBzdHJpbmcNCj4gICAxMjY0CSAqDQo+ICAgMTI2NQkgKiBUaGlzIHJvdXRpbmUgaXMg dXNlZCB0byBmaW5kIHRoZSB0eXBlY19wb3J0X3R5cGUgYnkgaXRzIHN0cmluZyBuYW1lLg0KPiAg IDEyNjYJICoNCj4gICAxMjY3CSAqIFJldHVybnMgdHlwZWNfcG9ydF90eXBlIGlmIHN1Y2Nlc3Ms IG90aGVyd2lzZSBuZWdhdGl2ZSBlcnJvcg0KPiBjb2RlLg0KPiAgIDEyNjgJICovDQo+ICAgMTI2 OQlpbnQgdHlwZWNfZmluZF9wb3J0X3Bvd2VyX3JvbGUoY29uc3QgY2hhciAqbmFtZSkNCj4gICAx MjcwCXsNCj4gICAxMjcxCQlyZXR1cm4gbWF0Y2hfc3RyaW5nKHR5cGVjX3BvcnRfdHlwZXMsDQo+ IEFSUkFZX1NJWkUodHlwZWNfcG9ydF90eXBlcyksDQo+ICAgMTI3MgkJCQkgICAgbmFtZSk7DQo+ ICAgMTI3Mwl9DQo+ID4gMTI3NAlFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19maW5kX3Bvd2VyX3R5 cGUpOw0KPiAgIDEyNzUNCj4gICAxMjc2CS8qKg0KPiAgIDEyNzcJICogdHlwZWNfZmluZF9wb3dl cl9yb2xlIC0gRmluZCB0aGUgdHlwZWMgb25lIHNwZWNpZmljIHBvd2VyIHJvbGUNCj4gICAxMjc4 CSAqIEBuYW1lOiBwb3dlciByb2xlIHN0cmluZw0KPiAgIDEyNzkJICoNCj4gICAxMjgwCSAqIFRo aXMgcm91dGluZSBpcyB1c2VkIHRvIGZpbmQgdGhlIHR5cGVjX3JvbGUgYnkgaXRzIHN0cmluZyBu YW1lLg0KPiAgIDEyODEJICoNCj4gICAxMjgyCSAqIFJldHVybnMgdHlwZWNfcm9sZSBpZiBzdWNj ZXNzLCBvdGhlcndpc2UgbmVnYXRpdmUgZXJyb3IgY29kZS4NCj4gICAxMjgzCSAqLw0KPiAgIDEy ODQJaW50IHR5cGVjX2ZpbmRfcG93ZXJfcm9sZShjb25zdCBjaGFyICpuYW1lKQ0KPiAgIDEyODUJ ew0KPiAgIDEyODYJCXJldHVybiBtYXRjaF9zdHJpbmcodHlwZWNfcm9sZXMsIEFSUkFZX1NJWkUo dHlwZWNfcm9sZXMpLA0KPiBuYW1lKTsNCj4gICAxMjg3CX0NCj4gPiAxMjg4CUVYUE9SVF9TWU1C T0xfR1BMKHR5cGVjX2ZpbmRfcHJlZmVycmVkX3JvbGUpOw0KPiAgIDEyODkNCj4gICAxMjkwCS8q Kg0KPiAgIDEyOTEJICogdHlwZWNfZmluZF9wb3J0X2RhdGFfcm9sZSAtIEdldCB0aGUgdHlwZWMg cG9ydCBkYXRhIGNhcGFiaWxpdHkNCj4gICAxMjkyCSAqIEBuYW1lOiBwb3J0IGRhdGEgY2FwYWJp bGl0eSBzdHJpbmcNCj4gICAxMjkzCSAqDQo+ICAgMTI5NAkgKiBUaGlzIHJvdXRpbmUgaXMgdXNl ZCB0byBmaW5kIHRoZSB0eXBlY19wb3J0X2RhdGEgYnkgaXRzIHN0cmluZyBuYW1lLg0KPiAgIDEy OTUJICoNCj4gICAxMjk2CSAqIFJldHVybnMgdHlwZWNfcG9ydF9kYXRhIGlmIHN1Y2Nlc3MsIG90 aGVyd2lzZSBuZWdhdGl2ZSBlcnJvcg0KPiBjb2RlLg0KPiAgIDEyOTcJICovDQo+ICAgMTI5OAlp bnQgdHlwZWNfZmluZF9wb3J0X2RhdGFfcm9sZShjb25zdCBjaGFyICpuYW1lKQ0KPiAgIDEyOTkJ ew0KPiAgIDEzMDAJCXJldHVybiBtYXRjaF9zdHJpbmcodHlwZWNfZGF0YV9jYXBzLA0KPiBBUlJB WV9TSVpFKHR5cGVjX2RhdGFfY2FwcyksDQo+ICAgMTMwMQkJCQkgICAgbmFtZSk7DQo+ICAgMTMw Mgl9DQo+ID4gMTMwMwlFWFBPUlRfU1lNQk9MX0dQTCh0eXBlY19maW5kX2RhdGFfdHlwZSk7DQo+ ICAgMTMwNA0KPiANCj4gLS0tDQo+IDAtREFZIGtlcm5lbCB0ZXN0IGluZnJhc3RydWN0dXJlICAg ICAgICAgICAgICAgIE9wZW4gU291cmNlIFRlY2hub2xvZ3kNCj4gQ2VudGVyDQo+IGh0dHBzOi8v ZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYl MkZsaXN0cy4wDQo+IDEub3JnJTJGcGlwZXJtYWlsJTJGa2J1aWxkLWFsbCZkYXRhPTAyJTdDMDEl N0NqdW4ubGklNDBueHAuY29tJTdDNTYxDQo+IDE2YzUwMjY5ZjQ4YWMyYWYyMDhkNWM1ZTU5MGIz JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlDQo+IDdDMCU3QzAlN0M2MzY2MzI1 MTU0ODM2NzMxMDEmc2RhdGE9RGM1bnozcjJUV1U3NnNhT0tjMDNkMkRCVWUNCj4gaHRNZm9rUkJm S0ViekZROXMlM0QmcmVzZXJ2ZWQ9MCAgICAgICAgICAgICAgICAgICBJbnRlbCBDb3Jwb3JhdGlv bg0K -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Li, Thank you for the patch! Yet something to improve: [auto build test ERROR on usb/usb-testing] [also build test ERROR on v4.17-rc7 next-20180529] [cannot apply to staging/staging-testing] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Li-Jun/staging-typec-tcpci-move-out-of-staging/20180530-110011 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: i386-randconfig-s1-201821 (attached as .config) compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): In file included from include/linux/linkage.h:7:0, from include/linux/kernel.h:7, from include/linux/list.h:9, from include/linux/kobject.h:19, from include/linux/device.h:16, from drivers/usb//typec/class.c:9: >> drivers/usb//typec/class.c:1274:19: error: 'typec_find_power_type' undeclared here (not in a function) EXPORT_SYMBOL_GPL(typec_find_power_type); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ drivers/usb//typec/class.c:1274:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_power_type); ^~~~~~~~~~~~~~~~~ >> drivers/usb//typec/class.c:1288:19: error: 'typec_find_preferred_role' undeclared here (not in a function) EXPORT_SYMBOL_GPL(typec_find_preferred_role); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ drivers/usb//typec/class.c:1288:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_preferred_role); ^~~~~~~~~~~~~~~~~ >> drivers/usb//typec/class.c:1303:19: error: 'typec_find_data_type' undeclared here (not in a function) EXPORT_SYMBOL_GPL(typec_find_data_type); ^ include/linux/export.h:65:16: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ drivers/usb//typec/class.c:1303:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL' EXPORT_SYMBOL_GPL(typec_find_data_type); ^~~~~~~~~~~~~~~~~ vim +/typec_find_power_type +1274 drivers/usb//typec/class.c 1260 1261 /** 1262 * typec_find_port_power_role - Get the typec port power capability 1263 * @name: port power capability string 1264 * 1265 * This routine is used to find the typec_port_type by its string name. 1266 * 1267 * Returns typec_port_type if success, otherwise negative error code. 1268 */ 1269 int typec_find_port_power_role(const char *name) 1270 { 1271 return match_string(typec_port_types, ARRAY_SIZE(typec_port_types), 1272 name); 1273 } > 1274 EXPORT_SYMBOL_GPL(typec_find_power_type); 1275 1276 /** 1277 * typec_find_power_role - Find the typec one specific power role 1278 * @name: power role string 1279 * 1280 * This routine is used to find the typec_role by its string name. 1281 * 1282 * Returns typec_role if success, otherwise negative error code. 1283 */ 1284 int typec_find_power_role(const char *name) 1285 { 1286 return match_string(typec_roles, ARRAY_SIZE(typec_roles), name); 1287 } > 1288 EXPORT_SYMBOL_GPL(typec_find_preferred_role); 1289 1290 /** 1291 * typec_find_port_data_role - Get the typec port data capability 1292 * @name: port data capability string 1293 * 1294 * This routine is used to find the typec_port_data by its string name. 1295 * 1296 * Returns typec_port_data if success, otherwise negative error code. 1297 */ 1298 int typec_find_port_data_role(const char *name) 1299 { 1300 return match_string(typec_data_caps, ARRAY_SIZE(typec_data_caps), 1301 name); 1302 } > 1303 EXPORT_SYMBOL_GPL(typec_find_data_type); 1304 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index 53df10d..4c7d18c 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -802,6 +802,12 @@ static const char * const typec_port_types[] = { [TYPEC_PORT_DRP] = "dual", }; +static const char * const typec_data_caps[] = { + [TYPEC_PORT_DFP] = "host", + [TYPEC_PORT_UFP] = "device", + [TYPEC_PORT_DRD] = "dual", +}; + static const char * const typec_port_types_drp[] = { [TYPEC_PORT_SRC] = "dual [source] sink", [TYPEC_PORT_SNK] = "dual source [sink]", @@ -1252,6 +1258,50 @@ void typec_set_pwr_opmode(struct typec_port *port, } EXPORT_SYMBOL_GPL(typec_set_pwr_opmode); +/** + * typec_find_port_power_role - Get the typec port power capability + * @name: port power capability string + * + * This routine is used to find the typec_port_type by its string name. + * + * Returns typec_port_type if success, otherwise negative error code. + */ +int typec_find_port_power_role(const char *name) +{ + return match_string(typec_port_types, ARRAY_SIZE(typec_port_types), + name); +} +EXPORT_SYMBOL_GPL(typec_find_power_type); + +/** + * typec_find_power_role - Find the typec one specific power role + * @name: power role string + * + * This routine is used to find the typec_role by its string name. + * + * Returns typec_role if success, otherwise negative error code. + */ +int typec_find_power_role(const char *name) +{ + return match_string(typec_roles, ARRAY_SIZE(typec_roles), name); +} +EXPORT_SYMBOL_GPL(typec_find_preferred_role); + +/** + * typec_find_port_data_role - Get the typec port data capability + * @name: port data capability string + * + * This routine is used to find the typec_port_data by its string name. + * + * Returns typec_port_data if success, otherwise negative error code. + */ +int typec_find_port_data_role(const char *name) +{ + return match_string(typec_data_caps, ARRAY_SIZE(typec_data_caps), + name); +} +EXPORT_SYMBOL_GPL(typec_find_data_type); + /* ------------------------------------------ */ /* API for Multiplexer/DeMultiplexer Switches */ diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h index 672b39b..15f8d9a 100644 --- a/include/linux/usb/typec.h +++ b/include/linux/usb/typec.h @@ -267,4 +267,7 @@ int typec_set_orientation(struct typec_port *port, enum typec_orientation orientation); int typec_set_mode(struct typec_port *port, int mode); +int typec_find_port_power_role(const char *name); +int typec_find_power_role(const char *name); +int typec_find_port_data_role(const char *name); #endif /* __LINUX_USB_TYPEC_H */
This patch adds 3 APIs to get the typec port power and data type, and preferred power role by its name string. Signed-off-by: Li Jun <jun.li@nxp.com> --- drivers/usb/typec/class.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/usb/typec.h | 3 +++ 2 files changed, 53 insertions(+)