Lines Matching refs:drvdata

51 static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)  in dynamic_funnel_enable_hw()  argument
56 CS_UNLOCK(drvdata->base); in dynamic_funnel_enable_hw()
58 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_enable_hw()
61 rc = coresight_claim_device_unlocked(drvdata->base); in dynamic_funnel_enable_hw()
69 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_enable_hw()
70 writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL); in dynamic_funnel_enable_hw()
72 CS_LOCK(drvdata->base); in dynamic_funnel_enable_hw()
80 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_enable() local
84 spin_lock_irqsave(&drvdata->spinlock, flags); in funnel_enable()
86 if (drvdata->base) in funnel_enable()
87 rc = dynamic_funnel_enable_hw(drvdata, inport); in funnel_enable()
93 spin_unlock_irqrestore(&drvdata->spinlock, flags); in funnel_enable()
100 static void dynamic_funnel_disable_hw(struct funnel_drvdata *drvdata, in dynamic_funnel_disable_hw() argument
105 CS_UNLOCK(drvdata->base); in dynamic_funnel_disable_hw()
107 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_disable_hw()
109 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); in dynamic_funnel_disable_hw()
113 coresight_disclaim_device_unlocked(drvdata->base); in dynamic_funnel_disable_hw()
115 CS_LOCK(drvdata->base); in dynamic_funnel_disable_hw()
121 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); in funnel_disable() local
125 spin_lock_irqsave(&drvdata->spinlock, flags); in funnel_disable()
127 if (drvdata->base) in funnel_disable()
128 dynamic_funnel_disable_hw(drvdata, inport); in funnel_disable()
131 spin_unlock_irqrestore(&drvdata->spinlock, flags); in funnel_disable()
149 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_show() local
150 unsigned long val = drvdata->priority; in priority_show()
161 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in priority_store() local
167 drvdata->priority = val; in priority_store()
172 static u32 get_funnel_ctrl_hw(struct funnel_drvdata *drvdata) in get_funnel_ctrl_hw() argument
176 CS_UNLOCK(drvdata->base); in get_funnel_ctrl_hw()
177 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); in get_funnel_ctrl_hw()
178 CS_LOCK(drvdata->base); in get_funnel_ctrl_hw()
187 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); in funnel_ctrl_show() local
191 val = get_funnel_ctrl_hw(drvdata); in funnel_ctrl_show()
211 struct funnel_drvdata *drvdata; in funnel_probe() local
222 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); in funnel_probe()
223 if (!drvdata) in funnel_probe()
226 drvdata->atclk = devm_clk_get(dev, "atclk"); /* optional */ in funnel_probe()
227 if (!IS_ERR(drvdata->atclk)) { in funnel_probe()
228 ret = clk_prepare_enable(drvdata->atclk); in funnel_probe()
243 drvdata->base = base; in funnel_probe()
247 dev_set_drvdata(dev, drvdata); in funnel_probe()
256 spin_lock_init(&drvdata->spinlock); in funnel_probe()
262 drvdata->csdev = coresight_register(&desc); in funnel_probe()
263 if (IS_ERR(drvdata->csdev)) { in funnel_probe()
264 ret = PTR_ERR(drvdata->csdev); in funnel_probe()
272 if (ret && !IS_ERR_OR_NULL(drvdata->atclk)) in funnel_probe()
273 clk_disable_unprepare(drvdata->atclk); in funnel_probe()
279 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_remove() local
281 coresight_unregister(drvdata->csdev); in funnel_remove()
289 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_suspend() local
291 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_suspend()
292 clk_disable_unprepare(drvdata->atclk); in funnel_runtime_suspend()
299 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); in funnel_runtime_resume() local
301 if (drvdata && !IS_ERR(drvdata->atclk)) in funnel_runtime_resume()
302 clk_prepare_enable(drvdata->atclk); in funnel_runtime_resume()