ucsi             5262 drivers/pci/quirks.c static void quirk_gpu_usb_typec_ucsi(struct pci_dev *ucsi)
ucsi             5264 drivers/pci/quirks.c 	pci_create_device_link(ucsi, 3, 0, PCI_BASE_CLASS_DISPLAY, 16);
ucsi               67 drivers/usb/typec/ucsi/displayport.c 	ret = ucsi_send_command(dp->con->ucsi, &ctrl, &cur, sizeof(cur));
ucsi               69 drivers/usb/typec/ucsi/displayport.c 		if (dp->con->ucsi->ppm->data->version > 0x0100) {
ucsi              121 drivers/usb/typec/ucsi/displayport.c 	ret = ucsi_send_command(dp->con->ucsi, &ctrl, NULL, 0);
ucsi              182 drivers/usb/typec/ucsi/displayport.c 	return ucsi_send_command(dp->con->ucsi, &ctrl, NULL, 0);
ucsi                4 drivers/usb/typec/ucsi/trace.h #define TRACE_SYSTEM ucsi
ucsi               42 drivers/usb/typec/ucsi/ucsi.c static inline int ucsi_sync(struct ucsi *ucsi)
ucsi               44 drivers/usb/typec/ucsi/ucsi.c 	if (ucsi->ppm && ucsi->ppm->sync)
ucsi               45 drivers/usb/typec/ucsi/ucsi.c 		return ucsi->ppm->sync(ucsi->ppm);
ucsi               49 drivers/usb/typec/ucsi/ucsi.c static int ucsi_command(struct ucsi *ucsi, struct ucsi_control *ctrl)
ucsi               55 drivers/usb/typec/ucsi/ucsi.c 	set_bit(COMMAND_PENDING, &ucsi->flags);
ucsi               57 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi->ppm->cmd(ucsi->ppm, ctrl);
ucsi               61 drivers/usb/typec/ucsi/ucsi.c 	if (!wait_for_completion_timeout(&ucsi->complete,
ucsi               63 drivers/usb/typec/ucsi/ucsi.c 		dev_warn(ucsi->dev, "PPM NOT RESPONDING\n");
ucsi               68 drivers/usb/typec/ucsi/ucsi.c 	clear_bit(COMMAND_PENDING, &ucsi->flags);
ucsi               73 drivers/usb/typec/ucsi/ucsi.c static int ucsi_ack(struct ucsi *ucsi, u8 ack)
ucsi               80 drivers/usb/typec/ucsi/ucsi.c 	set_bit(ACK_PENDING, &ucsi->flags);
ucsi               83 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi->ppm->cmd(ucsi->ppm, &ctrl);
ucsi               91 drivers/usb/typec/ucsi/ucsi.c 	if (!wait_for_completion_timeout(&ucsi->complete,
ucsi               96 drivers/usb/typec/ucsi/ucsi.c 	clear_bit(ACK_PENDING, &ucsi->flags);
ucsi               99 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "%s: failed\n", __func__);
ucsi              104 drivers/usb/typec/ucsi/ucsi.c static int ucsi_run_command(struct ucsi *ucsi, struct ucsi_control *ctrl,
ucsi              112 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_command(ucsi, ctrl);
ucsi              116 drivers/usb/typec/ucsi/ucsi.c 	switch (ucsi->status) {
ucsi              118 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_sync(ucsi);
ucsi              120 drivers/usb/typec/ucsi/ucsi.c 			dev_warn(ucsi->dev, "%s: sync failed\n", __func__);
ucsi              123 drivers/usb/typec/ucsi/ucsi.c 			memcpy(data, ucsi->ppm->data->message_in, size);
ucsi              125 drivers/usb/typec/ucsi/ucsi.c 		data_length = ucsi->ppm->data->cci.data_length;
ucsi              127 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_ack(ucsi, UCSI_ACK_CMD);
ucsi              136 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_ack(ucsi, UCSI_ACK_CMD);
ucsi              142 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_command(ucsi, &_ctrl);
ucsi              144 drivers/usb/typec/ucsi/ucsi.c 			dev_err(ucsi->dev, "reading error failed!\n");
ucsi              148 drivers/usb/typec/ucsi/ucsi.c 		memcpy(&error, ucsi->ppm->data->message_in, sizeof(error));
ucsi              151 drivers/usb/typec/ucsi/ucsi.c 		if (WARN_ON(ucsi->status == UCSI_ERROR)) {
ucsi              156 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_ack(ucsi, UCSI_ACK_CMD);
ucsi              171 drivers/usb/typec/ucsi/ucsi.c 			dev_warn(ucsi->dev, "Dead battery condition!\n");
ucsi              178 drivers/usb/typec/ucsi/ucsi.c 			dev_warn(ucsi->dev,
ucsi              184 drivers/usb/typec/ucsi/ucsi.c 			dev_warn(ucsi->dev,
ucsi              198 drivers/usb/typec/ucsi/ucsi.c int ucsi_send_command(struct ucsi *ucsi, struct ucsi_control *ctrl,
ucsi              203 drivers/usb/typec/ucsi/ucsi.c 	mutex_lock(&ucsi->ppm_lock);
ucsi              204 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, ctrl, retval, size);
ucsi              205 drivers/usb/typec/ucsi/ucsi.c 	mutex_unlock(&ucsi->ppm_lock);
ucsi              211 drivers/usb/typec/ucsi/ucsi.c int ucsi_resume(struct ucsi *ucsi)
ucsi              217 drivers/usb/typec/ucsi/ucsi.c 	return ucsi_send_command(ucsi, &ctrl, NULL, 0);
ucsi              231 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(con->ucsi, &ctrl, &cur, sizeof(cur));
ucsi              233 drivers/usb/typec/ucsi/ucsi.c 		if (con->ucsi->ppm->data->version > 0x0100) {
ucsi              234 drivers/usb/typec/ucsi/ucsi.c 			dev_err(con->ucsi->dev,
ucsi              281 drivers/usb/typec/ucsi/ucsi.c 	override = !!(con->ucsi->cap.features & UCSI_CAP_ALT_MODE_OVERRIDE);
ucsi              338 drivers/usb/typec/ucsi/ucsi.c 	dev_err(con->ucsi->dev, "failed to registers svid 0x%04x mode %d\n",
ucsi              356 drivers/usb/typec/ucsi/ucsi.c 	if (!(con->ucsi->cap.features & UCSI_CAP_ALT_MODE_DETAILS))
ucsi              363 drivers/usb/typec/ucsi/ucsi.c 		max_altmodes = con->ucsi->cap.num_alt_modes;
ucsi              368 drivers/usb/typec/ucsi/ucsi.c 		len = ucsi_run_command(con->ucsi, &ctrl, alt, sizeof(alt));
ucsi              471 drivers/usb/typec/ucsi/ucsi.c 		dev_err(con->ucsi->dev,
ucsi              517 drivers/usb/typec/ucsi/ucsi.c 		dev_err(con->ucsi->dev,
ucsi              528 drivers/usb/typec/ucsi/ucsi.c 	struct ucsi *ucsi = con->ucsi;
ucsi              535 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_send_command(ucsi, &ctrl, &con->status, sizeof(con->status));
ucsi              537 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n",
ucsi              580 drivers/usb/typec/ucsi/ucsi.c 		ucsi_run_command(con->ucsi, &ctrl, NULL, 0);
ucsi              586 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_ack(ucsi, UCSI_ACK_EVENT);
ucsi              588 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "%s: ACK failed (%d)", __func__, ret);
ucsi              593 drivers/usb/typec/ucsi/ucsi.c 	clear_bit(EVENT_PENDING, &ucsi->flags);
ucsi              603 drivers/usb/typec/ucsi/ucsi.c void ucsi_notify(struct ucsi *ucsi)
ucsi              608 drivers/usb/typec/ucsi/ucsi.c 	ucsi_sync(ucsi);
ucsi              610 drivers/usb/typec/ucsi/ucsi.c 	cci = &ucsi->ppm->data->cci;
ucsi              613 drivers/usb/typec/ucsi/ucsi.c 		ucsi->status = UCSI_ERROR;
ucsi              615 drivers/usb/typec/ucsi/ucsi.c 		ucsi->status = UCSI_BUSY;
ucsi              617 drivers/usb/typec/ucsi/ucsi.c 		ucsi->status = UCSI_IDLE;
ucsi              619 drivers/usb/typec/ucsi/ucsi.c 	if (cci->cmd_complete && test_bit(COMMAND_PENDING, &ucsi->flags)) {
ucsi              620 drivers/usb/typec/ucsi/ucsi.c 		complete(&ucsi->complete);
ucsi              621 drivers/usb/typec/ucsi/ucsi.c 	} else if (cci->ack_complete && test_bit(ACK_PENDING, &ucsi->flags)) {
ucsi              622 drivers/usb/typec/ucsi/ucsi.c 		complete(&ucsi->complete);
ucsi              626 drivers/usb/typec/ucsi/ucsi.c 		con = &ucsi->connector[cci->connector_change - 1];
ucsi              628 drivers/usb/typec/ucsi/ucsi.c 		if (!test_and_set_bit(EVENT_PENDING, &ucsi->flags))
ucsi              632 drivers/usb/typec/ucsi/ucsi.c 	trace_ucsi_notify(ucsi->ppm->data->raw_cci);
ucsi              644 drivers/usb/typec/ucsi/ucsi.c 	return ucsi_send_command(con->ucsi, &ctrl, NULL, 0);
ucsi              647 drivers/usb/typec/ucsi/ucsi.c static int ucsi_reset_ppm(struct ucsi *ucsi)
ucsi              656 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi->ppm->cmd(ucsi->ppm, &ctrl);
ucsi              664 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_sync(ucsi);
ucsi              668 drivers/usb/typec/ucsi/ucsi.c 		if (ucsi->ppm->data->cci.reset_complete)
ucsi              672 drivers/usb/typec/ucsi/ucsi.c 		if (ucsi->ppm->data->raw_cci) {
ucsi              673 drivers/usb/typec/ucsi/ucsi.c 			dev_warn_ratelimited(ucsi->dev,
ucsi              677 drivers/usb/typec/ucsi/ucsi.c 			ret = ucsi->ppm->cmd(ucsi->ppm, &ctrl);
ucsi              698 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_send_command(con->ucsi, ctrl, NULL, 0);
ucsi              703 drivers/usb/typec/ucsi/ucsi.c 		mutex_lock(&con->ucsi->ppm_lock);
ucsi              704 drivers/usb/typec/ucsi/ucsi.c 		ucsi_reset_ppm(con->ucsi);
ucsi              705 drivers/usb/typec/ucsi/ucsi.c 		mutex_unlock(&con->ucsi->ppm_lock);
ucsi              708 drivers/usb/typec/ucsi/ucsi.c 		ucsi_send_command(con->ucsi, &c, NULL, 0);
ucsi              796 drivers/usb/typec/ucsi/ucsi.c 	device_for_each_child_node(con->ucsi->dev, fwnode)
ucsi              802 drivers/usb/typec/ucsi/ucsi.c static int ucsi_register_port(struct ucsi *ucsi, int index)
ucsi              804 drivers/usb/typec/ucsi/ucsi.c 	struct ucsi_connector *con = &ucsi->connector[index];
ucsi              814 drivers/usb/typec/ucsi/ucsi.c 	con->ucsi = ucsi;
ucsi              818 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, &ctrl, &con->cap, sizeof(con->cap));
ucsi              836 drivers/usb/typec/ucsi/ucsi.c 	cap->revision = ucsi->cap.typec_version;
ucsi              837 drivers/usb/typec/ucsi/ucsi.c 	cap->pd_revision = ucsi->cap.pd_version;
ucsi              850 drivers/usb/typec/ucsi/ucsi.c 	con->port = typec_register_port(ucsi->dev, cap);
ucsi              857 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "con%d: failed to register alt modes\n",
ucsi              862 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, &ctrl, &con->status, sizeof(con->status));
ucsi              864 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "con%d: failed to get status\n", con->num);
ucsi              889 drivers/usb/typec/ucsi/ucsi.c 			dev_err(ucsi->dev,
ucsi              903 drivers/usb/typec/ucsi/ucsi.c 	struct ucsi *ucsi = container_of(work, struct ucsi, work);
ucsi              909 drivers/usb/typec/ucsi/ucsi.c 	mutex_lock(&ucsi->ppm_lock);
ucsi              912 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_reset_ppm(ucsi);
ucsi              914 drivers/usb/typec/ucsi/ucsi.c 		dev_err(ucsi->dev, "failed to reset PPM!\n");
ucsi              921 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, &ctrl, NULL, 0);
ucsi              927 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, &ctrl, &ucsi->cap, sizeof(ucsi->cap));
ucsi              931 drivers/usb/typec/ucsi/ucsi.c 	if (!ucsi->cap.num_connectors) {
ucsi              937 drivers/usb/typec/ucsi/ucsi.c 	ucsi->connector = kcalloc(ucsi->cap.num_connectors + 1,
ucsi              938 drivers/usb/typec/ucsi/ucsi.c 				  sizeof(*ucsi->connector), GFP_KERNEL);
ucsi              939 drivers/usb/typec/ucsi/ucsi.c 	if (!ucsi->connector) {
ucsi              945 drivers/usb/typec/ucsi/ucsi.c 	for (i = 0; i < ucsi->cap.num_connectors; i++) {
ucsi              946 drivers/usb/typec/ucsi/ucsi.c 		ret = ucsi_register_port(ucsi, i);
ucsi              953 drivers/usb/typec/ucsi/ucsi.c 	ret = ucsi_run_command(ucsi, &ctrl, NULL, 0);
ucsi              957 drivers/usb/typec/ucsi/ucsi.c 	mutex_unlock(&ucsi->ppm_lock);
ucsi              962 drivers/usb/typec/ucsi/ucsi.c 	for (con = ucsi->connector; con->port; con++) {
ucsi              970 drivers/usb/typec/ucsi/ucsi.c 	ucsi_reset_ppm(ucsi);
ucsi              972 drivers/usb/typec/ucsi/ucsi.c 	mutex_unlock(&ucsi->ppm_lock);
ucsi              973 drivers/usb/typec/ucsi/ucsi.c 	dev_err(ucsi->dev, "PPM init failed (%d)\n", ret);
ucsi              984 drivers/usb/typec/ucsi/ucsi.c struct ucsi *ucsi_register_ppm(struct device *dev, struct ucsi_ppm *ppm)
ucsi              986 drivers/usb/typec/ucsi/ucsi.c 	struct ucsi *ucsi;
ucsi              988 drivers/usb/typec/ucsi/ucsi.c 	ucsi = kzalloc(sizeof(*ucsi), GFP_KERNEL);
ucsi              989 drivers/usb/typec/ucsi/ucsi.c 	if (!ucsi)
ucsi              992 drivers/usb/typec/ucsi/ucsi.c 	INIT_WORK(&ucsi->work, ucsi_init);
ucsi              993 drivers/usb/typec/ucsi/ucsi.c 	init_completion(&ucsi->complete);
ucsi              994 drivers/usb/typec/ucsi/ucsi.c 	mutex_init(&ucsi->ppm_lock);
ucsi              996 drivers/usb/typec/ucsi/ucsi.c 	ucsi->dev = dev;
ucsi              997 drivers/usb/typec/ucsi/ucsi.c 	ucsi->ppm = ppm;
ucsi             1003 drivers/usb/typec/ucsi/ucsi.c 	queue_work(system_long_wq, &ucsi->work);
ucsi             1005 drivers/usb/typec/ucsi/ucsi.c 	return ucsi;
ucsi             1015 drivers/usb/typec/ucsi/ucsi.c void ucsi_unregister_ppm(struct ucsi *ucsi)
ucsi             1021 drivers/usb/typec/ucsi/ucsi.c 	cancel_work_sync(&ucsi->work);
ucsi             1025 drivers/usb/typec/ucsi/ucsi.c 	ucsi_send_command(ucsi, &ctrl, NULL, 0);
ucsi             1027 drivers/usb/typec/ucsi/ucsi.c 	for (i = 0; i < ucsi->cap.num_connectors; i++) {
ucsi             1028 drivers/usb/typec/ucsi/ucsi.c 		cancel_work_sync(&ucsi->connector[i].work);
ucsi             1029 drivers/usb/typec/ucsi/ucsi.c 		ucsi_unregister_partner(&ucsi->connector[i]);
ucsi             1030 drivers/usb/typec/ucsi/ucsi.c 		ucsi_unregister_altmodes(&ucsi->connector[i],
ucsi             1032 drivers/usb/typec/ucsi/ucsi.c 		typec_unregister_port(ucsi->connector[i].port);
ucsi             1035 drivers/usb/typec/ucsi/ucsi.c 	ucsi_reset_ppm(ucsi);
ucsi             1037 drivers/usb/typec/ucsi/ucsi.c 	kfree(ucsi->connector);
ucsi             1038 drivers/usb/typec/ucsi/ucsi.c 	kfree(ucsi);
ucsi              347 drivers/usb/typec/ucsi/ucsi.h struct ucsi;
ucsi              373 drivers/usb/typec/ucsi/ucsi.h struct ucsi *ucsi_register_ppm(struct device *dev, struct ucsi_ppm *ppm);
ucsi              374 drivers/usb/typec/ucsi/ucsi.h void ucsi_unregister_ppm(struct ucsi *ucsi);
ucsi              375 drivers/usb/typec/ucsi/ucsi.h void ucsi_notify(struct ucsi *ucsi);
ucsi              412 drivers/usb/typec/ucsi/ucsi.h 	struct ucsi *ucsi;
ucsi              429 drivers/usb/typec/ucsi/ucsi.h int ucsi_send_command(struct ucsi *ucsi, struct ucsi_control *ctrl,
ucsi              433 drivers/usb/typec/ucsi/ucsi.h int ucsi_resume(struct ucsi *ucsi);
ucsi               21 drivers/usb/typec/ucsi/ucsi_acpi.c 	struct ucsi *ucsi;
ucsi               62 drivers/usb/typec/ucsi/ucsi_acpi.c 	ucsi_notify(ua->ucsi);
ucsi              116 drivers/usb/typec/ucsi/ucsi_acpi.c 	ua->ucsi = ucsi_register_ppm(&pdev->dev, &ua->ppm);
ucsi              117 drivers/usb/typec/ucsi/ucsi_acpi.c 	if (IS_ERR(ua->ucsi)) {
ucsi              121 drivers/usb/typec/ucsi/ucsi_acpi.c 		return PTR_ERR(ua->ucsi);
ucsi              133 drivers/usb/typec/ucsi/ucsi_acpi.c 	ucsi_unregister_ppm(ua->ucsi);
ucsi              178 drivers/usb/typec/ucsi/ucsi_ccg.c 	struct ucsi *ucsi;
ucsi              392 drivers/usb/typec/ucsi/ucsi_ccg.c 	ucsi_notify(uc->ucsi);
ucsi              401 drivers/usb/typec/ucsi/ucsi_ccg.c 	ucsi_notify(uc->ucsi);
ucsi             1030 drivers/usb/typec/ucsi/ucsi_ccg.c 	uc->ucsi = ucsi_register_ppm(dev, &uc->ppm);
ucsi             1031 drivers/usb/typec/ucsi/ucsi_ccg.c 	if (IS_ERR(uc->ucsi)) {
ucsi             1033 drivers/usb/typec/ucsi/ucsi_ccg.c 		return PTR_ERR(uc->ucsi);
ucsi             1050 drivers/usb/typec/ucsi/ucsi_ccg.c 		ucsi_unregister_ppm(uc->ucsi);
ucsi             1146 drivers/usb/typec/ucsi/ucsi_ccg.c 	uc->ucsi = ucsi_register_ppm(dev, &uc->ppm);
ucsi             1147 drivers/usb/typec/ucsi/ucsi_ccg.c 	if (IS_ERR(uc->ucsi)) {
ucsi             1149 drivers/usb/typec/ucsi/ucsi_ccg.c 		return PTR_ERR(uc->ucsi);
ucsi             1157 drivers/usb/typec/ucsi/ucsi_ccg.c 		ucsi_unregister_ppm(uc->ucsi);
ucsi             1178 drivers/usb/typec/ucsi/ucsi_ccg.c 	ucsi_unregister_ppm(uc->ucsi);
ucsi             1196 drivers/usb/typec/ucsi/ucsi_ccg.c 	return ucsi_resume(uc->ucsi);