* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-05-28 2:52 Jun Li
0 siblings, 0 replies; 6+ messages in thread
From: Jun Li @ 2018-05-28 2:52 UTC (permalink / raw)
To: robh+dt, gregkh, heikki.krogerus, linux
Cc: cw00.choi, a.hajda, shufan_lee, peter.chen, garsilva, gsomlo,
jun.li, linux-usb, devicetree, linux-imx
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(+)
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 */
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-05-30 4:25 kbuild test robot
0 siblings, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2018-05-30 4:25 UTC (permalink / raw)
To: Li Jun
Cc: kbuild-all, robh+dt, gregkh, heikki.krogerus, linux, cw00.choi,
a.hajda, shufan_lee, peter.chen, garsilva, gsomlo, linux-usb,
devicetree, linux-imx
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-05-30 5:56 Jun Li
0 siblings, 0 replies; 6+ messages in thread
From: Jun Li @ 2018-05-30 5:56 UTC (permalink / raw)
To: kbuild test robot
Cc: kbuild-all@01.org, robh+dt@kernel.org, gregkh@linuxfoundation.org,
heikki.krogerus@linux.intel.com, linux@roeck-us.net,
cw00.choi@samsung.com, a.hajda@samsung.com,
shufan_lee@richtek.com, Peter Chen, garsilva@embeddedor.com,
gsomlo@gmail.com, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, dl-linux-imx
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-05-30 6:43 kbuild test robot
0 siblings, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2018-05-30 6:43 UTC (permalink / raw)
To: Li Jun
Cc: kbuild-all, robh+dt, gregkh, heikki.krogerus, linux, cw00.choi,
a.hajda, shufan_lee, peter.chen, garsilva, gsomlo, linux-usb,
devicetree, linux-imx
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-06-11 11:08 Heikki Krogerus
0 siblings, 0 replies; 6+ messages in thread
From: Heikki Krogerus @ 2018-06-11 11:08 UTC (permalink / raw)
To: Li Jun
Cc: robh+dt, gregkh, linux, cw00.choi, a.hajda, shufan_lee,
peter.chen, garsilva, gsomlo, linux-usb, devicetree, linux-imx
Hi Jun,
On Mon, May 28, 2018 at 10:52:37AM +0800, Li Jun wrote:
> 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(+)
>
> 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",
> +};
Since I guess you need to fix this patch in any case, could you rename
that to "typec_port_data_roles".
And while at it, how about using this as an opportunity to rename
typec_port_types to typec_port_power_roles?
So this just a suggestion, no need to actually change it :-) :
Thanks,
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index abbd33939109..97f7eb0e9879 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -918,12 +918,18 @@ static const char * const typec_data_roles[] = {
[TYPEC_HOST] = "host",
};
-static const char * const typec_port_types[] = {
+static const char * const typec_port_power_roles[] = {
[TYPEC_PORT_SRC] = "source",
[TYPEC_PORT_SNK] = "sink",
[TYPEC_PORT_DRP] = "dual",
};
+static const char * const typec_port_data_roles[] = {
+ [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]",
@@ -1054,7 +1060,7 @@ static ssize_t power_role_store(struct device *dev,
mutex_lock(&port->port_type_lock);
if (port->port_type != TYPEC_PORT_DRP) {
dev_dbg(dev, "port type fixed at \"%s\"",
- typec_port_types[port->port_type]);
+ typec_port_power_roles[port->port_type]);
ret = -EOPNOTSUPP;
goto unlock_and_ret;
}
@@ -1095,7 +1101,7 @@ port_type_store(struct device *dev, struct device_attribute *attr,
return -EOPNOTSUPP;
}
- ret = sysfs_match_string(typec_port_types, buf);
+ ret = sysfs_match_string(typec_port_power_roles, buf);
if (ret < 0)
return ret;
@@ -1129,7 +1135,7 @@ port_type_show(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "%s\n",
typec_port_types_drp[port->port_type]);
- return sprintf(buf, "[%s]\n", typec_port_types[port->cap->type]);
+ return sprintf(buf, "[%s]\n", typec_port_power_roles[port->cap->type]);
}
static DEVICE_ATTR_RW(port_type);
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [v6,05/15] usb: typec: add API to get typec basic port power and data config
@ 2018-06-13 9:47 Jun Li
0 siblings, 0 replies; 6+ messages in thread
From: Jun Li @ 2018-06-13 9:47 UTC (permalink / raw)
To: Heikki Krogerus
Cc: robh+dt@kernel.org, gregkh@linuxfoundation.org,
linux@roeck-us.net, cw00.choi@samsung.com, a.hajda@samsung.com,
shufan_lee@richtek.com, Peter Chen, garsilva@embeddedor.com,
gsomlo@gmail.com, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, dl-linux-imx
Hi Heikki,
> -----Original Message-----
> From: Heikki Krogerus [mailto:heikki.krogerus@linux.intel.com]
> Sent: 2018年6月11日 19:09
> To: Jun Li <jun.li@nxp.com>
> Cc: robh+dt@kernel.org; gregkh@linuxfoundation.org; linux@roeck-us.net;
> cw00.choi@samsung.com; a.hajda@samsung.com; shufan_lee@richtek.com;
> Peter Chen <peter.chen@nxp.com>; garsilva@embeddedor.com;
> gsomlo@gmail.com; linux-usb@vger.kernel.org; devicetree@vger.kernel.org;
> dl-linux-imx <linux-imx@nxp.com>
> Subject: Re: [PATCH v6 05/15] usb: typec: add API to get typec basic port power
> and data config
>
> Hi Jun,
>
> On Mon, May 28, 2018 at 10:52:37AM +0800, Li Jun wrote:
> > 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(+)
> >
> > 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",
> > +};
>
> Since I guess you need to fix this patch in any case, could you rename that to
> "typec_port_data_roles".
OK.
>
> And while at it, how about using this as an opportunity to rename
> typec_port_types to typec_port_power_roles?
>
> So this just a suggestion, no need to actually change it :-) :
Also OK for me, I can rename it by this chance.
>
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index
> abbd33939109..97f7eb0e9879 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -918,12 +918,18 @@ static const char * const typec_data_roles[] = {
> [TYPEC_HOST] = "host",
> };
>
> -static const char * const typec_port_types[] = {
> +static const char * const typec_port_power_roles[] = {
> [TYPEC_PORT_SRC] = "source",
> [TYPEC_PORT_SNK] = "sink",
> [TYPEC_PORT_DRP] = "dual",
> };
>
> +static const char * const typec_port_data_roles[] = {
> + [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]", @@ -1054,7 +1060,7 @@
> static ssize_t power_role_store(struct device *dev,
> mutex_lock(&port->port_type_lock);
> if (port->port_type != TYPEC_PORT_DRP) {
> dev_dbg(dev, "port type fixed at \"%s\"",
> - typec_port_types[port->port_type]);
> + typec_port_power_roles[port->port_type]);
> ret = -EOPNOTSUPP;
> goto unlock_and_ret;
> }
> @@ -1095,7 +1101,7 @@ port_type_store(struct device *dev, struct
> device_attribute *attr,
> return -EOPNOTSUPP;
> }
>
> - ret = sysfs_match_string(typec_port_types, buf);
> + ret = sysfs_match_string(typec_port_power_roles, buf);
> if (ret < 0)
> return ret;
>
> @@ -1129,7 +1135,7 @@ port_type_show(struct device *dev, struct
> device_attribute *attr,
> return sprintf(buf, "%s\n",
> typec_port_types_drp[port->port_type]);
>
> - return sprintf(buf, "[%s]\n", typec_port_types[port->cap->type]);
> + return sprintf(buf, "[%s]\n",
> + typec_port_power_roles[port->cap->type]);
> }
> static DEVICE_ATTR_RW(port_type);
>
>
> Thanks,
>
> --
> heikki
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-06-13 9:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-28 2:52 [v6,05/15] usb: typec: add API to get typec basic port power and data config Jun Li
-- strict thread matches above, loose matches on Subject: below --
2018-05-30 4:25 kbuild test robot
2018-05-30 5:56 Jun Li
2018-05-30 6:43 kbuild test robot
2018-06-11 11:08 Heikki Krogerus
2018-06-13 9:47 Jun Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).