Lines Matching refs:drvdata

51 static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)  in dynamic_funnel_enable_hw()  argument
55 struct coresight_device *csdev = drvdata->csdev; in dynamic_funnel_enable_hw()
57 CS_UNLOCK(drvdata->base); in dynamic_funnel_enable_hw()
59 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_enable_hw()
70 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_enable_hw()
71 writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL); in dynamic_funnel_enable_hw()
73 CS_LOCK(drvdata->base); in dynamic_funnel_enable_hw()
81 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_enable() local
85 spin_lock_irqsave(&drvdata->spinlock, flags); in funnel_enable()
87 if (drvdata->base) in funnel_enable()
88 rc = dynamic_funnel_enable_hw(drvdata, inport); in funnel_enable()
94 spin_unlock_irqrestore(&drvdata->spinlock, flags); in funnel_enable()
101 static void dynamic_funnel_disable_hw(struct funnel_drvdata *drvdata, in dynamic_funnel_disable_hw() argument
105 struct coresight_device *csdev = drvdata->csdev; in dynamic_funnel_disable_hw()
107 CS_UNLOCK(drvdata->base); in dynamic_funnel_disable_hw()
109 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_disable_hw()
111 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_disable_hw()
117 CS_LOCK(drvdata->base); in dynamic_funnel_disable_hw()
123 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_disable() local
127 spin_lock_irqsave(&drvdata->spinlock, flags); in funnel_disable()
129 if (drvdata->base) in funnel_disable()
130 dynamic_funnel_disable_hw(drvdata, inport); in funnel_disable()
133 spin_unlock_irqrestore(&drvdata->spinlock, flags); in funnel_disable()
151 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_show() local
152 unsigned long val = drvdata->priority; in priority_show()
163 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_store() local
169 drvdata->priority = val; in priority_store()
174 static u32 get_funnel_ctrl_hw(struct funnel_drvdata *drvdata) in get_funnel_ctrl_hw() argument
178 CS_UNLOCK(drvdata->base); in get_funnel_ctrl_hw()
179 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in get_funnel_ctrl_hw()
180 CS_LOCK(drvdata->base); in get_funnel_ctrl_hw()
189 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in funnel_ctrl_show() local
193 val = get_funnel_ctrl_hw(drvdata); in funnel_ctrl_show()
213 struct funnel_drvdata *drvdata; in funnel_probe() local
224 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); in funnel_probe()
225 if (!drvdata) in funnel_probe()
228 drvdata->atclk = devm_clk_get(dev, "atclk"); /* optional */ in funnel_probe()
229 if (!IS_ERR(drvdata->atclk)) { in funnel_probe()
230 ret = clk_prepare_enable(drvdata->atclk); in funnel_probe()
245 drvdata->base = base; in funnel_probe()
250 dev_set_drvdata(dev, drvdata); in funnel_probe()
259 spin_lock_init(&drvdata->spinlock); in funnel_probe()
265 drvdata->csdev = coresight_register(&desc); in funnel_probe()
266 if (IS_ERR(drvdata->csdev)) { in funnel_probe()
267 ret = PTR_ERR(drvdata->csdev); in funnel_probe()
275 if (ret && !IS_ERR_OR_NULL(drvdata->atclk)) in funnel_probe()
276 clk_disable_unprepare(drvdata->atclk); in funnel_probe()
282 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_remove() local
284 coresight_unregister(drvdata->csdev); in funnel_remove()
292 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_suspend() local
294 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_suspend()
295 clk_disable_unprepare(drvdata->atclk); in funnel_runtime_suspend()
302 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_resume() local
304 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_resume()
305 clk_prepare_enable(drvdata->atclk); in funnel_runtime_resume()