// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2019 NVIDIA Corporation. All rights reserved. * * NVIDIA USB Type-C Alt Mode Driver */ #include <linux/module.h> #include <linux/usb/typec_altmode.h> #include <linux/usb/typec_dp.h> #include "displayport.h" static int nvidia_altmode_probe(struct typec_altmode *alt) { if (alt->svid == USB_TYPEC_NVIDIA_VLINK_SID) return dp_altmode_probe(alt); else return -ENOTSUPP; } static void nvidia_altmode_remove(struct typec_altmode *alt) { if (alt->svid == USB_TYPEC_NVIDIA_VLINK_SID) dp_altmode_remove(alt); } static const struct typec_device_id nvidia_typec_id[] = { { USB_TYPEC_NVIDIA_VLINK_SID, TYPEC_ANY_MODE }, { }, }; MODULE_DEVICE_TABLE(typec, nvidia_typec_id); static struct typec_altmode_driver nvidia_altmode_driver = { .id_table = nvidia_typec_id, .probe = nvidia_altmode_probe, .remove = nvidia_altmode_remove, .driver = { .name = "typec_nvidia", .owner = THIS_MODULE, }, }; module_typec_altmode_driver(nvidia_altmode_driver); MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("NVIDIA USB Type-C Alt Mode Driver"); |