// SPDX-License-Identifier: GPL-2.0/* * Thunderbolt driver - bus logic (NHI independent) * * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com> * Copyright (C) 2019, Intel Corporation */#include<linux/slab.h>#include<linux/errno.h>#include<linux/delay.h>#include<linux/pm_runtime.h>#include"tb.h"#include"tb_regs.h"#include"tunnel.h"/** * struct tb_cm - Simple Thunderbolt connection manager * @tunnel_list: List of active tunnels * @dp_resources: List of available DP resources for DP tunneling * @hotplug_active: tb_handle_hotplug will stop progressing plug * events and exit if this is not set (it needs to * acquire the lock one more time). Used to drain wq * after cfg has been paused. * @remove_work: Work used to remove any unplugged routers after * runtime resume */structtb_cm{structlist_headtunnel_list;structlist_headdp_resources;boolhotplug_active;structdelayed_workremove_work;};staticinlinestructtb*tcm_to_tb(structtb_cm*tcm){return((void*)tcm-