]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c
slip: Fix use-after-free Read in slip_open
[mirror_ubuntu-jammy-kernel.git] / drivers / net / wireless / mediatek / mt76 / mt7615 / debugfs.c
1 // SPDX-License-Identifier: ISC
2
3 #include "mt7615.h"
4
5 static int
6 mt7615_radar_pattern_set(void *data, u64 val)
7 {
8 struct mt7615_dev *dev = data;
9
10 return mt7615_mcu_rdd_send_pattern(dev);
11 }
12
13 DEFINE_DEBUGFS_ATTRIBUTE(fops_radar_pattern, NULL,
14 mt7615_radar_pattern_set, "%lld\n");
15
16 static int
17 mt7615_scs_set(void *data, u64 val)
18 {
19 struct mt7615_dev *dev = data;
20
21 mt7615_mac_set_scs(dev, val);
22
23 return 0;
24 }
25
26 static int
27 mt7615_scs_get(void *data, u64 *val)
28 {
29 struct mt7615_dev *dev = data;
30
31 *val = dev->scs_en;
32
33 return 0;
34 }
35
36 DEFINE_DEBUGFS_ATTRIBUTE(fops_scs, mt7615_scs_get,
37 mt7615_scs_set, "%lld\n");
38
39 static int
40 mt7615_radio_read(struct seq_file *s, void *data)
41 {
42 struct mt7615_dev *dev = dev_get_drvdata(s->private);
43
44 seq_printf(s, "Sensitivity: ofdm=%d cck=%d\n",
45 dev->ofdm_sensitivity, dev->cck_sensitivity);
46 seq_printf(s, "False CCA: ofdm=%d cck=%d\n",
47 dev->false_cca_ofdm, dev->false_cca_cck);
48
49 return 0;
50 }
51
52 static int mt7615_read_temperature(struct seq_file *s, void *data)
53 {
54 struct mt7615_dev *dev = dev_get_drvdata(s->private);
55 int temp;
56
57 /* cpu */
58 temp = mt7615_mcu_get_temperature(dev, 0);
59 seq_printf(s, "Temperature: %d\n", temp);
60
61 return 0;
62 }
63
64 int mt7615_init_debugfs(struct mt7615_dev *dev)
65 {
66 struct dentry *dir;
67
68 dir = mt76_register_debugfs(&dev->mt76);
69 if (!dir)
70 return -ENOMEM;
71
72 debugfs_create_file("scs", 0600, dir, dev, &fops_scs);
73 debugfs_create_devm_seqfile(dev->mt76.dev, "radio", dir,
74 mt7615_radio_read);
75 debugfs_create_u32("dfs_hw_pattern", 0400, dir, &dev->hw_pattern);
76 /* test pattern knobs */
77 debugfs_create_u8("pattern_len", 0600, dir,
78 &dev->radar_pattern.n_pulses);
79 debugfs_create_u32("pulse_period", 0600, dir,
80 &dev->radar_pattern.period);
81 debugfs_create_u16("pulse_width", 0600, dir,
82 &dev->radar_pattern.width);
83 debugfs_create_u16("pulse_power", 0600, dir,
84 &dev->radar_pattern.power);
85 debugfs_create_file("radar_trigger", 0200, dir, dev,
86 &fops_radar_pattern);
87 debugfs_create_devm_seqfile(dev->mt76.dev, "temperature", dir,
88 mt7615_read_temperature);
89
90 return 0;
91 }