Skip to content

Commit bdf31aa

Browse files
committed
cachy-t2: Define t2_mac_tbl in header instead
Using an exported symbol from applesmc-t2 won't work because it'll create a dependency on that module for both applesmc (impossible since both modules can't be loaded at the same time) and vga_switcheroo. It's possible to create a helper file, either as a module or built-in, but I concluded that it would be too much work at opted for this instead. Signed-off-by: Eric Naim <dnaim@cachyos.org>
1 parent 1859ccb commit bdf31aa

File tree

4 files changed

+33
-39
lines changed

4 files changed

+33
-39
lines changed

drivers/gpu/vga/vga_switcheroo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ bool vga_switcheroo_client_probe_defer(struct pci_dev *pdev)
440440
{
441441
if (pci_is_display(pdev)) {
442442
if (apple_gmux_present() && !vgasr_priv.handler_flags &&
443-
(pdev != vga_default_device() || apple_is_t2_mac()))
443+
(pdev != vga_default_device() || dmi_check_system(t2_mac_tbl)))
444444
return true;
445445
}
446446

drivers/hwmon/applesmc-t2.c

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
2020

21+
#include <linux/cachy-t2.h>
2122
#include <linux/delay.h>
2223
#include <linux/acpi.h>
2324
#include <linux/input.h>
@@ -1811,40 +1812,6 @@ static void applesmc_release_key_backlight(struct applesmc_device *smc)
18111812
destroy_workqueue(smc->backlight_wq);
18121813
}
18131814

1814-
#ifndef T2_MAC
1815-
#define T2_MAC(vendor, product) \
1816-
.matches = { \
1817-
DMI_MATCH(DMI_BOARD_VENDOR, vendor), \
1818-
DMI_MATCH(DMI_PRODUCT_NAME, product), \
1819-
},
1820-
#endif
1821-
1822-
static const struct dmi_system_id t2_mac_tbl[] = {
1823-
{ T2_MAC("Apple Inc.", "MacBookPro15,1") },
1824-
{ T2_MAC("Apple Inc.", "MacBookPro15,2") },
1825-
{ T2_MAC("Apple Inc.", "MacBookPro15,3") },
1826-
{ T2_MAC("Apple Inc.", "MacBookPro15,4") },
1827-
{ T2_MAC("Apple Inc.", "MacBookPro16,1") },
1828-
{ T2_MAC("Apple Inc.", "MacBookPro16,2") },
1829-
{ T2_MAC("Apple Inc.", "MacBookPro16,3") },
1830-
{ T2_MAC("Apple Inc.", "MacBookPro16,4") },
1831-
{ T2_MAC("Apple Inc.", "MacBookAir8,1") },
1832-
{ T2_MAC("Apple Inc.", "MacBookAir8,2") },
1833-
{ T2_MAC("Apple Inc.", "MacBookAir9,1") },
1834-
{ T2_MAC("Apple Inc.", "Macmini8,1") },
1835-
{ T2_MAC("Apple Inc.", "MacPro7,1") },
1836-
{ T2_MAC("Apple Inc.", "iMac20,1") },
1837-
{ T2_MAC("Apple Inc.", "iMac20,2") },
1838-
{ T2_MAC("Apple Inc.", "iMacPro1,1") },
1839-
{ }
1840-
};
1841-
1842-
bool apple_is_t2_mac(void)
1843-
{
1844-
return dmi_check_system(t2_mac_tbl);
1845-
}
1846-
EXPORT_SYMBOL_GPL(apple_is_t2_mac)
1847-
18481815
static int applesmc_create_modules(struct applesmc_device *smc)
18491816
{
18501817
int ret;
@@ -1918,7 +1885,7 @@ static int __init applesmc_init(void)
19181885
{
19191886
int ret;
19201887

1921-
if (!apple_is_t2_mac()) {
1888+
if (!dmi_check_system(t2_mac_tbl)) {
19221889
pr_warn("supported laptop not found!\n");
19231890
ret = -ENODEV;
19241891
goto out;

drivers/hwmon/applesmc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,7 @@ static int __init applesmc_init(void)
13111311
{
13121312
int ret;
13131313

1314-
if (!dmi_check_system(applesmc_whitelist) || apple_is_t2_mac()) {
1314+
if (!dmi_check_system(applesmc_whitelist) || dmi_check_system(t2_mac_tbl)) {
13151315
pr_warn("supported laptop not found!\n");
13161316
ret = -ENODEV;
13171317
goto out;

include/linux/cachy-t2.h

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,35 @@
11
#ifndef CACHYOS_T2_H
22
#define CACHYOS_T2_H
33

4-
#include <linux/types.h>
4+
#include <linux/dmi.h>
55

6-
bool apple_is_t2_mac(void);
6+
7+
#ifndef T2_MAC
8+
#define T2_MAC(vendor, product) \
9+
.matches = { \
10+
DMI_MATCH(DMI_BOARD_VENDOR, vendor), \
11+
DMI_MATCH(DMI_PRODUCT_NAME, product), \
12+
},
13+
#endif
14+
15+
static const struct dmi_system_id t2_mac_tbl[] = {
16+
{ T2_MAC("Apple Inc.", "MacBookPro15,1") },
17+
{ T2_MAC("Apple Inc.", "MacBookPro15,2") },
18+
{ T2_MAC("Apple Inc.", "MacBookPro15,3") },
19+
{ T2_MAC("Apple Inc.", "MacBookPro15,4") },
20+
{ T2_MAC("Apple Inc.", "MacBookPro16,1") },
21+
{ T2_MAC("Apple Inc.", "MacBookPro16,2") },
22+
{ T2_MAC("Apple Inc.", "MacBookPro16,3") },
23+
{ T2_MAC("Apple Inc.", "MacBookPro16,4") },
24+
{ T2_MAC("Apple Inc.", "MacBookAir8,1") },
25+
{ T2_MAC("Apple Inc.", "MacBookAir8,2") },
26+
{ T2_MAC("Apple Inc.", "MacBookAir9,1") },
27+
{ T2_MAC("Apple Inc.", "Macmini8,1") },
28+
{ T2_MAC("Apple Inc.", "MacPro7,1") },
29+
{ T2_MAC("Apple Inc.", "iMac20,1") },
30+
{ T2_MAC("Apple Inc.", "iMac20,2") },
31+
{ T2_MAC("Apple Inc.", "iMacPro1,1") },
32+
{ }
33+
};
734

835
#endif

0 commit comments

Comments
 (0)