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);