Lines Matching +full:x +full:- +full:rp
1 // SPDX-License-Identifier: GPL-2.0
18 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_states_show()
22 to_mhi_pm_state_str(mhi_cntrl->pm_state), in mhi_debugfs_states_show()
24 mhi_state_str(mhi_cntrl->dev_state), in mhi_debugfs_states_show()
25 TO_MHI_EXEC_STR(mhi_cntrl->ee), in mhi_debugfs_states_show()
26 str_true_false(mhi_cntrl->wake_set)); in mhi_debugfs_states_show()
29 seq_printf(m, "M0: %u M2: %u M3: %u", mhi_cntrl->M0, mhi_cntrl->M2, in mhi_debugfs_states_show()
30 mhi_cntrl->M3); in mhi_debugfs_states_show()
33 atomic_read(&mhi_cntrl->dev_wake), in mhi_debugfs_states_show()
34 atomic_read(&mhi_cntrl->pending_pkts)); in mhi_debugfs_states_show()
41 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_events_show()
48 return -ENODEV; in mhi_debugfs_events_show()
51 er_ctxt = mhi_cntrl->mhi_ctxt->er_ctxt; in mhi_debugfs_events_show()
52 mhi_event = mhi_cntrl->mhi_event; in mhi_debugfs_events_show()
53 for (i = 0; i < mhi_cntrl->total_ev_rings; in mhi_debugfs_events_show()
55 struct mhi_ring *ring = &mhi_event->ring; in mhi_debugfs_events_show()
57 if (mhi_event->offload_ev) { in mhi_debugfs_events_show()
64 i, (le32_to_cpu(er_ctxt->intmod) & EV_CTX_INTMODC_MASK) >> in mhi_debugfs_events_show()
66 (le32_to_cpu(er_ctxt->intmod) & EV_CTX_INTMODT_MASK) >> in mhi_debugfs_events_show()
69 seq_printf(m, " base: 0x%0llx len: 0x%llx", le64_to_cpu(er_ctxt->rbase), in mhi_debugfs_events_show()
70 le64_to_cpu(er_ctxt->rlen)); in mhi_debugfs_events_show()
72 seq_printf(m, " rp: 0x%llx wp: 0x%llx", le64_to_cpu(er_ctxt->rp), in mhi_debugfs_events_show()
73 le64_to_cpu(er_ctxt->wp)); in mhi_debugfs_events_show()
75 seq_printf(m, " local rp: 0x%pK db: 0x%pad\n", ring->rp, in mhi_debugfs_events_show()
76 &mhi_event->db_cfg.db_val); in mhi_debugfs_events_show()
84 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_channels_show()
91 return -ENODEV; in mhi_debugfs_channels_show()
94 mhi_chan = mhi_cntrl->mhi_chan; in mhi_debugfs_channels_show()
95 chan_ctxt = mhi_cntrl->mhi_ctxt->chan_ctxt; in mhi_debugfs_channels_show()
96 for (i = 0; i < mhi_cntrl->max_chan; i++, chan_ctxt++, mhi_chan++) { in mhi_debugfs_channels_show()
97 struct mhi_ring *ring = &mhi_chan->tre_ring; in mhi_debugfs_channels_show()
99 if (mhi_chan->offload_ch) { in mhi_debugfs_channels_show()
101 mhi_chan->name, mhi_chan->chan); in mhi_debugfs_channels_show()
105 if (!mhi_chan->mhi_dev) in mhi_debugfs_channels_show()
109 "%s(%u) state: 0x%lx brstmode: 0x%lx pollcfg: 0x%lx", in mhi_debugfs_channels_show()
110 mhi_chan->name, mhi_chan->chan, (le32_to_cpu(chan_ctxt->chcfg) & in mhi_debugfs_channels_show()
112 (le32_to_cpu(chan_ctxt->chcfg) & CHAN_CTX_BRSTMODE_MASK) >> in mhi_debugfs_channels_show()
113 __ffs(CHAN_CTX_BRSTMODE_MASK), (le32_to_cpu(chan_ctxt->chcfg) & in mhi_debugfs_channels_show()
116 seq_printf(m, " type: 0x%x event ring: %u", le32_to_cpu(chan_ctxt->chtype), in mhi_debugfs_channels_show()
117 le32_to_cpu(chan_ctxt->erindex)); in mhi_debugfs_channels_show()
119 seq_printf(m, " base: 0x%llx len: 0x%llx rp: 0x%llx wp: 0x%llx", in mhi_debugfs_channels_show()
120 le64_to_cpu(chan_ctxt->rbase), le64_to_cpu(chan_ctxt->rlen), in mhi_debugfs_channels_show()
121 le64_to_cpu(chan_ctxt->rp), le64_to_cpu(chan_ctxt->wp)); in mhi_debugfs_channels_show()
123 seq_printf(m, " local rp: 0x%pK local wp: 0x%pK db: 0x%pad\n", in mhi_debugfs_channels_show()
124 ring->rp, ring->wp, in mhi_debugfs_channels_show()
125 &mhi_chan->db_cfg.db_val); in mhi_debugfs_channels_show()
135 if (dev->bus != &mhi_bus_type) in mhi_device_info_show()
141 mhi_dev->name, mhi_dev->dev_type ? "Controller" : "Transfer", in mhi_device_info_show()
142 mhi_dev->dev_wake); in mhi_device_info_show()
145 if (mhi_dev->dev_type == MHI_DEVICE_XFER) in mhi_device_info_show()
147 mhi_dev->ul_chan_id, mhi_dev->dl_chan_id); in mhi_device_info_show()
156 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_devices_show()
160 return -ENODEV; in mhi_debugfs_devices_show()
164 mhi_device_info_show(&mhi_cntrl->mhi_dev->dev, m); in mhi_debugfs_devices_show()
165 device_for_each_child(&mhi_cntrl->mhi_dev->dev, m, mhi_device_info_show); in mhi_debugfs_devices_show()
172 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_regdump_show()
175 int i, ret = -EIO; in mhi_debugfs_regdump_show()
177 void __iomem *mhi_base = mhi_cntrl->regs; in mhi_debugfs_regdump_show()
178 void __iomem *bhi_base = mhi_cntrl->bhi; in mhi_debugfs_regdump_show()
179 void __iomem *bhie_base = mhi_cntrl->bhie; in mhi_debugfs_regdump_show()
180 void __iomem *wake_db = mhi_cntrl->wake_db; in mhi_debugfs_regdump_show()
205 if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) in mhi_debugfs_regdump_show()
209 to_mhi_pm_state_str(mhi_cntrl->pm_state), in mhi_debugfs_regdump_show()
210 mhi_state_str(mhi_cntrl->dev_state), in mhi_debugfs_regdump_show()
211 TO_MHI_EXEC_STR(mhi_cntrl->ee)); in mhi_debugfs_regdump_show()
226 seq_printf(m, "%s: 0x%x\n", regs[i].name, val); in mhi_debugfs_regdump_show()
234 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_device_wake_show()
235 struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev; in mhi_debugfs_device_wake_show()
239 return -ENODEV; in mhi_debugfs_device_wake_show()
243 "Wake count: %d\n%s\n", mhi_dev->dev_wake, in mhi_debugfs_device_wake_show()
253 struct seq_file *m = file->private_data; in mhi_debugfs_device_wake_write()
254 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_device_wake_write()
255 struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev; in mhi_debugfs_device_wake_write()
257 int ret = -EINVAL; in mhi_debugfs_device_wake_write()
259 if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) in mhi_debugfs_device_wake_write()
260 return -EFAULT; in mhi_debugfs_device_wake_write()
274 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_timeout_ms_show()
276 seq_printf(m, "%u ms\n", mhi_cntrl->timeout_ms); in mhi_debugfs_timeout_ms_show()
285 struct seq_file *m = file->private_data; in mhi_debugfs_timeout_ms_write()
286 struct mhi_controller *mhi_cntrl = m->private; in mhi_debugfs_timeout_ms_write()
290 return -EINVAL; in mhi_debugfs_timeout_ms_write()
292 mhi_cntrl->timeout_ms = timeout_ms; in mhi_debugfs_timeout_ms_write()
299 return single_open(fp, mhi_debugfs_states_show, inode->i_private); in mhi_debugfs_states_open()
304 return single_open(fp, mhi_debugfs_events_show, inode->i_private); in mhi_debugfs_events_open()
309 return single_open(fp, mhi_debugfs_channels_show, inode->i_private); in mhi_debugfs_channels_open()
314 return single_open(fp, mhi_debugfs_devices_show, inode->i_private); in mhi_debugfs_devices_open()
319 return single_open(fp, mhi_debugfs_regdump_show, inode->i_private); in mhi_debugfs_regdump_open()
324 return single_open(fp, mhi_debugfs_device_wake_show, inode->i_private); in mhi_debugfs_device_wake_open()
329 return single_open(fp, mhi_debugfs_timeout_ms_show, inode->i_private); in mhi_debugfs_timeout_ms_open()
380 mhi_cntrl->debugfs_dentry = in mhi_create_debugfs()
381 debugfs_create_dir(dev_name(&mhi_cntrl->mhi_dev->dev), in mhi_create_debugfs()
384 debugfs_create_file("states", 0444, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
386 debugfs_create_file("events", 0444, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
388 debugfs_create_file("channels", 0444, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
390 debugfs_create_file("devices", 0444, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
392 debugfs_create_file("regdump", 0444, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
394 debugfs_create_file("device_wake", 0644, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
396 debugfs_create_file("timeout_ms", 0644, mhi_cntrl->debugfs_dentry, in mhi_create_debugfs()
402 debugfs_remove_recursive(mhi_cntrl->debugfs_dentry); in mhi_destroy_debugfs()
403 mhi_cntrl->debugfs_dentry = NULL; in mhi_destroy_debugfs()