Lines Matching refs:qdev
31 struct qaic_device *qdev; member
48 struct qaic_device *qdev; in bootlog_show() local
52 qdev = s->private; in bootlog_show()
53 mutex_lock(&qdev->bootlog_mutex); in bootlog_show()
54 list_for_each_entry(page, &qdev->bootlog, node) { in bootlog_show()
62 mutex_unlock(&qdev->bootlog_mutex); in bootlog_show()
133 struct qaic_device *qdev = qddev->qdev; in qaic_debugfs_init() local
141 debugfs_create_file("bootlog", 0400, debugfs_root, qdev, &bootlog_fops); in qaic_debugfs_init()
146 for (i = 0; i < qdev->num_dbc && i < 256; ++i) { in qaic_debugfs_init()
149 debugfs_create_file("fifo_size", 0400, debugfs_dir, &qdev->dbc[i], &fifo_size_fops); in qaic_debugfs_init()
150 debugfs_create_file("queued", 0400, debugfs_dir, &qdev->dbc[i], &queued_fops); in qaic_debugfs_init()
154 static struct bootlog_page *alloc_bootlog_page(struct qaic_device *qdev) in alloc_bootlog_page() argument
158 page = (struct bootlog_page *)devm_get_free_pages(&qdev->pdev->dev, GFP_KERNEL, 0); in alloc_bootlog_page()
164 list_add_tail(&page->node, &qdev->bootlog); in alloc_bootlog_page()
169 static int reset_bootlog(struct qaic_device *qdev) in reset_bootlog() argument
174 mutex_lock(&qdev->bootlog_mutex); in reset_bootlog()
175 list_for_each_entry_safe(page, i, &qdev->bootlog, node) { in reset_bootlog()
177 devm_free_pages(&qdev->pdev->dev, (unsigned long)page); in reset_bootlog()
180 page = alloc_bootlog_page(qdev); in reset_bootlog()
181 mutex_unlock(&qdev->bootlog_mutex); in reset_bootlog()
188 static void *bootlog_get_space(struct qaic_device *qdev, unsigned int size) in bootlog_get_space() argument
192 page = list_last_entry(&qdev->bootlog, struct bootlog_page, node); in bootlog_get_space()
198 page = alloc_bootlog_page(qdev); in bootlog_get_space()
206 static void bootlog_commit(struct qaic_device *qdev, unsigned int size) in bootlog_commit() argument
210 page = list_last_entry(&qdev->bootlog, struct bootlog_page, node); in bootlog_commit()
219 struct qaic_device *qdev = msg->qdev; in bootlog_log() local
222 mutex_lock(&qdev->bootlog_mutex); in bootlog_log()
223 log = bootlog_get_space(qdev, len); in bootlog_log()
226 bootlog_commit(qdev, len); in bootlog_log()
228 mutex_unlock(&qdev->bootlog_mutex); in bootlog_log()
230 if (mhi_queue_buf(qdev->bootlog_ch, DMA_FROM_DEVICE, msg, BOOTLOG_MSG_SIZE, MHI_EOT)) in bootlog_log()
231 devm_kfree(&qdev->pdev->dev, msg); in bootlog_log()
236 struct qaic_device *qdev = pci_get_drvdata(to_pci_dev(mhi_dev->mhi_cntrl->cntrl_dev)); in qaic_bootlog_mhi_probe() local
240 qdev->bootlog_wq = alloc_ordered_workqueue("qaic_bootlog", 0); in qaic_bootlog_mhi_probe()
241 if (!qdev->bootlog_wq) { in qaic_bootlog_mhi_probe()
246 ret = reset_bootlog(qdev); in qaic_bootlog_mhi_probe()
255 msg = devm_kzalloc(&qdev->pdev->dev, sizeof(*msg), GFP_KERNEL); in qaic_bootlog_mhi_probe()
261 msg->qdev = qdev; in qaic_bootlog_mhi_probe()
269 dev_set_drvdata(&mhi_dev->dev, qdev); in qaic_bootlog_mhi_probe()
270 qdev->bootlog_ch = mhi_dev; in qaic_bootlog_mhi_probe()
276 flush_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_probe()
277 destroy_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_probe()
284 struct qaic_device *qdev; in qaic_bootlog_mhi_remove() local
286 qdev = dev_get_drvdata(&mhi_dev->dev); in qaic_bootlog_mhi_remove()
288 mhi_unprepare_from_transfer(qdev->bootlog_ch); in qaic_bootlog_mhi_remove()
289 flush_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_remove()
290 destroy_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_remove()
291 qdev->bootlog_ch = NULL; in qaic_bootlog_mhi_remove()
300 struct qaic_device *qdev = dev_get_drvdata(&mhi_dev->dev); in qaic_bootlog_mhi_dl_xfer_cb() local
304 devm_kfree(&qdev->pdev->dev, msg); in qaic_bootlog_mhi_dl_xfer_cb()
311 queue_work(qdev->bootlog_wq, &msg->work); in qaic_bootlog_mhi_dl_xfer_cb()