Lines Matching refs:qep

76 static inline u32 intel_qep_readl(struct intel_qep *qep, u32 offset)  in intel_qep_readl()  argument
78 return readl(qep->regs + offset); in intel_qep_readl()
81 static inline void intel_qep_writel(struct intel_qep *qep, in intel_qep_writel() argument
84 writel(value, qep->regs + offset); in intel_qep_writel()
87 static void intel_qep_init(struct intel_qep *qep) in intel_qep_init() argument
91 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_init()
93 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_init()
94 qep->enabled = false; in intel_qep_init()
99 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_init()
104 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_init()
105 intel_qep_writel(qep, INTEL_QEPINT_MASK, INTEL_QEPINT_MASK_ALL); in intel_qep_init()
111 struct intel_qep *const qep = counter_priv(counter); in intel_qep_count_read() local
113 pm_runtime_get_sync(qep->dev); in intel_qep_count_read()
114 *val = intel_qep_readl(qep, INTEL_QEPCOUNT); in intel_qep_count_read()
115 pm_runtime_put(qep->dev); in intel_qep_count_read()
178 struct intel_qep *qep = counter_priv(counter); in intel_qep_ceiling_read() local
180 pm_runtime_get_sync(qep->dev); in intel_qep_ceiling_read()
181 *ceiling = intel_qep_readl(qep, INTEL_QEPMAX); in intel_qep_ceiling_read()
182 pm_runtime_put(qep->dev); in intel_qep_ceiling_read()
190 struct intel_qep *qep = counter_priv(counter); in intel_qep_ceiling_write() local
197 mutex_lock(&qep->lock); in intel_qep_ceiling_write()
198 if (qep->enabled) { in intel_qep_ceiling_write()
203 pm_runtime_get_sync(qep->dev); in intel_qep_ceiling_write()
204 intel_qep_writel(qep, INTEL_QEPMAX, max); in intel_qep_ceiling_write()
205 pm_runtime_put(qep->dev); in intel_qep_ceiling_write()
208 mutex_unlock(&qep->lock); in intel_qep_ceiling_write()
215 struct intel_qep *qep = counter_priv(counter); in intel_qep_enable_read() local
217 *enable = qep->enabled; in intel_qep_enable_read()
225 struct intel_qep *qep = counter_priv(counter); in intel_qep_enable_write() local
229 mutex_lock(&qep->lock); in intel_qep_enable_write()
230 changed = val ^ qep->enabled; in intel_qep_enable_write()
234 pm_runtime_get_sync(qep->dev); in intel_qep_enable_write()
235 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_enable_write()
239 pm_runtime_get_noresume(qep->dev); in intel_qep_enable_write()
242 pm_runtime_put_noidle(qep->dev); in intel_qep_enable_write()
245 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_enable_write()
246 pm_runtime_put(qep->dev); in intel_qep_enable_write()
247 qep->enabled = val; in intel_qep_enable_write()
250 mutex_unlock(&qep->lock); in intel_qep_enable_write()
258 struct intel_qep *qep = counter_priv(counter); in intel_qep_spike_filter_ns_read() local
261 pm_runtime_get_sync(qep->dev); in intel_qep_spike_filter_ns_read()
262 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_spike_filter_ns_read()
264 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_read()
267 reg = INTEL_QEPFLT_MAX_COUNT(intel_qep_readl(qep, INTEL_QEPFLT)); in intel_qep_spike_filter_ns_read()
268 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_read()
279 struct intel_qep *qep = counter_priv(counter); in intel_qep_spike_filter_ns_write() local
303 mutex_lock(&qep->lock); in intel_qep_spike_filter_ns_write()
304 if (qep->enabled) { in intel_qep_spike_filter_ns_write()
309 pm_runtime_get_sync(qep->dev); in intel_qep_spike_filter_ns_write()
310 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_spike_filter_ns_write()
315 intel_qep_writel(qep, INTEL_QEPFLT, length); in intel_qep_spike_filter_ns_write()
316 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_spike_filter_ns_write()
317 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_write()
320 mutex_unlock(&qep->lock); in intel_qep_spike_filter_ns_write()
328 struct intel_qep *qep = counter_priv(counter); in intel_qep_preset_enable_read() local
331 pm_runtime_get_sync(qep->dev); in intel_qep_preset_enable_read()
332 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_preset_enable_read()
333 pm_runtime_put(qep->dev); in intel_qep_preset_enable_read()
343 struct intel_qep *qep = counter_priv(counter); in intel_qep_preset_enable_write() local
347 mutex_lock(&qep->lock); in intel_qep_preset_enable_write()
348 if (qep->enabled) { in intel_qep_preset_enable_write()
353 pm_runtime_get_sync(qep->dev); in intel_qep_preset_enable_write()
354 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_preset_enable_write()
360 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_preset_enable_write()
361 pm_runtime_put(qep->dev); in intel_qep_preset_enable_write()
364 mutex_unlock(&qep->lock); in intel_qep_preset_enable_write()
395 struct intel_qep *qep; in intel_qep_probe() local
400 counter = devm_counter_alloc(dev, sizeof(*qep)); in intel_qep_probe()
403 qep = counter_priv(counter); in intel_qep_probe()
419 qep->dev = dev; in intel_qep_probe()
420 qep->regs = regs; in intel_qep_probe()
421 mutex_init(&qep->lock); in intel_qep_probe()
423 intel_qep_init(qep); in intel_qep_probe()
424 pci_set_drvdata(pci, qep); in intel_qep_probe()
433 qep->enabled = false; in intel_qep_probe()
447 struct intel_qep *qep = pci_get_drvdata(pci); in intel_qep_remove() local
451 if (!qep->enabled) in intel_qep_remove()
454 intel_qep_writel(qep, INTEL_QEPCON, 0); in intel_qep_remove()
460 struct intel_qep *qep = pci_get_drvdata(pdev); in intel_qep_suspend() local
462 qep->qepcon = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_suspend()
463 qep->qepflt = intel_qep_readl(qep, INTEL_QEPFLT); in intel_qep_suspend()
464 qep->qepmax = intel_qep_readl(qep, INTEL_QEPMAX); in intel_qep_suspend()
472 struct intel_qep *qep = pci_get_drvdata(pdev); in intel_qep_resume() local
479 intel_qep_writel(qep, INTEL_QEPCON, 0); in intel_qep_resume()
480 intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_resume()
482 intel_qep_writel(qep, INTEL_QEPFLT, qep->qepflt); in intel_qep_resume()
483 intel_qep_writel(qep, INTEL_QEPMAX, qep->qepmax); in intel_qep_resume()
484 intel_qep_writel(qep, INTEL_QEPINT_MASK, INTEL_QEPINT_MASK_ALL); in intel_qep_resume()
487 intel_qep_writel(qep, INTEL_QEPCON, qep->qepcon & ~INTEL_QEPCON_EN); in intel_qep_resume()
488 intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_resume()
491 intel_qep_writel(qep, INTEL_QEPCON, qep->qepcon); in intel_qep_resume()