• Home
  • Raw
  • Download

Lines Matching refs:qep

77 static inline u32 intel_qep_readl(struct intel_qep *qep, u32 offset)  in intel_qep_readl()  argument
79 return readl(qep->regs + offset); in intel_qep_readl()
82 static inline void intel_qep_writel(struct intel_qep *qep, in intel_qep_writel() argument
85 writel(value, qep->regs + offset); in intel_qep_writel()
88 static void intel_qep_init(struct intel_qep *qep) in intel_qep_init() argument
92 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_init()
94 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_init()
95 qep->enabled = false; in intel_qep_init()
100 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_init()
105 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_init()
106 intel_qep_writel(qep, INTEL_QEPINT_MASK, INTEL_QEPINT_MASK_ALL); in intel_qep_init()
112 struct intel_qep *const qep = counter->priv; in intel_qep_count_read() local
114 pm_runtime_get_sync(qep->dev); in intel_qep_count_read()
115 *val = intel_qep_readl(qep, INTEL_QEPCOUNT); in intel_qep_count_read()
116 pm_runtime_put(qep->dev); in intel_qep_count_read()
179 struct intel_qep *qep = counter->priv; in intel_qep_ceiling_read() local
181 pm_runtime_get_sync(qep->dev); in intel_qep_ceiling_read()
182 *ceiling = intel_qep_readl(qep, INTEL_QEPMAX); in intel_qep_ceiling_read()
183 pm_runtime_put(qep->dev); in intel_qep_ceiling_read()
191 struct intel_qep *qep = counter->priv; in intel_qep_ceiling_write() local
198 mutex_lock(&qep->lock); in intel_qep_ceiling_write()
199 if (qep->enabled) { in intel_qep_ceiling_write()
204 pm_runtime_get_sync(qep->dev); in intel_qep_ceiling_write()
205 intel_qep_writel(qep, INTEL_QEPMAX, max); in intel_qep_ceiling_write()
206 pm_runtime_put(qep->dev); in intel_qep_ceiling_write()
209 mutex_unlock(&qep->lock); in intel_qep_ceiling_write()
216 struct intel_qep *qep = counter->priv; in intel_qep_enable_read() local
218 *enable = qep->enabled; in intel_qep_enable_read()
226 struct intel_qep *qep = counter->priv; in intel_qep_enable_write() local
230 mutex_lock(&qep->lock); in intel_qep_enable_write()
231 changed = val ^ qep->enabled; in intel_qep_enable_write()
235 pm_runtime_get_sync(qep->dev); in intel_qep_enable_write()
236 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_enable_write()
240 pm_runtime_get_noresume(qep->dev); in intel_qep_enable_write()
243 pm_runtime_put_noidle(qep->dev); in intel_qep_enable_write()
246 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_enable_write()
247 pm_runtime_put(qep->dev); in intel_qep_enable_write()
248 qep->enabled = val; in intel_qep_enable_write()
251 mutex_unlock(&qep->lock); in intel_qep_enable_write()
259 struct intel_qep *qep = counter->priv; in intel_qep_spike_filter_ns_read() local
262 pm_runtime_get_sync(qep->dev); in intel_qep_spike_filter_ns_read()
263 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_spike_filter_ns_read()
265 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_read()
268 reg = INTEL_QEPFLT_MAX_COUNT(intel_qep_readl(qep, INTEL_QEPFLT)); in intel_qep_spike_filter_ns_read()
269 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_read()
280 struct intel_qep *qep = counter->priv; in intel_qep_spike_filter_ns_write() local
304 mutex_lock(&qep->lock); in intel_qep_spike_filter_ns_write()
305 if (qep->enabled) { in intel_qep_spike_filter_ns_write()
310 pm_runtime_get_sync(qep->dev); in intel_qep_spike_filter_ns_write()
311 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_spike_filter_ns_write()
316 intel_qep_writel(qep, INTEL_QEPFLT, length); in intel_qep_spike_filter_ns_write()
317 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_spike_filter_ns_write()
318 pm_runtime_put(qep->dev); in intel_qep_spike_filter_ns_write()
321 mutex_unlock(&qep->lock); in intel_qep_spike_filter_ns_write()
329 struct intel_qep *qep = counter->priv; in intel_qep_preset_enable_read() local
332 pm_runtime_get_sync(qep->dev); in intel_qep_preset_enable_read()
333 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_preset_enable_read()
334 pm_runtime_put(qep->dev); in intel_qep_preset_enable_read()
344 struct intel_qep *qep = counter->priv; in intel_qep_preset_enable_write() local
348 mutex_lock(&qep->lock); in intel_qep_preset_enable_write()
349 if (qep->enabled) { in intel_qep_preset_enable_write()
354 pm_runtime_get_sync(qep->dev); in intel_qep_preset_enable_write()
355 reg = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_preset_enable_write()
361 intel_qep_writel(qep, INTEL_QEPCON, reg); in intel_qep_preset_enable_write()
362 pm_runtime_put(qep->dev); in intel_qep_preset_enable_write()
365 mutex_unlock(&qep->lock); in intel_qep_preset_enable_write()
395 struct intel_qep *qep; in intel_qep_probe() local
400 qep = devm_kzalloc(dev, sizeof(*qep), GFP_KERNEL); in intel_qep_probe()
401 if (!qep) in intel_qep_probe()
418 qep->dev = dev; in intel_qep_probe()
419 qep->regs = regs; in intel_qep_probe()
420 mutex_init(&qep->lock); in intel_qep_probe()
422 intel_qep_init(qep); in intel_qep_probe()
423 pci_set_drvdata(pci, qep); in intel_qep_probe()
425 qep->counter.name = pci_name(pci); in intel_qep_probe()
426 qep->counter.parent = dev; in intel_qep_probe()
427 qep->counter.ops = &intel_qep_counter_ops; in intel_qep_probe()
428 qep->counter.counts = intel_qep_counter_count; in intel_qep_probe()
429 qep->counter.num_counts = ARRAY_SIZE(intel_qep_counter_count); in intel_qep_probe()
430 qep->counter.signals = intel_qep_signals; in intel_qep_probe()
431 qep->counter.num_signals = ARRAY_SIZE(intel_qep_signals); in intel_qep_probe()
432 qep->counter.priv = qep; in intel_qep_probe()
433 qep->enabled = false; in intel_qep_probe()
438 return devm_counter_register(&pci->dev, &qep->counter); in intel_qep_probe()
443 struct intel_qep *qep = pci_get_drvdata(pci); in intel_qep_remove() local
447 if (!qep->enabled) in intel_qep_remove()
450 intel_qep_writel(qep, INTEL_QEPCON, 0); in intel_qep_remove()
456 struct intel_qep *qep = pci_get_drvdata(pdev); in intel_qep_suspend() local
458 qep->qepcon = intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_suspend()
459 qep->qepflt = intel_qep_readl(qep, INTEL_QEPFLT); in intel_qep_suspend()
460 qep->qepmax = intel_qep_readl(qep, INTEL_QEPMAX); in intel_qep_suspend()
468 struct intel_qep *qep = pci_get_drvdata(pdev); in intel_qep_resume() local
475 intel_qep_writel(qep, INTEL_QEPCON, 0); in intel_qep_resume()
476 intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_resume()
478 intel_qep_writel(qep, INTEL_QEPFLT, qep->qepflt); in intel_qep_resume()
479 intel_qep_writel(qep, INTEL_QEPMAX, qep->qepmax); in intel_qep_resume()
480 intel_qep_writel(qep, INTEL_QEPINT_MASK, INTEL_QEPINT_MASK_ALL); in intel_qep_resume()
483 intel_qep_writel(qep, INTEL_QEPCON, qep->qepcon & ~INTEL_QEPCON_EN); in intel_qep_resume()
484 intel_qep_readl(qep, INTEL_QEPCON); in intel_qep_resume()
487 intel_qep_writel(qep, INTEL_QEPCON, qep->qepcon); in intel_qep_resume()