Lines Matching refs:rknpu_dev
28 int rknpu_reset_get(struct rknpu_device *rknpu_dev) in rknpu_reset_get() argument
35 for (i = 0; i < rknpu_dev->config->num_resets; i++) { in rknpu_reset_get()
37 rknpu_dev->dev, in rknpu_reset_get()
38 rknpu_dev->config->resets[i].srst_a_name); in rknpu_reset_get()
42 rknpu_dev->srst_a[i] = srst_a; in rknpu_reset_get()
45 rknpu_dev->dev, in rknpu_reset_get()
46 rknpu_dev->config->resets[i].srst_h_name); in rknpu_reset_get()
50 rknpu_dev->srst_h[i] = srst_h; in rknpu_reset_get()
91 int rknpu_soft_reset(struct rknpu_device *rknpu_dev) in rknpu_soft_reset() argument
98 if (rknpu_dev->bypass_soft_reset) { in rknpu_soft_reset()
103 if (!mutex_trylock(&rknpu_dev->reset_lock)) in rknpu_soft_reset()
106 rknpu_dev->soft_reseting = true; in rknpu_soft_reset()
110 for (i = 0; i < rknpu_dev->config->num_irqs; ++i) { in rknpu_soft_reset()
111 subcore_data = &rknpu_dev->subcore_datas[i]; in rknpu_soft_reset()
117 for (i = 0; i < rknpu_dev->config->num_resets; i++) { in rknpu_soft_reset()
118 ret = rknpu_reset_assert(rknpu_dev->srst_a[i]); in rknpu_soft_reset()
119 ret |= rknpu_reset_assert(rknpu_dev->srst_h[i]); in rknpu_soft_reset()
123 ret |= rknpu_reset_deassert(rknpu_dev->srst_a[i]); in rknpu_soft_reset()
124 ret |= rknpu_reset_deassert(rknpu_dev->srst_h[i]); in rknpu_soft_reset()
128 LOG_DEV_ERROR(rknpu_dev->dev, in rknpu_soft_reset()
130 mutex_unlock(&rknpu_dev->reset_lock); in rknpu_soft_reset()
134 if (rknpu_dev->iommu_en) in rknpu_soft_reset()
135 domain = iommu_get_domain_for_dev(rknpu_dev->dev); in rknpu_soft_reset()
138 iommu_detach_device(domain, rknpu_dev->dev); in rknpu_soft_reset()
139 iommu_attach_device(domain, rknpu_dev->dev); in rknpu_soft_reset()
142 rknpu_dev->soft_reseting = false; in rknpu_soft_reset()
144 mutex_unlock(&rknpu_dev->reset_lock); in rknpu_soft_reset()