drm/amd/display: Update RN/VGH active display count workaround
[linux-2.6-microblaze.git] / drivers / thunderbolt / quirks.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Thunderbolt driver - quirks
4  *
5  * Copyright (c) 2020 Mario Limonciello <mario.limonciello@dell.com>
6  */
7
8 #include "tb.h"
9
10 static void quirk_force_power_link(struct tb_switch *sw)
11 {
12         sw->quirks |= QUIRK_FORCE_POWER_LINK_CONTROLLER;
13 }
14
15 struct tb_quirk {
16         u16 vendor;
17         u16 device;
18         void (*hook)(struct tb_switch *sw);
19 };
20
21 static const struct tb_quirk tb_quirks[] = {
22         /* Dell WD19TB supports self-authentication on unplug */
23         { 0x00d4, 0xb070, quirk_force_power_link },
24 };
25
26 /**
27  * tb_check_quirks() - Check for quirks to apply
28  * @sw: Thunderbolt switch
29  *
30  * Apply any quirks for the Thunderbolt controller.
31  */
32 void tb_check_quirks(struct tb_switch *sw)
33 {
34         int i;
35
36         for (i = 0; i < ARRAY_SIZE(tb_quirks); i++) {
37                 const struct tb_quirk *q = &tb_quirks[i];
38
39                 if (sw->device == q->device && sw->vendor == q->vendor)
40                         q->hook(sw);
41         }
42 }