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()
100 struct qaic_device *qdev = qddev->qdev; in qaic_debugfs_init() local
108 debugfs_create_file("bootlog", 0400, debugfs_root, qdev, &bootlog_fops); in qaic_debugfs_init()
113 for (i = 0; i < qdev->num_dbc && i < 256; ++i) { in qaic_debugfs_init()
116 debugfs_create_file("fifo_size", 0400, debugfs_dir, &qdev->dbc[i], &fifo_size_fops); in qaic_debugfs_init()
117 debugfs_create_file("queued", 0400, debugfs_dir, &qdev->dbc[i], &queued_fops); in qaic_debugfs_init()
121 static struct bootlog_page *alloc_bootlog_page(struct qaic_device *qdev) in alloc_bootlog_page() argument
125 page = (struct bootlog_page *)devm_get_free_pages(&qdev->pdev->dev, GFP_KERNEL, 0); in alloc_bootlog_page()
131 list_add_tail(&page->node, &qdev->bootlog); in alloc_bootlog_page()
136 static int reset_bootlog(struct qaic_device *qdev) in reset_bootlog() argument
141 mutex_lock(&qdev->bootlog_mutex); in reset_bootlog()
142 list_for_each_entry_safe(page, i, &qdev->bootlog, node) { in reset_bootlog()
144 devm_free_pages(&qdev->pdev->dev, (unsigned long)page); in reset_bootlog()
147 page = alloc_bootlog_page(qdev); in reset_bootlog()
148 mutex_unlock(&qdev->bootlog_mutex); in reset_bootlog()
155 static void *bootlog_get_space(struct qaic_device *qdev, unsigned int size) in bootlog_get_space() argument
159 page = list_last_entry(&qdev->bootlog, struct bootlog_page, node); in bootlog_get_space()
165 page = alloc_bootlog_page(qdev); in bootlog_get_space()
173 static void bootlog_commit(struct qaic_device *qdev, unsigned int size) in bootlog_commit() argument
177 page = list_last_entry(&qdev->bootlog, struct bootlog_page, node); in bootlog_commit()
186 struct qaic_device *qdev = msg->qdev; in bootlog_log() local
189 mutex_lock(&qdev->bootlog_mutex); in bootlog_log()
190 log = bootlog_get_space(qdev, len); in bootlog_log()
193 bootlog_commit(qdev, len); in bootlog_log()
195 mutex_unlock(&qdev->bootlog_mutex); in bootlog_log()
197 if (mhi_queue_buf(qdev->bootlog_ch, DMA_FROM_DEVICE, msg, BOOTLOG_MSG_SIZE, MHI_EOT)) in bootlog_log()
198 devm_kfree(&qdev->pdev->dev, msg); in bootlog_log()
203 struct qaic_device *qdev = pci_get_drvdata(to_pci_dev(mhi_dev->mhi_cntrl->cntrl_dev)); in qaic_bootlog_mhi_probe() local
207 qdev->bootlog_wq = alloc_ordered_workqueue("qaic_bootlog", 0); in qaic_bootlog_mhi_probe()
208 if (!qdev->bootlog_wq) { in qaic_bootlog_mhi_probe()
213 ret = reset_bootlog(qdev); in qaic_bootlog_mhi_probe()
222 msg = devm_kzalloc(&qdev->pdev->dev, sizeof(*msg), GFP_KERNEL); in qaic_bootlog_mhi_probe()
228 msg->qdev = qdev; in qaic_bootlog_mhi_probe()
236 dev_set_drvdata(&mhi_dev->dev, qdev); in qaic_bootlog_mhi_probe()
237 qdev->bootlog_ch = mhi_dev; in qaic_bootlog_mhi_probe()
243 destroy_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_probe()
250 struct qaic_device *qdev; in qaic_bootlog_mhi_remove() local
252 qdev = dev_get_drvdata(&mhi_dev->dev); in qaic_bootlog_mhi_remove()
254 mhi_unprepare_from_transfer(qdev->bootlog_ch); in qaic_bootlog_mhi_remove()
255 destroy_workqueue(qdev->bootlog_wq); in qaic_bootlog_mhi_remove()
256 qdev->bootlog_ch = NULL; in qaic_bootlog_mhi_remove()
265 struct qaic_device *qdev = dev_get_drvdata(&mhi_dev->dev); in qaic_bootlog_mhi_dl_xfer_cb() local
269 devm_kfree(&qdev->pdev->dev, msg); in qaic_bootlog_mhi_dl_xfer_cb()
276 queue_work(qdev->bootlog_wq, &msg->work); in qaic_bootlog_mhi_dl_xfer_cb()