Searched refs:drvdata (Results 1 - 115 of 115) sorted by relevance

/linux-4.4.14/drivers/hwtracing/coresight/
H A Dcoresight-etm3x.c45 static inline void etm_writel(struct etm_drvdata *drvdata, etm_writel() argument
48 if (drvdata->use_cp14) { etm_writel()
50 dev_err(drvdata->dev, etm_writel()
54 writel_relaxed(val, drvdata->base + off); etm_writel()
58 static inline unsigned int etm_readl(struct etm_drvdata *drvdata, u32 off) etm_readl() argument
62 if (drvdata->use_cp14) { etm_readl()
64 dev_err(drvdata->dev, etm_readl()
68 val = readl_relaxed(drvdata->base + off); etm_readl()
81 struct etm_drvdata *drvdata = (struct etm_drvdata *)info; etm_os_unlock() local
83 etm_writel(drvdata, 0x0, ETMOSLAR); etm_os_unlock()
87 static void etm_set_pwrdwn(struct etm_drvdata *drvdata) etm_set_pwrdwn() argument
94 etmcr = etm_readl(drvdata, ETMCR); etm_set_pwrdwn()
96 etm_writel(drvdata, etmcr, ETMCR); etm_set_pwrdwn()
99 static void etm_clr_pwrdwn(struct etm_drvdata *drvdata) etm_clr_pwrdwn() argument
103 etmcr = etm_readl(drvdata, ETMCR); etm_clr_pwrdwn()
105 etm_writel(drvdata, etmcr, ETMCR); etm_clr_pwrdwn()
111 static void etm_set_pwrup(struct etm_drvdata *drvdata) etm_set_pwrup() argument
115 etmpdcr = readl_relaxed(drvdata->base + ETMPDCR); etm_set_pwrup()
117 writel_relaxed(etmpdcr, drvdata->base + ETMPDCR); etm_set_pwrup()
123 static void etm_clr_pwrup(struct etm_drvdata *drvdata) etm_clr_pwrup() argument
130 etmpdcr = readl_relaxed(drvdata->base + ETMPDCR); etm_clr_pwrup()
132 writel_relaxed(etmpdcr, drvdata->base + ETMPDCR); etm_clr_pwrup()
137 * @drvdata: etm's private data structure.
149 static int coresight_timeout_etm(struct etm_drvdata *drvdata, u32 offset, coresight_timeout_etm() argument
156 val = etm_readl(drvdata, offset); coresight_timeout_etm()
180 static void etm_set_prog(struct etm_drvdata *drvdata) etm_set_prog() argument
184 etmcr = etm_readl(drvdata, ETMCR); etm_set_prog()
186 etm_writel(drvdata, etmcr, ETMCR); etm_set_prog()
192 if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 1)) { etm_set_prog()
193 dev_err(drvdata->dev, etm_set_prog()
199 static void etm_clr_prog(struct etm_drvdata *drvdata) etm_clr_prog() argument
203 etmcr = etm_readl(drvdata, ETMCR); etm_clr_prog()
205 etm_writel(drvdata, etmcr, ETMCR); etm_clr_prog()
211 if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 0)) { etm_clr_prog()
212 dev_err(drvdata->dev, etm_clr_prog()
218 static void etm_set_default(struct etm_drvdata *drvdata) etm_set_default() argument
222 drvdata->trigger_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
223 drvdata->enable_event = ETM_HARD_WIRE_RES_A; etm_set_default()
225 drvdata->seq_12_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
226 drvdata->seq_21_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
227 drvdata->seq_23_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
228 drvdata->seq_31_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
229 drvdata->seq_32_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
230 drvdata->seq_13_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
231 drvdata->timestamp_event = ETM_DEFAULT_EVENT_VAL; etm_set_default()
233 for (i = 0; i < drvdata->nr_cntr; i++) { etm_set_default()
234 drvdata->cntr_rld_val[i] = 0x0; etm_set_default()
235 drvdata->cntr_event[i] = ETM_DEFAULT_EVENT_VAL; etm_set_default()
236 drvdata->cntr_rld_event[i] = ETM_DEFAULT_EVENT_VAL; etm_set_default()
237 drvdata->cntr_val[i] = 0x0; etm_set_default()
240 drvdata->seq_curr_state = 0x0; etm_set_default()
241 drvdata->ctxid_idx = 0x0; etm_set_default()
242 for (i = 0; i < drvdata->nr_ctxid_cmp; i++) { etm_set_default()
243 drvdata->ctxid_pid[i] = 0x0; etm_set_default()
244 drvdata->ctxid_vpid[i] = 0x0; etm_set_default()
247 drvdata->ctxid_mask = 0x0; etm_set_default()
254 struct etm_drvdata *drvdata = info; etm_enable_hw() local
256 CS_UNLOCK(drvdata->base); etm_enable_hw()
259 etm_clr_pwrdwn(drvdata); etm_enable_hw()
261 etm_set_pwrup(drvdata); etm_enable_hw()
263 etm_os_unlock(drvdata); etm_enable_hw()
265 etm_set_prog(drvdata); etm_enable_hw()
267 etmcr = etm_readl(drvdata, ETMCR); etm_enable_hw()
269 etmcr |= drvdata->port_size; etm_enable_hw()
270 etm_writel(drvdata, drvdata->ctrl | etmcr, ETMCR); etm_enable_hw()
271 etm_writel(drvdata, drvdata->trigger_event, ETMTRIGGER); etm_enable_hw()
272 etm_writel(drvdata, drvdata->startstop_ctrl, ETMTSSCR); etm_enable_hw()
273 etm_writel(drvdata, drvdata->enable_event, ETMTEEVR); etm_enable_hw()
274 etm_writel(drvdata, drvdata->enable_ctrl1, ETMTECR1); etm_enable_hw()
275 etm_writel(drvdata, drvdata->fifofull_level, ETMFFLR); etm_enable_hw()
276 for (i = 0; i < drvdata->nr_addr_cmp; i++) { etm_enable_hw()
277 etm_writel(drvdata, drvdata->addr_val[i], ETMACVRn(i)); etm_enable_hw()
278 etm_writel(drvdata, drvdata->addr_acctype[i], ETMACTRn(i)); etm_enable_hw()
280 for (i = 0; i < drvdata->nr_cntr; i++) { etm_enable_hw()
281 etm_writel(drvdata, drvdata->cntr_rld_val[i], ETMCNTRLDVRn(i)); etm_enable_hw()
282 etm_writel(drvdata, drvdata->cntr_event[i], ETMCNTENRn(i)); etm_enable_hw()
283 etm_writel(drvdata, drvdata->cntr_rld_event[i], etm_enable_hw()
285 etm_writel(drvdata, drvdata->cntr_val[i], ETMCNTVRn(i)); etm_enable_hw()
287 etm_writel(drvdata, drvdata->seq_12_event, ETMSQ12EVR); etm_enable_hw()
288 etm_writel(drvdata, drvdata->seq_21_event, ETMSQ21EVR); etm_enable_hw()
289 etm_writel(drvdata, drvdata->seq_23_event, ETMSQ23EVR); etm_enable_hw()
290 etm_writel(drvdata, drvdata->seq_31_event, ETMSQ31EVR); etm_enable_hw()
291 etm_writel(drvdata, drvdata->seq_32_event, ETMSQ32EVR); etm_enable_hw()
292 etm_writel(drvdata, drvdata->seq_13_event, ETMSQ13EVR); etm_enable_hw()
293 etm_writel(drvdata, drvdata->seq_curr_state, ETMSQR); etm_enable_hw()
294 for (i = 0; i < drvdata->nr_ext_out; i++) etm_enable_hw()
295 etm_writel(drvdata, ETM_DEFAULT_EVENT_VAL, ETMEXTOUTEVRn(i)); etm_enable_hw()
296 for (i = 0; i < drvdata->nr_ctxid_cmp; i++) etm_enable_hw()
297 etm_writel(drvdata, drvdata->ctxid_pid[i], ETMCIDCVRn(i)); etm_enable_hw()
298 etm_writel(drvdata, drvdata->ctxid_mask, ETMCIDCMR); etm_enable_hw()
299 etm_writel(drvdata, drvdata->sync_freq, ETMSYNCFR); etm_enable_hw()
301 etm_writel(drvdata, 0x0, ETMEXTINSELR); etm_enable_hw()
302 etm_writel(drvdata, drvdata->timestamp_event, ETMTSEVR); etm_enable_hw()
304 etm_writel(drvdata, 0x0, ETMAUXCR); etm_enable_hw()
305 etm_writel(drvdata, drvdata->traceid, ETMTRACEIDR); etm_enable_hw()
307 etm_writel(drvdata, 0x0, ETMVMIDCVR); etm_enable_hw()
310 etm_writel(drvdata, drvdata->ctrl | ETMCR_ETM_EN | etmcr, ETMCR); etm_enable_hw()
312 etm_clr_prog(drvdata); etm_enable_hw()
313 CS_LOCK(drvdata->base); etm_enable_hw()
315 dev_dbg(drvdata->dev, "cpu: %d enable smp call done\n", drvdata->cpu); etm_enable_hw()
320 struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm_trace_id() local
324 if (!drvdata->enable) etm_trace_id()
325 return drvdata->traceid; etm_trace_id()
328 spin_lock_irqsave(&drvdata->spinlock, flags); etm_trace_id()
330 CS_UNLOCK(drvdata->base); etm_trace_id()
331 trace_id = (etm_readl(drvdata, ETMTRACEIDR) & ETM_TRACEID_MASK); etm_trace_id()
332 CS_LOCK(drvdata->base); etm_trace_id()
334 spin_unlock_irqrestore(&drvdata->spinlock, flags); etm_trace_id()
342 struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm_enable() local
346 spin_lock(&drvdata->spinlock); etm_enable()
353 if (cpu_online(drvdata->cpu)) { etm_enable()
354 ret = smp_call_function_single(drvdata->cpu, etm_enable()
355 etm_enable_hw, drvdata, 1); etm_enable()
360 drvdata->enable = true; etm_enable()
361 drvdata->sticky_enable = true; etm_enable()
363 spin_unlock(&drvdata->spinlock); etm_enable()
365 dev_info(drvdata->dev, "ETM tracing enabled\n"); etm_enable()
368 spin_unlock(&drvdata->spinlock); etm_enable()
376 struct etm_drvdata *drvdata = info; etm_disable_hw() local
378 CS_UNLOCK(drvdata->base); etm_disable_hw()
379 etm_set_prog(drvdata); etm_disable_hw()
382 etm_writel(drvdata, ETM_HARD_WIRE_RES_A | ETM_EVENT_NOT_A, ETMTEEVR); etm_disable_hw()
385 drvdata->seq_curr_state = (etm_readl(drvdata, ETMSQR) & ETM_SQR_MASK); etm_disable_hw()
387 for (i = 0; i < drvdata->nr_cntr; i++) etm_disable_hw()
388 drvdata->cntr_val[i] = etm_readl(drvdata, ETMCNTVRn(i)); etm_disable_hw()
390 etm_set_pwrdwn(drvdata); etm_disable_hw()
391 CS_LOCK(drvdata->base); etm_disable_hw()
393 dev_dbg(drvdata->dev, "cpu: %d disable smp call done\n", drvdata->cpu); etm_disable_hw()
398 struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm_disable() local
407 spin_lock(&drvdata->spinlock); etm_disable()
413 smp_call_function_single(drvdata->cpu, etm_disable_hw, drvdata, 1); etm_disable()
414 drvdata->enable = false; etm_disable()
416 spin_unlock(&drvdata->spinlock); etm_disable()
420 dev_info(drvdata->dev, "ETM tracing disabled\n"); etm_disable()
437 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_addr_cmp_show() local
439 val = drvdata->nr_addr_cmp; nr_addr_cmp_show()
447 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_cntr_show() local
449 val = drvdata->nr_cntr; nr_cntr_show()
458 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_ctxid_cmp_show() local
460 val = drvdata->nr_ctxid_cmp; nr_ctxid_cmp_show()
469 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); etmsr_show() local
471 pm_runtime_get_sync(drvdata->dev); etmsr_show()
472 spin_lock_irqsave(&drvdata->spinlock, flags); etmsr_show()
473 CS_UNLOCK(drvdata->base); etmsr_show()
475 val = etm_readl(drvdata, ETMSR); etmsr_show()
477 CS_LOCK(drvdata->base); etmsr_show()
478 spin_unlock_irqrestore(&drvdata->spinlock, flags); etmsr_show()
479 pm_runtime_put(drvdata->dev); etmsr_show()
491 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); reset_store() local
498 spin_lock(&drvdata->spinlock); reset_store()
499 drvdata->mode = ETM_MODE_EXCLUDE; reset_store()
500 drvdata->ctrl = 0x0; reset_store()
501 drvdata->trigger_event = ETM_DEFAULT_EVENT_VAL; reset_store()
502 drvdata->startstop_ctrl = 0x0; reset_store()
503 drvdata->addr_idx = 0x0; reset_store()
504 for (i = 0; i < drvdata->nr_addr_cmp; i++) { reset_store()
505 drvdata->addr_val[i] = 0x0; reset_store()
506 drvdata->addr_acctype[i] = 0x0; reset_store()
507 drvdata->addr_type[i] = ETM_ADDR_TYPE_NONE; reset_store()
509 drvdata->cntr_idx = 0x0; reset_store()
511 etm_set_default(drvdata); reset_store()
512 spin_unlock(&drvdata->spinlock); reset_store()
523 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); mode_show() local
525 val = drvdata->mode; mode_show()
535 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); mode_store() local
541 spin_lock(&drvdata->spinlock); mode_store()
542 drvdata->mode = val & ETM_MODE_ALL; mode_store()
544 if (drvdata->mode & ETM_MODE_EXCLUDE) mode_store()
545 drvdata->enable_ctrl1 |= ETMTECR1_INC_EXC; mode_store()
547 drvdata->enable_ctrl1 &= ~ETMTECR1_INC_EXC; mode_store()
549 if (drvdata->mode & ETM_MODE_CYCACC) mode_store()
550 drvdata->ctrl |= ETMCR_CYC_ACC; mode_store()
552 drvdata->ctrl &= ~ETMCR_CYC_ACC; mode_store()
554 if (drvdata->mode & ETM_MODE_STALL) { mode_store()
555 if (!(drvdata->etmccr & ETMCCR_FIFOFULL)) { mode_store()
556 dev_warn(drvdata->dev, "stall mode not supported\n"); mode_store()
560 drvdata->ctrl |= ETMCR_STALL_MODE; mode_store()
562 drvdata->ctrl &= ~ETMCR_STALL_MODE; mode_store()
564 if (drvdata->mode & ETM_MODE_TIMESTAMP) { mode_store()
565 if (!(drvdata->etmccer & ETMCCER_TIMESTAMP)) { mode_store()
566 dev_warn(drvdata->dev, "timestamp not supported\n"); mode_store()
570 drvdata->ctrl |= ETMCR_TIMESTAMP_EN; mode_store()
572 drvdata->ctrl &= ~ETMCR_TIMESTAMP_EN; mode_store()
574 if (drvdata->mode & ETM_MODE_CTXID) mode_store()
575 drvdata->ctrl |= ETMCR_CTXID_SIZE; mode_store()
577 drvdata->ctrl &= ~ETMCR_CTXID_SIZE; mode_store()
578 spin_unlock(&drvdata->spinlock); mode_store()
583 spin_unlock(&drvdata->spinlock); mode_store()
592 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_event_show() local
594 val = drvdata->trigger_event; trigger_event_show()
604 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_event_store() local
610 drvdata->trigger_event = val & ETM_EVENT_MASK; trigger_event_store()
620 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); enable_event_show() local
622 val = drvdata->enable_event; enable_event_show()
632 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); enable_event_store() local
638 drvdata->enable_event = val & ETM_EVENT_MASK; enable_event_store()
648 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); fifofull_level_show() local
650 val = drvdata->fifofull_level; fifofull_level_show()
660 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); fifofull_level_store() local
666 drvdata->fifofull_level = val; fifofull_level_store()
676 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_idx_show() local
678 val = drvdata->addr_idx; addr_idx_show()
688 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_idx_store() local
694 if (val >= drvdata->nr_addr_cmp) addr_idx_store()
701 spin_lock(&drvdata->spinlock); addr_idx_store()
702 drvdata->addr_idx = val; addr_idx_store()
703 spin_unlock(&drvdata->spinlock); addr_idx_store()
714 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_single_show() local
716 spin_lock(&drvdata->spinlock); addr_single_show()
717 idx = drvdata->addr_idx; addr_single_show()
718 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_single_show()
719 drvdata->addr_type[idx] == ETM_ADDR_TYPE_SINGLE)) { addr_single_show()
720 spin_unlock(&drvdata->spinlock); addr_single_show()
724 val = drvdata->addr_val[idx]; addr_single_show()
725 spin_unlock(&drvdata->spinlock); addr_single_show()
737 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_single_store() local
743 spin_lock(&drvdata->spinlock); addr_single_store()
744 idx = drvdata->addr_idx; addr_single_store()
745 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_single_store()
746 drvdata->addr_type[idx] == ETM_ADDR_TYPE_SINGLE)) { addr_single_store()
747 spin_unlock(&drvdata->spinlock); addr_single_store()
751 drvdata->addr_val[idx] = val; addr_single_store()
752 drvdata->addr_type[idx] = ETM_ADDR_TYPE_SINGLE; addr_single_store()
753 spin_unlock(&drvdata->spinlock); addr_single_store()
764 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_range_show() local
766 spin_lock(&drvdata->spinlock); addr_range_show()
767 idx = drvdata->addr_idx; addr_range_show()
769 spin_unlock(&drvdata->spinlock); addr_range_show()
772 if (!((drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE && addr_range_show()
773 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_NONE) || addr_range_show()
774 (drvdata->addr_type[idx] == ETM_ADDR_TYPE_RANGE && addr_range_show()
775 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_RANGE))) { addr_range_show()
776 spin_unlock(&drvdata->spinlock); addr_range_show()
780 val1 = drvdata->addr_val[idx]; addr_range_show()
781 val2 = drvdata->addr_val[idx + 1]; addr_range_show()
782 spin_unlock(&drvdata->spinlock); addr_range_show()
793 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_range_store() local
801 spin_lock(&drvdata->spinlock); addr_range_store()
802 idx = drvdata->addr_idx; addr_range_store()
804 spin_unlock(&drvdata->spinlock); addr_range_store()
807 if (!((drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE && addr_range_store()
808 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_NONE) || addr_range_store()
809 (drvdata->addr_type[idx] == ETM_ADDR_TYPE_RANGE && addr_range_store()
810 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_RANGE))) { addr_range_store()
811 spin_unlock(&drvdata->spinlock); addr_range_store()
815 drvdata->addr_val[idx] = val1; addr_range_store()
816 drvdata->addr_type[idx] = ETM_ADDR_TYPE_RANGE; addr_range_store()
817 drvdata->addr_val[idx + 1] = val2; addr_range_store()
818 drvdata->addr_type[idx + 1] = ETM_ADDR_TYPE_RANGE; addr_range_store()
819 drvdata->enable_ctrl1 |= (1 << (idx/2)); addr_range_store()
820 spin_unlock(&drvdata->spinlock); addr_range_store()
831 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_start_show() local
833 spin_lock(&drvdata->spinlock); addr_start_show()
834 idx = drvdata->addr_idx; addr_start_show()
835 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_start_show()
836 drvdata->addr_type[idx] == ETM_ADDR_TYPE_START)) { addr_start_show()
837 spin_unlock(&drvdata->spinlock); addr_start_show()
841 val = drvdata->addr_val[idx]; addr_start_show()
842 spin_unlock(&drvdata->spinlock); addr_start_show()
854 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_start_store() local
860 spin_lock(&drvdata->spinlock); addr_start_store()
861 idx = drvdata->addr_idx; addr_start_store()
862 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_start_store()
863 drvdata->addr_type[idx] == ETM_ADDR_TYPE_START)) { addr_start_store()
864 spin_unlock(&drvdata->spinlock); addr_start_store()
868 drvdata->addr_val[idx] = val; addr_start_store()
869 drvdata->addr_type[idx] = ETM_ADDR_TYPE_START; addr_start_store()
870 drvdata->startstop_ctrl |= (1 << idx); addr_start_store()
871 drvdata->enable_ctrl1 |= BIT(25); addr_start_store()
872 spin_unlock(&drvdata->spinlock); addr_start_store()
883 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_stop_show() local
885 spin_lock(&drvdata->spinlock); addr_stop_show()
886 idx = drvdata->addr_idx; addr_stop_show()
887 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_stop_show()
888 drvdata->addr_type[idx] == ETM_ADDR_TYPE_STOP)) { addr_stop_show()
889 spin_unlock(&drvdata->spinlock); addr_stop_show()
893 val = drvdata->addr_val[idx]; addr_stop_show()
894 spin_unlock(&drvdata->spinlock); addr_stop_show()
906 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_stop_store() local
912 spin_lock(&drvdata->spinlock); addr_stop_store()
913 idx = drvdata->addr_idx; addr_stop_store()
914 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_stop_store()
915 drvdata->addr_type[idx] == ETM_ADDR_TYPE_STOP)) { addr_stop_store()
916 spin_unlock(&drvdata->spinlock); addr_stop_store()
920 drvdata->addr_val[idx] = val; addr_stop_store()
921 drvdata->addr_type[idx] = ETM_ADDR_TYPE_STOP; addr_stop_store()
922 drvdata->startstop_ctrl |= (1 << (idx + 16)); addr_stop_store()
923 drvdata->enable_ctrl1 |= ETMTECR1_START_STOP; addr_stop_store()
924 spin_unlock(&drvdata->spinlock); addr_stop_store()
934 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_acctype_show() local
936 spin_lock(&drvdata->spinlock); addr_acctype_show()
937 val = drvdata->addr_acctype[drvdata->addr_idx]; addr_acctype_show()
938 spin_unlock(&drvdata->spinlock); addr_acctype_show()
949 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_acctype_store() local
955 spin_lock(&drvdata->spinlock); addr_acctype_store()
956 drvdata->addr_acctype[drvdata->addr_idx] = val; addr_acctype_store()
957 spin_unlock(&drvdata->spinlock); addr_acctype_store()
967 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_idx_show() local
969 val = drvdata->cntr_idx; cntr_idx_show()
979 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_idx_store() local
985 if (val >= drvdata->nr_cntr) cntr_idx_store()
991 spin_lock(&drvdata->spinlock); cntr_idx_store()
992 drvdata->cntr_idx = val; cntr_idx_store()
993 spin_unlock(&drvdata->spinlock); cntr_idx_store()
1003 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_rld_val_show() local
1005 spin_lock(&drvdata->spinlock); cntr_rld_val_show()
1006 val = drvdata->cntr_rld_val[drvdata->cntr_idx]; cntr_rld_val_show()
1007 spin_unlock(&drvdata->spinlock); cntr_rld_val_show()
1018 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_rld_val_store() local
1024 spin_lock(&drvdata->spinlock); cntr_rld_val_store()
1025 drvdata->cntr_rld_val[drvdata->cntr_idx] = val; cntr_rld_val_store()
1026 spin_unlock(&drvdata->spinlock); cntr_rld_val_store()
1036 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_event_show() local
1038 spin_lock(&drvdata->spinlock); cntr_event_show()
1039 val = drvdata->cntr_event[drvdata->cntr_idx]; cntr_event_show()
1040 spin_unlock(&drvdata->spinlock); cntr_event_show()
1051 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_event_store() local
1057 spin_lock(&drvdata->spinlock); cntr_event_store()
1058 drvdata->cntr_event[drvdata->cntr_idx] = val & ETM_EVENT_MASK; cntr_event_store()
1059 spin_unlock(&drvdata->spinlock); cntr_event_store()
1069 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_rld_event_show() local
1071 spin_lock(&drvdata->spinlock); cntr_rld_event_show()
1072 val = drvdata->cntr_rld_event[drvdata->cntr_idx]; cntr_rld_event_show()
1073 spin_unlock(&drvdata->spinlock); cntr_rld_event_show()
1084 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_rld_event_store() local
1090 spin_lock(&drvdata->spinlock); cntr_rld_event_store()
1091 drvdata->cntr_rld_event[drvdata->cntr_idx] = val & ETM_EVENT_MASK; cntr_rld_event_store()
1092 spin_unlock(&drvdata->spinlock); cntr_rld_event_store()
1103 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_val_show() local
1105 if (!drvdata->enable) { cntr_val_show()
1106 spin_lock(&drvdata->spinlock); cntr_val_show()
1107 for (i = 0; i < drvdata->nr_cntr; i++) cntr_val_show()
1109 i, drvdata->cntr_val[i]); cntr_val_show()
1110 spin_unlock(&drvdata->spinlock); cntr_val_show()
1114 for (i = 0; i < drvdata->nr_cntr; i++) { cntr_val_show()
1115 val = etm_readl(drvdata, ETMCNTVRn(i)); cntr_val_show()
1128 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_val_store() local
1134 spin_lock(&drvdata->spinlock); cntr_val_store()
1135 drvdata->cntr_val[drvdata->cntr_idx] = val; cntr_val_store()
1136 spin_unlock(&drvdata->spinlock); cntr_val_store()
1146 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_12_event_show() local
1148 val = drvdata->seq_12_event; seq_12_event_show()
1158 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_12_event_store() local
1164 drvdata->seq_12_event = val & ETM_EVENT_MASK; seq_12_event_store()
1173 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_21_event_show() local
1175 val = drvdata->seq_21_event; seq_21_event_show()
1185 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_21_event_store() local
1191 drvdata->seq_21_event = val & ETM_EVENT_MASK; seq_21_event_store()
1200 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_23_event_show() local
1202 val = drvdata->seq_23_event; seq_23_event_show()
1212 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_23_event_store() local
1218 drvdata->seq_23_event = val & ETM_EVENT_MASK; seq_23_event_store()
1227 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_31_event_show() local
1229 val = drvdata->seq_31_event; seq_31_event_show()
1239 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_31_event_store() local
1245 drvdata->seq_31_event = val & ETM_EVENT_MASK; seq_31_event_store()
1254 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_32_event_show() local
1256 val = drvdata->seq_32_event; seq_32_event_show()
1266 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_32_event_store() local
1272 drvdata->seq_32_event = val & ETM_EVENT_MASK; seq_32_event_store()
1281 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_13_event_show() local
1283 val = drvdata->seq_13_event; seq_13_event_show()
1293 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_13_event_store() local
1299 drvdata->seq_13_event = val & ETM_EVENT_MASK; seq_13_event_store()
1308 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_curr_state_show() local
1310 if (!drvdata->enable) { seq_curr_state_show()
1311 val = drvdata->seq_curr_state; seq_curr_state_show()
1315 pm_runtime_get_sync(drvdata->dev); seq_curr_state_show()
1316 spin_lock_irqsave(&drvdata->spinlock, flags); seq_curr_state_show()
1318 CS_UNLOCK(drvdata->base); seq_curr_state_show()
1319 val = (etm_readl(drvdata, ETMSQR) & ETM_SQR_MASK); seq_curr_state_show()
1320 CS_LOCK(drvdata->base); seq_curr_state_show()
1322 spin_unlock_irqrestore(&drvdata->spinlock, flags); seq_curr_state_show()
1323 pm_runtime_put(drvdata->dev); seq_curr_state_show()
1334 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_curr_state_store() local
1343 drvdata->seq_curr_state = val; seq_curr_state_store()
1353 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_idx_show() local
1355 val = drvdata->ctxid_idx; ctxid_idx_show()
1365 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_idx_store() local
1371 if (val >= drvdata->nr_ctxid_cmp) ctxid_idx_store()
1378 spin_lock(&drvdata->spinlock); ctxid_idx_store()
1379 drvdata->ctxid_idx = val; ctxid_idx_store()
1380 spin_unlock(&drvdata->spinlock); ctxid_idx_store()
1390 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_pid_show() local
1392 spin_lock(&drvdata->spinlock); ctxid_pid_show()
1393 val = drvdata->ctxid_vpid[drvdata->ctxid_idx]; ctxid_pid_show()
1394 spin_unlock(&drvdata->spinlock); ctxid_pid_show()
1405 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_pid_store() local
1413 spin_lock(&drvdata->spinlock); ctxid_pid_store()
1414 drvdata->ctxid_pid[drvdata->ctxid_idx] = pid; ctxid_pid_store()
1415 drvdata->ctxid_vpid[drvdata->ctxid_idx] = vpid; ctxid_pid_store()
1416 spin_unlock(&drvdata->spinlock); ctxid_pid_store()
1426 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_mask_show() local
1428 val = drvdata->ctxid_mask; ctxid_mask_show()
1438 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_mask_store() local
1444 drvdata->ctxid_mask = val; ctxid_mask_store()
1453 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); sync_freq_show() local
1455 val = drvdata->sync_freq; sync_freq_show()
1465 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); sync_freq_store() local
1471 drvdata->sync_freq = val & ETM_SYNC_MASK; sync_freq_store()
1480 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); timestamp_event_show() local
1482 val = drvdata->timestamp_event; timestamp_event_show()
1492 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); timestamp_event_store() local
1498 drvdata->timestamp_event = val & ETM_EVENT_MASK; timestamp_event_store()
1507 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); cpu_show() local
1509 val = drvdata->cpu; cpu_show()
1519 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); traceid_show() local
1521 if (!drvdata->enable) { traceid_show()
1522 val = drvdata->traceid; traceid_show()
1526 pm_runtime_get_sync(drvdata->dev); traceid_show()
1527 spin_lock_irqsave(&drvdata->spinlock, flags); traceid_show()
1528 CS_UNLOCK(drvdata->base); traceid_show()
1530 val = (etm_readl(drvdata, ETMTRACEIDR) & ETM_TRACEID_MASK); traceid_show()
1532 CS_LOCK(drvdata->base); traceid_show()
1533 spin_unlock_irqrestore(&drvdata->spinlock, flags); traceid_show()
1534 pm_runtime_put(drvdata->dev); traceid_show()
1545 struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); traceid_store() local
1551 drvdata->traceid = val & ETM_TRACEID_MASK; traceid_store()
1598 struct etm_drvdata *drvdata = dev_get_drvdata(_dev->parent); \
1600 readl_relaxed(drvdata->base + offset)); \
1708 struct etm_drvdata *drvdata = info; etm_init_arch_data() local
1710 CS_UNLOCK(drvdata->base); etm_init_arch_data()
1713 (void)etm_readl(drvdata, ETMPDSR); etm_init_arch_data()
1715 etm_set_pwrup(drvdata); etm_init_arch_data()
1720 etm_clr_pwrdwn(drvdata); etm_init_arch_data()
1725 etm_set_prog(drvdata); etm_init_arch_data()
1728 etmidr = etm_readl(drvdata, ETMIDR); etm_init_arch_data()
1729 drvdata->arch = BMVAL(etmidr, 4, 11); etm_init_arch_data()
1730 drvdata->port_size = etm_readl(drvdata, ETMCR) & PORT_SIZE_MASK; etm_init_arch_data()
1732 drvdata->etmccer = etm_readl(drvdata, ETMCCER); etm_init_arch_data()
1733 etmccr = etm_readl(drvdata, ETMCCR); etm_init_arch_data()
1734 drvdata->etmccr = etmccr; etm_init_arch_data()
1735 drvdata->nr_addr_cmp = BMVAL(etmccr, 0, 3) * 2; etm_init_arch_data()
1736 drvdata->nr_cntr = BMVAL(etmccr, 13, 15); etm_init_arch_data()
1737 drvdata->nr_ext_inp = BMVAL(etmccr, 17, 19); etm_init_arch_data()
1738 drvdata->nr_ext_out = BMVAL(etmccr, 20, 22); etm_init_arch_data()
1739 drvdata->nr_ctxid_cmp = BMVAL(etmccr, 24, 25); etm_init_arch_data()
1741 etm_set_pwrdwn(drvdata); etm_init_arch_data()
1742 etm_clr_pwrup(drvdata); etm_init_arch_data()
1743 CS_LOCK(drvdata->base); etm_init_arch_data()
1746 static void etm_init_default_data(struct etm_drvdata *drvdata) etm_init_default_data() argument
1767 drvdata->traceid = etm3x_traceid++; etm_init_default_data()
1768 drvdata->ctrl = (ETMCR_CYC_ACC | ETMCR_TIMESTAMP_EN); etm_init_default_data()
1769 drvdata->enable_ctrl1 = ETMTECR1_ADDR_COMP_1; etm_init_default_data()
1770 if (drvdata->nr_addr_cmp >= 2) { etm_init_default_data()
1771 drvdata->addr_val[0] = (u32) _stext; etm_init_default_data()
1772 drvdata->addr_val[1] = (u32) _etext; etm_init_default_data()
1773 drvdata->addr_acctype[0] = flags; etm_init_default_data()
1774 drvdata->addr_acctype[1] = flags; etm_init_default_data()
1775 drvdata->addr_type[0] = ETM_ADDR_TYPE_RANGE; etm_init_default_data()
1776 drvdata->addr_type[1] = ETM_ADDR_TYPE_RANGE; etm_init_default_data()
1779 etm_set_default(drvdata); etm_init_default_data()
1788 struct etm_drvdata *drvdata; etm_probe() local
1797 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); etm_probe()
1798 if (!drvdata) etm_probe()
1807 drvdata->use_cp14 = of_property_read_bool(np, "arm,cp14"); etm_probe()
1810 drvdata->dev = &adev->dev; etm_probe()
1811 dev_set_drvdata(dev, drvdata); etm_probe()
1818 drvdata->base = base; etm_probe()
1820 spin_lock_init(&drvdata->spinlock); etm_probe()
1822 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ etm_probe()
1823 if (!IS_ERR(drvdata->atclk)) { etm_probe()
1824 ret = clk_prepare_enable(drvdata->atclk); etm_probe()
1829 drvdata->cpu = pdata ? pdata->cpu : 0; etm_probe()
1832 etmdrvdata[drvdata->cpu] = drvdata; etm_probe()
1834 if (!smp_call_function_single(drvdata->cpu, etm_os_unlock, drvdata, 1)) etm_probe()
1835 drvdata->os_unlock = true; etm_probe()
1837 if (smp_call_function_single(drvdata->cpu, etm_probe()
1838 etm_init_arch_data, drvdata, 1)) etm_probe()
1846 if (etm_arch_supported(drvdata->arch) == false) { etm_probe()
1850 etm_init_default_data(drvdata); etm_probe()
1858 drvdata->csdev = coresight_register(desc); etm_probe()
1859 if (IS_ERR(drvdata->csdev)) { etm_probe()
1860 ret = PTR_ERR(drvdata->csdev); etm_probe()
1868 coresight_enable(drvdata->csdev); etm_probe()
1869 drvdata->boot_enable = true; etm_probe()
1882 struct etm_drvdata *drvdata = amba_get_drvdata(adev); etm_remove() local
1884 coresight_unregister(drvdata->csdev); etm_remove()
1894 struct etm_drvdata *drvdata = dev_get_drvdata(dev); etm_runtime_suspend() local
1896 if (drvdata && !IS_ERR(drvdata->atclk)) etm_runtime_suspend()
1897 clk_disable_unprepare(drvdata->atclk); etm_runtime_suspend()
1904 struct etm_drvdata *drvdata = dev_get_drvdata(dev); etm_runtime_resume() local
1906 if (drvdata && !IS_ERR(drvdata->atclk)) etm_runtime_resume()
1907 clk_prepare_enable(drvdata->atclk); etm_runtime_resume()
H A Dcoresight-tmc.c134 static void tmc_wait_for_ready(struct tmc_drvdata *drvdata) tmc_wait_for_ready() argument
137 if (coresight_timeout(drvdata->base, tmc_wait_for_ready()
139 dev_err(drvdata->dev, tmc_wait_for_ready()
145 static void tmc_flush_and_stop(struct tmc_drvdata *drvdata) tmc_flush_and_stop() argument
149 ffcr = readl_relaxed(drvdata->base + TMC_FFCR); tmc_flush_and_stop()
151 writel_relaxed(ffcr, drvdata->base + TMC_FFCR); tmc_flush_and_stop()
153 writel_relaxed(ffcr, drvdata->base + TMC_FFCR); tmc_flush_and_stop()
155 if (coresight_timeout(drvdata->base, tmc_flush_and_stop()
157 dev_err(drvdata->dev, tmc_flush_and_stop()
162 tmc_wait_for_ready(drvdata); tmc_flush_and_stop()
165 static void tmc_enable_hw(struct tmc_drvdata *drvdata) tmc_enable_hw() argument
167 writel_relaxed(TMC_CTL_CAPT_EN, drvdata->base + TMC_CTL); tmc_enable_hw()
170 static void tmc_disable_hw(struct tmc_drvdata *drvdata) tmc_disable_hw() argument
172 writel_relaxed(0x0, drvdata->base + TMC_CTL); tmc_disable_hw()
175 static void tmc_etb_enable_hw(struct tmc_drvdata *drvdata) tmc_etb_enable_hw() argument
178 memset(drvdata->buf, 0, drvdata->size); tmc_etb_enable_hw()
180 CS_UNLOCK(drvdata->base); tmc_etb_enable_hw()
182 writel_relaxed(TMC_MODE_CIRCULAR_BUFFER, drvdata->base + TMC_MODE); tmc_etb_enable_hw()
186 drvdata->base + TMC_FFCR); tmc_etb_enable_hw()
188 writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG); tmc_etb_enable_hw()
189 tmc_enable_hw(drvdata); tmc_etb_enable_hw()
191 CS_LOCK(drvdata->base); tmc_etb_enable_hw()
194 static void tmc_etr_enable_hw(struct tmc_drvdata *drvdata) tmc_etr_enable_hw() argument
199 memset(drvdata->vaddr, 0, drvdata->size); tmc_etr_enable_hw()
201 CS_UNLOCK(drvdata->base); tmc_etr_enable_hw()
203 writel_relaxed(drvdata->size / 4, drvdata->base + TMC_RSZ); tmc_etr_enable_hw()
204 writel_relaxed(TMC_MODE_CIRCULAR_BUFFER, drvdata->base + TMC_MODE); tmc_etr_enable_hw()
206 axictl = readl_relaxed(drvdata->base + TMC_AXICTL); tmc_etr_enable_hw()
208 writel_relaxed(axictl, drvdata->base + TMC_AXICTL); tmc_etr_enable_hw()
210 writel_relaxed(axictl, drvdata->base + TMC_AXICTL); tmc_etr_enable_hw()
214 writel_relaxed(axictl, drvdata->base + TMC_AXICTL); tmc_etr_enable_hw()
216 writel_relaxed(drvdata->paddr, drvdata->base + TMC_DBALO); tmc_etr_enable_hw()
217 writel_relaxed(0x0, drvdata->base + TMC_DBAHI); tmc_etr_enable_hw()
221 drvdata->base + TMC_FFCR); tmc_etr_enable_hw()
222 writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG); tmc_etr_enable_hw()
223 tmc_enable_hw(drvdata); tmc_etr_enable_hw()
225 CS_LOCK(drvdata->base); tmc_etr_enable_hw()
228 static void tmc_etf_enable_hw(struct tmc_drvdata *drvdata) tmc_etf_enable_hw() argument
230 CS_UNLOCK(drvdata->base); tmc_etf_enable_hw()
232 writel_relaxed(TMC_MODE_HARDWARE_FIFO, drvdata->base + TMC_MODE); tmc_etf_enable_hw()
234 drvdata->base + TMC_FFCR); tmc_etf_enable_hw()
235 writel_relaxed(0x0, drvdata->base + TMC_BUFWM); tmc_etf_enable_hw()
236 tmc_enable_hw(drvdata); tmc_etf_enable_hw()
238 CS_LOCK(drvdata->base); tmc_etf_enable_hw()
241 static int tmc_enable(struct tmc_drvdata *drvdata, enum tmc_mode mode) tmc_enable() argument
245 pm_runtime_get_sync(drvdata->dev); tmc_enable()
247 spin_lock_irqsave(&drvdata->spinlock, flags); tmc_enable()
248 if (drvdata->reading) { tmc_enable()
249 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_enable()
250 pm_runtime_put(drvdata->dev); tmc_enable()
254 if (drvdata->config_type == TMC_CONFIG_TYPE_ETB) { tmc_enable()
255 tmc_etb_enable_hw(drvdata); tmc_enable()
256 } else if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_enable()
257 tmc_etr_enable_hw(drvdata); tmc_enable()
260 tmc_etb_enable_hw(drvdata); tmc_enable()
262 tmc_etf_enable_hw(drvdata); tmc_enable()
264 drvdata->enable = true; tmc_enable()
265 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_enable()
267 dev_info(drvdata->dev, "TMC enabled\n"); tmc_enable()
273 struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tmc_enable_sink() local
275 return tmc_enable(drvdata, TMC_MODE_CIRCULAR_BUFFER); tmc_enable_sink()
281 struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tmc_enable_link() local
283 return tmc_enable(drvdata, TMC_MODE_HARDWARE_FIFO); tmc_enable_link()
286 static void tmc_etb_dump_hw(struct tmc_drvdata *drvdata) tmc_etb_dump_hw() argument
294 memwidth = BMVAL(readl_relaxed(drvdata->base + CORESIGHT_DEVID), 8, 10); tmc_etb_dump_hw()
304 bufp = drvdata->buf; tmc_etb_dump_hw()
307 read_data = readl_relaxed(drvdata->base + TMC_RRD); tmc_etb_dump_hw()
316 static void tmc_etb_disable_hw(struct tmc_drvdata *drvdata) tmc_etb_disable_hw() argument
318 CS_UNLOCK(drvdata->base); tmc_etb_disable_hw()
320 tmc_flush_and_stop(drvdata); tmc_etb_disable_hw()
321 tmc_etb_dump_hw(drvdata); tmc_etb_disable_hw()
322 tmc_disable_hw(drvdata); tmc_etb_disable_hw()
324 CS_LOCK(drvdata->base); tmc_etb_disable_hw()
327 static void tmc_etr_dump_hw(struct tmc_drvdata *drvdata) tmc_etr_dump_hw() argument
331 rwp = readl_relaxed(drvdata->base + TMC_RWP); tmc_etr_dump_hw()
332 val = readl_relaxed(drvdata->base + TMC_STS); tmc_etr_dump_hw()
336 drvdata->buf = drvdata->vaddr + rwp - drvdata->paddr; tmc_etr_dump_hw()
338 drvdata->buf = drvdata->vaddr; tmc_etr_dump_hw()
341 static void tmc_etr_disable_hw(struct tmc_drvdata *drvdata) tmc_etr_disable_hw() argument
343 CS_UNLOCK(drvdata->base); tmc_etr_disable_hw()
345 tmc_flush_and_stop(drvdata); tmc_etr_disable_hw()
346 tmc_etr_dump_hw(drvdata); tmc_etr_disable_hw()
347 tmc_disable_hw(drvdata); tmc_etr_disable_hw()
349 CS_LOCK(drvdata->base); tmc_etr_disable_hw()
352 static void tmc_etf_disable_hw(struct tmc_drvdata *drvdata) tmc_etf_disable_hw() argument
354 CS_UNLOCK(drvdata->base); tmc_etf_disable_hw()
356 tmc_flush_and_stop(drvdata); tmc_etf_disable_hw()
357 tmc_disable_hw(drvdata); tmc_etf_disable_hw()
359 CS_LOCK(drvdata->base); tmc_etf_disable_hw()
362 static void tmc_disable(struct tmc_drvdata *drvdata, enum tmc_mode mode) tmc_disable() argument
366 spin_lock_irqsave(&drvdata->spinlock, flags); tmc_disable()
367 if (drvdata->reading) tmc_disable()
370 if (drvdata->config_type == TMC_CONFIG_TYPE_ETB) { tmc_disable()
371 tmc_etb_disable_hw(drvdata); tmc_disable()
372 } else if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_disable()
373 tmc_etr_disable_hw(drvdata); tmc_disable()
376 tmc_etb_disable_hw(drvdata); tmc_disable()
378 tmc_etf_disable_hw(drvdata); tmc_disable()
381 drvdata->enable = false; tmc_disable()
382 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_disable()
384 pm_runtime_put(drvdata->dev); tmc_disable()
386 dev_info(drvdata->dev, "TMC disabled\n"); tmc_disable()
391 struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tmc_disable_sink() local
393 tmc_disable(drvdata, TMC_MODE_CIRCULAR_BUFFER); tmc_disable_sink()
399 struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tmc_disable_link() local
401 tmc_disable(drvdata, TMC_MODE_HARDWARE_FIFO); tmc_disable_link()
427 static int tmc_read_prepare(struct tmc_drvdata *drvdata) tmc_read_prepare() argument
433 spin_lock_irqsave(&drvdata->spinlock, flags); tmc_read_prepare()
434 if (!drvdata->enable) tmc_read_prepare()
437 if (drvdata->config_type == TMC_CONFIG_TYPE_ETB) { tmc_read_prepare()
438 tmc_etb_disable_hw(drvdata); tmc_read_prepare()
439 } else if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_read_prepare()
440 tmc_etr_disable_hw(drvdata); tmc_read_prepare()
442 mode = readl_relaxed(drvdata->base + TMC_MODE); tmc_read_prepare()
444 tmc_etb_disable_hw(drvdata); tmc_read_prepare()
451 drvdata->reading = true; tmc_read_prepare()
452 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_read_prepare()
454 dev_info(drvdata->dev, "TMC read start\n"); tmc_read_prepare()
457 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_read_prepare()
461 static void tmc_read_unprepare(struct tmc_drvdata *drvdata) tmc_read_unprepare() argument
466 spin_lock_irqsave(&drvdata->spinlock, flags); tmc_read_unprepare()
467 if (!drvdata->enable) tmc_read_unprepare()
470 if (drvdata->config_type == TMC_CONFIG_TYPE_ETB) { tmc_read_unprepare()
471 tmc_etb_enable_hw(drvdata); tmc_read_unprepare()
472 } else if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_read_unprepare()
473 tmc_etr_enable_hw(drvdata); tmc_read_unprepare()
475 mode = readl_relaxed(drvdata->base + TMC_MODE); tmc_read_unprepare()
477 tmc_etb_enable_hw(drvdata); tmc_read_unprepare()
480 drvdata->reading = false; tmc_read_unprepare()
481 spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_read_unprepare()
483 dev_info(drvdata->dev, "TMC read end\n"); tmc_read_unprepare()
488 struct tmc_drvdata *drvdata = container_of(file->private_data, tmc_open() local
492 if (drvdata->read_count++) tmc_open()
495 ret = tmc_read_prepare(drvdata); tmc_open()
501 dev_dbg(drvdata->dev, "%s: successfully opened\n", __func__); tmc_open()
508 struct tmc_drvdata *drvdata = container_of(file->private_data, tmc_read() local
510 char *bufp = drvdata->buf + *ppos; tmc_read()
512 if (*ppos + len > drvdata->size) tmc_read()
513 len = drvdata->size - *ppos; tmc_read()
515 if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_read()
516 if (bufp == (char *)(drvdata->vaddr + drvdata->size)) tmc_read()
517 bufp = drvdata->vaddr; tmc_read()
518 else if (bufp > (char *)(drvdata->vaddr + drvdata->size)) tmc_read()
519 bufp -= drvdata->size; tmc_read()
520 if ((bufp + len) > (char *)(drvdata->vaddr + drvdata->size)) tmc_read()
521 len = (char *)(drvdata->vaddr + drvdata->size) - bufp; tmc_read()
525 dev_dbg(drvdata->dev, "%s: copy_to_user failed\n", __func__); tmc_read()
531 dev_dbg(drvdata->dev, "%s: %zu bytes copied, %d bytes left\n", tmc_read()
532 __func__, len, (int)(drvdata->size - *ppos)); tmc_read()
538 struct tmc_drvdata *drvdata = container_of(file->private_data, tmc_release() local
541 if (--drvdata->read_count) { tmc_release()
542 if (drvdata->read_count < 0) { tmc_release()
543 dev_err(drvdata->dev, "mismatched close\n"); tmc_release()
544 drvdata->read_count = 0; tmc_release()
549 tmc_read_unprepare(drvdata); tmc_release()
551 dev_dbg(drvdata->dev, "%s: released\n", __func__); tmc_release()
570 struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent); status_show() local
572 pm_runtime_get_sync(drvdata->dev); status_show()
573 spin_lock_irqsave(&drvdata->spinlock, flags); status_show()
574 CS_UNLOCK(drvdata->base); status_show()
576 tmc_rsz = readl_relaxed(drvdata->base + TMC_RSZ); status_show()
577 tmc_sts = readl_relaxed(drvdata->base + TMC_STS); status_show()
578 tmc_rrp = readl_relaxed(drvdata->base + TMC_RRP); status_show()
579 tmc_rwp = readl_relaxed(drvdata->base + TMC_RWP); status_show()
580 tmc_trg = readl_relaxed(drvdata->base + TMC_TRG); status_show()
581 tmc_ctl = readl_relaxed(drvdata->base + TMC_CTL); status_show()
582 tmc_ffsr = readl_relaxed(drvdata->base + TMC_FFSR); status_show()
583 tmc_ffcr = readl_relaxed(drvdata->base + TMC_FFCR); status_show()
584 tmc_mode = readl_relaxed(drvdata->base + TMC_MODE); status_show()
585 tmc_pscr = readl_relaxed(drvdata->base + TMC_PSCR); status_show()
586 devid = readl_relaxed(drvdata->base + CORESIGHT_DEVID); status_show()
588 CS_LOCK(drvdata->base); status_show()
589 spin_unlock_irqrestore(&drvdata->spinlock, flags); status_show()
590 pm_runtime_put(drvdata->dev); status_show()
614 struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_cntr_show() local
615 unsigned long val = drvdata->trigger_cntr; trigger_cntr_show()
626 struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_cntr_store() local
632 drvdata->trigger_cntr = val; trigger_cntr_store()
665 struct tmc_drvdata *drvdata; tmc_probe() local
677 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); tmc_probe()
678 if (!drvdata) tmc_probe()
681 drvdata->dev = &adev->dev; tmc_probe()
682 dev_set_drvdata(dev, drvdata); tmc_probe()
689 drvdata->base = base; tmc_probe()
691 spin_lock_init(&drvdata->spinlock); tmc_probe()
693 devid = readl_relaxed(drvdata->base + CORESIGHT_DEVID); tmc_probe()
694 drvdata->config_type = BMVAL(devid, 6, 7); tmc_probe()
696 if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_probe()
700 &drvdata->size); tmc_probe()
702 drvdata->size = SZ_1M; tmc_probe()
704 drvdata->size = readl_relaxed(drvdata->base + TMC_RSZ) * 4; tmc_probe()
709 if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_probe()
710 drvdata->vaddr = dma_alloc_coherent(dev, drvdata->size, tmc_probe()
711 &drvdata->paddr, GFP_KERNEL); tmc_probe()
712 if (!drvdata->vaddr) tmc_probe()
715 memset(drvdata->vaddr, 0, drvdata->size); tmc_probe()
716 drvdata->buf = drvdata->vaddr; tmc_probe()
718 drvdata->buf = devm_kzalloc(dev, drvdata->size, GFP_KERNEL); tmc_probe()
719 if (!drvdata->buf) tmc_probe()
733 if (drvdata->config_type == TMC_CONFIG_TYPE_ETB) { tmc_probe()
737 } else if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) { tmc_probe()
748 drvdata->csdev = coresight_register(desc); tmc_probe()
749 if (IS_ERR(drvdata->csdev)) { tmc_probe()
750 ret = PTR_ERR(drvdata->csdev); tmc_probe()
754 drvdata->miscdev.name = pdata->name; tmc_probe()
755 drvdata->miscdev.minor = MISC_DYNAMIC_MINOR; tmc_probe()
756 drvdata->miscdev.fops = &tmc_fops; tmc_probe()
757 ret = misc_register(&drvdata->miscdev); tmc_probe()
765 coresight_unregister(drvdata->csdev); tmc_probe()
767 if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) tmc_probe()
768 dma_free_coherent(dev, drvdata->size, tmc_probe()
769 &drvdata->paddr, GFP_KERNEL); tmc_probe()
775 struct tmc_drvdata *drvdata = amba_get_drvdata(adev); tmc_remove() local
777 misc_deregister(&drvdata->miscdev); tmc_remove()
778 coresight_unregister(drvdata->csdev); tmc_remove()
779 if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) tmc_remove()
780 dma_free_coherent(drvdata->dev, drvdata->size, tmc_remove()
781 &drvdata->paddr, GFP_KERNEL); tmc_remove()
H A Dcoresight-etm4x.c48 struct etmv4_drvdata *drvdata = (struct etmv4_drvdata *)info; etm4_os_unlock() local
51 writel_relaxed(0x0, drvdata->base + TRCOSLAR); etm4_os_unlock()
68 struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm4_trace_id() local
72 if (!drvdata->enable) etm4_trace_id()
73 return drvdata->trcid; etm4_trace_id()
75 pm_runtime_get_sync(drvdata->dev); etm4_trace_id()
76 spin_lock_irqsave(&drvdata->spinlock, flags); etm4_trace_id()
78 CS_UNLOCK(drvdata->base); etm4_trace_id()
79 trace_id = readl_relaxed(drvdata->base + TRCTRACEIDR); etm4_trace_id()
81 CS_LOCK(drvdata->base); etm4_trace_id()
83 spin_unlock_irqrestore(&drvdata->spinlock, flags); etm4_trace_id()
84 pm_runtime_put(drvdata->dev); etm4_trace_id()
92 struct etmv4_drvdata *drvdata = info; etm4_enable_hw() local
94 CS_UNLOCK(drvdata->base); etm4_enable_hw()
96 etm4_os_unlock(drvdata); etm4_enable_hw()
99 writel_relaxed(0, drvdata->base + TRCPRGCTLR); etm4_enable_hw()
102 if (coresight_timeout(drvdata->base, TRCSTATR, TRCSTATR_IDLE_BIT, 1)) etm4_enable_hw()
103 dev_err(drvdata->dev, etm4_enable_hw()
107 writel_relaxed(drvdata->pe_sel, drvdata->base + TRCPROCSELR); etm4_enable_hw()
108 writel_relaxed(drvdata->cfg, drvdata->base + TRCCONFIGR); etm4_enable_hw()
110 writel_relaxed(0x0, drvdata->base + TRCAUXCTLR); etm4_enable_hw()
111 writel_relaxed(drvdata->eventctrl0, drvdata->base + TRCEVENTCTL0R); etm4_enable_hw()
112 writel_relaxed(drvdata->eventctrl1, drvdata->base + TRCEVENTCTL1R); etm4_enable_hw()
113 writel_relaxed(drvdata->stall_ctrl, drvdata->base + TRCSTALLCTLR); etm4_enable_hw()
114 writel_relaxed(drvdata->ts_ctrl, drvdata->base + TRCTSCTLR); etm4_enable_hw()
115 writel_relaxed(drvdata->syncfreq, drvdata->base + TRCSYNCPR); etm4_enable_hw()
116 writel_relaxed(drvdata->ccctlr, drvdata->base + TRCCCCTLR); etm4_enable_hw()
117 writel_relaxed(drvdata->bb_ctrl, drvdata->base + TRCBBCTLR); etm4_enable_hw()
118 writel_relaxed(drvdata->trcid, drvdata->base + TRCTRACEIDR); etm4_enable_hw()
119 writel_relaxed(drvdata->vinst_ctrl, drvdata->base + TRCVICTLR); etm4_enable_hw()
120 writel_relaxed(drvdata->viiectlr, drvdata->base + TRCVIIECTLR); etm4_enable_hw()
121 writel_relaxed(drvdata->vissctlr, etm4_enable_hw()
122 drvdata->base + TRCVISSCTLR); etm4_enable_hw()
123 writel_relaxed(drvdata->vipcssctlr, etm4_enable_hw()
124 drvdata->base + TRCVIPCSSCTLR); etm4_enable_hw()
125 for (i = 0; i < drvdata->nrseqstate - 1; i++) etm4_enable_hw()
126 writel_relaxed(drvdata->seq_ctrl[i], etm4_enable_hw()
127 drvdata->base + TRCSEQEVRn(i)); etm4_enable_hw()
128 writel_relaxed(drvdata->seq_rst, drvdata->base + TRCSEQRSTEVR); etm4_enable_hw()
129 writel_relaxed(drvdata->seq_state, drvdata->base + TRCSEQSTR); etm4_enable_hw()
130 writel_relaxed(drvdata->ext_inp, drvdata->base + TRCEXTINSELR); etm4_enable_hw()
131 for (i = 0; i < drvdata->nr_cntr; i++) { etm4_enable_hw()
132 writel_relaxed(drvdata->cntrldvr[i], etm4_enable_hw()
133 drvdata->base + TRCCNTRLDVRn(i)); etm4_enable_hw()
134 writel_relaxed(drvdata->cntr_ctrl[i], etm4_enable_hw()
135 drvdata->base + TRCCNTCTLRn(i)); etm4_enable_hw()
136 writel_relaxed(drvdata->cntr_val[i], etm4_enable_hw()
137 drvdata->base + TRCCNTVRn(i)); etm4_enable_hw()
141 for (i = 2; i < drvdata->nr_resource * 2; i++) etm4_enable_hw()
142 writel_relaxed(drvdata->res_ctrl[i], etm4_enable_hw()
143 drvdata->base + TRCRSCTLRn(i)); etm4_enable_hw()
145 for (i = 0; i < drvdata->nr_ss_cmp; i++) { etm4_enable_hw()
146 writel_relaxed(drvdata->ss_ctrl[i], etm4_enable_hw()
147 drvdata->base + TRCSSCCRn(i)); etm4_enable_hw()
148 writel_relaxed(drvdata->ss_status[i], etm4_enable_hw()
149 drvdata->base + TRCSSCSRn(i)); etm4_enable_hw()
150 writel_relaxed(drvdata->ss_pe_cmp[i], etm4_enable_hw()
151 drvdata->base + TRCSSPCICRn(i)); etm4_enable_hw()
153 for (i = 0; i < drvdata->nr_addr_cmp; i++) { etm4_enable_hw()
154 writeq_relaxed(drvdata->addr_val[i], etm4_enable_hw()
155 drvdata->base + TRCACVRn(i)); etm4_enable_hw()
156 writeq_relaxed(drvdata->addr_acc[i], etm4_enable_hw()
157 drvdata->base + TRCACATRn(i)); etm4_enable_hw()
159 for (i = 0; i < drvdata->numcidc; i++) etm4_enable_hw()
160 writeq_relaxed(drvdata->ctxid_pid[i], etm4_enable_hw()
161 drvdata->base + TRCCIDCVRn(i)); etm4_enable_hw()
162 writel_relaxed(drvdata->ctxid_mask0, drvdata->base + TRCCIDCCTLR0); etm4_enable_hw()
163 writel_relaxed(drvdata->ctxid_mask1, drvdata->base + TRCCIDCCTLR1); etm4_enable_hw()
165 for (i = 0; i < drvdata->numvmidc; i++) etm4_enable_hw()
166 writeq_relaxed(drvdata->vmid_val[i], etm4_enable_hw()
167 drvdata->base + TRCVMIDCVRn(i)); etm4_enable_hw()
168 writel_relaxed(drvdata->vmid_mask0, drvdata->base + TRCVMIDCCTLR0); etm4_enable_hw()
169 writel_relaxed(drvdata->vmid_mask1, drvdata->base + TRCVMIDCCTLR1); etm4_enable_hw()
172 writel_relaxed(1, drvdata->base + TRCPRGCTLR); etm4_enable_hw()
175 if (coresight_timeout(drvdata->base, TRCSTATR, TRCSTATR_IDLE_BIT, 0)) etm4_enable_hw()
176 dev_err(drvdata->dev, etm4_enable_hw()
180 CS_LOCK(drvdata->base); etm4_enable_hw()
182 dev_dbg(drvdata->dev, "cpu: %d enable smp call done\n", drvdata->cpu); etm4_enable_hw()
187 struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm4_enable() local
190 pm_runtime_get_sync(drvdata->dev); etm4_enable()
191 spin_lock(&drvdata->spinlock); etm4_enable()
197 ret = smp_call_function_single(drvdata->cpu, etm4_enable()
198 etm4_enable_hw, drvdata, 1); etm4_enable()
201 drvdata->enable = true; etm4_enable()
202 drvdata->sticky_enable = true; etm4_enable()
204 spin_unlock(&drvdata->spinlock); etm4_enable()
206 dev_info(drvdata->dev, "ETM tracing enabled\n"); etm4_enable()
209 spin_unlock(&drvdata->spinlock); etm4_enable()
210 pm_runtime_put(drvdata->dev); etm4_enable()
217 struct etmv4_drvdata *drvdata = info; etm4_disable_hw() local
219 CS_UNLOCK(drvdata->base); etm4_disable_hw()
221 control = readl_relaxed(drvdata->base + TRCPRGCTLR); etm4_disable_hw()
229 writel_relaxed(control, drvdata->base + TRCPRGCTLR); etm4_disable_hw()
231 CS_LOCK(drvdata->base); etm4_disable_hw()
233 dev_dbg(drvdata->dev, "cpu: %d disable smp call done\n", drvdata->cpu); etm4_disable_hw()
238 struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etm4_disable() local
247 spin_lock(&drvdata->spinlock); etm4_disable()
253 smp_call_function_single(drvdata->cpu, etm4_disable_hw, drvdata, 1); etm4_disable()
254 drvdata->enable = false; etm4_disable()
256 spin_unlock(&drvdata->spinlock); etm4_disable()
259 pm_runtime_put(drvdata->dev); etm4_disable()
261 dev_info(drvdata->dev, "ETM tracing disabled\n"); etm4_disable()
274 static int etm4_set_mode_exclude(struct etmv4_drvdata *drvdata, bool exclude) etm4_set_mode_exclude() argument
276 u8 idx = drvdata->addr_idx; etm4_set_mode_exclude()
282 if (BMVAL(drvdata->addr_acc[idx], 0, 1) == ETM_INSTR_ADDR) { etm4_set_mode_exclude()
291 if (drvdata->addr_type[idx] != ETM_ADDR_TYPE_RANGE || etm4_set_mode_exclude()
292 drvdata->addr_type[idx + 1] != ETM_ADDR_TYPE_RANGE) etm4_set_mode_exclude()
300 drvdata->viiectlr |= BIT(idx / 2 + 16); etm4_set_mode_exclude()
301 drvdata->viiectlr &= ~BIT(idx / 2); etm4_set_mode_exclude()
307 drvdata->viiectlr |= BIT(idx / 2); etm4_set_mode_exclude()
308 drvdata->viiectlr &= ~BIT(idx / 2 + 16); etm4_set_mode_exclude()
319 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_pe_cmp_show() local
321 val = drvdata->nr_pe_cmp; nr_pe_cmp_show()
331 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_addr_cmp_show() local
333 val = drvdata->nr_addr_cmp; nr_addr_cmp_show()
343 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_cntr_show() local
345 val = drvdata->nr_cntr; nr_cntr_show()
355 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_ext_inp_show() local
357 val = drvdata->nr_ext_inp; nr_ext_inp_show()
367 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); numcidc_show() local
369 val = drvdata->numcidc; numcidc_show()
379 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); numvmidc_show() local
381 val = drvdata->numvmidc; numvmidc_show()
391 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nrseqstate_show() local
393 val = drvdata->nrseqstate; nrseqstate_show()
403 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_resource_show() local
405 val = drvdata->nr_resource; nr_resource_show()
415 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); nr_ss_cmp_show() local
417 val = drvdata->nr_ss_cmp; nr_ss_cmp_show()
428 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); reset_store() local
433 spin_lock(&drvdata->spinlock); reset_store()
435 drvdata->mode = 0x0; reset_store()
438 drvdata->mode &= ~(ETM_MODE_LOAD | ETM_MODE_STORE); reset_store()
439 drvdata->cfg &= ~(BIT(1) | BIT(2)); reset_store()
442 drvdata->mode &= ~(ETM_MODE_DATA_TRACE_ADDR | reset_store()
444 drvdata->cfg &= ~(BIT(16) | BIT(17)); reset_store()
447 drvdata->eventctrl0 = 0x0; reset_store()
448 drvdata->eventctrl1 = 0x0; reset_store()
451 drvdata->ts_ctrl = 0x0; reset_store()
454 drvdata->stall_ctrl = 0x0; reset_store()
457 if (drvdata->syncpr == false) reset_store()
458 drvdata->syncfreq = 0x8; reset_store()
465 drvdata->vinst_ctrl |= BIT(0); reset_store()
466 if (drvdata->nr_addr_cmp == true) { reset_store()
467 drvdata->mode |= ETM_MODE_VIEWINST_STARTSTOP; reset_store()
469 drvdata->vinst_ctrl |= BIT(9); reset_store()
473 drvdata->viiectlr = 0x0; reset_store()
476 drvdata->vissctlr = 0x0; reset_store()
479 for (i = 0; i < drvdata->nrseqstate-1; i++) reset_store()
480 drvdata->seq_ctrl[i] = 0x0; reset_store()
481 drvdata->seq_rst = 0x0; reset_store()
482 drvdata->seq_state = 0x0; reset_store()
485 drvdata->ext_inp = 0x0; reset_store()
487 drvdata->cntr_idx = 0x0; reset_store()
488 for (i = 0; i < drvdata->nr_cntr; i++) { reset_store()
489 drvdata->cntrldvr[i] = 0x0; reset_store()
490 drvdata->cntr_ctrl[i] = 0x0; reset_store()
491 drvdata->cntr_val[i] = 0x0; reset_store()
495 drvdata->res_idx = 0x2; reset_store()
496 for (i = 2; i < drvdata->nr_resource * 2; i++) reset_store()
497 drvdata->res_ctrl[i] = 0x0; reset_store()
499 for (i = 0; i < drvdata->nr_ss_cmp; i++) { reset_store()
500 drvdata->ss_ctrl[i] = 0x0; reset_store()
501 drvdata->ss_pe_cmp[i] = 0x0; reset_store()
504 drvdata->addr_idx = 0x0; reset_store()
505 for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) { reset_store()
506 drvdata->addr_val[i] = 0x0; reset_store()
507 drvdata->addr_acc[i] = 0x0; reset_store()
508 drvdata->addr_type[i] = ETM_ADDR_TYPE_NONE; reset_store()
511 drvdata->ctxid_idx = 0x0; reset_store()
512 for (i = 0; i < drvdata->numcidc; i++) { reset_store()
513 drvdata->ctxid_pid[i] = 0x0; reset_store()
514 drvdata->ctxid_vpid[i] = 0x0; reset_store()
517 drvdata->ctxid_mask0 = 0x0; reset_store()
518 drvdata->ctxid_mask1 = 0x0; reset_store()
520 drvdata->vmid_idx = 0x0; reset_store()
521 for (i = 0; i < drvdata->numvmidc; i++) reset_store()
522 drvdata->vmid_val[i] = 0x0; reset_store()
523 drvdata->vmid_mask0 = 0x0; reset_store()
524 drvdata->vmid_mask1 = 0x0; reset_store()
526 drvdata->trcid = drvdata->cpu + 1; reset_store()
527 spin_unlock(&drvdata->spinlock); reset_store()
537 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); mode_show() local
539 val = drvdata->mode; mode_show()
548 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); mode_store() local
553 spin_lock(&drvdata->spinlock); mode_store()
554 drvdata->mode = val & ETMv4_MODE_ALL; mode_store()
556 if (drvdata->mode & ETM_MODE_EXCLUDE) mode_store()
557 etm4_set_mode_exclude(drvdata, true); mode_store()
559 etm4_set_mode_exclude(drvdata, false); mode_store()
561 if (drvdata->instrp0 == true) { mode_store()
563 drvdata->cfg &= ~(BIT(1) | BIT(2)); mode_store()
564 if (drvdata->mode & ETM_MODE_LOAD) mode_store()
566 drvdata->cfg |= BIT(1); mode_store()
567 if (drvdata->mode & ETM_MODE_STORE) mode_store()
569 drvdata->cfg |= BIT(2); mode_store()
570 if (drvdata->mode & ETM_MODE_LOAD_STORE) mode_store()
575 drvdata->cfg |= BIT(1) | BIT(2); mode_store()
579 if ((drvdata->mode & ETM_MODE_BB) && (drvdata->trcbb == true)) mode_store()
580 drvdata->cfg |= BIT(3); mode_store()
582 drvdata->cfg &= ~BIT(3); mode_store()
585 if ((drvdata->mode & ETMv4_MODE_CYCACC) && mode_store()
586 (drvdata->trccci == true)) mode_store()
587 drvdata->cfg |= BIT(4); mode_store()
589 drvdata->cfg &= ~BIT(4); mode_store()
592 if ((drvdata->mode & ETMv4_MODE_CTXID) && (drvdata->ctxid_size)) mode_store()
593 drvdata->cfg |= BIT(6); mode_store()
595 drvdata->cfg &= ~BIT(6); mode_store()
597 if ((drvdata->mode & ETM_MODE_VMID) && (drvdata->vmid_size)) mode_store()
598 drvdata->cfg |= BIT(7); mode_store()
600 drvdata->cfg &= ~BIT(7); mode_store()
603 mode = ETM_MODE_COND(drvdata->mode); mode_store()
604 if (drvdata->trccond == true) { mode_store()
605 drvdata->cfg &= ~(BIT(8) | BIT(9) | BIT(10)); mode_store()
606 drvdata->cfg |= mode << 8; mode_store()
610 if ((drvdata->mode & ETMv4_MODE_TIMESTAMP) && (drvdata->ts_size)) mode_store()
611 drvdata->cfg |= BIT(11); mode_store()
613 drvdata->cfg &= ~BIT(11); mode_store()
616 if ((drvdata->mode & ETM_MODE_RETURNSTACK) && mode_store()
617 (drvdata->retstack == true)) mode_store()
618 drvdata->cfg |= BIT(12); mode_store()
620 drvdata->cfg &= ~BIT(12); mode_store()
623 mode = ETM_MODE_QELEM(drvdata->mode); mode_store()
625 drvdata->cfg &= ~(BIT(13) | BIT(14)); mode_store()
627 if ((mode & BIT(0)) && (drvdata->q_support & BIT(0))) mode_store()
628 drvdata->cfg |= BIT(13); mode_store()
633 if ((mode & BIT(1)) && (drvdata->q_support & BIT(1))) mode_store()
634 drvdata->cfg |= BIT(14); mode_store()
637 if ((drvdata->mode & ETM_MODE_ATB_TRIGGER) && mode_store()
638 (drvdata->atbtrig == true)) mode_store()
639 drvdata->eventctrl1 |= BIT(11); mode_store()
641 drvdata->eventctrl1 &= ~BIT(11); mode_store()
644 if ((drvdata->mode & ETM_MODE_LPOVERRIDE) && mode_store()
645 (drvdata->lpoverride == true)) mode_store()
646 drvdata->eventctrl1 |= BIT(12); mode_store()
648 drvdata->eventctrl1 &= ~BIT(12); mode_store()
651 if (drvdata->mode & ETM_MODE_ISTALL_EN) mode_store()
652 drvdata->stall_ctrl |= BIT(8); mode_store()
654 drvdata->stall_ctrl &= ~BIT(8); mode_store()
657 if (drvdata->mode & ETM_MODE_INSTPRIO) mode_store()
658 drvdata->stall_ctrl |= BIT(10); mode_store()
660 drvdata->stall_ctrl &= ~BIT(10); mode_store()
663 if ((drvdata->mode & ETM_MODE_NOOVERFLOW) && mode_store()
664 (drvdata->nooverflow == true)) mode_store()
665 drvdata->stall_ctrl |= BIT(13); mode_store()
667 drvdata->stall_ctrl &= ~BIT(13); mode_store()
670 if (drvdata->mode & ETM_MODE_VIEWINST_STARTSTOP) mode_store()
671 drvdata->vinst_ctrl |= BIT(9); mode_store()
673 drvdata->vinst_ctrl &= ~BIT(9); mode_store()
676 if (drvdata->mode & ETM_MODE_TRACE_RESET) mode_store()
677 drvdata->vinst_ctrl |= BIT(10); mode_store()
679 drvdata->vinst_ctrl &= ~BIT(10); mode_store()
682 if ((drvdata->mode & ETM_MODE_TRACE_ERR) && mode_store()
683 (drvdata->trc_error == true)) mode_store()
684 drvdata->vinst_ctrl |= BIT(11); mode_store()
686 drvdata->vinst_ctrl &= ~BIT(11); mode_store()
688 spin_unlock(&drvdata->spinlock); mode_store()
698 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); pe_show() local
700 val = drvdata->pe_sel; pe_show()
709 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); pe_store() local
714 spin_lock(&drvdata->spinlock); pe_store()
715 if (val > drvdata->nr_pe) { pe_store()
716 spin_unlock(&drvdata->spinlock); pe_store()
720 drvdata->pe_sel = val; pe_store()
721 spin_unlock(&drvdata->spinlock); pe_store()
731 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_show() local
733 val = drvdata->eventctrl0; event_show()
742 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_store() local
747 spin_lock(&drvdata->spinlock); event_store()
748 switch (drvdata->nr_event) { event_store()
751 drvdata->eventctrl0 = val & 0xFF; event_store()
755 drvdata->eventctrl0 = val & 0xFFFF; event_store()
759 drvdata->eventctrl0 = val & 0xFFFFFF; event_store()
763 drvdata->eventctrl0 = val; event_store()
768 spin_unlock(&drvdata->spinlock); event_store()
778 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_instren_show() local
780 val = BMVAL(drvdata->eventctrl1, 0, 3); event_instren_show()
789 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_instren_store() local
794 spin_lock(&drvdata->spinlock); event_instren_store()
796 drvdata->eventctrl1 &= ~(BIT(0) | BIT(1) | BIT(2) | BIT(3)); event_instren_store()
797 switch (drvdata->nr_event) { event_instren_store()
800 drvdata->eventctrl1 |= val & BIT(1); event_instren_store()
804 drvdata->eventctrl1 |= val & (BIT(0) | BIT(1)); event_instren_store()
808 drvdata->eventctrl1 |= val & (BIT(0) | BIT(1) | BIT(2)); event_instren_store()
812 drvdata->eventctrl1 |= val & 0xF; event_instren_store()
817 spin_unlock(&drvdata->spinlock); event_instren_store()
827 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_ts_show() local
829 val = drvdata->ts_ctrl; event_ts_show()
838 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_ts_store() local
842 if (!drvdata->ts_size) event_ts_store()
845 drvdata->ts_ctrl = val & ETMv4_EVENT_MASK; event_ts_store()
855 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); syncfreq_show() local
857 val = drvdata->syncfreq; syncfreq_show()
866 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); syncfreq_store() local
870 if (drvdata->syncpr == true) syncfreq_store()
873 drvdata->syncfreq = val & ETMv4_SYNC_MASK; syncfreq_store()
883 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cyc_threshold_show() local
885 val = drvdata->ccctlr; cyc_threshold_show()
894 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cyc_threshold_store() local
898 if (val < drvdata->ccitmin) cyc_threshold_store()
901 drvdata->ccctlr = val & ETM_CYC_THRESHOLD_MASK; cyc_threshold_store()
911 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); bb_ctrl_show() local
913 val = drvdata->bb_ctrl; bb_ctrl_show()
922 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); bb_ctrl_store() local
926 if (drvdata->trcbb == false) bb_ctrl_store()
928 if (!drvdata->nr_addr_cmp) bb_ctrl_store()
934 if (BMVAL(val, 0, 7) > drvdata->nr_addr_cmp) bb_ctrl_store()
937 drvdata->bb_ctrl = val; bb_ctrl_store()
947 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_vinst_show() local
949 val = drvdata->vinst_ctrl & ETMv4_EVENT_MASK; event_vinst_show()
958 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); event_vinst_store() local
963 spin_lock(&drvdata->spinlock); event_vinst_store()
965 drvdata->vinst_ctrl &= ~ETMv4_EVENT_MASK; event_vinst_store()
966 drvdata->vinst_ctrl |= val; event_vinst_store()
967 spin_unlock(&drvdata->spinlock); event_vinst_store()
977 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); s_exlevel_vinst_show() local
979 val = BMVAL(drvdata->vinst_ctrl, 16, 19); s_exlevel_vinst_show()
988 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); s_exlevel_vinst_store() local
993 spin_lock(&drvdata->spinlock); s_exlevel_vinst_store()
995 drvdata->vinst_ctrl &= ~(BIT(16) | BIT(17) | BIT(19)); s_exlevel_vinst_store()
997 val &= drvdata->s_ex_level; s_exlevel_vinst_store()
998 drvdata->vinst_ctrl |= (val << 16); s_exlevel_vinst_store()
999 spin_unlock(&drvdata->spinlock); s_exlevel_vinst_store()
1009 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ns_exlevel_vinst_show() local
1012 val = BMVAL(drvdata->vinst_ctrl, 20, 23); ns_exlevel_vinst_show()
1021 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ns_exlevel_vinst_store() local
1026 spin_lock(&drvdata->spinlock); ns_exlevel_vinst_store()
1028 drvdata->vinst_ctrl &= ~(BIT(20) | BIT(21) | BIT(22)); ns_exlevel_vinst_store()
1030 val &= drvdata->ns_ex_level; ns_exlevel_vinst_store()
1031 drvdata->vinst_ctrl |= (val << 20); ns_exlevel_vinst_store()
1032 spin_unlock(&drvdata->spinlock); ns_exlevel_vinst_store()
1042 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_idx_show() local
1044 val = drvdata->addr_idx; addr_idx_show()
1053 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_idx_store() local
1057 if (val >= drvdata->nr_addr_cmp * 2) addr_idx_store()
1064 spin_lock(&drvdata->spinlock); addr_idx_store()
1065 drvdata->addr_idx = val; addr_idx_store()
1066 spin_unlock(&drvdata->spinlock); addr_idx_store()
1077 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_instdatatype_show() local
1079 spin_lock(&drvdata->spinlock); addr_instdatatype_show()
1080 idx = drvdata->addr_idx; addr_instdatatype_show()
1081 val = BMVAL(drvdata->addr_acc[idx], 0, 1); addr_instdatatype_show()
1087 spin_unlock(&drvdata->spinlock); addr_instdatatype_show()
1097 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_instdatatype_store() local
1104 spin_lock(&drvdata->spinlock); addr_instdatatype_store()
1105 idx = drvdata->addr_idx; addr_instdatatype_store()
1108 drvdata->addr_acc[idx] &= ~(BIT(0) | BIT(1)); addr_instdatatype_store()
1110 spin_unlock(&drvdata->spinlock); addr_instdatatype_store()
1121 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_single_show() local
1123 idx = drvdata->addr_idx; addr_single_show()
1124 spin_lock(&drvdata->spinlock); addr_single_show()
1125 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_single_show()
1126 drvdata->addr_type[idx] == ETM_ADDR_TYPE_SINGLE)) { addr_single_show()
1127 spin_unlock(&drvdata->spinlock); addr_single_show()
1130 val = (unsigned long)drvdata->addr_val[idx]; addr_single_show()
1131 spin_unlock(&drvdata->spinlock); addr_single_show()
1141 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_single_store() local
1146 spin_lock(&drvdata->spinlock); addr_single_store()
1147 idx = drvdata->addr_idx; addr_single_store()
1148 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_single_store()
1149 drvdata->addr_type[idx] == ETM_ADDR_TYPE_SINGLE)) { addr_single_store()
1150 spin_unlock(&drvdata->spinlock); addr_single_store()
1154 drvdata->addr_val[idx] = (u64)val; addr_single_store()
1155 drvdata->addr_type[idx] = ETM_ADDR_TYPE_SINGLE; addr_single_store()
1156 spin_unlock(&drvdata->spinlock); addr_single_store()
1167 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_range_show() local
1169 spin_lock(&drvdata->spinlock); addr_range_show()
1170 idx = drvdata->addr_idx; addr_range_show()
1172 spin_unlock(&drvdata->spinlock); addr_range_show()
1175 if (!((drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE && addr_range_show()
1176 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_NONE) || addr_range_show()
1177 (drvdata->addr_type[idx] == ETM_ADDR_TYPE_RANGE && addr_range_show()
1178 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_RANGE))) { addr_range_show()
1179 spin_unlock(&drvdata->spinlock); addr_range_show()
1183 val1 = (unsigned long)drvdata->addr_val[idx]; addr_range_show()
1184 val2 = (unsigned long)drvdata->addr_val[idx + 1]; addr_range_show()
1185 spin_unlock(&drvdata->spinlock); addr_range_show()
1195 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_range_store() local
1203 spin_lock(&drvdata->spinlock); addr_range_store()
1204 idx = drvdata->addr_idx; addr_range_store()
1206 spin_unlock(&drvdata->spinlock); addr_range_store()
1210 if (!((drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE && addr_range_store()
1211 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_NONE) || addr_range_store()
1212 (drvdata->addr_type[idx] == ETM_ADDR_TYPE_RANGE && addr_range_store()
1213 drvdata->addr_type[idx + 1] == ETM_ADDR_TYPE_RANGE))) { addr_range_store()
1214 spin_unlock(&drvdata->spinlock); addr_range_store()
1218 drvdata->addr_val[idx] = (u64)val1; addr_range_store()
1219 drvdata->addr_type[idx] = ETM_ADDR_TYPE_RANGE; addr_range_store()
1220 drvdata->addr_val[idx + 1] = (u64)val2; addr_range_store()
1221 drvdata->addr_type[idx + 1] = ETM_ADDR_TYPE_RANGE; addr_range_store()
1226 if (drvdata->mode & ETM_MODE_EXCLUDE) addr_range_store()
1227 etm4_set_mode_exclude(drvdata, true); addr_range_store()
1229 etm4_set_mode_exclude(drvdata, false); addr_range_store()
1231 spin_unlock(&drvdata->spinlock); addr_range_store()
1242 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_start_show() local
1244 spin_lock(&drvdata->spinlock); addr_start_show()
1245 idx = drvdata->addr_idx; addr_start_show()
1247 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_start_show()
1248 drvdata->addr_type[idx] == ETM_ADDR_TYPE_START)) { addr_start_show()
1249 spin_unlock(&drvdata->spinlock); addr_start_show()
1253 val = (unsigned long)drvdata->addr_val[idx]; addr_start_show()
1254 spin_unlock(&drvdata->spinlock); addr_start_show()
1264 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_start_store() local
1269 spin_lock(&drvdata->spinlock); addr_start_store()
1270 idx = drvdata->addr_idx; addr_start_store()
1271 if (!drvdata->nr_addr_cmp) { addr_start_store()
1272 spin_unlock(&drvdata->spinlock); addr_start_store()
1275 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_start_store()
1276 drvdata->addr_type[idx] == ETM_ADDR_TYPE_START)) { addr_start_store()
1277 spin_unlock(&drvdata->spinlock); addr_start_store()
1281 drvdata->addr_val[idx] = (u64)val; addr_start_store()
1282 drvdata->addr_type[idx] = ETM_ADDR_TYPE_START; addr_start_store()
1283 drvdata->vissctlr |= BIT(idx); addr_start_store()
1285 drvdata->vinst_ctrl |= BIT(9); addr_start_store()
1286 spin_unlock(&drvdata->spinlock); addr_start_store()
1297 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_stop_show() local
1299 spin_lock(&drvdata->spinlock); addr_stop_show()
1300 idx = drvdata->addr_idx; addr_stop_show()
1302 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_stop_show()
1303 drvdata->addr_type[idx] == ETM_ADDR_TYPE_STOP)) { addr_stop_show()
1304 spin_unlock(&drvdata->spinlock); addr_stop_show()
1308 val = (unsigned long)drvdata->addr_val[idx]; addr_stop_show()
1309 spin_unlock(&drvdata->spinlock); addr_stop_show()
1319 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_stop_store() local
1324 spin_lock(&drvdata->spinlock); addr_stop_store()
1325 idx = drvdata->addr_idx; addr_stop_store()
1326 if (!drvdata->nr_addr_cmp) { addr_stop_store()
1327 spin_unlock(&drvdata->spinlock); addr_stop_store()
1330 if (!(drvdata->addr_type[idx] == ETM_ADDR_TYPE_NONE || addr_stop_store()
1331 drvdata->addr_type[idx] == ETM_ADDR_TYPE_STOP)) { addr_stop_store()
1332 spin_unlock(&drvdata->spinlock); addr_stop_store()
1336 drvdata->addr_val[idx] = (u64)val; addr_stop_store()
1337 drvdata->addr_type[idx] = ETM_ADDR_TYPE_STOP; addr_stop_store()
1338 drvdata->vissctlr |= BIT(idx + 16); addr_stop_store()
1340 drvdata->vinst_ctrl |= BIT(9); addr_stop_store()
1341 spin_unlock(&drvdata->spinlock); addr_stop_store()
1352 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_ctxtype_show() local
1354 spin_lock(&drvdata->spinlock); addr_ctxtype_show()
1355 idx = drvdata->addr_idx; addr_ctxtype_show()
1357 val = BMVAL(drvdata->addr_acc[idx], 2, 3); addr_ctxtype_show()
1361 spin_unlock(&drvdata->spinlock); addr_ctxtype_show()
1371 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_ctxtype_store() local
1378 spin_lock(&drvdata->spinlock); addr_ctxtype_store()
1379 idx = drvdata->addr_idx; addr_ctxtype_store()
1382 drvdata->addr_acc[idx] &= ~(BIT(2) | BIT(3)); addr_ctxtype_store()
1385 if (drvdata->numcidc) { addr_ctxtype_store()
1386 drvdata->addr_acc[idx] |= BIT(2); addr_ctxtype_store()
1387 drvdata->addr_acc[idx] &= ~BIT(3); addr_ctxtype_store()
1391 if (drvdata->numvmidc) { addr_ctxtype_store()
1392 drvdata->addr_acc[idx] &= ~BIT(2); addr_ctxtype_store()
1393 drvdata->addr_acc[idx] |= BIT(3); addr_ctxtype_store()
1400 if (drvdata->numcidc) addr_ctxtype_store()
1401 drvdata->addr_acc[idx] |= BIT(2); addr_ctxtype_store()
1402 if (drvdata->numvmidc) addr_ctxtype_store()
1403 drvdata->addr_acc[idx] |= BIT(3); addr_ctxtype_store()
1405 spin_unlock(&drvdata->spinlock); addr_ctxtype_store()
1416 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_context_show() local
1418 spin_lock(&drvdata->spinlock); addr_context_show()
1419 idx = drvdata->addr_idx; addr_context_show()
1421 val = BMVAL(drvdata->addr_acc[idx], 4, 6); addr_context_show()
1422 spin_unlock(&drvdata->spinlock); addr_context_show()
1432 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); addr_context_store() local
1436 if ((drvdata->numcidc <= 1) && (drvdata->numvmidc <= 1)) addr_context_store()
1438 if (val >= (drvdata->numcidc >= drvdata->numvmidc ? addr_context_store()
1439 drvdata->numcidc : drvdata->numvmidc)) addr_context_store()
1442 spin_lock(&drvdata->spinlock); addr_context_store()
1443 idx = drvdata->addr_idx; addr_context_store()
1445 drvdata->addr_acc[idx] &= ~(BIT(4) | BIT(5) | BIT(6)); addr_context_store()
1446 drvdata->addr_acc[idx] |= (val << 4); addr_context_store()
1447 spin_unlock(&drvdata->spinlock); addr_context_store()
1457 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_idx_show() local
1459 val = drvdata->seq_idx; seq_idx_show()
1468 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_idx_store() local
1472 if (val >= drvdata->nrseqstate - 1) seq_idx_store()
1479 spin_lock(&drvdata->spinlock); seq_idx_store()
1480 drvdata->seq_idx = val; seq_idx_store()
1481 spin_unlock(&drvdata->spinlock); seq_idx_store()
1491 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_state_show() local
1493 val = drvdata->seq_state; seq_state_show()
1502 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_state_store() local
1506 if (val >= drvdata->nrseqstate) seq_state_store()
1509 drvdata->seq_state = val; seq_state_store()
1520 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_event_show() local
1522 spin_lock(&drvdata->spinlock); seq_event_show()
1523 idx = drvdata->seq_idx; seq_event_show()
1524 val = drvdata->seq_ctrl[idx]; seq_event_show()
1525 spin_unlock(&drvdata->spinlock); seq_event_show()
1535 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_event_store() local
1540 spin_lock(&drvdata->spinlock); seq_event_store()
1541 idx = drvdata->seq_idx; seq_event_store()
1543 drvdata->seq_ctrl[idx] = val & 0xFF; seq_event_store()
1544 spin_unlock(&drvdata->spinlock); seq_event_store()
1554 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_reset_event_show() local
1556 val = drvdata->seq_rst; seq_reset_event_show()
1565 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); seq_reset_event_store() local
1569 if (!(drvdata->nrseqstate)) seq_reset_event_store()
1572 drvdata->seq_rst = val & ETMv4_EVENT_MASK; seq_reset_event_store()
1582 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_idx_show() local
1584 val = drvdata->cntr_idx; cntr_idx_show()
1593 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_idx_store() local
1597 if (val >= drvdata->nr_cntr) cntr_idx_store()
1604 spin_lock(&drvdata->spinlock); cntr_idx_store()
1605 drvdata->cntr_idx = val; cntr_idx_store()
1606 spin_unlock(&drvdata->spinlock); cntr_idx_store()
1617 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntrldvr_show() local
1619 spin_lock(&drvdata->spinlock); cntrldvr_show()
1620 idx = drvdata->cntr_idx; cntrldvr_show()
1621 val = drvdata->cntrldvr[idx]; cntrldvr_show()
1622 spin_unlock(&drvdata->spinlock); cntrldvr_show()
1632 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntrldvr_store() local
1639 spin_lock(&drvdata->spinlock); cntrldvr_store()
1640 idx = drvdata->cntr_idx; cntrldvr_store()
1641 drvdata->cntrldvr[idx] = val; cntrldvr_store()
1642 spin_unlock(&drvdata->spinlock); cntrldvr_store()
1653 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_val_show() local
1655 spin_lock(&drvdata->spinlock); cntr_val_show()
1656 idx = drvdata->cntr_idx; cntr_val_show()
1657 val = drvdata->cntr_val[idx]; cntr_val_show()
1658 spin_unlock(&drvdata->spinlock); cntr_val_show()
1668 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_val_store() local
1675 spin_lock(&drvdata->spinlock); cntr_val_store()
1676 idx = drvdata->cntr_idx; cntr_val_store()
1677 drvdata->cntr_val[idx] = val; cntr_val_store()
1678 spin_unlock(&drvdata->spinlock); cntr_val_store()
1689 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_ctrl_show() local
1691 spin_lock(&drvdata->spinlock); cntr_ctrl_show()
1692 idx = drvdata->cntr_idx; cntr_ctrl_show()
1693 val = drvdata->cntr_ctrl[idx]; cntr_ctrl_show()
1694 spin_unlock(&drvdata->spinlock); cntr_ctrl_show()
1704 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cntr_ctrl_store() local
1709 spin_lock(&drvdata->spinlock); cntr_ctrl_store()
1710 idx = drvdata->cntr_idx; cntr_ctrl_store()
1711 drvdata->cntr_ctrl[idx] = val; cntr_ctrl_store()
1712 spin_unlock(&drvdata->spinlock); cntr_ctrl_store()
1722 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); res_idx_show() local
1724 val = drvdata->res_idx; res_idx_show()
1733 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); res_idx_store() local
1738 if (val < 2 || val >= drvdata->nr_resource * 2) res_idx_store()
1745 spin_lock(&drvdata->spinlock); res_idx_store()
1746 drvdata->res_idx = val; res_idx_store()
1747 spin_unlock(&drvdata->spinlock); res_idx_store()
1758 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); res_ctrl_show() local
1760 spin_lock(&drvdata->spinlock); res_ctrl_show()
1761 idx = drvdata->res_idx; res_ctrl_show()
1762 val = drvdata->res_ctrl[idx]; res_ctrl_show()
1763 spin_unlock(&drvdata->spinlock); res_ctrl_show()
1773 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); res_ctrl_store() local
1778 spin_lock(&drvdata->spinlock); res_ctrl_store()
1779 idx = drvdata->res_idx; res_ctrl_store()
1784 drvdata->res_ctrl[idx] = val; res_ctrl_store()
1785 spin_unlock(&drvdata->spinlock); res_ctrl_store()
1795 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_idx_show() local
1797 val = drvdata->ctxid_idx; ctxid_idx_show()
1806 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_idx_store() local
1810 if (val >= drvdata->numcidc) ctxid_idx_store()
1817 spin_lock(&drvdata->spinlock); ctxid_idx_store()
1818 drvdata->ctxid_idx = val; ctxid_idx_store()
1819 spin_unlock(&drvdata->spinlock); ctxid_idx_store()
1830 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_pid_show() local
1832 spin_lock(&drvdata->spinlock); ctxid_pid_show()
1833 idx = drvdata->ctxid_idx; ctxid_pid_show()
1834 val = (unsigned long)drvdata->ctxid_vpid[idx]; ctxid_pid_show()
1835 spin_unlock(&drvdata->spinlock); ctxid_pid_show()
1845 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_pid_store() local
1852 if (!drvdata->ctxid_size || !drvdata->numcidc) ctxid_pid_store()
1859 spin_lock(&drvdata->spinlock); ctxid_pid_store()
1860 idx = drvdata->ctxid_idx; ctxid_pid_store()
1861 drvdata->ctxid_pid[idx] = (u64)pid; ctxid_pid_store()
1862 drvdata->ctxid_vpid[idx] = (u64)vpid; ctxid_pid_store()
1863 spin_unlock(&drvdata->spinlock); ctxid_pid_store()
1873 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_masks_show() local
1875 spin_lock(&drvdata->spinlock); ctxid_masks_show()
1876 val1 = drvdata->ctxid_mask0; ctxid_masks_show()
1877 val2 = drvdata->ctxid_mask1; ctxid_masks_show()
1878 spin_unlock(&drvdata->spinlock); ctxid_masks_show()
1888 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); ctxid_masks_store() local
1895 if (!drvdata->ctxid_size || !drvdata->numcidc) ctxid_masks_store()
1900 spin_lock(&drvdata->spinlock); ctxid_masks_store()
1905 switch (drvdata->numcidc) { ctxid_masks_store()
1908 drvdata->ctxid_mask0 = val1 & 0xFF; ctxid_masks_store()
1912 drvdata->ctxid_mask0 = val1 & 0xFFFF; ctxid_masks_store()
1916 drvdata->ctxid_mask0 = val1 & 0xFFFFFF; ctxid_masks_store()
1920 drvdata->ctxid_mask0 = val1; ctxid_masks_store()
1924 drvdata->ctxid_mask0 = val1; ctxid_masks_store()
1925 drvdata->ctxid_mask1 = val2 & 0xFF; ctxid_masks_store()
1929 drvdata->ctxid_mask0 = val1; ctxid_masks_store()
1930 drvdata->ctxid_mask1 = val2 & 0xFFFF; ctxid_masks_store()
1934 drvdata->ctxid_mask0 = val1; ctxid_masks_store()
1935 drvdata->ctxid_mask1 = val2 & 0xFFFFFF; ctxid_masks_store()
1939 drvdata->ctxid_mask0 = val1; ctxid_masks_store()
1940 drvdata->ctxid_mask1 = val2; ctxid_masks_store()
1951 mask = drvdata->ctxid_mask0; ctxid_masks_store()
1952 for (i = 0; i < drvdata->numcidc; i++) { ctxid_masks_store()
1961 drvdata->ctxid_pid[i] &= ~(0xFF << (j * 8)); ctxid_masks_store()
1967 mask = drvdata->ctxid_mask1; ctxid_masks_store()
1972 spin_unlock(&drvdata->spinlock); ctxid_masks_store()
1982 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_idx_show() local
1984 val = drvdata->vmid_idx; vmid_idx_show()
1993 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_idx_store() local
1997 if (val >= drvdata->numvmidc) vmid_idx_store()
2004 spin_lock(&drvdata->spinlock); vmid_idx_store()
2005 drvdata->vmid_idx = val; vmid_idx_store()
2006 spin_unlock(&drvdata->spinlock); vmid_idx_store()
2016 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_val_show() local
2018 val = (unsigned long)drvdata->vmid_val[drvdata->vmid_idx]; vmid_val_show()
2027 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_val_store() local
2033 if (!drvdata->vmid_size || !drvdata->numvmidc) vmid_val_store()
2038 spin_lock(&drvdata->spinlock); vmid_val_store()
2039 drvdata->vmid_val[drvdata->vmid_idx] = (u64)val; vmid_val_store()
2040 spin_unlock(&drvdata->spinlock); vmid_val_store()
2049 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_masks_show() local
2051 spin_lock(&drvdata->spinlock); vmid_masks_show()
2052 val1 = drvdata->vmid_mask0; vmid_masks_show()
2053 val2 = drvdata->vmid_mask1; vmid_masks_show()
2054 spin_unlock(&drvdata->spinlock); vmid_masks_show()
2064 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); vmid_masks_store() local
2069 if (!drvdata->vmid_size || !drvdata->numvmidc) vmid_masks_store()
2074 spin_lock(&drvdata->spinlock); vmid_masks_store()
2080 switch (drvdata->numvmidc) { vmid_masks_store()
2083 drvdata->vmid_mask0 = val1 & 0xFF; vmid_masks_store()
2087 drvdata->vmid_mask0 = val1 & 0xFFFF; vmid_masks_store()
2091 drvdata->vmid_mask0 = val1 & 0xFFFFFF; vmid_masks_store()
2095 drvdata->vmid_mask0 = val1; vmid_masks_store()
2099 drvdata->vmid_mask0 = val1; vmid_masks_store()
2100 drvdata->vmid_mask1 = val2 & 0xFF; vmid_masks_store()
2104 drvdata->vmid_mask0 = val1; vmid_masks_store()
2105 drvdata->vmid_mask1 = val2 & 0xFFFF; vmid_masks_store()
2109 drvdata->vmid_mask0 = val1; vmid_masks_store()
2110 drvdata->vmid_mask1 = val2 & 0xFFFFFF; vmid_masks_store()
2114 drvdata->vmid_mask0 = val1; vmid_masks_store()
2115 drvdata->vmid_mask1 = val2; vmid_masks_store()
2127 mask = drvdata->vmid_mask0; vmid_masks_store()
2128 for (i = 0; i < drvdata->numvmidc; i++) { vmid_masks_store()
2137 drvdata->vmid_val[i] &= ~(0xFF << (j * 8)); vmid_masks_store()
2143 mask = drvdata->vmid_mask1; vmid_masks_store()
2147 spin_unlock(&drvdata->spinlock); vmid_masks_store()
2156 struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent); cpu_show() local
2158 val = drvdata->cpu; cpu_show()
2218 struct etmv4_drvdata *drvdata = dev_get_drvdata(_dev->parent); \
2220 readl_relaxed(drvdata->base + offset)); \
2311 struct etmv4_drvdata *drvdata = info; etm4_init_arch_data() local
2313 CS_UNLOCK(drvdata->base); etm4_init_arch_data()
2316 etmidr0 = readl_relaxed(drvdata->base + TRCIDR0); etm4_init_arch_data()
2320 drvdata->instrp0 = true; etm4_init_arch_data()
2322 drvdata->instrp0 = false; etm4_init_arch_data()
2326 drvdata->trcbb = true; etm4_init_arch_data()
2328 drvdata->trcbb = false; etm4_init_arch_data()
2332 drvdata->trccond = true; etm4_init_arch_data()
2334 drvdata->trccond = false; etm4_init_arch_data()
2338 drvdata->trccci = true; etm4_init_arch_data()
2340 drvdata->trccci = false; etm4_init_arch_data()
2344 drvdata->retstack = true; etm4_init_arch_data()
2346 drvdata->retstack = false; etm4_init_arch_data()
2349 drvdata->nr_event = BMVAL(etmidr0, 10, 11); etm4_init_arch_data()
2351 drvdata->q_support = BMVAL(etmidr0, 15, 16); etm4_init_arch_data()
2353 drvdata->ts_size = BMVAL(etmidr0, 24, 28); etm4_init_arch_data()
2356 etmidr1 = readl_relaxed(drvdata->base + TRCIDR1); etm4_init_arch_data()
2361 drvdata->arch = BMVAL(etmidr1, 4, 11); etm4_init_arch_data()
2364 etmidr2 = readl_relaxed(drvdata->base + TRCIDR2); etm4_init_arch_data()
2366 drvdata->ctxid_size = BMVAL(etmidr2, 5, 9); etm4_init_arch_data()
2368 drvdata->vmid_size = BMVAL(etmidr2, 10, 14); etm4_init_arch_data()
2370 drvdata->ccsize = BMVAL(etmidr2, 25, 28); etm4_init_arch_data()
2372 etmidr3 = readl_relaxed(drvdata->base + TRCIDR3); etm4_init_arch_data()
2374 drvdata->ccitmin = BMVAL(etmidr3, 0, 11); etm4_init_arch_data()
2376 drvdata->s_ex_level = BMVAL(etmidr3, 16, 19); etm4_init_arch_data()
2378 drvdata->ns_ex_level = BMVAL(etmidr3, 20, 23); etm4_init_arch_data()
2385 drvdata->trc_error = true; etm4_init_arch_data()
2387 drvdata->trc_error = false; etm4_init_arch_data()
2391 drvdata->syncpr = true; etm4_init_arch_data()
2393 drvdata->syncpr = false; etm4_init_arch_data()
2397 drvdata->stallctl = true; etm4_init_arch_data()
2399 drvdata->stallctl = false; etm4_init_arch_data()
2403 drvdata->sysstall = true; etm4_init_arch_data()
2405 drvdata->sysstall = false; etm4_init_arch_data()
2408 drvdata->nr_pe = BMVAL(etmidr3, 28, 30); etm4_init_arch_data()
2412 drvdata->nooverflow = true; etm4_init_arch_data()
2414 drvdata->nooverflow = false; etm4_init_arch_data()
2417 etmidr4 = readl_relaxed(drvdata->base + TRCIDR4); etm4_init_arch_data()
2419 drvdata->nr_addr_cmp = BMVAL(etmidr4, 0, 3); etm4_init_arch_data()
2421 drvdata->nr_pe_cmp = BMVAL(etmidr4, 12, 15); etm4_init_arch_data()
2428 drvdata->nr_resource = BMVAL(etmidr4, 16, 19) + 1; etm4_init_arch_data()
2433 drvdata->nr_ss_cmp = BMVAL(etmidr4, 20, 23); etm4_init_arch_data()
2435 drvdata->numcidc = BMVAL(etmidr4, 24, 27); etm4_init_arch_data()
2437 drvdata->numvmidc = BMVAL(etmidr4, 28, 31); etm4_init_arch_data()
2439 etmidr5 = readl_relaxed(drvdata->base + TRCIDR5); etm4_init_arch_data()
2441 drvdata->nr_ext_inp = BMVAL(etmidr5, 0, 8); etm4_init_arch_data()
2443 drvdata->trcid_size = BMVAL(etmidr5, 16, 21); etm4_init_arch_data()
2446 drvdata->atbtrig = true; etm4_init_arch_data()
2448 drvdata->atbtrig = false; etm4_init_arch_data()
2454 drvdata->lpoverride = true; etm4_init_arch_data()
2456 drvdata->lpoverride = false; etm4_init_arch_data()
2458 drvdata->nrseqstate = BMVAL(etmidr5, 25, 27); etm4_init_arch_data()
2460 drvdata->nr_cntr = BMVAL(etmidr5, 28, 30); etm4_init_arch_data()
2461 CS_LOCK(drvdata->base); etm4_init_arch_data()
2464 static void etm4_init_default_data(struct etmv4_drvdata *drvdata) etm4_init_default_data() argument
2468 drvdata->pe_sel = 0x0; etm4_init_default_data()
2469 drvdata->cfg = (ETMv4_MODE_CTXID | ETM_MODE_VMID | etm4_init_default_data()
2473 drvdata->eventctrl0 = 0x0; etm4_init_default_data()
2474 drvdata->eventctrl1 = 0x0; etm4_init_default_data()
2477 drvdata->stall_ctrl = 0x0; etm4_init_default_data()
2480 drvdata->ts_ctrl = 0x0; etm4_init_default_data()
2483 if (drvdata->syncpr == false) etm4_init_default_data()
2484 drvdata->syncfreq = 0xC; etm4_init_default_data()
2490 drvdata->vinst_ctrl |= BIT(0); etm4_init_default_data()
2492 if (drvdata->nr_addr_cmp) etm4_init_default_data()
2493 drvdata->vinst_ctrl |= BIT(9); etm4_init_default_data()
2496 drvdata->viiectlr = 0x0; etm4_init_default_data()
2498 drvdata->vissctlr = 0x0; etm4_init_default_data()
2501 for (i = 0; i < drvdata->nrseqstate-1; i++) etm4_init_default_data()
2502 drvdata->seq_ctrl[i] = 0x0; etm4_init_default_data()
2503 drvdata->seq_rst = 0x0; etm4_init_default_data()
2504 drvdata->seq_state = 0x0; etm4_init_default_data()
2507 drvdata->ext_inp = 0x0; etm4_init_default_data()
2509 for (i = 0; i < drvdata->nr_cntr; i++) { etm4_init_default_data()
2510 drvdata->cntrldvr[i] = 0x0; etm4_init_default_data()
2511 drvdata->cntr_ctrl[i] = 0x0; etm4_init_default_data()
2512 drvdata->cntr_val[i] = 0x0; etm4_init_default_data()
2516 drvdata->res_idx = 0x2; etm4_init_default_data()
2517 for (i = 2; i < drvdata->nr_resource * 2; i++) etm4_init_default_data()
2518 drvdata->res_ctrl[i] = 0x0; etm4_init_default_data()
2520 for (i = 0; i < drvdata->nr_ss_cmp; i++) { etm4_init_default_data()
2521 drvdata->ss_ctrl[i] = 0x0; etm4_init_default_data()
2522 drvdata->ss_pe_cmp[i] = 0x0; etm4_init_default_data()
2525 if (drvdata->nr_addr_cmp >= 1) { etm4_init_default_data()
2526 drvdata->addr_val[0] = (unsigned long)_stext; etm4_init_default_data()
2527 drvdata->addr_val[1] = (unsigned long)_etext; etm4_init_default_data()
2528 drvdata->addr_type[0] = ETM_ADDR_TYPE_RANGE; etm4_init_default_data()
2529 drvdata->addr_type[1] = ETM_ADDR_TYPE_RANGE; etm4_init_default_data()
2532 for (i = 0; i < drvdata->numcidc; i++) { etm4_init_default_data()
2533 drvdata->ctxid_pid[i] = 0x0; etm4_init_default_data()
2534 drvdata->ctxid_vpid[i] = 0x0; etm4_init_default_data()
2537 drvdata->ctxid_mask0 = 0x0; etm4_init_default_data()
2538 drvdata->ctxid_mask1 = 0x0; etm4_init_default_data()
2540 for (i = 0; i < drvdata->numvmidc; i++) etm4_init_default_data()
2541 drvdata->vmid_val[i] = 0x0; etm4_init_default_data()
2542 drvdata->vmid_mask0 = 0x0; etm4_init_default_data()
2543 drvdata->vmid_mask1 = 0x0; etm4_init_default_data()
2550 drvdata->trcid = 0x20 + drvdata->cpu; etm4_init_default_data()
2601 struct etmv4_drvdata *drvdata; etm4_probe() local
2610 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); etm4_probe()
2611 if (!drvdata) etm4_probe()
2621 drvdata->dev = &adev->dev; etm4_probe()
2622 dev_set_drvdata(dev, drvdata); etm4_probe()
2629 drvdata->base = base; etm4_probe()
2631 spin_lock_init(&drvdata->spinlock); etm4_probe()
2633 drvdata->cpu = pdata ? pdata->cpu : 0; etm4_probe()
2636 etmdrvdata[drvdata->cpu] = drvdata; etm4_probe()
2638 if (!smp_call_function_single(drvdata->cpu, etm4_os_unlock, drvdata, 1)) etm4_probe()
2639 drvdata->os_unlock = true; etm4_probe()
2641 if (smp_call_function_single(drvdata->cpu, etm4_probe()
2642 etm4_init_arch_data, drvdata, 1)) etm4_probe()
2650 if (etm4_arch_supported(drvdata->arch) == false) { etm4_probe()
2654 etm4_init_default_data(drvdata); etm4_probe()
2664 drvdata->csdev = coresight_register(desc); etm4_probe()
2665 if (IS_ERR(drvdata->csdev)) { etm4_probe()
2666 ret = PTR_ERR(drvdata->csdev); etm4_probe()
2673 coresight_enable(drvdata->csdev); etm4_probe()
2674 drvdata->boot_enable = true; etm4_probe()
2689 struct etmv4_drvdata *drvdata = amba_get_drvdata(adev); etm4_remove() local
2691 coresight_unregister(drvdata->csdev); etm4_remove()
H A Dcoresight-etb10.c94 static unsigned int etb_get_buffer_depth(struct etb_drvdata *drvdata) etb_get_buffer_depth() argument
98 pm_runtime_get_sync(drvdata->dev); etb_get_buffer_depth()
101 depth = readl_relaxed(drvdata->base + ETB_RAM_DEPTH_REG); etb_get_buffer_depth()
103 pm_runtime_put(drvdata->dev); etb_get_buffer_depth()
107 static void etb_enable_hw(struct etb_drvdata *drvdata) etb_enable_hw() argument
112 CS_UNLOCK(drvdata->base); etb_enable_hw()
114 depth = drvdata->buffer_depth; etb_enable_hw()
116 writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER); etb_enable_hw()
119 writel_relaxed(0x0, drvdata->base + ETB_RWD_REG); etb_enable_hw()
122 writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER); etb_enable_hw()
124 writel_relaxed(0x0, drvdata->base + ETB_RAM_READ_POINTER); etb_enable_hw()
126 writel_relaxed(drvdata->trigger_cntr, drvdata->base + ETB_TRG); etb_enable_hw()
128 drvdata->base + ETB_FFCR); etb_enable_hw()
130 writel_relaxed(ETB_CTL_CAPT_EN, drvdata->base + ETB_CTL_REG); etb_enable_hw()
132 CS_LOCK(drvdata->base); etb_enable_hw()
137 struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etb_enable() local
140 pm_runtime_get_sync(drvdata->dev); etb_enable()
142 spin_lock_irqsave(&drvdata->spinlock, flags); etb_enable()
143 etb_enable_hw(drvdata); etb_enable()
144 drvdata->enable = true; etb_enable()
145 spin_unlock_irqrestore(&drvdata->spinlock, flags); etb_enable()
147 dev_info(drvdata->dev, "ETB enabled\n"); etb_enable()
151 static void etb_disable_hw(struct etb_drvdata *drvdata) etb_disable_hw() argument
155 CS_UNLOCK(drvdata->base); etb_disable_hw()
157 ffcr = readl_relaxed(drvdata->base + ETB_FFCR); etb_disable_hw()
160 writel_relaxed(ffcr, drvdata->base + ETB_FFCR); etb_disable_hw()
163 writel_relaxed(ffcr, drvdata->base + ETB_FFCR); etb_disable_hw()
165 if (coresight_timeout(drvdata->base, ETB_FFCR, ETB_FFCR_BIT, 0)) { etb_disable_hw()
166 dev_err(drvdata->dev, etb_disable_hw()
172 writel_relaxed(0x0, drvdata->base + ETB_CTL_REG); etb_disable_hw()
174 if (coresight_timeout(drvdata->base, ETB_FFSR, ETB_FFSR_BIT, 1)) { etb_disable_hw()
175 dev_err(drvdata->dev, etb_disable_hw()
180 CS_LOCK(drvdata->base); etb_disable_hw()
183 static void etb_dump_hw(struct etb_drvdata *drvdata) etb_dump_hw() argument
191 CS_UNLOCK(drvdata->base); etb_dump_hw()
193 read_ptr = readl_relaxed(drvdata->base + ETB_RAM_READ_POINTER); etb_dump_hw()
194 write_ptr = readl_relaxed(drvdata->base + ETB_RAM_WRITE_POINTER); etb_dump_hw()
199 dev_err(drvdata->dev, etb_dump_hw()
202 dev_err(drvdata->dev, "frameoff: %lu, frame_endoff: %lu\n", etb_dump_hw()
207 if ((readl_relaxed(drvdata->base + ETB_STATUS_REG) etb_dump_hw()
209 writel_relaxed(0x0, drvdata->base + ETB_RAM_READ_POINTER); etb_dump_hw()
211 writel_relaxed(write_ptr, drvdata->base + ETB_RAM_READ_POINTER); etb_dump_hw()
213 depth = drvdata->buffer_depth; etb_dump_hw()
214 buf_ptr = drvdata->buf; etb_dump_hw()
216 read_data = readl_relaxed(drvdata->base + etb_dump_hw()
234 writel_relaxed(read_ptr, drvdata->base + ETB_RAM_READ_POINTER); etb_dump_hw()
236 CS_LOCK(drvdata->base); etb_dump_hw()
241 struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); etb_disable() local
244 spin_lock_irqsave(&drvdata->spinlock, flags); etb_disable()
245 etb_disable_hw(drvdata); etb_disable()
246 etb_dump_hw(drvdata); etb_disable()
247 drvdata->enable = false; etb_disable()
248 spin_unlock_irqrestore(&drvdata->spinlock, flags); etb_disable()
250 pm_runtime_put(drvdata->dev); etb_disable()
252 dev_info(drvdata->dev, "ETB disabled\n"); etb_disable()
264 static void etb_dump(struct etb_drvdata *drvdata) etb_dump() argument
268 spin_lock_irqsave(&drvdata->spinlock, flags); etb_dump()
269 if (drvdata->enable) { etb_dump()
270 etb_disable_hw(drvdata); etb_dump()
271 etb_dump_hw(drvdata); etb_dump()
272 etb_enable_hw(drvdata); etb_dump()
274 spin_unlock_irqrestore(&drvdata->spinlock, flags); etb_dump()
276 dev_info(drvdata->dev, "ETB dumped\n"); etb_dump()
281 struct etb_drvdata *drvdata = container_of(file->private_data, etb_open() local
284 if (atomic_cmpxchg(&drvdata->in_use, 0, 1)) etb_open()
287 dev_dbg(drvdata->dev, "%s: successfully opened\n", __func__); etb_open()
295 struct etb_drvdata *drvdata = container_of(file->private_data, etb_read() local
298 etb_dump(drvdata); etb_read()
300 depth = drvdata->buffer_depth; etb_read()
304 if (copy_to_user(data, drvdata->buf + *ppos, len)) { etb_read()
305 dev_dbg(drvdata->dev, "%s: copy_to_user failed\n", __func__); etb_read()
311 dev_dbg(drvdata->dev, "%s: %zu bytes copied, %d bytes left\n", etb_read()
318 struct etb_drvdata *drvdata = container_of(file->private_data, etb_release() local
320 atomic_set(&drvdata->in_use, 0); etb_release()
322 dev_dbg(drvdata->dev, "%s: released\n", __func__); etb_release()
340 struct etb_drvdata *drvdata = dev_get_drvdata(dev->parent); status_show() local
342 pm_runtime_get_sync(drvdata->dev); status_show()
343 spin_lock_irqsave(&drvdata->spinlock, flags); status_show()
344 CS_UNLOCK(drvdata->base); status_show()
346 etb_rdr = readl_relaxed(drvdata->base + ETB_RAM_DEPTH_REG); status_show()
347 etb_sr = readl_relaxed(drvdata->base + ETB_STATUS_REG); status_show()
348 etb_rrp = readl_relaxed(drvdata->base + ETB_RAM_READ_POINTER); status_show()
349 etb_rwp = readl_relaxed(drvdata->base + ETB_RAM_WRITE_POINTER); status_show()
350 etb_trg = readl_relaxed(drvdata->base + ETB_TRG); status_show()
351 etb_cr = readl_relaxed(drvdata->base + ETB_CTL_REG); status_show()
352 etb_ffsr = readl_relaxed(drvdata->base + ETB_FFSR); status_show()
353 etb_ffcr = readl_relaxed(drvdata->base + ETB_FFCR); status_show()
355 CS_LOCK(drvdata->base); status_show()
356 spin_unlock_irqrestore(&drvdata->spinlock, flags); status_show()
358 pm_runtime_put(drvdata->dev); status_show()
379 struct etb_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_cntr_show() local
380 unsigned long val = drvdata->trigger_cntr; trigger_cntr_show()
391 struct etb_drvdata *drvdata = dev_get_drvdata(dev->parent); trigger_cntr_store() local
397 drvdata->trigger_cntr = val; trigger_cntr_store()
415 struct etb_drvdata *drvdata; etb_probe() local
427 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); etb_probe()
428 if (!drvdata) etb_probe()
431 drvdata->dev = &adev->dev; etb_probe()
432 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ etb_probe()
433 if (!IS_ERR(drvdata->atclk)) { etb_probe()
434 ret = clk_prepare_enable(drvdata->atclk); etb_probe()
438 dev_set_drvdata(dev, drvdata); etb_probe()
445 drvdata->base = base; etb_probe()
447 spin_lock_init(&drvdata->spinlock); etb_probe()
449 drvdata->buffer_depth = etb_get_buffer_depth(drvdata); etb_probe()
452 if (drvdata->buffer_depth & 0x80000000) etb_probe()
455 drvdata->buf = devm_kzalloc(dev, etb_probe()
456 drvdata->buffer_depth * 4, GFP_KERNEL); etb_probe()
457 if (!drvdata->buf) { etb_probe()
459 drvdata->buffer_depth * 4); etb_probe()
473 drvdata->csdev = coresight_register(desc); etb_probe()
474 if (IS_ERR(drvdata->csdev)) etb_probe()
475 return PTR_ERR(drvdata->csdev); etb_probe()
477 drvdata->miscdev.name = pdata->name; etb_probe()
478 drvdata->miscdev.minor = MISC_DYNAMIC_MINOR; etb_probe()
479 drvdata->miscdev.fops = &etb_fops; etb_probe()
480 ret = misc_register(&drvdata->miscdev); etb_probe()
488 coresight_unregister(drvdata->csdev); etb_probe()
494 struct etb_drvdata *drvdata = amba_get_drvdata(adev); etb_remove() local
496 misc_deregister(&drvdata->miscdev); etb_remove()
497 coresight_unregister(drvdata->csdev); etb_remove()
504 struct etb_drvdata *drvdata = dev_get_drvdata(dev); etb_runtime_suspend() local
506 if (drvdata && !IS_ERR(drvdata->atclk)) etb_runtime_suspend()
507 clk_disable_unprepare(drvdata->atclk); etb_runtime_suspend()
514 struct etb_drvdata *drvdata = dev_get_drvdata(dev); etb_runtime_resume() local
516 if (drvdata && !IS_ERR(drvdata->atclk)) etb_runtime_resume()
517 clk_prepare_enable(drvdata->atclk); etb_runtime_resume()
H A Dcoresight-replicator-qcom.c49 struct replicator_state *drvdata = dev_get_drvdata(csdev->dev.parent); replicator_enable() local
51 pm_runtime_get_sync(drvdata->dev); replicator_enable()
53 CS_UNLOCK(drvdata->base); replicator_enable()
61 writel_relaxed(0x00, drvdata->base + REPLICATOR_IDFILTER0); replicator_enable()
62 writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER1); replicator_enable()
64 writel_relaxed(0x00, drvdata->base + REPLICATOR_IDFILTER1); replicator_enable()
65 writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER0); replicator_enable()
68 CS_LOCK(drvdata->base); replicator_enable()
70 dev_info(drvdata->dev, "REPLICATOR enabled\n"); replicator_enable()
77 struct replicator_state *drvdata = dev_get_drvdata(csdev->dev.parent); replicator_disable() local
79 CS_UNLOCK(drvdata->base); replicator_disable()
83 writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER0); replicator_disable()
85 writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER1); replicator_disable()
87 CS_LOCK(drvdata->base); replicator_disable()
89 pm_runtime_put(drvdata->dev); replicator_disable()
91 dev_info(drvdata->dev, "REPLICATOR disabled\n"); replicator_disable()
109 struct replicator_state *drvdata; replicator_probe() local
121 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); replicator_probe()
122 if (!drvdata) replicator_probe()
125 drvdata->dev = &adev->dev; replicator_probe()
126 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ replicator_probe()
127 if (!IS_ERR(drvdata->atclk)) { replicator_probe()
128 ret = clk_prepare_enable(drvdata->atclk); replicator_probe()
138 drvdata->base = base; replicator_probe()
139 dev_set_drvdata(dev, drvdata); replicator_probe()
151 drvdata->csdev = coresight_register(desc); replicator_probe()
152 if (IS_ERR(drvdata->csdev)) replicator_probe()
153 return PTR_ERR(drvdata->csdev); replicator_probe()
161 struct replicator_state *drvdata = amba_get_drvdata(adev); replicator_remove() local
164 coresight_unregister(drvdata->csdev); replicator_remove()
171 struct replicator_state *drvdata = dev_get_drvdata(dev); replicator_runtime_suspend() local
173 if (drvdata && !IS_ERR(drvdata->atclk)) replicator_runtime_suspend()
174 clk_disable_unprepare(drvdata->atclk); replicator_runtime_suspend()
181 struct replicator_state *drvdata = dev_get_drvdata(dev); replicator_runtime_resume() local
183 if (drvdata && !IS_ERR(drvdata->atclk)) replicator_runtime_resume()
184 clk_prepare_enable(drvdata->atclk); replicator_runtime_resume()
H A Dcoresight-tpiu.c64 static void tpiu_enable_hw(struct tpiu_drvdata *drvdata) tpiu_enable_hw() argument
66 CS_UNLOCK(drvdata->base); tpiu_enable_hw()
70 CS_LOCK(drvdata->base); tpiu_enable_hw()
75 struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tpiu_enable() local
78 tpiu_enable_hw(drvdata); tpiu_enable()
80 dev_info(drvdata->dev, "TPIU enabled\n"); tpiu_enable()
84 static void tpiu_disable_hw(struct tpiu_drvdata *drvdata) tpiu_disable_hw() argument
86 CS_UNLOCK(drvdata->base); tpiu_disable_hw()
89 writel_relaxed(0x0, drvdata->base + TPIU_FFCR); tpiu_disable_hw()
91 writel_relaxed(FFCR_FON_MAN, drvdata->base + TPIU_FFCR); tpiu_disable_hw()
93 CS_LOCK(drvdata->base); tpiu_disable_hw()
98 struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); tpiu_disable() local
100 tpiu_disable_hw(drvdata); tpiu_disable()
103 dev_info(drvdata->dev, "TPIU disabled\n"); tpiu_disable()
121 struct tpiu_drvdata *drvdata; tpiu_probe() local
133 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); tpiu_probe()
134 if (!drvdata) tpiu_probe()
137 drvdata->dev = &adev->dev; tpiu_probe()
138 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ tpiu_probe()
139 if (!IS_ERR(drvdata->atclk)) { tpiu_probe()
140 ret = clk_prepare_enable(drvdata->atclk); tpiu_probe()
144 dev_set_drvdata(dev, drvdata); tpiu_probe()
151 drvdata->base = base; tpiu_probe()
154 tpiu_disable_hw(drvdata); tpiu_probe()
167 drvdata->csdev = coresight_register(desc); tpiu_probe()
168 if (IS_ERR(drvdata->csdev)) tpiu_probe()
169 return PTR_ERR(drvdata->csdev); tpiu_probe()
177 struct tpiu_drvdata *drvdata = amba_get_drvdata(adev); tpiu_remove() local
179 coresight_unregister(drvdata->csdev); tpiu_remove()
186 struct tpiu_drvdata *drvdata = dev_get_drvdata(dev); tpiu_runtime_suspend() local
188 if (drvdata && !IS_ERR(drvdata->atclk)) tpiu_runtime_suspend()
189 clk_disable_unprepare(drvdata->atclk); tpiu_runtime_suspend()
196 struct tpiu_drvdata *drvdata = dev_get_drvdata(dev); tpiu_runtime_resume() local
198 if (drvdata && !IS_ERR(drvdata->atclk)) tpiu_runtime_resume()
199 clk_prepare_enable(drvdata->atclk); tpiu_runtime_resume()
H A Dcoresight-funnel.c51 static void funnel_enable_hw(struct funnel_drvdata *drvdata, int port) funnel_enable_hw() argument
55 CS_UNLOCK(drvdata->base); funnel_enable_hw()
57 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); funnel_enable_hw()
61 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); funnel_enable_hw()
62 writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL); funnel_enable_hw()
64 CS_LOCK(drvdata->base); funnel_enable_hw()
70 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); funnel_enable() local
72 pm_runtime_get_sync(drvdata->dev); funnel_enable()
73 funnel_enable_hw(drvdata, inport); funnel_enable()
75 dev_info(drvdata->dev, "FUNNEL inport %d enabled\n", inport); funnel_enable()
79 static void funnel_disable_hw(struct funnel_drvdata *drvdata, int inport) funnel_disable_hw() argument
83 CS_UNLOCK(drvdata->base); funnel_disable_hw()
85 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); funnel_disable_hw()
87 writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL); funnel_disable_hw()
89 CS_LOCK(drvdata->base); funnel_disable_hw()
95 struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); funnel_disable() local
97 funnel_disable_hw(drvdata, inport); funnel_disable()
98 pm_runtime_put(drvdata->dev); funnel_disable()
100 dev_info(drvdata->dev, "FUNNEL inport %d disabled\n", inport); funnel_disable()
115 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); priority_show() local
116 unsigned long val = drvdata->priority; priority_show()
127 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); priority_store() local
133 drvdata->priority = val; priority_store()
138 static u32 get_funnel_ctrl_hw(struct funnel_drvdata *drvdata) get_funnel_ctrl_hw() argument
142 CS_UNLOCK(drvdata->base); get_funnel_ctrl_hw()
143 functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL); get_funnel_ctrl_hw()
144 CS_LOCK(drvdata->base); get_funnel_ctrl_hw()
153 struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent); funnel_ctrl_show() local
155 pm_runtime_get_sync(drvdata->dev); funnel_ctrl_show()
157 val = get_funnel_ctrl_hw(drvdata); funnel_ctrl_show()
159 pm_runtime_put(drvdata->dev); funnel_ctrl_show()
178 struct funnel_drvdata *drvdata; funnel_probe() local
190 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); funnel_probe()
191 if (!drvdata) funnel_probe()
194 drvdata->dev = &adev->dev; funnel_probe()
195 drvdata->atclk = devm_clk_get(&adev->dev, "atclk"); /* optional */ funnel_probe()
196 if (!IS_ERR(drvdata->atclk)) { funnel_probe()
197 ret = clk_prepare_enable(drvdata->atclk); funnel_probe()
201 dev_set_drvdata(dev, drvdata); funnel_probe()
208 drvdata->base = base; funnel_probe()
221 drvdata->csdev = coresight_register(desc); funnel_probe()
222 if (IS_ERR(drvdata->csdev)) funnel_probe()
223 return PTR_ERR(drvdata->csdev); funnel_probe()
231 struct funnel_drvdata *drvdata = amba_get_drvdata(adev); funnel_remove() local
233 coresight_unregister(drvdata->csdev); funnel_remove()
240 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); funnel_runtime_suspend() local
242 if (drvdata && !IS_ERR(drvdata->atclk)) funnel_runtime_suspend()
243 clk_disable_unprepare(drvdata->atclk); funnel_runtime_suspend()
250 struct funnel_drvdata *drvdata = dev_get_drvdata(dev); funnel_runtime_resume() local
252 if (drvdata && !IS_ERR(drvdata->atclk)) funnel_runtime_resume()
253 clk_prepare_enable(drvdata->atclk); funnel_runtime_resume()
H A Dcoresight-replicator.c42 struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); replicator_enable() local
44 pm_runtime_get_sync(drvdata->dev); replicator_enable()
45 dev_info(drvdata->dev, "REPLICATOR enabled\n"); replicator_enable()
52 struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); replicator_disable() local
54 pm_runtime_put(drvdata->dev); replicator_disable()
55 dev_info(drvdata->dev, "REPLICATOR disabled\n"); replicator_disable()
72 struct replicator_drvdata *drvdata; replicator_probe() local
83 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); replicator_probe()
84 if (!drvdata) replicator_probe()
87 drvdata->dev = &pdev->dev; replicator_probe()
88 drvdata->atclk = devm_clk_get(&pdev->dev, "atclk"); /* optional */ replicator_probe()
89 if (!IS_ERR(drvdata->atclk)) { replicator_probe()
90 ret = clk_prepare_enable(drvdata->atclk); replicator_probe()
97 platform_set_drvdata(pdev, drvdata); replicator_probe()
110 drvdata->csdev = coresight_register(desc); replicator_probe()
111 if (IS_ERR(drvdata->csdev)) { replicator_probe()
112 ret = PTR_ERR(drvdata->csdev); replicator_probe()
122 if (!IS_ERR(drvdata->atclk)) replicator_probe()
123 clk_disable_unprepare(drvdata->atclk); replicator_probe()
132 struct replicator_drvdata *drvdata = platform_get_drvdata(pdev); replicator_remove() local
134 coresight_unregister(drvdata->csdev); replicator_remove()
136 if (!IS_ERR(drvdata->atclk)) replicator_remove()
137 clk_disable_unprepare(drvdata->atclk); replicator_remove()
147 struct replicator_drvdata *drvdata = dev_get_drvdata(dev); replicator_runtime_suspend() local
149 if (drvdata && !IS_ERR(drvdata->atclk)) replicator_runtime_suspend()
150 clk_disable_unprepare(drvdata->atclk); replicator_runtime_suspend()
157 struct replicator_drvdata *drvdata = dev_get_drvdata(dev); replicator_runtime_resume() local
159 if (drvdata && !IS_ERR(drvdata->atclk)) replicator_runtime_resume()
160 clk_prepare_enable(drvdata->atclk); replicator_runtime_resume()
/linux-4.4.14/drivers/input/serio/
H A Dsun4i-ps2.c96 struct sun4i_ps2data *drvdata = dev_id; sun4i_ps2_interrupt() local
103 spin_lock(&drvdata->lock); sun4i_ps2_interrupt()
106 intr_status = readl(drvdata->reg_base + PS2_REG_LSTS); sun4i_ps2_interrupt()
107 fifo_status = readl(drvdata->reg_base + PS2_REG_FSTS); sun4i_ps2_interrupt()
117 writel(rval, drvdata->reg_base + PS2_REG_LSTS); sun4i_ps2_interrupt()
124 writel(rval, drvdata->reg_base + PS2_REG_FSTS); sun4i_ps2_interrupt()
129 byte = readl(drvdata->reg_base + PS2_REG_DATA) & 0xff; sun4i_ps2_interrupt()
130 serio_interrupt(drvdata->serio, byte, rxflags); sun4i_ps2_interrupt()
133 writel(intr_status, drvdata->reg_base + PS2_REG_LSTS); sun4i_ps2_interrupt()
134 writel(fifo_status, drvdata->reg_base + PS2_REG_FSTS); sun4i_ps2_interrupt()
136 spin_unlock(&drvdata->lock); sun4i_ps2_interrupt()
143 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_open() local
153 writel(rval, drvdata->reg_base + PS2_REG_LCTL); sun4i_ps2_open()
160 writel(rval, drvdata->reg_base + PS2_REG_FCTL); sun4i_ps2_open()
162 src_clk = clk_get_rate(drvdata->clk); sun4i_ps2_open()
167 writel(rval, drvdata->reg_base + PS2_REG_CLKDR); sun4i_ps2_open()
173 spin_lock_irqsave(&drvdata->lock, flags); sun4i_ps2_open()
174 writel(rval, drvdata->reg_base + PS2_REG_GCTL); sun4i_ps2_open()
175 spin_unlock_irqrestore(&drvdata->lock, flags); sun4i_ps2_open()
182 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_close() local
186 rval = readl(drvdata->reg_base + PS2_REG_GCTL); sun4i_ps2_close()
187 writel(rval & ~(PS2_GCTL_INTEN), drvdata->reg_base + PS2_REG_GCTL); sun4i_ps2_close()
189 synchronize_irq(drvdata->irq); sun4i_ps2_close()
195 struct sun4i_ps2data *drvdata = serio->port_data; sun4i_ps2_write() local
198 if (readl(drvdata->reg_base + PS2_REG_FSTS) & PS2_FSTS_TXRDY) { sun4i_ps2_write()
199 writel(val, drvdata->reg_base + PS2_REG_DATA); sun4i_ps2_write()
210 struct sun4i_ps2data *drvdata; sun4i_ps2_probe() local
216 drvdata = kzalloc(sizeof(struct sun4i_ps2data), GFP_KERNEL); sun4i_ps2_probe()
218 if (!drvdata || !serio) { sun4i_ps2_probe()
223 spin_lock_init(&drvdata->lock); sun4i_ps2_probe()
233 drvdata->reg_base = ioremap(res->start, resource_size(res)); sun4i_ps2_probe()
234 if (!drvdata->reg_base) { sun4i_ps2_probe()
240 drvdata->clk = clk_get(dev, NULL); sun4i_ps2_probe()
241 if (IS_ERR(drvdata->clk)) { sun4i_ps2_probe()
242 error = PTR_ERR(drvdata->clk); sun4i_ps2_probe()
247 error = clk_prepare_enable(drvdata->clk); sun4i_ps2_probe()
257 serio->port_data = drvdata; sun4i_ps2_probe()
263 writel(0, drvdata->reg_base + PS2_REG_GCTL); sun4i_ps2_probe()
273 drvdata->irq = irq; sun4i_ps2_probe()
274 drvdata->serio = serio; sun4i_ps2_probe()
275 drvdata->dev = dev; sun4i_ps2_probe()
277 error = request_irq(drvdata->irq, sun4i_ps2_interrupt, 0, sun4i_ps2_probe()
278 DRIVER_NAME, drvdata); sun4i_ps2_probe()
280 dev_err(drvdata->dev, "failed to allocate interrupt %d: %d\n", sun4i_ps2_probe()
281 drvdata->irq, error); sun4i_ps2_probe()
286 platform_set_drvdata(pdev, drvdata); sun4i_ps2_probe()
291 clk_disable_unprepare(drvdata->clk); sun4i_ps2_probe()
293 clk_put(drvdata->clk); sun4i_ps2_probe()
295 iounmap(drvdata->reg_base); sun4i_ps2_probe()
298 kfree(drvdata); sun4i_ps2_probe()
304 struct sun4i_ps2data *drvdata = platform_get_drvdata(pdev); sun4i_ps2_remove() local
306 serio_unregister_port(drvdata->serio); sun4i_ps2_remove()
308 free_irq(drvdata->irq, drvdata); sun4i_ps2_remove()
310 clk_disable_unprepare(drvdata->clk); sun4i_ps2_remove()
311 clk_put(drvdata->clk); sun4i_ps2_remove()
313 iounmap(drvdata->reg_base); sun4i_ps2_remove()
315 kfree(drvdata); sun4i_ps2_remove()
H A Dxilinx_ps2.c86 * @drvdata: pointer to ps2 device private data structure
92 static int xps2_recv(struct xps2data *drvdata, u8 *byte) xps2_recv() argument
98 sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET); xps2_recv()
100 *byte = in_be32(drvdata->base_address + XPS2_RX_DATA_OFFSET); xps2_recv()
112 struct xps2data *drvdata = dev_id; xps2_interrupt() local
118 intr_sr = in_be32(drvdata->base_address + XPS2_IPISR_OFFSET); xps2_interrupt()
119 out_be32(drvdata->base_address + XPS2_IPISR_OFFSET, intr_sr); xps2_interrupt()
123 dev_warn(drvdata->dev, "receive overrun error\n"); xps2_interrupt()
126 drvdata->flags |= SERIO_PARITY; xps2_interrupt()
129 drvdata->flags |= SERIO_TIMEOUT; xps2_interrupt()
132 status = xps2_recv(drvdata, &c); xps2_interrupt()
136 dev_err(drvdata->dev, xps2_interrupt()
139 serio_interrupt(drvdata->serio, c, drvdata->flags); xps2_interrupt()
140 drvdata->flags = 0; xps2_interrupt()
163 struct xps2data *drvdata = pserio->port_data; sxps2_write() local
168 spin_lock_irqsave(&drvdata->lock, flags); sxps2_write()
171 sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET); sxps2_write()
173 out_be32(drvdata->base_address + XPS2_TX_DATA_OFFSET, c); sxps2_write()
177 spin_unlock_irqrestore(&drvdata->lock, flags); sxps2_write()
190 struct xps2data *drvdata = pserio->port_data; sxps2_open() local
194 error = request_irq(drvdata->irq, &xps2_interrupt, 0, sxps2_open()
195 DRIVER_NAME, drvdata); sxps2_open()
197 dev_err(drvdata->dev, sxps2_open()
198 "Couldn't allocate interrupt %d\n", drvdata->irq); sxps2_open()
203 out_be32(drvdata->base_address + XPS2_GIER_OFFSET, XPS2_GIER_GIE_MASK); sxps2_open()
204 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, XPS2_IPIXR_RX_ALL); sxps2_open()
205 (void)xps2_recv(drvdata, &c); sxps2_open()
218 struct xps2data *drvdata = pserio->port_data; sxps2_close() local
221 out_be32(drvdata->base_address + XPS2_GIER_OFFSET, 0x00); sxps2_close()
222 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0x00); sxps2_close()
223 free_irq(drvdata->irq, drvdata); sxps2_close()
239 struct xps2data *drvdata; xps2_of_probe() local
263 drvdata = kzalloc(sizeof(struct xps2data), GFP_KERNEL); xps2_of_probe()
265 if (!drvdata || !serio) { xps2_of_probe()
270 spin_lock_init(&drvdata->lock); xps2_of_probe()
271 drvdata->irq = irq; xps2_of_probe()
272 drvdata->serio = serio; xps2_of_probe()
273 drvdata->dev = dev; xps2_of_probe()
285 drvdata->base_address = ioremap(phys_addr, remap_size); xps2_of_probe()
286 if (drvdata->base_address == NULL) { xps2_of_probe()
294 out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0); xps2_of_probe()
298 out_be32(drvdata->base_address + XPS2_SRST_OFFSET, XPS2_SRST_RESET); xps2_of_probe()
301 (unsigned long long)phys_addr, drvdata->base_address, xps2_of_probe()
302 drvdata->irq); xps2_of_probe()
308 serio->port_data = drvdata; xps2_of_probe()
317 platform_set_drvdata(ofdev, drvdata); xps2_of_probe()
324 kfree(drvdata); xps2_of_probe()
339 struct xps2data *drvdata = platform_get_drvdata(of_dev); xps2_of_remove() local
342 serio_unregister_port(drvdata->serio); xps2_of_remove()
343 iounmap(drvdata->base_address); xps2_of_remove()
347 dev_err(drvdata->dev, "invalid address\n"); xps2_of_remove()
351 kfree(drvdata); xps2_of_remove()
/linux-4.4.14/drivers/char/xilinx_hwicap/
H A Dfifo_icap.c88 * @drvdata: a pointer to the drvdata.
93 static inline void fifo_icap_fifo_write(struct hwicap_drvdata *drvdata, fifo_icap_fifo_write() argument
96 dev_dbg(drvdata->dev, "fifo_write: %x\n", data); fifo_icap_fifo_write()
97 out_be32(drvdata->base_address + XHI_WF_OFFSET, data); fifo_icap_fifo_write()
102 * @drvdata: a pointer to the drvdata.
106 static inline u32 fifo_icap_fifo_read(struct hwicap_drvdata *drvdata) fifo_icap_fifo_read() argument
108 u32 data = in_be32(drvdata->base_address + XHI_RF_OFFSET); fifo_icap_fifo_read()
109 dev_dbg(drvdata->dev, "fifo_read: %x\n", data); fifo_icap_fifo_read()
115 * @drvdata: a pointer to the drvdata.
118 static inline void fifo_icap_set_read_size(struct hwicap_drvdata *drvdata, fifo_icap_set_read_size() argument
121 out_be32(drvdata->base_address + XHI_SZ_OFFSET, data); fifo_icap_set_read_size()
126 * @drvdata: a pointer to the drvdata.
128 static inline void fifo_icap_start_config(struct hwicap_drvdata *drvdata) fifo_icap_start_config() argument
130 out_be32(drvdata->base_address + XHI_CR_OFFSET, XHI_CR_WRITE_MASK); fifo_icap_start_config()
131 dev_dbg(drvdata->dev, "configuration started\n"); fifo_icap_start_config()
136 * @drvdata: a pointer to the drvdata.
138 static inline void fifo_icap_start_readback(struct hwicap_drvdata *drvdata) fifo_icap_start_readback() argument
140 out_be32(drvdata->base_address + XHI_CR_OFFSET, XHI_CR_READ_MASK); fifo_icap_start_readback()
141 dev_dbg(drvdata->dev, "readback started\n"); fifo_icap_start_readback()
146 * @drvdata: a pointer to the drvdata.
160 u32 fifo_icap_get_status(struct hwicap_drvdata *drvdata) fifo_icap_get_status() argument
162 u32 status = in_be32(drvdata->base_address + XHI_SR_OFFSET); fifo_icap_get_status()
163 dev_dbg(drvdata->dev, "Getting status = %x\n", status); fifo_icap_get_status()
169 * @drvdata: a pointer to the drvdata.
171 static inline u32 fifo_icap_busy(struct hwicap_drvdata *drvdata) fifo_icap_busy() argument
173 u32 status = in_be32(drvdata->base_address + XHI_SR_OFFSET); fifo_icap_busy()
179 * @drvdata: a pointer to the drvdata.
184 struct hwicap_drvdata *drvdata) fifo_icap_write_fifo_vacancy()
186 return in_be32(drvdata->base_address + XHI_WFV_OFFSET); fifo_icap_write_fifo_vacancy()
191 * @drvdata: a pointer to the drvdata.
196 struct hwicap_drvdata *drvdata) fifo_icap_read_fifo_occupancy()
198 return in_be32(drvdata->base_address + XHI_RFO_OFFSET); fifo_icap_read_fifo_occupancy()
203 * @drvdata: a pointer to the drvdata.
213 int fifo_icap_set_configuration(struct hwicap_drvdata *drvdata, fifo_icap_set_configuration() argument
221 dev_dbg(drvdata->dev, "fifo_set_configuration\n"); fifo_icap_set_configuration()
226 if (fifo_icap_busy(drvdata)) fifo_icap_set_configuration()
240 fifo_icap_write_fifo_vacancy(drvdata); fifo_icap_set_configuration()
251 fifo_icap_fifo_write(drvdata, *frame_buffer); fifo_icap_set_configuration()
258 fifo_icap_start_config(drvdata); fifo_icap_set_configuration()
262 while (fifo_icap_busy(drvdata)) { fifo_icap_set_configuration()
268 dev_dbg(drvdata->dev, "done fifo_set_configuration\n"); fifo_icap_set_configuration()
282 * @drvdata: a pointer to the drvdata.
289 int fifo_icap_get_configuration(struct hwicap_drvdata *drvdata, fifo_icap_get_configuration() argument
299 dev_dbg(drvdata->dev, "fifo_get_configuration\n"); fifo_icap_get_configuration()
304 if (fifo_icap_busy(drvdata)) fifo_icap_get_configuration()
318 fifo_icap_set_read_size(drvdata, words_to_read); fifo_icap_get_configuration()
319 fifo_icap_start_readback(drvdata); fifo_icap_get_configuration()
325 fifo_icap_read_fifo_occupancy(drvdata); fifo_icap_get_configuration()
338 *data++ = fifo_icap_fifo_read(drvdata); fifo_icap_get_configuration()
344 dev_dbg(drvdata->dev, "done fifo_get_configuration\n"); fifo_icap_get_configuration()
351 * @drvdata: a pointer to the drvdata.
357 void fifo_icap_reset(struct hwicap_drvdata *drvdata) fifo_icap_reset() argument
364 reg_data = in_be32(drvdata->base_address + XHI_CR_OFFSET); fifo_icap_reset()
366 out_be32(drvdata->base_address + XHI_CR_OFFSET, fifo_icap_reset()
369 out_be32(drvdata->base_address + XHI_CR_OFFSET, fifo_icap_reset()
376 * @drvdata: a pointer to the drvdata.
378 void fifo_icap_flush_fifo(struct hwicap_drvdata *drvdata) fifo_icap_flush_fifo() argument
385 reg_data = in_be32(drvdata->base_address + XHI_CR_OFFSET); fifo_icap_flush_fifo()
387 out_be32(drvdata->base_address + XHI_CR_OFFSET, fifo_icap_flush_fifo()
390 out_be32(drvdata->base_address + XHI_CR_OFFSET, fifo_icap_flush_fifo()
183 fifo_icap_write_fifo_vacancy( struct hwicap_drvdata *drvdata) fifo_icap_write_fifo_vacancy() argument
195 fifo_icap_read_fifo_occupancy( struct hwicap_drvdata *drvdata) fifo_icap_read_fifo_occupancy() argument
H A Dxilinx_hwicap.c223 * @drvdata: a pointer to the drvdata.
229 static int hwicap_command_desync(struct hwicap_drvdata *drvdata) hwicap_command_desync() argument
237 buffer[index++] = hwicap_type_1_write(drvdata->config_regs->CMD) | 1; hwicap_command_desync()
246 return drvdata->config->set_configuration(drvdata, hwicap_command_desync()
252 * @drvdata: a pointer to the drvdata.
261 static int hwicap_get_configuration_register(struct hwicap_drvdata *drvdata, hwicap_get_configuration_register() argument
281 status = drvdata->config->set_configuration(drvdata, hwicap_get_configuration_register()
287 status = drvdata->config->get_status(drvdata); hwicap_get_configuration_register()
300 status = drvdata->config->set_configuration(drvdata, hwicap_get_configuration_register()
308 status = drvdata->config->get_configuration(drvdata, reg_data, 1); hwicap_get_configuration_register()
315 static int hwicap_initialize_hwicap(struct hwicap_drvdata *drvdata) hwicap_initialize_hwicap() argument
320 dev_dbg(drvdata->dev, "initializing\n"); hwicap_initialize_hwicap()
324 dev_dbg(drvdata->dev, "Reset...\n"); hwicap_initialize_hwicap()
325 drvdata->config->reset(drvdata); hwicap_initialize_hwicap()
327 dev_dbg(drvdata->dev, "Desync...\n"); hwicap_initialize_hwicap()
328 status = hwicap_command_desync(drvdata); hwicap_initialize_hwicap()
336 dev_dbg(drvdata->dev, "Reading IDCODE...\n"); hwicap_initialize_hwicap()
338 drvdata, drvdata->config_regs->IDCODE, &idcode); hwicap_initialize_hwicap()
339 dev_dbg(drvdata->dev, "IDCODE = %x\n", idcode); hwicap_initialize_hwicap()
343 dev_dbg(drvdata->dev, "Desync...\n"); hwicap_initialize_hwicap()
344 status = hwicap_command_desync(drvdata); hwicap_initialize_hwicap()
354 struct hwicap_drvdata *drvdata = file->private_data; hwicap_read() local
361 status = mutex_lock_interruptible(&drvdata->sem); hwicap_read()
365 if (drvdata->read_buffer_in_use) { hwicap_read()
370 (count < drvdata->read_buffer_in_use) ? count : hwicap_read()
371 drvdata->read_buffer_in_use; hwicap_read()
374 if (copy_to_user(buf, drvdata->read_buffer, bytes_to_read)) { hwicap_read()
378 drvdata->read_buffer_in_use -= bytes_to_read; hwicap_read()
379 memmove(drvdata->read_buffer, hwicap_read()
380 drvdata->read_buffer + bytes_to_read, hwicap_read()
409 status = drvdata->config->get_configuration(drvdata, hwicap_read()
424 memcpy(drvdata->read_buffer, hwicap_read()
427 drvdata->read_buffer_in_use = bytes_remaining; hwicap_read()
432 mutex_unlock(&drvdata->sem); hwicap_read()
440 struct hwicap_drvdata *drvdata = file->private_data; hwicap_write() local
447 status = mutex_lock_interruptible(&drvdata->sem); hwicap_write()
451 left += drvdata->write_buffer_in_use; hwicap_write()
474 if (drvdata->write_buffer_in_use) { hwicap_write()
475 memcpy(kbuf, drvdata->write_buffer, hwicap_write()
476 drvdata->write_buffer_in_use); hwicap_write()
478 (((char *)kbuf) + drvdata->write_buffer_in_use), hwicap_write()
480 len - (drvdata->write_buffer_in_use))) { hwicap_write()
493 status = drvdata->config->set_configuration(drvdata, hwicap_write()
501 if (drvdata->write_buffer_in_use) { hwicap_write()
502 len -= drvdata->write_buffer_in_use; hwicap_write()
503 left -= drvdata->write_buffer_in_use; hwicap_write()
504 drvdata->write_buffer_in_use = 0; hwicap_write()
510 if (!copy_from_user(drvdata->write_buffer, hwicap_write()
512 drvdata->write_buffer_in_use = left; hwicap_write()
521 mutex_unlock(&drvdata->sem); hwicap_write()
527 struct hwicap_drvdata *drvdata; hwicap_open() local
531 drvdata = container_of(inode->i_cdev, struct hwicap_drvdata, cdev); hwicap_open()
533 status = mutex_lock_interruptible(&drvdata->sem); hwicap_open()
537 if (drvdata->is_open) { hwicap_open()
542 status = hwicap_initialize_hwicap(drvdata); hwicap_open()
544 dev_err(drvdata->dev, "Failed to open file"); hwicap_open()
548 file->private_data = drvdata; hwicap_open()
549 drvdata->write_buffer_in_use = 0; hwicap_open()
550 drvdata->read_buffer_in_use = 0; hwicap_open()
551 drvdata->is_open = 1; hwicap_open()
554 mutex_unlock(&drvdata->sem); hwicap_open()
562 struct hwicap_drvdata *drvdata = file->private_data; hwicap_release() local
566 mutex_lock(&drvdata->sem); hwicap_release()
568 if (drvdata->write_buffer_in_use) { hwicap_release()
570 for (i = drvdata->write_buffer_in_use; i < 4; i++) hwicap_release()
571 drvdata->write_buffer[i] = 0; hwicap_release()
573 status = drvdata->config->set_configuration(drvdata, hwicap_release()
574 (u32 *) drvdata->write_buffer, 1); hwicap_release()
579 status = hwicap_command_desync(drvdata); hwicap_release()
584 drvdata->is_open = 0; hwicap_release()
585 mutex_unlock(&drvdata->sem); hwicap_release()
604 struct hwicap_drvdata *drvdata = NULL; hwicap_setup() local
633 drvdata = kzalloc(sizeof(struct hwicap_drvdata), GFP_KERNEL); hwicap_setup()
634 if (!drvdata) { hwicap_setup()
639 dev_set_drvdata(dev, (void *)drvdata); hwicap_setup()
647 drvdata->mem_start = regs_res->start; hwicap_setup()
648 drvdata->mem_end = regs_res->end; hwicap_setup()
649 drvdata->mem_size = resource_size(regs_res); hwicap_setup()
651 if (!request_mem_region(drvdata->mem_start, hwicap_setup()
652 drvdata->mem_size, DRIVER_NAME)) { hwicap_setup()
659 drvdata->devt = devt; hwicap_setup()
660 drvdata->dev = dev; hwicap_setup()
661 drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size); hwicap_setup()
662 if (!drvdata->base_address) { hwicap_setup()
668 drvdata->config = config; hwicap_setup()
669 drvdata->config_regs = config_regs; hwicap_setup()
671 mutex_init(&drvdata->sem); hwicap_setup()
672 drvdata->is_open = 0; hwicap_setup()
675 (unsigned long long) drvdata->mem_start, hwicap_setup()
676 drvdata->base_address, hwicap_setup()
677 (unsigned long long) drvdata->mem_size); hwicap_setup()
679 cdev_init(&drvdata->cdev, &hwicap_fops); hwicap_setup()
680 drvdata->cdev.owner = THIS_MODULE; hwicap_setup()
681 retval = cdev_add(&drvdata->cdev, devt, 1); hwicap_setup()
691 iounmap(drvdata->base_address); hwicap_setup()
694 release_mem_region(regs_res->start, drvdata->mem_size); hwicap_setup()
697 kfree(drvdata); hwicap_setup()
723 struct hwicap_drvdata *drvdata; hwicap_remove() local
725 drvdata = dev_get_drvdata(dev); hwicap_remove()
727 if (!drvdata) hwicap_remove()
730 device_destroy(icap_class, drvdata->devt); hwicap_remove()
731 cdev_del(&drvdata->cdev); hwicap_remove()
732 iounmap(drvdata->base_address); hwicap_remove()
733 release_mem_region(drvdata->mem_start, drvdata->mem_size); hwicap_remove()
734 kfree(drvdata); hwicap_remove()
H A Dbuffer_icap.c74 * @drvdata: a pointer to the drvdata.
88 u32 buffer_icap_get_status(struct hwicap_drvdata *drvdata) buffer_icap_get_status() argument
90 return in_be32(drvdata->base_address + XHI_STATUS_REG_OFFSET); buffer_icap_get_status()
182 * @drvdata: a pointer to the drvdata.
187 static int buffer_icap_device_read(struct hwicap_drvdata *drvdata, buffer_icap_device_read() argument
192 void __iomem *base_address = drvdata->base_address; buffer_icap_device_read()
216 * @drvdata: a pointer to the drvdata.
221 static int buffer_icap_device_write(struct hwicap_drvdata *drvdata, buffer_icap_device_write() argument
226 void __iomem *base_address = drvdata->base_address; buffer_icap_device_write()
250 * @drvdata: a pointer to the drvdata.
256 void buffer_icap_reset(struct hwicap_drvdata *drvdata) buffer_icap_reset() argument
258 out_be32(drvdata->base_address + XHI_STATUS_REG_OFFSET, 0xFEFE); buffer_icap_reset()
263 * @drvdata: a pointer to the drvdata.
267 int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data, buffer_icap_set_configuration() argument
275 void __iomem *base_address = drvdata->base_address; buffer_icap_set_configuration()
291 drvdata, buffer_icap_set_configuration()
296 buffer_icap_reset(drvdata); buffer_icap_set_configuration()
308 status = buffer_icap_device_write(drvdata, XHI_BUFFER_START, buffer_icap_set_configuration()
312 buffer_icap_reset(drvdata); buffer_icap_set_configuration()
322 * @drvdata: a pointer to the drvdata.
326 int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data, buffer_icap_get_configuration() argument
333 void __iomem *base_address = drvdata->base_address; buffer_icap_get_configuration()
346 drvdata, buffer_icap_get_configuration()
351 buffer_icap_reset(drvdata); buffer_icap_get_configuration()
H A Dfifo_icap.h45 struct hwicap_drvdata *drvdata,
51 struct hwicap_drvdata *drvdata,
55 u32 fifo_icap_get_status(struct hwicap_drvdata *drvdata);
56 void fifo_icap_reset(struct hwicap_drvdata *drvdata);
57 void fifo_icap_flush_fifo(struct hwicap_drvdata *drvdata);
H A Dbuffer_icap.h44 int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data,
48 int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data,
51 u32 buffer_icap_get_status(struct hwicap_drvdata *drvdata);
52 void buffer_icap_reset(struct hwicap_drvdata *drvdata);
H A Dxilinx_hwicap.h66 int (*get_configuration)(struct hwicap_drvdata *drvdata, u32 *data,
70 int (*set_configuration)(struct hwicap_drvdata *drvdata, u32 *data,
83 u32 (*get_status)(struct hwicap_drvdata *drvdata);
85 void (*reset)(struct hwicap_drvdata *drvdata);
/linux-4.4.14/sound/soc/qcom/
H A Dlpass-cpu.c33 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_set_sysclk() local
36 if (IS_ERR(drvdata->mi2s_osr_clk[dai->driver->id])) lpass_cpu_daiops_set_sysclk()
39 ret = clk_set_rate(drvdata->mi2s_osr_clk[dai->driver->id], freq); lpass_cpu_daiops_set_sysclk()
50 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_startup() local
53 if (!IS_ERR(drvdata->mi2s_osr_clk[dai->driver->id])) { lpass_cpu_daiops_startup()
55 drvdata->mi2s_osr_clk[dai->driver->id]); lpass_cpu_daiops_startup()
63 ret = clk_prepare_enable(drvdata->mi2s_bit_clk[dai->driver->id]); lpass_cpu_daiops_startup()
67 if (!IS_ERR(drvdata->mi2s_osr_clk[dai->driver->id])) lpass_cpu_daiops_startup()
69 drvdata->mi2s_osr_clk[dai->driver->id]); lpass_cpu_daiops_startup()
79 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_shutdown() local
81 clk_disable_unprepare(drvdata->mi2s_bit_clk[dai->driver->id]); lpass_cpu_daiops_shutdown()
83 if (!IS_ERR(drvdata->mi2s_osr_clk[dai->driver->id])) lpass_cpu_daiops_shutdown()
84 clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]); lpass_cpu_daiops_shutdown()
90 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_hw_params() local
150 ret = regmap_write(drvdata->lpaif_map, lpass_cpu_daiops_hw_params()
151 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), lpass_cpu_daiops_hw_params()
159 ret = clk_set_rate(drvdata->mi2s_bit_clk[dai->driver->id], lpass_cpu_daiops_hw_params()
173 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_hw_free() local
176 ret = regmap_write(drvdata->lpaif_map, lpass_cpu_daiops_hw_free()
177 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), lpass_cpu_daiops_hw_free()
189 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_prepare() local
192 ret = regmap_update_bits(drvdata->lpaif_map, lpass_cpu_daiops_prepare()
193 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), lpass_cpu_daiops_prepare()
205 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); lpass_cpu_daiops_trigger() local
212 ret = regmap_update_bits(drvdata->lpaif_map, lpass_cpu_daiops_trigger()
213 LPAIF_I2SCTL_REG(drvdata->variant, lpass_cpu_daiops_trigger()
224 ret = regmap_update_bits(drvdata->lpaif_map, lpass_cpu_daiops_trigger()
225 LPAIF_I2SCTL_REG(drvdata->variant, lpass_cpu_daiops_trigger()
251 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); asoc_qcom_lpass_cpu_dai_probe() local
255 ret = regmap_write(drvdata->lpaif_map, asoc_qcom_lpass_cpu_dai_probe()
256 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), 0); asoc_qcom_lpass_cpu_dai_probe()
271 struct lpass_data *drvdata = dev_get_drvdata(dev); lpass_cpu_regmap_writeable() local
272 struct lpass_variant *v = drvdata->variant; lpass_cpu_regmap_writeable()
302 struct lpass_data *drvdata = dev_get_drvdata(dev); lpass_cpu_regmap_readable() local
303 struct lpass_variant *v = drvdata->variant; lpass_cpu_regmap_readable()
335 struct lpass_data *drvdata = dev_get_drvdata(dev); lpass_cpu_regmap_volatile() local
336 struct lpass_variant *v = drvdata->variant; lpass_cpu_regmap_volatile()
362 struct lpass_data *drvdata; asoc_qcom_lpass_cpu_platform_probe() local
378 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct lpass_data), asoc_qcom_lpass_cpu_platform_probe()
380 if (!drvdata) asoc_qcom_lpass_cpu_platform_probe()
382 platform_set_drvdata(pdev, drvdata); asoc_qcom_lpass_cpu_platform_probe()
388 drvdata->variant = (struct lpass_variant *)match->data; asoc_qcom_lpass_cpu_platform_probe()
389 variant = drvdata->variant; asoc_qcom_lpass_cpu_platform_probe()
393 drvdata->lpaif = devm_ioremap_resource(&pdev->dev, res); asoc_qcom_lpass_cpu_platform_probe()
394 if (IS_ERR((void const __force *)drvdata->lpaif)) { asoc_qcom_lpass_cpu_platform_probe()
397 PTR_ERR((void const __force *)drvdata->lpaif)); asoc_qcom_lpass_cpu_platform_probe()
398 return PTR_ERR((void const __force *)drvdata->lpaif); asoc_qcom_lpass_cpu_platform_probe()
404 drvdata->lpaif_map = devm_regmap_init_mmio(&pdev->dev, drvdata->lpaif, asoc_qcom_lpass_cpu_platform_probe()
406 if (IS_ERR(drvdata->lpaif_map)) { asoc_qcom_lpass_cpu_platform_probe()
408 __func__, PTR_ERR(drvdata->lpaif_map)); asoc_qcom_lpass_cpu_platform_probe()
409 return PTR_ERR(drvdata->lpaif_map); asoc_qcom_lpass_cpu_platform_probe()
422 drvdata->mi2s_osr_clk[dai_id] = devm_clk_get(&pdev->dev, asoc_qcom_lpass_cpu_platform_probe()
424 if (IS_ERR(drvdata->mi2s_osr_clk[dai_id])) { asoc_qcom_lpass_cpu_platform_probe()
428 PTR_ERR(drvdata->mi2s_osr_clk[dai_id])); asoc_qcom_lpass_cpu_platform_probe()
436 drvdata->mi2s_bit_clk[dai_id] = devm_clk_get(&pdev->dev, asoc_qcom_lpass_cpu_platform_probe()
438 if (IS_ERR(drvdata->mi2s_bit_clk[dai_id])) { asoc_qcom_lpass_cpu_platform_probe()
442 PTR_ERR(drvdata->mi2s_bit_clk[dai_id])); asoc_qcom_lpass_cpu_platform_probe()
443 return PTR_ERR(drvdata->mi2s_bit_clk[dai_id]); asoc_qcom_lpass_cpu_platform_probe()
447 drvdata->ahbix_clk = devm_clk_get(&pdev->dev, "ahbix-clk"); asoc_qcom_lpass_cpu_platform_probe()
448 if (IS_ERR(drvdata->ahbix_clk)) { asoc_qcom_lpass_cpu_platform_probe()
450 __func__, PTR_ERR(drvdata->ahbix_clk)); asoc_qcom_lpass_cpu_platform_probe()
451 return PTR_ERR(drvdata->ahbix_clk); asoc_qcom_lpass_cpu_platform_probe()
454 ret = clk_set_rate(drvdata->ahbix_clk, LPASS_AHBIX_CLOCK_FREQUENCY); asoc_qcom_lpass_cpu_platform_probe()
461 clk_get_rate(drvdata->ahbix_clk)); asoc_qcom_lpass_cpu_platform_probe()
463 ret = clk_prepare_enable(drvdata->ahbix_clk); asoc_qcom_lpass_cpu_platform_probe()
490 clk_disable_unprepare(drvdata->ahbix_clk); asoc_qcom_lpass_cpu_platform_probe()
497 struct lpass_data *drvdata = platform_get_drvdata(pdev); asoc_qcom_lpass_cpu_platform_remove() local
499 if (drvdata->variant->exit) asoc_qcom_lpass_cpu_platform_remove()
500 drvdata->variant->exit(pdev); asoc_qcom_lpass_cpu_platform_remove()
502 clk_disable_unprepare(drvdata->ahbix_clk); asoc_qcom_lpass_cpu_platform_remove()
H A Dlpass-apq8016.c136 static int apq8016_lpass_alloc_dma_channel(struct lpass_data *drvdata) apq8016_lpass_alloc_dma_channel() argument
138 struct lpass_variant *v = drvdata->variant; apq8016_lpass_alloc_dma_channel()
139 int chan = find_first_zero_bit(&drvdata->rdma_ch_bit_map, apq8016_lpass_alloc_dma_channel()
145 set_bit(chan, &drvdata->rdma_ch_bit_map); apq8016_lpass_alloc_dma_channel()
150 static int apq8016_lpass_free_dma_channel(struct lpass_data *drvdata, int chan) apq8016_lpass_free_dma_channel() argument
152 clear_bit(chan, &drvdata->rdma_ch_bit_map); apq8016_lpass_free_dma_channel()
159 struct lpass_data *drvdata = platform_get_drvdata(pdev); apq8016_lpass_init() local
163 drvdata->pcnoc_mport_clk = devm_clk_get(dev, "pcnoc-mport-clk"); apq8016_lpass_init()
164 if (IS_ERR(drvdata->pcnoc_mport_clk)) { apq8016_lpass_init()
166 __func__, PTR_ERR(drvdata->pcnoc_mport_clk)); apq8016_lpass_init()
167 return PTR_ERR(drvdata->pcnoc_mport_clk); apq8016_lpass_init()
170 ret = clk_prepare_enable(drvdata->pcnoc_mport_clk); apq8016_lpass_init()
177 drvdata->pcnoc_sway_clk = devm_clk_get(dev, "pcnoc-sway-clk"); apq8016_lpass_init()
178 if (IS_ERR(drvdata->pcnoc_sway_clk)) { apq8016_lpass_init()
180 __func__, PTR_ERR(drvdata->pcnoc_sway_clk)); apq8016_lpass_init()
181 return PTR_ERR(drvdata->pcnoc_sway_clk); apq8016_lpass_init()
184 ret = clk_prepare_enable(drvdata->pcnoc_sway_clk); apq8016_lpass_init()
196 struct lpass_data *drvdata = platform_get_drvdata(pdev); apq8016_lpass_exit() local
198 clk_disable_unprepare(drvdata->pcnoc_mport_clk); apq8016_lpass_exit()
199 clk_disable_unprepare(drvdata->pcnoc_sway_clk); apq8016_lpass_exit()
H A Dlpass-platform.c87 struct lpass_data *drvdata = lpass_platform_pcmops_hw_params() local
89 struct lpass_variant *v = drvdata->variant; lpass_platform_pcmops_hw_params()
159 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_hw_params()
174 struct lpass_data *drvdata = lpass_platform_pcmops_hw_free() local
176 struct lpass_variant *v = drvdata->variant; lpass_platform_pcmops_hw_free()
179 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_hw_free()
193 struct lpass_data *drvdata = lpass_platform_pcmops_prepare() local
195 struct lpass_variant *v = drvdata->variant; lpass_platform_pcmops_prepare()
198 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_prepare()
207 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_prepare()
216 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_prepare()
225 ret = regmap_update_bits(drvdata->lpaif_map, lpass_platform_pcmops_prepare()
242 struct lpass_data *drvdata = lpass_platform_pcmops_trigger() local
244 struct lpass_variant *v = drvdata->variant; lpass_platform_pcmops_trigger()
252 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcmops_trigger()
261 ret = regmap_update_bits(drvdata->lpaif_map, lpass_platform_pcmops_trigger()
271 ret = regmap_update_bits(drvdata->lpaif_map, lpass_platform_pcmops_trigger()
284 ret = regmap_update_bits(drvdata->lpaif_map, lpass_platform_pcmops_trigger()
294 ret = regmap_update_bits(drvdata->lpaif_map, lpass_platform_pcmops_trigger()
313 struct lpass_data *drvdata = lpass_platform_pcmops_pointer() local
315 struct lpass_variant *v = drvdata->variant; lpass_platform_pcmops_pointer()
319 ret = regmap_read(drvdata->lpaif_map, lpass_platform_pcmops_pointer()
327 ret = regmap_read(drvdata->lpaif_map, lpass_platform_pcmops_pointer()
361 struct lpass_data *drvdata, lpass_dma_interrupt_handler()
365 struct lpass_variant *v = drvdata->variant; lpass_dma_interrupt_handler()
370 rv = regmap_write(drvdata->lpaif_map, lpass_dma_interrupt_handler()
383 rv = regmap_write(drvdata->lpaif_map, lpass_dma_interrupt_handler()
397 rv = regmap_write(drvdata->lpaif_map, lpass_dma_interrupt_handler()
415 struct lpass_data *drvdata = data; lpass_platform_lpaif_irq() local
416 struct lpass_variant *v = drvdata->variant; lpass_platform_lpaif_irq()
420 rv = regmap_read(drvdata->lpaif_map, lpass_platform_lpaif_irq()
430 if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->substream[chan]) { lpass_platform_lpaif_irq()
432 drvdata->substream[chan], lpass_platform_lpaif_irq()
433 drvdata, chan, irqs); lpass_platform_lpaif_irq()
481 struct lpass_data *drvdata = lpass_platform_pcm_new() local
483 struct lpass_variant *v = drvdata->variant; lpass_platform_pcm_new()
492 data->rdma_ch = v->alloc_dma_channel(drvdata); lpass_platform_pcm_new()
497 drvdata->substream[data->rdma_ch] = substream; lpass_platform_pcm_new()
509 ret = regmap_write(drvdata->lpaif_map, lpass_platform_pcm_new()
529 struct lpass_data *drvdata = lpass_platform_pcm_free() local
532 struct lpass_variant *v = drvdata->variant; lpass_platform_pcm_free()
534 drvdata->substream[data->rdma_ch] = NULL; lpass_platform_pcm_free()
537 v->free_dma_channel(drvdata, data->rdma_ch); lpass_platform_pcm_free()
550 struct lpass_data *drvdata = platform_get_drvdata(pdev); asoc_qcom_lpass_platform_register() local
551 struct lpass_variant *v = drvdata->variant; asoc_qcom_lpass_platform_register()
554 drvdata->lpaif_irq = platform_get_irq_byname(pdev, "lpass-irq-lpaif"); asoc_qcom_lpass_platform_register()
555 if (drvdata->lpaif_irq < 0) { asoc_qcom_lpass_platform_register()
557 __func__, drvdata->lpaif_irq); asoc_qcom_lpass_platform_register()
562 ret = regmap_write(drvdata->lpaif_map, asoc_qcom_lpass_platform_register()
570 ret = devm_request_irq(&pdev->dev, drvdata->lpaif_irq, asoc_qcom_lpass_platform_register()
572 "lpass-irq-lpaif", drvdata); asoc_qcom_lpass_platform_register()
359 lpass_dma_interrupt_handler( struct snd_pcm_substream *substream, struct lpass_data *drvdata, int chan, u32 interrupts) lpass_dma_interrupt_handler() argument
H A Dlpass-ipq806x.c66 static int ipq806x_lpass_alloc_dma_channel(struct lpass_data *drvdata) ipq806x_lpass_alloc_dma_channel() argument
71 static int ipq806x_lpass_free_dma_channel(struct lpass_data *drvdata, int chan) ipq806x_lpass_free_dma_channel() argument
/linux-4.4.14/drivers/video/fbdev/
H A Dxilinxfb.c167 static void xilinx_fb_out32(struct xilinxfb_drvdata *drvdata, u32 offset, xilinx_fb_out32() argument
170 if (drvdata->flags & BUS_ACCESS_FLAG) { xilinx_fb_out32()
171 if (drvdata->flags & LITTLE_ENDIAN_ACCESS) xilinx_fb_out32()
172 iowrite32(val, drvdata->regs + (offset << 2)); xilinx_fb_out32()
174 iowrite32be(val, drvdata->regs + (offset << 2)); xilinx_fb_out32()
178 dcr_write(drvdata->dcr_host, offset, val); xilinx_fb_out32()
182 static u32 xilinx_fb_in32(struct xilinxfb_drvdata *drvdata, u32 offset) xilinx_fb_in32() argument
184 if (drvdata->flags & BUS_ACCESS_FLAG) { xilinx_fb_in32()
185 if (drvdata->flags & LITTLE_ENDIAN_ACCESS) xilinx_fb_in32()
186 return ioread32(drvdata->regs + (offset << 2)); xilinx_fb_in32()
188 return ioread32be(drvdata->regs + (offset << 2)); xilinx_fb_in32()
192 return dcr_read(drvdata->dcr_host, offset); xilinx_fb_in32()
228 struct xilinxfb_drvdata *drvdata = to_xilinxfb_drvdata(fbi); xilinx_fb_blank() local
233 xilinx_fb_out32(drvdata, REG_CTRL, drvdata->reg_ctrl_default); xilinx_fb_blank()
241 xilinx_fb_out32(drvdata, REG_CTRL, 0); xilinx_fb_blank()
264 struct xilinxfb_drvdata *drvdata, xilinxfb_assign()
271 if (drvdata->flags & BUS_ACCESS_FLAG) { xilinxfb_assign()
275 drvdata->regs = devm_ioremap_resource(&pdev->dev, res); xilinxfb_assign()
276 if (IS_ERR(drvdata->regs)) xilinxfb_assign()
277 return PTR_ERR(drvdata->regs); xilinxfb_assign()
279 drvdata->regs_phys = res->start; xilinxfb_assign()
284 drvdata->fb_phys = pdata->fb_phys; xilinxfb_assign()
285 drvdata->fb_virt = ioremap(pdata->fb_phys, fbsize); xilinxfb_assign()
287 drvdata->fb_alloced = 1; xilinxfb_assign()
288 drvdata->fb_virt = dma_alloc_coherent(dev, PAGE_ALIGN(fbsize), xilinxfb_assign()
289 &drvdata->fb_phys, GFP_KERNEL); xilinxfb_assign()
292 if (!drvdata->fb_virt) { xilinxfb_assign()
298 memset_io((void __iomem *)drvdata->fb_virt, 0, fbsize); xilinxfb_assign()
301 xilinx_fb_out32(drvdata, REG_FB_ADDR, drvdata->fb_phys); xilinxfb_assign()
302 rc = xilinx_fb_in32(drvdata, REG_FB_ADDR); xilinxfb_assign()
304 if (rc != drvdata->fb_phys) { xilinxfb_assign()
305 drvdata->flags |= LITTLE_ENDIAN_ACCESS; xilinxfb_assign()
306 xilinx_fb_out32(drvdata, REG_FB_ADDR, drvdata->fb_phys); xilinxfb_assign()
310 drvdata->reg_ctrl_default = REG_CTRL_ENABLE; xilinxfb_assign()
312 drvdata->reg_ctrl_default |= REG_CTRL_ROTATE; xilinxfb_assign()
313 xilinx_fb_out32(drvdata, REG_CTRL, xilinxfb_assign()
314 drvdata->reg_ctrl_default); xilinxfb_assign()
317 drvdata->info.device = dev; xilinxfb_assign()
318 drvdata->info.screen_base = (void __iomem *)drvdata->fb_virt; xilinxfb_assign()
319 drvdata->info.fbops = &xilinxfb_ops; xilinxfb_assign()
320 drvdata->info.fix = xilinx_fb_fix; xilinxfb_assign()
321 drvdata->info.fix.smem_start = drvdata->fb_phys; xilinxfb_assign()
322 drvdata->info.fix.smem_len = fbsize; xilinxfb_assign()
323 drvdata->info.fix.line_length = pdata->xvirt * BYTES_PER_PIXEL; xilinxfb_assign()
325 drvdata->info.pseudo_palette = drvdata->pseudo_palette; xilinxfb_assign()
326 drvdata->info.flags = FBINFO_DEFAULT; xilinxfb_assign()
327 drvdata->info.var = xilinx_fb_var; xilinxfb_assign()
328 drvdata->info.var.height = pdata->screen_height_mm; xilinxfb_assign()
329 drvdata->info.var.width = pdata->screen_width_mm; xilinxfb_assign()
330 drvdata->info.var.xres = pdata->xres; xilinxfb_assign()
331 drvdata->info.var.yres = pdata->yres; xilinxfb_assign()
332 drvdata->info.var.xres_virtual = pdata->xvirt; xilinxfb_assign()
333 drvdata->info.var.yres_virtual = pdata->yvirt; xilinxfb_assign()
336 rc = fb_alloc_cmap(&drvdata->info.cmap, PALETTE_ENTRIES_NO, 0); xilinxfb_assign()
344 rc = register_framebuffer(&drvdata->info); xilinxfb_assign()
350 if (drvdata->flags & BUS_ACCESS_FLAG) { xilinxfb_assign()
353 &drvdata->regs_phys, drvdata->regs); xilinxfb_assign()
357 (unsigned long long)drvdata->fb_phys, drvdata->fb_virt, fbsize); xilinxfb_assign()
362 fb_dealloc_cmap(&drvdata->info.cmap); xilinxfb_assign()
365 if (drvdata->fb_alloced) xilinxfb_assign()
366 dma_free_coherent(dev, PAGE_ALIGN(fbsize), drvdata->fb_virt, xilinxfb_assign()
367 drvdata->fb_phys); xilinxfb_assign()
369 iounmap(drvdata->fb_virt); xilinxfb_assign()
372 xilinx_fb_out32(drvdata, REG_CTRL, 0); xilinxfb_assign()
379 struct xilinxfb_drvdata *drvdata = dev_get_drvdata(dev); xilinxfb_release() local
382 xilinx_fb_blank(VESA_POWERDOWN, &drvdata->info); xilinxfb_release()
385 unregister_framebuffer(&drvdata->info); xilinxfb_release()
387 fb_dealloc_cmap(&drvdata->info.cmap); xilinxfb_release()
389 if (drvdata->fb_alloced) xilinxfb_release()
390 dma_free_coherent(dev, PAGE_ALIGN(drvdata->info.fix.smem_len), xilinxfb_release()
391 drvdata->fb_virt, drvdata->fb_phys); xilinxfb_release()
393 iounmap(drvdata->fb_virt); xilinxfb_release()
396 xilinx_fb_out32(drvdata, REG_CTRL, 0); xilinxfb_release()
400 if (!(drvdata->flags & BUS_ACCESS_FLAG)) xilinxfb_release()
401 dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); xilinxfb_release()
417 struct xilinxfb_drvdata *drvdata; xilinxfb_of_probe() local
423 drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); xilinxfb_of_probe()
424 if (!drvdata) xilinxfb_of_probe()
439 drvdata->flags |= BUS_ACCESS_FLAG; xilinxfb_of_probe()
445 drvdata->dcr_len = dcr_resource_len(pdev->dev.of_node, 0); xilinxfb_of_probe()
446 drvdata->dcr_host = dcr_map(pdev->dev.of_node, start, drvdata->dcr_len); xilinxfb_of_probe()
447 if (!DCR_MAP_OK(drvdata->dcr_host)) { xilinxfb_of_probe()
475 dev_set_drvdata(&pdev->dev, drvdata); xilinxfb_of_probe()
476 return xilinxfb_assign(pdev, drvdata, &pdata); xilinxfb_of_probe()
263 xilinxfb_assign(struct platform_device *pdev, struct xilinxfb_drvdata *drvdata, struct xilinxfb_platform_data *pdata) xilinxfb_assign() argument
/linux-4.4.14/drivers/clk/x86/
H A Dclk-lpt.c23 struct lpss_clk_data *drvdata; lpt_clk_probe() local
26 drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); lpt_clk_probe()
27 if (!drvdata) lpt_clk_probe()
31 drvdata->name = "lpss_clk"; lpt_clk_probe()
32 clk = clk_register_fixed_rate(&pdev->dev, drvdata->name, NULL, lpt_clk_probe()
37 drvdata->clk = clk; lpt_clk_probe()
38 platform_set_drvdata(pdev, drvdata); lpt_clk_probe()
/linux-4.4.14/drivers/leds/
H A Dleds-lm3530.c190 static int lm3530_led_enable(struct lm3530_data *drvdata) lm3530_led_enable() argument
194 if (drvdata->enable) lm3530_led_enable()
197 ret = regulator_enable(drvdata->regulator); lm3530_led_enable()
199 dev_err(drvdata->led_dev.dev, "Failed to enable vin:%d\n", ret); lm3530_led_enable()
203 drvdata->enable = true; lm3530_led_enable()
207 static void lm3530_led_disable(struct lm3530_data *drvdata) lm3530_led_disable() argument
211 if (!drvdata->enable) lm3530_led_disable()
214 ret = regulator_disable(drvdata->regulator); lm3530_led_disable()
216 dev_err(drvdata->led_dev.dev, "Failed to disable vin:%d\n", lm3530_led_disable()
221 drvdata->enable = false; lm3530_led_disable()
224 static int lm3530_init_registers(struct lm3530_data *drvdata) lm3530_init_registers() argument
232 struct lm3530_platform_data *pdata = drvdata->pdata; lm3530_init_registers()
233 struct i2c_client *client = drvdata->client; lm3530_init_registers()
242 switch (drvdata->mode) { lm3530_init_registers()
259 if (drvdata->brightness) lm3530_init_registers()
260 brightness = drvdata->brightness; lm3530_init_registers()
262 brightness = drvdata->brightness = pdata->brt_val; lm3530_init_registers()
264 if (brightness > drvdata->led_dev.max_brightness) lm3530_init_registers()
265 brightness = drvdata->led_dev.max_brightness; lm3530_init_registers()
282 ret = lm3530_led_enable(drvdata); lm3530_init_registers()
289 drvdata->mode == LM3530_BL_MODE_PWM) { lm3530_init_registers()
292 drvdata->led_dev.max_brightness); lm3530_init_registers()
309 struct lm3530_data *drvdata = lm3530_brightness_set() local
311 struct lm3530_platform_data *pdata = drvdata->pdata; lm3530_brightness_set()
315 switch (drvdata->mode) { lm3530_brightness_set()
318 if (!drvdata->enable) { lm3530_brightness_set()
319 err = lm3530_init_registers(drvdata); lm3530_brightness_set()
321 dev_err(&drvdata->client->dev, lm3530_brightness_set()
328 err = i2c_smbus_write_byte_data(drvdata->client, lm3530_brightness_set()
331 dev_err(&drvdata->client->dev, lm3530_brightness_set()
334 drvdata->brightness = brt_val; lm3530_brightness_set()
337 lm3530_led_disable(drvdata); lm3530_brightness_set()
354 struct lm3530_data *drvdata; lm3530_mode_get() local
357 drvdata = container_of(led_cdev, struct lm3530_data, led_dev); lm3530_mode_get()
359 if (drvdata->mode == mode_map[i].mode_val) lm3530_mode_get()
373 struct lm3530_data *drvdata; lm3530_mode_set() local
378 drvdata = container_of(led_cdev, struct lm3530_data, led_dev); lm3530_mode_set()
379 pwm = &drvdata->pdata->pwm_data; lm3530_mode_set()
387 drvdata->mode = mode; lm3530_mode_set()
393 err = lm3530_init_registers(drvdata); lm3530_mode_set()
399 return sizeof(drvdata->mode); lm3530_mode_set()
413 struct lm3530_data *drvdata; lm3530_probe() local
432 drvdata = devm_kzalloc(&client->dev, sizeof(struct lm3530_data), lm3530_probe()
434 if (drvdata == NULL) lm3530_probe()
437 drvdata->mode = pdata->mode; lm3530_probe()
438 drvdata->client = client; lm3530_probe()
439 drvdata->pdata = pdata; lm3530_probe()
440 drvdata->brightness = LED_OFF; lm3530_probe()
441 drvdata->enable = false; lm3530_probe()
442 drvdata->led_dev.name = LM3530_LED_DEV; lm3530_probe()
443 drvdata->led_dev.brightness_set = lm3530_brightness_set; lm3530_probe()
444 drvdata->led_dev.max_brightness = MAX_BRIGHTNESS; lm3530_probe()
445 drvdata->led_dev.groups = lm3530_groups; lm3530_probe()
447 i2c_set_clientdata(client, drvdata); lm3530_probe()
449 drvdata->regulator = devm_regulator_get(&client->dev, "vin"); lm3530_probe()
450 if (IS_ERR(drvdata->regulator)) { lm3530_probe()
452 err = PTR_ERR(drvdata->regulator); lm3530_probe()
453 drvdata->regulator = NULL; lm3530_probe()
457 if (drvdata->pdata->brt_val) { lm3530_probe()
458 err = lm3530_init_registers(drvdata); lm3530_probe()
465 err = led_classdev_register(&client->dev, &drvdata->led_dev); lm3530_probe()
476 struct lm3530_data *drvdata = i2c_get_clientdata(client); lm3530_remove() local
478 lm3530_led_disable(drvdata); lm3530_remove()
479 led_classdev_unregister(&drvdata->led_dev); lm3530_remove()
H A Dleds-wm831x-status.c233 struct wm831x_status *drvdata; wm831x_status_probe() local
244 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_status), wm831x_status_probe()
246 if (!drvdata) wm831x_status_probe()
248 platform_set_drvdata(pdev, drvdata); wm831x_status_probe()
250 drvdata->wm831x = wm831x; wm831x_status_probe()
251 drvdata->reg = res->start; wm831x_status_probe()
264 mutex_init(&drvdata->mutex); wm831x_status_probe()
265 INIT_WORK(&drvdata->work, wm831x_status_work); wm831x_status_probe()
266 spin_lock_init(&drvdata->value_lock); wm831x_status_probe()
270 drvdata->reg_val = wm831x_reg_read(wm831x, drvdata->reg); wm831x_status_probe()
272 if (drvdata->reg_val & WM831X_LED_MODE_MASK) wm831x_status_probe()
273 drvdata->brightness = LED_FULL; wm831x_status_probe()
275 drvdata->brightness = LED_OFF; wm831x_status_probe()
281 drvdata->src = drvdata->reg_val; wm831x_status_probe()
282 drvdata->src &= WM831X_LED_SRC_MASK; wm831x_status_probe()
283 drvdata->src >>= WM831X_LED_SRC_SHIFT; wm831x_status_probe()
285 drvdata->src = pdata.default_src - 1; wm831x_status_probe()
288 drvdata->cdev.name = pdata.name; wm831x_status_probe()
289 drvdata->cdev.default_trigger = pdata.default_trigger; wm831x_status_probe()
290 drvdata->cdev.brightness_set = wm831x_status_set; wm831x_status_probe()
291 drvdata->cdev.blink_set = wm831x_status_blink_set; wm831x_status_probe()
292 drvdata->cdev.groups = wm831x_status_groups; wm831x_status_probe()
294 ret = led_classdev_register(wm831x->dev, &drvdata->cdev); wm831x_status_probe()
305 struct wm831x_status *drvdata = platform_get_drvdata(pdev); wm831x_status_remove() local
307 led_classdev_unregister(&drvdata->cdev); wm831x_status_remove()
/linux-4.4.14/drivers/watchdog/
H A Djz4740_wdt.c73 struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev); jz4740_wdt_ping() local
75 writew(0x0, drvdata->base + JZ_REG_WDT_TIMER_COUNTER); jz4740_wdt_ping()
82 struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev); jz4740_wdt_set_timeout() local
87 rtc_clk_rate = clk_get_rate(drvdata->rtc_clk); jz4740_wdt_set_timeout()
101 writeb(0x0, drvdata->base + JZ_REG_WDT_COUNTER_ENABLE); jz4740_wdt_set_timeout()
102 writew(clock_div, drvdata->base + JZ_REG_WDT_TIMER_CONTROL); jz4740_wdt_set_timeout()
104 writew((u16)timeout_value, drvdata->base + JZ_REG_WDT_TIMER_DATA); jz4740_wdt_set_timeout()
105 writew(0x0, drvdata->base + JZ_REG_WDT_TIMER_COUNTER); jz4740_wdt_set_timeout()
107 drvdata->base + JZ_REG_WDT_TIMER_CONTROL); jz4740_wdt_set_timeout()
109 writeb(0x1, drvdata->base + JZ_REG_WDT_COUNTER_ENABLE); jz4740_wdt_set_timeout()
125 struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev); jz4740_wdt_stop() local
128 writeb(0x0, drvdata->base + JZ_REG_WDT_COUNTER_ENABLE); jz4740_wdt_stop()
156 struct jz4740_wdt_drvdata *drvdata; jz4740_wdt_probe() local
161 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct jz4740_wdt_drvdata), jz4740_wdt_probe()
163 if (!drvdata) { jz4740_wdt_probe()
171 jz4740_wdt = &drvdata->wdt; jz4740_wdt_probe()
179 watchdog_set_drvdata(jz4740_wdt, drvdata); jz4740_wdt_probe()
182 drvdata->base = devm_ioremap_resource(&pdev->dev, res); jz4740_wdt_probe()
183 if (IS_ERR(drvdata->base)) { jz4740_wdt_probe()
184 ret = PTR_ERR(drvdata->base); jz4740_wdt_probe()
188 drvdata->rtc_clk = clk_get(&pdev->dev, "rtc"); jz4740_wdt_probe()
189 if (IS_ERR(drvdata->rtc_clk)) { jz4740_wdt_probe()
191 ret = PTR_ERR(drvdata->rtc_clk); jz4740_wdt_probe()
195 ret = watchdog_register_device(&drvdata->wdt); jz4740_wdt_probe()
199 platform_set_drvdata(pdev, drvdata); jz4740_wdt_probe()
203 clk_put(drvdata->rtc_clk); jz4740_wdt_probe()
210 struct jz4740_wdt_drvdata *drvdata = platform_get_drvdata(pdev); jz4740_wdt_remove() local
212 jz4740_wdt_stop(&drvdata->wdt); jz4740_wdt_remove()
213 watchdog_unregister_device(&drvdata->wdt); jz4740_wdt_remove()
214 clk_put(drvdata->rtc_clk); jz4740_wdt_remove()
/linux-4.4.14/drivers/clk/
H A Dclk-si5351.c48 struct si5351_driver_data *drvdata; member in struct:si5351_hw_data
87 static inline u8 si5351_reg_read(struct si5351_driver_data *drvdata, u8 reg) si5351_reg_read() argument
92 ret = regmap_read(drvdata->regmap, reg, &val); si5351_reg_read()
94 dev_err(&drvdata->client->dev, si5351_reg_read()
102 static inline int si5351_bulk_read(struct si5351_driver_data *drvdata, si5351_bulk_read() argument
105 return regmap_bulk_read(drvdata->regmap, reg, buf, count); si5351_bulk_read()
108 static inline int si5351_reg_write(struct si5351_driver_data *drvdata, si5351_reg_write() argument
111 return regmap_write(drvdata->regmap, reg, val); si5351_reg_write()
114 static inline int si5351_bulk_write(struct si5351_driver_data *drvdata, si5351_bulk_write() argument
117 return regmap_raw_write(drvdata->regmap, reg, buf, count); si5351_bulk_write()
120 static inline int si5351_set_bits(struct si5351_driver_data *drvdata, si5351_set_bits() argument
123 return regmap_update_bits(drvdata->regmap, reg, mask, val); si5351_set_bits()
133 static void si5351_read_parameters(struct si5351_driver_data *drvdata, si5351_read_parameters() argument
141 buf[0] = si5351_reg_read(drvdata, reg); si5351_read_parameters()
147 si5351_bulk_read(drvdata, reg, SI5351_PARAMETERS_LENGTH, buf); si5351_read_parameters()
155 static void si5351_write_parameters(struct si5351_driver_data *drvdata, si5351_write_parameters() argument
164 si5351_reg_write(drvdata, reg, buf[0]); si5351_write_parameters()
170 buf[2] = si5351_reg_read(drvdata, reg + 2) & ~0x03; si5351_write_parameters()
178 si5351_bulk_write(drvdata, reg, SI5351_PARAMETERS_LENGTH, buf); si5351_write_parameters()
224 struct si5351_driver_data *drvdata = si5351_xtal_prepare() local
226 si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE, si5351_xtal_prepare()
233 struct si5351_driver_data *drvdata = si5351_xtal_unprepare() local
235 si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE, si5351_xtal_unprepare()
249 struct si5351_driver_data *drvdata = si5351_clkin_prepare() local
251 si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE, si5351_clkin_prepare()
258 struct si5351_driver_data *drvdata = si5351_clkin_unprepare() local
260 si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE, si5351_clkin_unprepare()
272 struct si5351_driver_data *drvdata = si5351_clkin_recalc_rate() local
291 si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE, si5351_clkin_recalc_rate()
294 dev_dbg(&drvdata->client->dev, "%s - clkin div = %d, rate = %lu\n", si5351_clkin_recalc_rate()
315 dev_warn(&hwdata->drvdata->client->dev, "VXCO currently unsupported\n"); si5351_vxco_prepare()
369 static int _si5351_pll_reparent(struct si5351_driver_data *drvdata, _si5351_pll_reparent() argument
380 if (drvdata->variant != SI5351_VARIANT_C && _si5351_pll_reparent()
384 si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE, mask, _si5351_pll_reparent()
396 val = si5351_reg_read(hwdata->drvdata, SI5351_PLL_INPUT_SOURCE); si5351_pll_get_parent()
406 if (hwdata->drvdata->variant != SI5351_VARIANT_C && si5351_pll_set_parent()
413 return _si5351_pll_reparent(hwdata->drvdata, hwdata->num, si5351_pll_set_parent()
428 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); si5351_pll_recalc_rate()
440 dev_dbg(&hwdata->drvdata->client->dev, si5351_pll_recalc_rate()
498 dev_dbg(&hwdata->drvdata->client->dev, si5351_pll_round_rate()
515 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params); si5351_pll_set_rate()
518 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_CTRL + hwdata->num, si5351_pll_set_rate()
522 dev_dbg(&hwdata->drvdata->client->dev, si5351_pll_set_rate()
562 static int _si5351_msynth_reparent(struct si5351_driver_data *drvdata, _si5351_msynth_reparent() argument
571 si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num, SI5351_CLK_PLL_SELECT, _si5351_msynth_reparent()
583 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); si5351_msynth_get_parent()
593 return _si5351_msynth_reparent(hwdata->drvdata, hwdata->num, si5351_msynth_set_parent()
608 si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params); si5351_msynth_recalc_rate()
619 } else if ((si5351_reg_read(hwdata->drvdata, reg + 2) & si5351_msynth_recalc_rate()
633 dev_dbg(&hwdata->drvdata->client->dev, si5351_msynth_recalc_rate()
746 dev_dbg(&hwdata->drvdata->client->dev, si5351_msynth_round_rate()
763 si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params); si5351_msynth_set_rate()
770 si5351_set_bits(hwdata->drvdata, reg + 2, si5351_msynth_set_rate()
773 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, si5351_msynth_set_rate()
778 dev_dbg(&hwdata->drvdata->client->dev, si5351_msynth_set_rate()
798 static int _si5351_clkout_reparent(struct si5351_driver_data *drvdata, _si5351_clkout_reparent() argument
821 if (drvdata->variant != SI5351_VARIANT_C) _si5351_clkout_reparent()
830 si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num, _si5351_clkout_reparent()
836 struct si5351_driver_data *drvdata, int num, _si5351_clkout_set_drive_strength()
861 si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num, _si5351_clkout_set_drive_strength()
867 struct si5351_driver_data *drvdata, int num, _si5351_clkout_set_disable_state()
896 si5351_set_bits(drvdata, reg, mask, val << shift); _si5351_clkout_set_disable_state()
906 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, si5351_clkout_prepare()
908 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, si5351_clkout_prepare()
918 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, si5351_clkout_unprepare()
920 si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL, si5351_clkout_unprepare()
931 val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num); si5351_clkout_get_parent()
971 return _si5351_clkout_reparent(hwdata->drvdata, hwdata->num, parent); si5351_clkout_set_parent()
987 rdiv = si5351_reg_read(hwdata->drvdata, reg); si5351_clkout_recalc_rate()
1043 dev_dbg(&hwdata->drvdata->client->dev, si5351_clkout_round_rate()
1075 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, si5351_clkout_set_rate()
1079 si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER, si5351_clkout_set_rate()
1084 si5351_set_bits(hwdata->drvdata, si5351_clkout_set_rate()
1091 si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num, si5351_clkout_set_rate()
1094 dev_dbg(&hwdata->drvdata->client->dev, si5351_clkout_set_rate()
1315 struct si5351_driver_data *drvdata; si5351_i2c_probe() local
1330 drvdata = devm_kzalloc(&client->dev, sizeof(*drvdata), GFP_KERNEL); si5351_i2c_probe()
1331 if (drvdata == NULL) { si5351_i2c_probe()
1336 i2c_set_clientdata(client, drvdata); si5351_i2c_probe()
1337 drvdata->client = client; si5351_i2c_probe()
1338 drvdata->variant = variant; si5351_i2c_probe()
1339 drvdata->pxtal = devm_clk_get(&client->dev, "xtal"); si5351_i2c_probe()
1340 drvdata->pclkin = devm_clk_get(&client->dev, "clkin"); si5351_i2c_probe()
1342 if (PTR_ERR(drvdata->pxtal) == -EPROBE_DEFER || si5351_i2c_probe()
1343 PTR_ERR(drvdata->pclkin) == -EPROBE_DEFER) si5351_i2c_probe()
1350 if (IS_ERR(drvdata->pxtal) && si5351_i2c_probe()
1351 (drvdata->variant != SI5351_VARIANT_C || IS_ERR(drvdata->pclkin))) { si5351_i2c_probe()
1356 drvdata->regmap = devm_regmap_init_i2c(client, &si5351_regmap_config); si5351_i2c_probe()
1357 if (IS_ERR(drvdata->regmap)) { si5351_i2c_probe()
1359 return PTR_ERR(drvdata->regmap); si5351_i2c_probe()
1363 si5351_reg_write(drvdata, SI5351_INTERRUPT_MASK, 0xf0); si5351_i2c_probe()
1365 if (drvdata->variant != SI5351_VARIANT_C) si5351_i2c_probe()
1366 si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE, si5351_i2c_probe()
1371 ret = _si5351_pll_reparent(drvdata, n, pdata->pll_src[n]); si5351_i2c_probe()
1381 ret = _si5351_msynth_reparent(drvdata, n, si5351_i2c_probe()
1390 ret = _si5351_clkout_reparent(drvdata, n, si5351_i2c_probe()
1399 ret = _si5351_clkout_set_drive_strength(drvdata, n, si5351_i2c_probe()
1408 ret = _si5351_clkout_set_disable_state(drvdata, n, si5351_i2c_probe()
1418 if (!IS_ERR(drvdata->pxtal)) si5351_i2c_probe()
1419 clk_prepare_enable(drvdata->pxtal); si5351_i2c_probe()
1420 if (!IS_ERR(drvdata->pclkin)) si5351_i2c_probe()
1421 clk_prepare_enable(drvdata->pclkin); si5351_i2c_probe()
1428 if (!IS_ERR(drvdata->pxtal)) { si5351_i2c_probe()
1429 drvdata->pxtal_name = __clk_get_name(drvdata->pxtal); si5351_i2c_probe()
1430 init.parent_names = &drvdata->pxtal_name; si5351_i2c_probe()
1433 drvdata->xtal.init = &init; si5351_i2c_probe()
1434 clk = devm_clk_register(&client->dev, &drvdata->xtal); si5351_i2c_probe()
1442 if (drvdata->variant == SI5351_VARIANT_C) { si5351_i2c_probe()
1446 if (!IS_ERR(drvdata->pclkin)) { si5351_i2c_probe()
1447 drvdata->pclkin_name = __clk_get_name(drvdata->pclkin); si5351_i2c_probe()
1448 init.parent_names = &drvdata->pclkin_name; si5351_i2c_probe()
1451 drvdata->clkin.init = &init; si5351_i2c_probe()
1452 clk = devm_clk_register(&client->dev, &drvdata->clkin); si5351_i2c_probe()
1462 num_parents = (drvdata->variant == SI5351_VARIANT_C) ? 2 : 1; si5351_i2c_probe()
1467 drvdata->pll[0].num = 0; si5351_i2c_probe()
1468 drvdata->pll[0].drvdata = drvdata; si5351_i2c_probe()
1469 drvdata->pll[0].hw.init = &init; si5351_i2c_probe()
1476 clk = devm_clk_register(&client->dev, &drvdata->pll[0].hw); si5351_i2c_probe()
1484 drvdata->pll[1].num = 1; si5351_i2c_probe()
1485 drvdata->pll[1].drvdata = drvdata; si5351_i2c_probe()
1486 drvdata->pll[1].hw.init = &init; si5351_i2c_probe()
1488 if (drvdata->variant == SI5351_VARIANT_B) { si5351_i2c_probe()
1501 clk = devm_clk_register(&client->dev, &drvdata->pll[1].hw); si5351_i2c_probe()
1509 num_clocks = (drvdata->variant == SI5351_VARIANT_A3) ? 3 : 8; si5351_i2c_probe()
1511 if (drvdata->variant == SI5351_VARIANT_B) si5351_i2c_probe()
1516 drvdata->msynth = devm_kzalloc(&client->dev, num_clocks * si5351_i2c_probe()
1517 sizeof(*drvdata->msynth), GFP_KERNEL); si5351_i2c_probe()
1518 drvdata->clkout = devm_kzalloc(&client->dev, num_clocks * si5351_i2c_probe()
1519 sizeof(*drvdata->clkout), GFP_KERNEL); si5351_i2c_probe()
1521 drvdata->onecell.clk_num = num_clocks; si5351_i2c_probe()
1522 drvdata->onecell.clks = devm_kzalloc(&client->dev, si5351_i2c_probe()
1523 num_clocks * sizeof(*drvdata->onecell.clks), GFP_KERNEL); si5351_i2c_probe()
1525 if (WARN_ON(!drvdata->msynth || !drvdata->clkout || si5351_i2c_probe()
1526 !drvdata->onecell.clks)) { si5351_i2c_probe()
1532 drvdata->msynth[n].num = n; si5351_i2c_probe()
1533 drvdata->msynth[n].drvdata = drvdata; si5351_i2c_probe()
1534 drvdata->msynth[n].hw.init = &init; si5351_i2c_probe()
1543 clk = devm_clk_register(&client->dev, &drvdata->msynth[n].hw); si5351_i2c_probe()
1552 num_parents = (drvdata->variant == SI5351_VARIANT_C) ? 4 : 3; si5351_i2c_probe()
1560 drvdata->clkout[n].num = n; si5351_i2c_probe()
1561 drvdata->clkout[n].drvdata = drvdata; si5351_i2c_probe()
1562 drvdata->clkout[n].hw.init = &init; si5351_i2c_probe()
1571 clk = devm_clk_register(&client->dev, &drvdata->clkout[n].hw); si5351_i2c_probe()
1578 drvdata->onecell.clks[n] = clk; si5351_i2c_probe()
1592 &drvdata->onecell); si5351_i2c_probe()
1601 if (!IS_ERR(drvdata->pxtal)) si5351_i2c_probe()
1602 clk_disable_unprepare(drvdata->pxtal); si5351_i2c_probe()
1603 if (!IS_ERR(drvdata->pclkin)) si5351_i2c_probe()
1604 clk_disable_unprepare(drvdata->pclkin); si5351_i2c_probe()
835 _si5351_clkout_set_drive_strength( struct si5351_driver_data *drvdata, int num, enum si5351_drive_strength drive) _si5351_clkout_set_drive_strength() argument
866 _si5351_clkout_set_disable_state( struct si5351_driver_data *drvdata, int num, enum si5351_disable_state state) _si5351_clkout_set_disable_state() argument
/linux-4.4.14/sound/soc/txx9/
H A Dtxx9aclc-ac97.c42 static int txx9aclc_regready(struct txx9aclc_plat_drvdata *drvdata) txx9aclc_regready() argument
44 return __raw_readl(drvdata->base + ACINTSTS) & ACINT_REGACCRDY; txx9aclc_regready()
51 struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata; txx9aclc_ac97_read() local
52 void __iomem *base = drvdata->base; txx9aclc_ac97_read()
84 struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata; txx9aclc_ac97_write() local
85 void __iomem *base = drvdata->base; txx9aclc_ac97_write()
100 struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata; txx9aclc_ac97_cold_reset() local
101 void __iomem *base = drvdata->base; txx9aclc_ac97_cold_reset()
130 struct txx9aclc_plat_drvdata *drvdata = dev_id; txx9aclc_ac97_irq() local
131 void __iomem *base = drvdata->base; txx9aclc_ac97_irq()
146 struct txx9aclc_plat_drvdata *drvdata = snd_soc_dai_get_drvdata(dai); txx9aclc_ac97_remove() local
149 __raw_writel(ACCTL_ENLINK, drvdata->base + ACCTLDIS); txx9aclc_ac97_remove()
178 struct txx9aclc_plat_drvdata *drvdata; txx9aclc_ac97_dev_probe() local
187 drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); txx9aclc_ac97_dev_probe()
188 if (!drvdata) txx9aclc_ac97_dev_probe()
192 drvdata->base = devm_ioremap_resource(&pdev->dev, r); txx9aclc_ac97_dev_probe()
193 if (IS_ERR(drvdata->base)) txx9aclc_ac97_dev_probe()
194 return PTR_ERR(drvdata->base); txx9aclc_ac97_dev_probe()
196 platform_set_drvdata(pdev, drvdata); txx9aclc_ac97_dev_probe()
197 drvdata->physbase = r->start; txx9aclc_ac97_dev_probe()
198 if (sizeof(drvdata->physbase) > sizeof(r->start) && txx9aclc_ac97_dev_probe()
201 drvdata->physbase |= 0xf00000000ull; txx9aclc_ac97_dev_probe()
203 0, dev_name(&pdev->dev), drvdata); txx9aclc_ac97_dev_probe()
H A Dtxx9aclc.c160 struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata; txx9aclc_dma_tasklet() local
161 void __iomem *base = drvdata->base; txx9aclc_dma_tasklet()
209 struct txx9aclc_plat_drvdata *drvdata =txx9aclc_drvdata; txx9aclc_pcm_trigger() local
210 void __iomem *base = drvdata->base; txx9aclc_pcm_trigger()
343 struct txx9aclc_plat_drvdata *drvdata =txx9aclc_drvdata; txx9aclc_dma_init() local
351 ds->tx_reg = drvdata->physbase + ACAUDODAT; txx9aclc_dma_init()
355 ds->rx_reg = drvdata->physbase + ACAUDIDAT; txx9aclc_dma_init()
383 struct txx9aclc_plat_drvdata *drvdata = txx9aclc_drvdata; txx9aclc_pcm_remove() local
384 void __iomem *base = drvdata->base; txx9aclc_pcm_remove()
/linux-4.4.14/drivers/regulator/
H A Dpwm-regulator.c46 struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev); pwm_regulator_get_voltage_sel() local
48 return drvdata->state; pwm_regulator_get_voltage_sel()
54 struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev); pwm_regulator_set_voltage_sel() local
59 pwm_reg_period = pwm_get_period(drvdata->pwm); pwm_regulator_set_voltage_sel()
62 drvdata->duty_cycle_table[selector].dutycycle) / 100; pwm_regulator_set_voltage_sel()
64 ret = pwm_config(drvdata->pwm, dutycycle, pwm_reg_period); pwm_regulator_set_voltage_sel()
70 drvdata->state = selector; pwm_regulator_set_voltage_sel()
78 struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev); pwm_regulator_list_voltage() local
83 return drvdata->duty_cycle_table[selector].uV; pwm_regulator_list_voltage()
88 struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); pwm_regulator_enable() local
90 return pwm_enable(drvdata->pwm); pwm_regulator_enable()
95 struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); pwm_regulator_disable() local
97 pwm_disable(drvdata->pwm); pwm_regulator_disable()
104 struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev); pwm_regulator_is_enabled() local
106 return pwm_is_enabled(drvdata->pwm); pwm_regulator_is_enabled()
123 struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev); pwm_regulator_get_voltage() local
125 return drvdata->volt_uV; pwm_regulator_get_voltage()
132 struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev); pwm_regulator_set_voltage() local
134 unsigned int period = pwm_get_period(drvdata->pwm); pwm_regulator_set_voltage()
140 ret = pwm_config(drvdata->pwm, (period / 100) * duty_cycle, period); pwm_regulator_set_voltage()
146 ret = pwm_enable(drvdata->pwm); pwm_regulator_set_voltage()
151 drvdata->volt_uV = min_uV; pwm_regulator_set_voltage()
185 struct pwm_regulator_data *drvdata) pwm_regulator_init_table()
214 drvdata->duty_cycle_table = duty_cycle_table; pwm_regulator_init_table()
222 struct pwm_regulator_data *drvdata) pwm_regulator_init_continuous()
233 struct pwm_regulator_data *drvdata; pwm_regulator_probe() local
244 drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); pwm_regulator_probe()
245 if (!drvdata) pwm_regulator_probe()
249 ret = pwm_regulator_init_table(pdev, drvdata); pwm_regulator_probe()
251 ret = pwm_regulator_init_continuous(pdev, drvdata); pwm_regulator_probe()
262 config.driver_data = drvdata; pwm_regulator_probe()
265 drvdata->pwm = devm_pwm_get(&pdev->dev, NULL); pwm_regulator_probe()
266 if (IS_ERR(drvdata->pwm)) { pwm_regulator_probe()
268 return PTR_ERR(drvdata->pwm); pwm_regulator_probe()
184 pwm_regulator_init_table(struct platform_device *pdev, struct pwm_regulator_data *drvdata) pwm_regulator_init_table() argument
221 pwm_regulator_init_continuous(struct platform_device *pdev, struct pwm_regulator_data *drvdata) pwm_regulator_init_continuous() argument
H A Dgpio-regulator.c250 struct gpio_regulator_data *drvdata; gpio_regulator_probe() local
254 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct gpio_regulator_data), gpio_regulator_probe()
256 if (drvdata == NULL) gpio_regulator_probe()
261 &drvdata->desc); gpio_regulator_probe()
266 drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); gpio_regulator_probe()
267 if (drvdata->desc.name == NULL) { gpio_regulator_probe()
274 drvdata->gpios = kmemdup(config->gpios, gpio_regulator_probe()
277 if (drvdata->gpios == NULL) { gpio_regulator_probe()
283 drvdata->nr_gpios = config->nr_gpios; gpio_regulator_probe()
284 ret = gpio_request_array(drvdata->gpios, drvdata->nr_gpios); gpio_regulator_probe()
292 drvdata->states = kmemdup(config->states, gpio_regulator_probe()
296 if (drvdata->states == NULL) { gpio_regulator_probe()
301 drvdata->nr_states = config->nr_states; gpio_regulator_probe()
303 drvdata->desc.owner = THIS_MODULE; gpio_regulator_probe()
304 drvdata->desc.enable_time = config->startup_delay; gpio_regulator_probe()
309 drvdata->desc.type = REGULATOR_VOLTAGE; gpio_regulator_probe()
310 drvdata->desc.ops = &gpio_regulator_voltage_ops; gpio_regulator_probe()
311 drvdata->desc.n_voltages = config->nr_states; gpio_regulator_probe()
314 drvdata->desc.type = REGULATOR_CURRENT; gpio_regulator_probe()
315 drvdata->desc.ops = &gpio_regulator_current_ops; gpio_regulator_probe()
325 for (ptr = 0; ptr < drvdata->nr_gpios; ptr++) { gpio_regulator_probe()
329 drvdata->state = state; gpio_regulator_probe()
333 cfg.driver_data = drvdata; gpio_regulator_probe()
353 drvdata->dev = regulator_register(&drvdata->desc, &cfg); gpio_regulator_probe()
354 if (IS_ERR(drvdata->dev)) { gpio_regulator_probe()
355 ret = PTR_ERR(drvdata->dev); gpio_regulator_probe()
360 platform_set_drvdata(pdev, drvdata); gpio_regulator_probe()
365 gpio_free_array(drvdata->gpios, drvdata->nr_gpios); gpio_regulator_probe()
367 kfree(drvdata->states); gpio_regulator_probe()
369 kfree(drvdata->gpios); gpio_regulator_probe()
371 kfree(drvdata->desc.name); gpio_regulator_probe()
378 struct gpio_regulator_data *drvdata = platform_get_drvdata(pdev); gpio_regulator_remove() local
380 regulator_unregister(drvdata->dev); gpio_regulator_remove()
382 gpio_free_array(drvdata->gpios, drvdata->nr_gpios); gpio_regulator_remove()
384 kfree(drvdata->states); gpio_regulator_remove()
385 kfree(drvdata->gpios); gpio_regulator_remove()
387 kfree(drvdata->desc.name); gpio_regulator_remove()
H A Dpbias-regulator.c145 struct pbias_regulator_data *drvdata; pbias_regulator_probe() local
161 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct pbias_regulator_data) pbias_regulator_probe()
163 if (!drvdata) pbias_regulator_probe()
196 drvdata[data_idx].syscon = syscon; pbias_regulator_probe()
197 drvdata[data_idx].info = info; pbias_regulator_probe()
198 drvdata[data_idx].desc.name = info->name; pbias_regulator_probe()
199 drvdata[data_idx].desc.owner = THIS_MODULE; pbias_regulator_probe()
200 drvdata[data_idx].desc.type = REGULATOR_VOLTAGE; pbias_regulator_probe()
201 drvdata[data_idx].desc.ops = &pbias_regulator_voltage_ops; pbias_regulator_probe()
202 drvdata[data_idx].desc.volt_table = pbias_volt_table; pbias_regulator_probe()
203 drvdata[data_idx].desc.n_voltages = 2; pbias_regulator_probe()
204 drvdata[data_idx].desc.enable_time = info->enable_time; pbias_regulator_probe()
205 drvdata[data_idx].desc.vsel_reg = offset; pbias_regulator_probe()
206 drvdata[data_idx].desc.vsel_mask = info->vmode; pbias_regulator_probe()
207 drvdata[data_idx].desc.enable_reg = offset; pbias_regulator_probe()
208 drvdata[data_idx].desc.enable_mask = info->enable_mask; pbias_regulator_probe()
209 drvdata[data_idx].desc.enable_val = info->enable; pbias_regulator_probe()
210 drvdata[data_idx].desc.disable_val = info->disable_val; pbias_regulator_probe()
213 cfg.driver_data = &drvdata[data_idx]; pbias_regulator_probe()
216 drvdata[data_idx].dev = devm_regulator_register(&pdev->dev, pbias_regulator_probe()
217 &drvdata[data_idx].desc, &cfg); pbias_regulator_probe()
218 if (IS_ERR(drvdata[data_idx].dev)) { pbias_regulator_probe()
219 ret = PTR_ERR(drvdata[data_idx].dev); pbias_regulator_probe()
227 platform_set_drvdata(pdev, drvdata); pbias_regulator_probe()
H A Dfixed.c113 struct fixed_voltage_data *drvdata; reg_fixed_voltage_probe() local
117 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct fixed_voltage_data), reg_fixed_voltage_probe()
119 if (!drvdata) reg_fixed_voltage_probe()
124 &drvdata->desc); reg_fixed_voltage_probe()
134 drvdata->desc.name = devm_kstrdup(&pdev->dev, reg_fixed_voltage_probe()
137 if (drvdata->desc.name == NULL) { reg_fixed_voltage_probe()
141 drvdata->desc.type = REGULATOR_VOLTAGE; reg_fixed_voltage_probe()
142 drvdata->desc.owner = THIS_MODULE; reg_fixed_voltage_probe()
143 drvdata->desc.ops = &fixed_voltage_ops; reg_fixed_voltage_probe()
145 drvdata->desc.enable_time = config->startup_delay; reg_fixed_voltage_probe()
148 drvdata->desc.supply_name = devm_kstrdup(&pdev->dev, reg_fixed_voltage_probe()
151 if (!drvdata->desc.supply_name) { reg_fixed_voltage_probe()
159 drvdata->desc.n_voltages = 1; reg_fixed_voltage_probe()
161 drvdata->desc.fixed_uV = config->microvolts; reg_fixed_voltage_probe()
185 cfg.driver_data = drvdata; reg_fixed_voltage_probe()
188 drvdata->dev = devm_regulator_register(&pdev->dev, &drvdata->desc, reg_fixed_voltage_probe()
190 if (IS_ERR(drvdata->dev)) { reg_fixed_voltage_probe()
191 ret = PTR_ERR(drvdata->dev); reg_fixed_voltage_probe()
196 platform_set_drvdata(pdev, drvdata); reg_fixed_voltage_probe()
198 dev_dbg(&pdev->dev, "%s supplying %duV\n", drvdata->desc.name, reg_fixed_voltage_probe()
199 drvdata->desc.fixed_uV); reg_fixed_voltage_probe()
H A Duserspace-consumer.c111 struct userspace_consumer_data *drvdata; regulator_userspace_consumer_probe() local
118 drvdata = devm_kzalloc(&pdev->dev, regulator_userspace_consumer_probe()
121 if (drvdata == NULL) regulator_userspace_consumer_probe()
124 drvdata->name = pdata->name; regulator_userspace_consumer_probe()
125 drvdata->num_supplies = pdata->num_supplies; regulator_userspace_consumer_probe()
126 drvdata->supplies = pdata->supplies; regulator_userspace_consumer_probe()
128 mutex_init(&drvdata->lock); regulator_userspace_consumer_probe()
130 ret = devm_regulator_bulk_get(&pdev->dev, drvdata->num_supplies, regulator_userspace_consumer_probe()
131 drvdata->supplies); regulator_userspace_consumer_probe()
142 ret = regulator_bulk_enable(drvdata->num_supplies, regulator_userspace_consumer_probe()
143 drvdata->supplies); regulator_userspace_consumer_probe()
151 drvdata->enabled = pdata->init_on; regulator_userspace_consumer_probe()
152 platform_set_drvdata(pdev, drvdata); regulator_userspace_consumer_probe()
H A Dvirtual.c291 struct virtual_consumer_data *drvdata; regulator_virtual_probe() local
294 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct virtual_consumer_data), regulator_virtual_probe()
296 if (drvdata == NULL) regulator_virtual_probe()
299 mutex_init(&drvdata->lock); regulator_virtual_probe()
301 drvdata->regulator = devm_regulator_get(&pdev->dev, reg_id); regulator_virtual_probe()
302 if (IS_ERR(drvdata->regulator)) { regulator_virtual_probe()
303 ret = PTR_ERR(drvdata->regulator); regulator_virtual_probe()
317 drvdata->mode = regulator_get_mode(drvdata->regulator); regulator_virtual_probe()
319 platform_set_drvdata(pdev, drvdata); regulator_virtual_probe()
326 struct virtual_consumer_data *drvdata = platform_get_drvdata(pdev); regulator_virtual_remove() local
330 if (drvdata->enabled) regulator_virtual_remove()
331 regulator_disable(drvdata->regulator); regulator_virtual_remove()
H A Dtwl-regulator.c1098 struct twl_regulator_driver_data *drvdata; twlreg_probe() local
1109 drvdata = NULL; twlreg_probe()
1121 drvdata = initdata->driver_data; twlreg_probe()
1122 if (!drvdata) twlreg_probe()
1136 if (drvdata) { twlreg_probe()
1138 info->features = drvdata->features; twlreg_probe()
1139 info->data = drvdata->data; twlreg_probe()
1140 info->set_voltage = drvdata->set_voltage; twlreg_probe()
1141 info->get_voltage = drvdata->get_voltage; twlreg_probe()
H A Dti-abb-regulator.c331 dev_err_ratelimited(dev, "%s: No regulator drvdata\n", ti_abb_set_voltage_sel()
390 dev_err_ratelimited(dev, "%s: No regulator drvdata\n", ti_abb_get_voltage_sel()
/linux-4.4.14/sound/soc/ux500/
H A Dux500_msp_dai.c36 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); setup_pcm_multichan() local
40 if (drvdata->slots > 1) { setup_pcm_multichan()
47 multi->tx_channel_0_enable = drvdata->tx_mask; setup_pcm_multichan()
52 multi->rx_channel_0_enable = drvdata->rx_mask; setup_pcm_multichan()
59 __func__, drvdata->slots, multi->tx_channel_0_enable, setup_pcm_multichan()
69 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); setup_frameper() local
71 switch (drvdata->slots) { setup_frameper()
116 __func__, drvdata->slots); setup_frameper()
133 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); setup_pcm_framing() local
138 switch (drvdata->slots) { setup_pcm_framing()
157 __func__, drvdata->slots); setup_pcm_framing()
307 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); setup_msp_config() local
310 unsigned int fmt = drvdata->fmt; setup_msp_config()
315 msp_config->f_inputclk = drvdata->master_clk; setup_msp_config()
389 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_startup() local
395 ret = regulator_enable(drvdata->reg_vape); ux500_msp_dai_startup()
397 dev_err(drvdata->msp->dev, ux500_msp_dai_startup()
404 ret = clk_prepare_enable(drvdata->pclk); ux500_msp_dai_startup()
406 dev_err(drvdata->msp->dev, ux500_msp_dai_startup()
411 ret = clk_prepare_enable(drvdata->clk); ux500_msp_dai_startup()
413 dev_err(drvdata->msp->dev, ux500_msp_dai_startup()
420 clk_disable_unprepare(drvdata->pclk); ux500_msp_dai_startup()
422 regulator_disable(drvdata->reg_vape); ux500_msp_dai_startup()
430 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_shutdown() local
436 if (drvdata->vape_opp_constraint == 1) { ux500_msp_dai_shutdown()
439 drvdata->vape_opp_constraint = 0; ux500_msp_dai_shutdown()
442 if (ux500_msp_i2s_close(drvdata->msp, ux500_msp_dai_shutdown()
450 clk_disable_unprepare(drvdata->clk); ux500_msp_dai_shutdown()
451 clk_disable_unprepare(drvdata->pclk); ux500_msp_dai_shutdown()
454 ret = regulator_disable(drvdata->reg_vape); ux500_msp_dai_shutdown()
465 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_prepare() local
474 ret = ux500_msp_i2s_open(drvdata->msp, &msp_config); ux500_msp_dai_prepare()
482 if ((drvdata->fmt & SND_SOC_DAIFMT_MASTER_MASK) && ux500_msp_dai_prepare()
483 (drvdata->msp->f_bitclk > 19200000)) { ux500_msp_dai_prepare()
488 drvdata->vape_opp_constraint = 1; ux500_msp_dai_prepare()
492 drvdata->vape_opp_constraint = 0; ux500_msp_dai_prepare()
504 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_hw_params() local
509 switch (drvdata->fmt & SND_SOC_DAIFMT_FORMAT_MASK) { ux500_msp_dai_hw_params()
519 drvdata->tx_mask : ux500_msp_dai_hw_params()
520 drvdata->rx_mask; ux500_msp_dai_hw_params()
533 __func__, drvdata->fmt); ux500_msp_dai_hw_params()
543 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_set_dai_fmt() local
560 __func__, drvdata->fmt); ux500_msp_dai_set_dai_fmt()
573 __func__, drvdata->fmt); ux500_msp_dai_set_dai_fmt()
577 drvdata->fmt = fmt; ux500_msp_dai_set_dai_fmt()
586 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_set_tdm_slot() local
607 drvdata->slots = slots; ux500_msp_dai_set_tdm_slot()
614 drvdata->slot_width = slot_width; ux500_msp_dai_set_tdm_slot()
616 drvdata->tx_mask = tx_mask & cap; ux500_msp_dai_set_tdm_slot()
617 drvdata->rx_mask = rx_mask & cap; ux500_msp_dai_set_tdm_slot()
625 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_set_dai_sysclk() local
632 drvdata->master_clk = freq; ux500_msp_dai_set_dai_sysclk()
648 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_trigger() local
652 (int)drvdata->msp->id, cmd); ux500_msp_dai_trigger()
654 ret = ux500_msp_i2s_trigger(drvdata->msp, cmd, substream->stream); ux500_msp_dai_trigger()
661 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_of_probe() local
677 playback_dma_data->addr = drvdata->msp->playback_dma_data.tx_rx_addr; ux500_msp_dai_of_probe()
678 capture_dma_data->addr = drvdata->msp->capture_dma_data.tx_rx_addr; ux500_msp_dai_of_probe()
690 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev); ux500_msp_dai_probe() local
699 drvdata->msp->playback_dma_data.data_size = drvdata->slot_width; ux500_msp_dai_probe()
700 drvdata->msp->capture_dma_data.data_size = drvdata->slot_width; ux500_msp_dai_probe()
703 &drvdata->msp->playback_dma_data, ux500_msp_dai_probe()
704 &drvdata->msp->capture_dma_data); ux500_msp_dai_probe()
743 struct ux500_msp_i2s_drvdata *drvdata; ux500_msp_drv_probe() local
753 drvdata = devm_kzalloc(&pdev->dev, ux500_msp_drv_probe()
756 if (!drvdata) ux500_msp_drv_probe()
759 drvdata->fmt = 0; ux500_msp_drv_probe()
760 drvdata->slots = 1; ux500_msp_drv_probe()
761 drvdata->tx_mask = 0x01; ux500_msp_drv_probe()
762 drvdata->rx_mask = 0x01; ux500_msp_drv_probe()
763 drvdata->slot_width = 16; ux500_msp_drv_probe()
764 drvdata->master_clk = MSP_INPUT_FREQ_APB; ux500_msp_drv_probe()
766 drvdata->reg_vape = devm_regulator_get(&pdev->dev, "v-ape"); ux500_msp_drv_probe()
767 if (IS_ERR(drvdata->reg_vape)) { ux500_msp_drv_probe()
768 ret = (int)PTR_ERR(drvdata->reg_vape); ux500_msp_drv_probe()
776 drvdata->pclk = devm_clk_get(&pdev->dev, "apb_pclk"); ux500_msp_drv_probe()
777 if (IS_ERR(drvdata->pclk)) { ux500_msp_drv_probe()
778 ret = (int)PTR_ERR(drvdata->pclk); ux500_msp_drv_probe()
785 drvdata->clk = devm_clk_get(&pdev->dev, NULL); ux500_msp_drv_probe()
786 if (IS_ERR(drvdata->clk)) { ux500_msp_drv_probe()
787 ret = (int)PTR_ERR(drvdata->clk); ux500_msp_drv_probe()
794 ret = ux500_msp_i2s_init_msp(pdev, &drvdata->msp, ux500_msp_drv_probe()
796 if (!drvdata->msp) { ux500_msp_drv_probe()
802 dev_set_drvdata(&pdev->dev, drvdata); ux500_msp_drv_probe()
808 __func__, drvdata->msp->id); ux500_msp_drv_probe()
829 struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(&pdev->dev); ux500_msp_drv_remove() local
837 ux500_msp_i2s_cleanup_msp(pdev, drvdata->msp); ux500_msp_drv_remove()
H A Dmop500_ab8500.c88 struct mop500_ab8500_drvdata *drvdata) mop500_ab8500_set_mclk()
93 if (IS_ERR(drvdata->clk_ptr_intclk)) { mop500_ab8500_set_mclk()
99 switch (drvdata->mclk_sel) { mop500_ab8500_set_mclk()
101 clk_ptr = drvdata->clk_ptr_sysclk; mop500_ab8500_set_mclk()
104 clk_ptr = drvdata->clk_ptr_ulpclk; mop500_ab8500_set_mclk()
112 get_mclk_str(drvdata->mclk_sel)); mop500_ab8500_set_mclk()
116 status = clk_set_parent(drvdata->clk_ptr_intclk, clk_ptr); mop500_ab8500_set_mclk()
120 __func__, get_mclk_str(drvdata->mclk_sel), status); mop500_ab8500_set_mclk()
124 __func__, get_mclk_str(drvdata->mclk_sel)); mop500_ab8500_set_mclk()
137 struct mop500_ab8500_drvdata *drvdata = mclk_input_control_get() local
140 ucontrol->value.enumerated.item[0] = drvdata->mclk_sel; mclk_input_control_get()
149 struct mop500_ab8500_drvdata *drvdata = mclk_input_control_put() local
155 if (drvdata->mclk_sel == val) mclk_input_control_put()
158 drvdata->mclk_sel = val; mclk_input_control_put()
367 struct mop500_ab8500_drvdata *drvdata; mop500_ab8500_machine_init() local
373 drvdata = devm_kzalloc(dev, sizeof(struct mop500_ab8500_drvdata), mop500_ab8500_machine_init()
376 if (!drvdata) mop500_ab8500_machine_init()
379 snd_soc_card_set_drvdata(rtd->card, drvdata); mop500_ab8500_machine_init()
383 drvdata->clk_ptr_sysclk = clk_get(dev, "sysclk"); mop500_ab8500_machine_init()
384 if (IS_ERR(drvdata->clk_ptr_sysclk)) mop500_ab8500_machine_init()
387 drvdata->clk_ptr_ulpclk = clk_get(dev, "ulpclk"); mop500_ab8500_machine_init()
388 if (IS_ERR(drvdata->clk_ptr_ulpclk)) mop500_ab8500_machine_init()
391 drvdata->clk_ptr_intclk = clk_get(dev, "intclk"); mop500_ab8500_machine_init()
392 if (IS_ERR(drvdata->clk_ptr_intclk)) mop500_ab8500_machine_init()
397 drvdata->mclk_sel = MCLK_ULPCLK; mop500_ab8500_machine_init()
398 ret = mop500_ab8500_set_mclk(dev, drvdata); mop500_ab8500_machine_init()
403 drvdata->mclk_sel = MCLK_ULPCLK; mop500_ab8500_machine_init()
437 struct mop500_ab8500_drvdata *drvdata = snd_soc_card_get_drvdata(card); mop500_ab8500_remove() local
439 if (drvdata->clk_ptr_sysclk != NULL) mop500_ab8500_remove()
440 clk_put(drvdata->clk_ptr_sysclk); mop500_ab8500_remove()
441 if (drvdata->clk_ptr_ulpclk != NULL) mop500_ab8500_remove()
442 clk_put(drvdata->clk_ptr_ulpclk); mop500_ab8500_remove()
443 if (drvdata->clk_ptr_intclk != NULL) mop500_ab8500_remove()
444 clk_put(drvdata->clk_ptr_intclk); mop500_ab8500_remove()
446 snd_soc_card_set_drvdata(card, drvdata); mop500_ab8500_remove()
87 mop500_ab8500_set_mclk(struct device *dev, struct mop500_ab8500_drvdata *drvdata) mop500_ab8500_set_mclk() argument
H A Dmop500.c116 dev_dbg(&pdev->dev, "%s: Card %s: Set platform drvdata.\n", mop500_probe()
/linux-4.4.14/drivers/edac/
H A Dhighbank_l2_edac.c39 struct hb_l2_drvdata *drvdata = dci->pvt_info; highbank_l2_err_handler() local
41 if (irq == drvdata->sb_irq) { highbank_l2_err_handler()
42 writel(1, drvdata->base + SR_CLR_SB_ECC_INTR); highbank_l2_err_handler()
45 if (irq == drvdata->db_irq) { highbank_l2_err_handler()
46 writel(1, drvdata->base + SR_CLR_DB_ECC_INTR); highbank_l2_err_handler()
63 struct hb_l2_drvdata *drvdata; highbank_l2_err_probe() local
67 dci = edac_device_alloc_ctl_info(sizeof(*drvdata), "cpu", highbank_l2_err_probe()
72 drvdata = dci->pvt_info; highbank_l2_err_probe()
93 drvdata->base = devm_ioremap(&pdev->dev, r->start, resource_size(r)); highbank_l2_err_probe()
94 if (!drvdata->base) { highbank_l2_err_probe()
108 drvdata->db_irq = platform_get_irq(pdev, 0); highbank_l2_err_probe()
109 res = devm_request_irq(&pdev->dev, drvdata->db_irq, highbank_l2_err_probe()
115 drvdata->sb_irq = platform_get_irq(pdev, 1); highbank_l2_err_probe()
116 res = devm_request_irq(&pdev->dev, drvdata->sb_irq, highbank_l2_err_probe()
H A Dhighbank_mc_edac.c68 struct hb_mc_drvdata *drvdata = mci->pvt_info; highbank_mc_err_handler() local
72 status = readl(drvdata->mc_int_base + HB_DDR_ECC_INT_STATUS); highbank_mc_err_handler()
75 err_addr = readl(drvdata->mc_err_base + HB_DDR_ECC_U_ERR_ADDR); highbank_mc_err_handler()
83 u32 syndrome = readl(drvdata->mc_err_base + HB_DDR_ECC_C_ERR_STAT); highbank_mc_err_handler()
85 err_addr = readl(drvdata->mc_err_base + HB_DDR_ECC_C_ERR_ADDR); highbank_mc_err_handler()
94 writel(status, drvdata->mc_int_base + HB_DDR_ECC_INT_ACK); highbank_mc_err_handler()
162 struct hb_mc_drvdata *drvdata; highbank_mc_probe() local
186 drvdata = mci->pvt_info; highbank_mc_probe()
214 drvdata->mc_err_base = base + settings->err_offset; highbank_mc_probe()
215 drvdata->mc_int_base = base + settings->int_offset; highbank_mc_probe()
217 control = readl(drvdata->mc_err_base + HB_DDR_ECC_OPT) & 0x3; highbank_mc_probe()
H A Daltera_edac.c81 struct altr_sdram_mc_data *drvdata = mci->pvt_info; altr_sdram_mc_err_handler() local
82 const struct altr_sdram_prv_data *priv = drvdata->data; altr_sdram_mc_err_handler()
85 regmap_read(drvdata->mc_vbase, priv->ecc_stat_offset, &status); altr_sdram_mc_err_handler()
88 regmap_read(drvdata->mc_vbase, priv->ecc_daddr_offset, altr_sdram_mc_err_handler()
91 regmap_read(drvdata->mc_vbase, priv->ecc_uecnt_offset, altr_sdram_mc_err_handler()
97 regmap_read(drvdata->mc_vbase, priv->ecc_saddr_offset, altr_sdram_mc_err_handler()
100 regmap_read(drvdata->mc_vbase, priv->ecc_cecnt_offset, altr_sdram_mc_err_handler()
107 regmap_write(drvdata->mc_vbase, priv->ecc_irq_clr_offset, altr_sdram_mc_err_handler()
120 struct altr_sdram_mc_data *drvdata = mci->pvt_info; altr_sdr_mc_err_inject_write() local
121 const struct altr_sdram_prv_data *priv = drvdata->data; altr_sdr_mc_err_inject_write()
134 regmap_read(drvdata->mc_vbase, priv->ce_ue_trgr_offset, altr_sdr_mc_err_inject_write()
145 regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset, altr_sdr_mc_err_inject_write()
150 regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset, altr_sdr_mc_err_inject_write()
158 regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset, read_reg); altr_sdr_mc_err_inject_write()
287 struct altr_sdram_mc_data *drvdata; altr_sdram_probe() local
373 drvdata = mci->pvt_info; altr_sdram_probe()
374 drvdata->mc_vbase = mc_vbase; altr_sdram_probe()
375 drvdata->data = priv; altr_sdram_probe()
439 if (regmap_update_bits(drvdata->mc_vbase, priv->ecc_irq_en_offset, altr_sdram_probe()
/linux-4.4.14/drivers/pinctrl/samsung/
H A Dpinctrl-samsung.c187 static int samsung_dt_subnode_to_map(struct samsung_pinctrl_drv_data *drvdata, samsung_dt_subnode_to_map() argument
267 struct samsung_pinctrl_drv_data *drvdata; samsung_dt_node_to_map() local
272 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_dt_node_to_map()
279 return samsung_dt_subnode_to_map(drvdata, pctldev->dev, samsung_dt_node_to_map()
285 ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map, for_each_child_of_node()
308 struct samsung_pinctrl_drv_data *drvdata; samsung_get_functions_count() local
310 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_get_functions_count()
311 return drvdata->nr_functions; samsung_get_functions_count()
318 struct samsung_pinctrl_drv_data *drvdata; samsung_pinmux_get_fname() local
320 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinmux_get_fname()
321 return drvdata->pmx_functions[selector].name; samsung_pinmux_get_fname()
329 struct samsung_pinctrl_drv_data *drvdata; samsung_pinmux_get_groups() local
331 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinmux_get_groups()
332 *groups = drvdata->pmx_functions[selector].groups; samsung_pinmux_get_groups()
333 *num_groups = drvdata->pmx_functions[selector].num_groups; samsung_pinmux_get_groups()
341 static void pin_to_reg_bank(struct samsung_pinctrl_drv_data *drvdata, pin_to_reg_bank() argument
347 b = drvdata->pin_banks; pin_to_reg_bank()
353 *reg = drvdata->virt_base + b->pctl_offset; pin_to_reg_bank()
363 struct samsung_pinctrl_drv_data *drvdata; samsung_pinmux_setup() local
372 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinmux_setup()
373 func = &drvdata->pmx_functions[selector]; samsung_pinmux_setup()
374 grp = &drvdata->pin_groups[group]; samsung_pinmux_setup()
376 pin_to_reg_bank(drvdata, grp->pins[0] - drvdata->pin_base, samsung_pinmux_setup()
419 struct samsung_pinctrl_drv_data *drvdata; samsung_pinconf_rw() local
428 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinconf_rw()
429 pin_to_reg_bank(drvdata, pin - drvdata->pin_base, &reg_base, samsung_pinconf_rw()
488 struct samsung_pinctrl_drv_data *drvdata; samsung_pinconf_group_set() local
492 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinconf_group_set()
493 pins = drvdata->pin_groups[group].pins; samsung_pinconf_group_set()
495 for (cnt = 0; cnt < drvdata->pin_groups[group].num_pins; cnt++) samsung_pinconf_group_set()
505 struct samsung_pinctrl_drv_data *drvdata; samsung_pinconf_group_get() local
508 drvdata = pinctrl_dev_get_drvdata(pctldev); samsung_pinconf_group_get()
509 pins = drvdata->pin_groups[group].pins; samsung_pinconf_group_get()
531 reg = bank->drvdata->virt_base + bank->pctl_offset; samsung_gpio_set()
552 reg = bank->drvdata->virt_base + bank->pctl_offset; samsung_gpio_get()
569 struct samsung_pinctrl_drv_data *drvdata; samsung_gpio_set_direction() local
576 drvdata = bank->drvdata; samsung_gpio_set_direction()
578 reg = drvdata->virt_base + bank->pctl_offset + samsung_gpio_set_direction()
635 struct samsung_pinctrl_drv_data *drvdata, samsung_pinctrl_create_groups()
638 struct pinctrl_desc *ctrldesc = &drvdata->pctl; samsung_pinctrl_create_groups()
661 struct samsung_pinctrl_drv_data *drvdata, samsung_pinctrl_create_function()
705 struct samsung_pinctrl_drv_data *drvdata, samsung_pinctrl_create_functions()
754 ret = samsung_pinctrl_create_function(dev, drvdata, for_each_child_of_node()
766 ret = samsung_pinctrl_create_function(dev, drvdata, for_each_child_of_node()
788 struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_parse_dt()
795 groups = samsung_pinctrl_create_groups(dev, drvdata, &grp_cnt); samsung_pinctrl_parse_dt()
801 functions = samsung_pinctrl_create_functions(dev, drvdata, &func_cnt); samsung_pinctrl_parse_dt()
807 drvdata->pin_groups = groups; samsung_pinctrl_parse_dt()
808 drvdata->nr_groups = grp_cnt; samsung_pinctrl_parse_dt()
809 drvdata->pmx_functions = functions; samsung_pinctrl_parse_dt()
810 drvdata->nr_functions = func_cnt; samsung_pinctrl_parse_dt()
817 struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_register()
819 struct pinctrl_desc *ctrldesc = &drvdata->pctl; samsung_pinctrl_register()
832 drvdata->nr_pins, GFP_KERNEL); samsung_pinctrl_register()
838 ctrldesc->npins = drvdata->nr_pins; samsung_pinctrl_register()
842 pdesc->number = pin + drvdata->pin_base; samsung_pinctrl_register()
849 drvdata->nr_pins, GFP_KERNEL); samsung_pinctrl_register()
856 for (bank = 0; bank < drvdata->nr_banks; bank++) { samsung_pinctrl_register()
857 pin_bank = &drvdata->pin_banks[bank]; samsung_pinctrl_register()
866 ret = samsung_pinctrl_parse_dt(pdev, drvdata); samsung_pinctrl_register()
870 drvdata->pctl_dev = pinctrl_register(ctrldesc, &pdev->dev, drvdata); samsung_pinctrl_register()
871 if (IS_ERR(drvdata->pctl_dev)) { samsung_pinctrl_register()
873 return PTR_ERR(drvdata->pctl_dev); samsung_pinctrl_register()
876 for (bank = 0; bank < drvdata->nr_banks; ++bank) { samsung_pinctrl_register()
877 pin_bank = &drvdata->pin_banks[bank]; samsung_pinctrl_register()
880 pin_bank->grange.pin_base = drvdata->pin_base samsung_pinctrl_register()
885 pinctrl_add_gpio_range(drvdata->pctl_dev, &pin_bank->grange); samsung_pinctrl_register()
904 struct samsung_pinctrl_drv_data *drvdata) samsung_gpiolib_register()
906 struct samsung_pin_bank *bank = drvdata->pin_banks; samsung_gpiolib_register()
911 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) { samsung_gpiolib_register()
915 gc->base = drvdata->pin_base + bank->pin_base; samsung_gpiolib_register()
939 struct samsung_pinctrl_drv_data *drvdata) samsung_gpiolib_unregister()
941 struct samsung_pin_bank *bank = drvdata->pin_banks; samsung_gpiolib_unregister()
944 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) samsung_gpiolib_unregister()
995 bank->drvdata = d; samsung_pinctrl_get_soc_data()
1020 struct samsung_pinctrl_drv_data *drvdata; samsung_pinctrl_probe() local
1031 drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); samsung_pinctrl_probe()
1032 if (!drvdata) { samsung_pinctrl_probe()
1038 ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev); samsung_pinctrl_probe()
1043 drvdata->dev = dev; samsung_pinctrl_probe()
1046 drvdata->virt_base = devm_ioremap_resource(&pdev->dev, res); samsung_pinctrl_probe()
1047 if (IS_ERR(drvdata->virt_base)) samsung_pinctrl_probe()
1048 return PTR_ERR(drvdata->virt_base); samsung_pinctrl_probe()
1052 drvdata->irq = res->start; samsung_pinctrl_probe()
1054 ret = samsung_gpiolib_register(pdev, drvdata); samsung_pinctrl_probe()
1058 ret = samsung_pinctrl_register(pdev, drvdata); samsung_pinctrl_probe()
1060 samsung_gpiolib_unregister(pdev, drvdata); samsung_pinctrl_probe()
1065 ctrl->eint_gpio_init(drvdata); samsung_pinctrl_probe()
1067 ctrl->eint_wkup_init(drvdata); samsung_pinctrl_probe()
1069 platform_set_drvdata(pdev, drvdata); samsung_pinctrl_probe()
1072 list_add_tail(&drvdata->node, &drvdata_list); samsung_pinctrl_probe()
1085 struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_suspend_dev()
1087 void __iomem *virt_base = drvdata->virt_base; samsung_pinctrl_suspend_dev()
1090 for (i = 0; i < drvdata->nr_banks; i++) { samsung_pinctrl_suspend_dev()
1091 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; samsung_pinctrl_suspend_dev()
1119 if (drvdata->suspend) samsung_pinctrl_suspend_dev()
1120 drvdata->suspend(drvdata); samsung_pinctrl_suspend_dev()
1131 static void samsung_pinctrl_resume_dev(struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_resume_dev() argument
1133 void __iomem *virt_base = drvdata->virt_base; samsung_pinctrl_resume_dev()
1136 if (drvdata->resume) samsung_pinctrl_resume_dev()
1137 drvdata->resume(drvdata); samsung_pinctrl_resume_dev()
1139 for (i = 0; i < drvdata->nr_banks; i++) { samsung_pinctrl_resume_dev()
1140 struct samsung_pin_bank *bank = &drvdata->pin_banks[i]; samsung_pinctrl_resume_dev()
1178 struct samsung_pinctrl_drv_data *drvdata; samsung_pinctrl_suspend() local
1180 list_for_each_entry(drvdata, &drvdata_list, node) { samsung_pinctrl_suspend()
1181 samsung_pinctrl_suspend_dev(drvdata); samsung_pinctrl_suspend()
1194 struct samsung_pinctrl_drv_data *drvdata; samsung_pinctrl_resume() local
1196 list_for_each_entry_reverse(drvdata, &drvdata_list, node) { samsung_pinctrl_resume()
1197 samsung_pinctrl_resume_dev(drvdata); samsung_pinctrl_resume()
633 samsung_pinctrl_create_groups( struct device *dev, struct samsung_pinctrl_drv_data *drvdata, unsigned int *cnt) samsung_pinctrl_create_groups() argument
660 samsung_pinctrl_create_function(struct device *dev, struct samsung_pinctrl_drv_data *drvdata, struct device_node *func_np, struct samsung_pmx_func *func) samsung_pinctrl_create_function() argument
703 samsung_pinctrl_create_functions( struct device *dev, struct samsung_pinctrl_drv_data *drvdata, unsigned int *cnt) samsung_pinctrl_create_functions() argument
787 samsung_pinctrl_parse_dt(struct platform_device *pdev, struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_parse_dt() argument
816 samsung_pinctrl_register(struct platform_device *pdev, struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_register() argument
903 samsung_gpiolib_register(struct platform_device *pdev, struct samsung_pinctrl_drv_data *drvdata) samsung_gpiolib_register() argument
938 samsung_gpiolib_unregister(struct platform_device *pdev, struct samsung_pinctrl_drv_data *drvdata) samsung_gpiolib_unregister() argument
1084 samsung_pinctrl_suspend_dev( struct samsung_pinctrl_drv_data *drvdata) samsung_pinctrl_suspend_dev() argument
H A Dpinctrl-s3c64xx.c202 * @drvdata: pin controller driver data
207 struct samsung_pinctrl_drv_data *drvdata; member in struct:s3c64xx_eint0_data
224 * @drvdata: pin controller driver data
228 struct samsung_pinctrl_drv_data *drvdata; member in struct:s3c64xx_eint_gpio_data
311 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c64xx_gpio_irq_set_mask()
337 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c64xx_gpio_irq_ack()
347 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c64xx_gpio_irq_set_type()
414 struct samsung_pinctrl_drv_data *drvdata = data->drvdata; s3c64xx_eint_gpio_irq() local
424 svc = readl(drvdata->virt_base + SERVICE_REG); s3c64xx_eint_gpio_irq()
497 data->drvdata = d; s3c64xx_eint_gpio_init()
521 struct samsung_pinctrl_drv_data *d = ddata->bank->drvdata; s3c64xx_eint0_irq_set_mask()
546 struct samsung_pinctrl_drv_data *d = ddata->bank->drvdata; s3c64xx_eint0_irq_ack()
557 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c64xx_eint0_irq_set_type()
605 struct samsung_pinctrl_drv_data *drvdata = data->drvdata; s3c64xx_irq_demux_eint() local
610 pend = readl(drvdata->virt_base + EINT0PEND_REG); s3c64xx_irq_demux_eint()
611 mask = readl(drvdata->virt_base + EINT0MASK_REG); s3c64xx_irq_demux_eint()
718 data->drvdata = d; s3c64xx_eint_eint0_init()
H A Dpinctrl-s3c24xx.c89 * @drvdata: pin controller driver data
94 struct samsung_pinctrl_drv_data *drvdata; member in struct:s3c24xx_eint_data
171 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c24xx_eint_type()
262 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c2412_eint0_3_ack()
271 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c2412_eint0_3_mask()
282 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c2412_eint0_3_unmask()
322 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c24xx_eint_ack()
331 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c24xx_eint_mask()
343 struct samsung_pinctrl_drv_data *d = bank->drvdata; s3c24xx_eint_unmask()
365 struct samsung_pinctrl_drv_data *d = data->drvdata; s3c24xx_demux_eint()
501 eint_data->drvdata = d; s3c24xx_eint_init()
H A Dpinctrl-exynos.c64 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_mask()
83 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_ack()
94 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_unmask()
124 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_set_type()
169 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_request_resources()
208 struct samsung_pinctrl_drv_data *d = bank->drvdata; exynos_irq_release_resources()
458 struct samsung_pinctrl_drv_data *d = eintd->banks[0]->drvdata; exynos_irq_demux_eint16_31()
583 struct samsung_pinctrl_drv_data *drvdata, exynos_pinctrl_suspend_bank()
587 void __iomem *regs = drvdata->virt_base; exynos_pinctrl_suspend_bank()
601 static void exynos_pinctrl_suspend(struct samsung_pinctrl_drv_data *drvdata) exynos_pinctrl_suspend() argument
603 struct samsung_pin_bank *bank = drvdata->pin_banks; exynos_pinctrl_suspend()
606 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) exynos_pinctrl_suspend()
608 exynos_pinctrl_suspend_bank(drvdata, bank); exynos_pinctrl_suspend()
612 struct samsung_pinctrl_drv_data *drvdata, exynos_pinctrl_resume_bank()
616 void __iomem *regs = drvdata->virt_base; exynos_pinctrl_resume_bank()
636 static void exynos_pinctrl_resume(struct samsung_pinctrl_drv_data *drvdata) exynos_pinctrl_resume() argument
638 struct samsung_pin_bank *bank = drvdata->pin_banks; exynos_pinctrl_resume()
641 for (i = 0; i < drvdata->nr_banks; ++i, ++bank) exynos_pinctrl_resume()
643 exynos_pinctrl_resume_bank(drvdata, bank); exynos_pinctrl_resume()
582 exynos_pinctrl_suspend_bank( struct samsung_pinctrl_drv_data *drvdata, struct samsung_pin_bank *bank) exynos_pinctrl_suspend_bank() argument
611 exynos_pinctrl_resume_bank( struct samsung_pinctrl_drv_data *drvdata, struct samsung_pin_bank *bank) exynos_pinctrl_resume_bank() argument
H A Dpinctrl-samsung.h150 * @drvdata: link to controller driver data
171 struct samsung_pinctrl_drv_data *drvdata; member in struct:samsung_pin_bank
/linux-4.4.14/drivers/iommu/
H A Dmsm_iommu_dev.c133 struct msm_iommu_drvdata *drvdata; msm_iommu_probe() local
143 drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL); msm_iommu_probe()
145 if (!drvdata) { msm_iommu_probe()
209 "msm_iommu_secure_irpt_handler", drvdata); msm_iommu_probe()
216 drvdata->pclk = iommu_pclk; msm_iommu_probe()
217 drvdata->clk = iommu_clk; msm_iommu_probe()
218 drvdata->base = regs_base; msm_iommu_probe()
219 drvdata->irq = irq; msm_iommu_probe()
220 drvdata->ncb = iommu_dev->ncb; msm_iommu_probe()
225 platform_set_drvdata(pdev, drvdata); msm_iommu_probe()
242 kfree(drvdata); msm_iommu_probe()
267 struct msm_iommu_drvdata *drvdata; msm_iommu_ctx_probe() local
274 drvdata = dev_get_drvdata(pdev->dev.parent); msm_iommu_ctx_probe()
275 if (!drvdata) msm_iommu_ctx_probe()
288 ret = clk_prepare_enable(drvdata->pclk); msm_iommu_ctx_probe()
292 if (drvdata->clk) { msm_iommu_ctx_probe()
293 ret = clk_prepare_enable(drvdata->clk); msm_iommu_ctx_probe()
295 clk_disable_unprepare(drvdata->pclk); msm_iommu_ctx_probe()
306 SET_M2VCBR_N(drvdata->base, mid, 0); msm_iommu_ctx_probe()
307 SET_CBACR_N(drvdata->base, c->num, 0); msm_iommu_ctx_probe()
310 SET_VMID(drvdata->base, mid, 0); msm_iommu_ctx_probe()
313 SET_CBNDX(drvdata->base, mid, c->num); msm_iommu_ctx_probe()
316 SET_CBVMID(drvdata->base, c->num, 0); msm_iommu_ctx_probe()
319 SET_CONTEXTIDR_ASID(drvdata->base, c->num, c->num); msm_iommu_ctx_probe()
322 SET_NSCFG(drvdata->base, mid, 3); msm_iommu_ctx_probe()
325 clk_disable(drvdata->clk); msm_iommu_ctx_probe()
326 clk_disable(drvdata->pclk); msm_iommu_ctx_probe()
H A Dmsm_iommu.c63 static int __enable_clocks(struct msm_iommu_drvdata *drvdata) __enable_clocks() argument
67 ret = clk_enable(drvdata->pclk); __enable_clocks()
71 if (drvdata->clk) { __enable_clocks()
72 ret = clk_enable(drvdata->clk); __enable_clocks()
74 clk_disable(drvdata->pclk); __enable_clocks()
80 static void __disable_clocks(struct msm_iommu_drvdata *drvdata) __disable_clocks() argument
82 clk_disable(drvdata->clk); __disable_clocks()
83 clk_disable(drvdata->pclk); __disable_clocks()
638 struct msm_iommu_drvdata *drvdata = dev_id; msm_iommu_fault_handler() local
645 if (!drvdata) { msm_iommu_fault_handler()
650 base = drvdata->base; msm_iommu_fault_handler()
655 ret = __enable_clocks(drvdata); msm_iommu_fault_handler()
659 for (i = 0; i < drvdata->ncb; i++) { msm_iommu_fault_handler()
668 __disable_clocks(drvdata); msm_iommu_fault_handler()
H A Diommu-sysfs.c57 struct device *iommu_device_create(struct device *parent, void *drvdata, iommu_device_create() argument
74 dev_set_drvdata(dev, drvdata); iommu_device_create()
H A Dtegra-smmu.c886 * callback via the IOMMU device's .drvdata field. tegra_smmu_probe()
/linux-4.4.14/sound/soc/davinci/
H A Ddavinci-evm.c36 struct snd_soc_card_drvdata_davinci *drvdata = evm_startup() local
39 if (drvdata->mclk) evm_startup()
40 return clk_prepare_enable(drvdata->mclk); evm_startup()
49 struct snd_soc_card_drvdata_davinci *drvdata = evm_shutdown() local
52 if (drvdata->mclk) evm_shutdown()
53 clk_disable_unprepare(drvdata->mclk); evm_shutdown()
260 .drvdata = &dm6446_snd_soc_card_drvdata,
274 .drvdata = &dm355_snd_soc_card_drvdata,
287 .drvdata = &dm365_snd_soc_card_drvdata,
300 .drvdata = &dm6467_snd_soc_card_drvdata,
312 .drvdata = &da830_snd_soc_card_drvdata,
324 .drvdata = &da850_snd_soc_card_drvdata,
364 struct snd_soc_card_drvdata_davinci *drvdata = NULL; davinci_evm_probe() local
393 drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); davinci_evm_probe()
394 if (!drvdata) davinci_evm_probe()
397 drvdata->mclk = mclk; davinci_evm_probe()
399 ret = of_property_read_u32(np, "ti,codec-clock-rate", &drvdata->sysclk); davinci_evm_probe()
402 if (!drvdata->mclk) { davinci_evm_probe()
407 drvdata->sysclk = clk_get_rate(drvdata->mclk); davinci_evm_probe()
408 } else if (drvdata->mclk) { davinci_evm_probe()
409 unsigned int requestd_rate = drvdata->sysclk; davinci_evm_probe()
410 clk_set_rate(drvdata->mclk, drvdata->sysclk); davinci_evm_probe()
411 drvdata->sysclk = clk_get_rate(drvdata->mclk); davinci_evm_probe()
412 if (drvdata->sysclk != requestd_rate) davinci_evm_probe()
415 requestd_rate, drvdata->sysclk); davinci_evm_probe()
418 snd_soc_card_set_drvdata(&evm_soc_card, drvdata); davinci_evm_probe()
/linux-4.4.14/sound/soc/codecs/
H A Dsti-sas.c113 struct sti_sas_data *drvdata = context; sti_sas_read_reg() local
117 status = regmap_read(drvdata->dac.regmap, reg, &val); sti_sas_read_reg()
127 struct sti_sas_data *drvdata = context; sti_sas_write_reg() local
130 status = regmap_write(drvdata->dac.regmap, reg, value); sti_sas_write_reg()
223 struct sti_sas_data *drvdata = dev_get_drvdata(codec->dev); stih416_dac_probe() local
224 struct sti_dac_audio *dac = &drvdata->dac; stih416_dac_probe()
364 struct sti_sas_data *drvdata = dev_get_drvdata(codec->dev); sti_sas_set_sysclk() local
374 drvdata->spdif.mclk = freq; sti_sas_set_sysclk()
378 drvdata->dac.mclk = freq; sti_sas_set_sysclk()
389 struct sti_sas_data *drvdata = dev_get_drvdata(codec->dev); sti_sas_prepare() local
394 if ((drvdata->spdif.mclk / runtime->rate) != 128) { sti_sas_prepare()
400 if ((drvdata->dac.mclk / runtime->rate) != 256) { sti_sas_prepare()
511 struct sti_sas_data *drvdata = dev_get_drvdata(codec->dev); sti_sas_resume() local
513 return sti_sas_init_sas_registers(codec, drvdata); sti_sas_resume()
521 struct sti_sas_data *drvdata = dev_get_drvdata(codec->dev); sti_sas_codec_probe() local
524 ret = sti_sas_init_sas_registers(codec, drvdata); sti_sas_codec_probe()
549 struct sti_sas_data *drvdata; sti_sas_driver_probe() local
553 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct sti_sas_data), sti_sas_driver_probe()
555 if (!drvdata) sti_sas_driver_probe()
565 drvdata->dev_data = (struct sti_sas_dev_data *)of_id->data; sti_sas_driver_probe()
568 drvdata->dev = &pdev->dev; sti_sas_driver_probe()
571 drvdata->dac.virt_regmap = devm_regmap_init(&pdev->dev, NULL, drvdata, sti_sas_driver_probe()
572 drvdata->dev_data->regmap); sti_sas_driver_probe()
573 if (IS_ERR(drvdata->dac.virt_regmap)) { sti_sas_driver_probe()
575 return PTR_ERR(drvdata->dac.virt_regmap); sti_sas_driver_probe()
579 drvdata->dac.regmap = sti_sas_driver_probe()
581 if (IS_ERR(drvdata->dac.regmap)) { sti_sas_driver_probe()
583 return PTR_ERR(drvdata->dac.regmap); sti_sas_driver_probe()
585 drvdata->spdif.regmap = drvdata->dac.regmap; sti_sas_driver_probe()
588 if (drvdata->dev_data->chipid == CHIPID_STIH416) sti_sas_driver_probe()
591 sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops; sti_sas_driver_probe()
594 sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets; sti_sas_driver_probe()
595 sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets; sti_sas_driver_probe()
597 sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes; sti_sas_driver_probe()
598 sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes; sti_sas_driver_probe()
601 dev_set_drvdata(&pdev->dev, drvdata); sti_sas_driver_probe()
H A Dab8500-codec.c1091 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); anc_configure() local
1107 drvdata->anc_fir_values[par]); anc_configure()
1115 drvdata->anc_iir_values[par]); anc_configure()
1130 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); sid_status_control_get() local
1132 mutex_lock(&drvdata->ctrl_lock); sid_status_control_get()
1133 ucontrol->value.integer.value[0] = drvdata->sid_status; sid_status_control_get()
1134 mutex_unlock(&drvdata->ctrl_lock); sid_status_control_get()
1144 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); sid_status_control_put() local
1157 mutex_lock(&drvdata->ctrl_lock); sid_status_control_put()
1174 val = snd_soc_read(codec, drvdata->sid_fir_values[param]); sid_status_control_put()
1185 drvdata->sid_status = SID_FIR_CONFIGURED; sid_status_control_put()
1188 mutex_unlock(&drvdata->ctrl_lock); sid_status_control_put()
1199 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); anc_status_control_get() local
1201 mutex_lock(&drvdata->ctrl_lock); anc_status_control_get()
1202 ucontrol->value.integer.value[0] = drvdata->anc_status; anc_status_control_get()
1203 mutex_unlock(&drvdata->ctrl_lock); anc_status_control_get()
1213 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); anc_status_control_put() local
1221 mutex_lock(&drvdata->ctrl_lock); anc_status_control_put()
1250 if (drvdata->anc_status == ANC_IIR_CONFIGURED) anc_status_control_put()
1251 drvdata->anc_status = ANC_FIR_IIR_CONFIGURED; anc_status_control_put()
1252 else if (drvdata->anc_status != ANC_FIR_IIR_CONFIGURED) anc_status_control_put()
1253 drvdata->anc_status = ANC_FIR_CONFIGURED; anc_status_control_put()
1256 if (drvdata->anc_status == ANC_FIR_CONFIGURED) anc_status_control_put()
1257 drvdata->anc_status = ANC_FIR_IIR_CONFIGURED; anc_status_control_put()
1258 else if (drvdata->anc_status != ANC_FIR_IIR_CONFIGURED) anc_status_control_put()
1259 drvdata->anc_status = ANC_IIR_CONFIGURED; anc_status_control_put()
1266 mutex_unlock(&drvdata->ctrl_lock); anc_status_control_put()
1295 struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); filter_control_get() local
1300 mutex_lock(&drvdata->ctrl_lock); filter_control_get()
1303 mutex_unlock(&drvdata->ctrl_lock); filter_control_get()
1312 struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); filter_control_put() local
1317 mutex_lock(&drvdata->ctrl_lock); filter_control_put()
1320 mutex_unlock(&drvdata->ctrl_lock); filter_control_put()
2467 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(dev); ab8500_codec_probe() local
2537 drvdata->anc_fir_values = (long *)fc->value; ab8500_codec_probe()
2540 drvdata->anc_iir_values = (long *)fc->value; ab8500_codec_probe()
2543 drvdata->sid_fir_values = (long *)fc->value; ab8500_codec_probe()
2547 mutex_init(&drvdata->ctrl_lock); ab8500_codec_probe()
2565 struct ab8500_codec_drvdata *drvdata; ab8500_codec_driver_probe() local
2570 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct ab8500_codec_drvdata), ab8500_codec_driver_probe()
2572 if (!drvdata) ab8500_codec_driver_probe()
2574 drvdata->sid_status = SID_UNCONFIGURED; ab8500_codec_driver_probe()
2575 drvdata->anc_status = ANC_UNCONFIGURED; ab8500_codec_driver_probe()
2576 dev_set_drvdata(&pdev->dev, drvdata); ab8500_codec_driver_probe()
2578 drvdata->regmap = devm_regmap_init(&pdev->dev, NULL, &pdev->dev, ab8500_codec_driver_probe()
2580 if (IS_ERR(drvdata->regmap)) { ab8500_codec_driver_probe()
2581 status = PTR_ERR(drvdata->regmap); ab8500_codec_driver_probe()
H A Dak4642.c148 const struct ak4642_drvdata *drvdata; member in struct:ak4642_priv
382 if (extended_freq && !priv->drvdata->extended_frequencies) ak4642_dai_set_sysclk()
632 const struct ak4642_drvdata *drvdata = NULL; ak4642_i2c_probe() local
646 drvdata = of_id->data; ak4642_i2c_probe()
648 drvdata = (const struct ak4642_drvdata *)id->driver_data; ak4642_i2c_probe()
651 if (!drvdata) { ak4642_i2c_probe()
660 priv->drvdata = drvdata; ak4642_i2c_probe()
665 regmap = devm_regmap_init_i2c(i2c, drvdata->regmap_config); ak4642_i2c_probe()
H A Dcs42xx8.c41 const struct cs42xx8_driver_data *drvdata; member in struct:cs42xx8_priv
385 switch (cs42xx8->drvdata->num_adcs) { cs42xx8_codec_probe()
457 cs42xx8->drvdata = of_id->data; cs42xx8_probe()
459 if (!cs42xx8->drvdata) { cs42xx8_probe()
520 cs42xx8_dai.name = cs42xx8->drvdata->name; cs42xx8_probe()
523 cs42xx8_dai.capture.channels_max = cs42xx8->drvdata->num_adcs * 2; cs42xx8_probe()
/linux-4.4.14/drivers/hid/
H A Dhid-corsair.c394 struct corsair_drvdata *drvdata = hid_get_drvdata(dev); k90_init_backlight() local
398 drvdata->backlight = kzalloc(sizeof(struct k90_led), GFP_KERNEL); k90_init_backlight()
399 if (!drvdata->backlight) { k90_init_backlight()
413 drvdata->backlight->removed = false; k90_init_backlight()
414 drvdata->backlight->cdev.name = name; k90_init_backlight()
415 drvdata->backlight->cdev.max_brightness = 3; k90_init_backlight()
416 drvdata->backlight->cdev.brightness_set = k90_brightness_set; k90_init_backlight()
417 drvdata->backlight->cdev.brightness_get = k90_backlight_get; k90_init_backlight()
418 INIT_WORK(&drvdata->backlight->work, k90_backlight_work); k90_init_backlight()
419 ret = led_classdev_register(&dev->dev, &drvdata->backlight->cdev); k90_init_backlight()
426 kfree(drvdata->backlight->cdev.name); k90_init_backlight()
428 kfree(drvdata->backlight); k90_init_backlight()
429 drvdata->backlight = NULL; k90_init_backlight()
437 struct corsair_drvdata *drvdata = hid_get_drvdata(dev); k90_init_macro_functions() local
447 drvdata->k90 = k90; k90_init_macro_functions()
485 drvdata->k90 = NULL; k90_init_macro_functions()
491 struct corsair_drvdata *drvdata = hid_get_drvdata(dev); k90_cleanup_backlight() local
493 if (drvdata->backlight) { k90_cleanup_backlight()
494 drvdata->backlight->removed = true; k90_cleanup_backlight()
495 led_classdev_unregister(&drvdata->backlight->cdev); k90_cleanup_backlight()
496 cancel_work_sync(&drvdata->backlight->work); k90_cleanup_backlight()
497 kfree(drvdata->backlight->cdev.name); k90_cleanup_backlight()
498 kfree(drvdata->backlight); k90_cleanup_backlight()
504 struct corsair_drvdata *drvdata = hid_get_drvdata(dev); k90_cleanup_macro_functions() local
505 struct k90_drvdata *k90 = drvdata->k90; k90_cleanup_macro_functions()
523 struct corsair_drvdata *drvdata; corsair_probe() local
526 drvdata = devm_kzalloc(&dev->dev, sizeof(struct corsair_drvdata), corsair_probe()
528 if (drvdata == NULL) corsair_probe()
530 drvdata->quirks = quirks; corsair_probe()
531 hid_set_drvdata(dev, drvdata); corsair_probe()
571 struct corsair_drvdata *drvdata = hid_get_drvdata(dev); corsair_event() local
573 if (!drvdata->k90) corsair_event()
578 drvdata->k90->record_led.brightness = 1; corsair_event()
581 drvdata->k90->record_led.brightness = 0; corsair_event()
H A Dhid-uclogic.c638 struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev); uclogic_report_fixup() local
710 if (drvdata->rdesc != NULL) { uclogic_report_fixup()
711 rdesc = drvdata->rdesc; uclogic_report_fixup()
712 *rsize = drvdata->rsize; uclogic_report_fixup()
723 struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev); uclogic_input_mapping() local
726 if ((drvdata->ignore_pen_usage) && uclogic_input_mapping()
790 struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev); uclogic_tablet_enable() local
847 drvdata->rdesc = devm_kzalloc(&hdev->dev, uclogic_tablet_enable()
850 if (drvdata->rdesc == NULL) { uclogic_tablet_enable()
855 drvdata->rsize = sizeof(uclogic_tablet_rdesc_template); uclogic_tablet_enable()
858 memcpy(drvdata->rdesc, uclogic_tablet_rdesc_template, uclogic_tablet_enable()
859 drvdata->rsize); uclogic_tablet_enable()
860 for (p = drvdata->rdesc; uclogic_tablet_enable()
861 p <= drvdata->rdesc + drvdata->rsize - 4;) { uclogic_tablet_enable()
884 struct uclogic_drvdata *drvdata; uclogic_probe() local
894 drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL); uclogic_probe()
895 if (drvdata == NULL) uclogic_probe()
898 hid_set_drvdata(hdev, drvdata); uclogic_probe()
909 drvdata->invert_pen_inrange = true; uclogic_probe()
911 drvdata->ignore_pen_usage = true; uclogic_probe()
934 struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev); uclogic_raw_event() local
936 if ((drvdata->invert_pen_inrange) && uclogic_raw_event()
H A Dhid-lenovo.c658 * set drvdata to 1, i.e. the trackpoint. lenovo_probe_tpkbd()
815 * Only the trackpoint half of the keyboard has drvdata and stuff that lenovo_remove_tpkbd()
/linux-4.4.14/drivers/mtd/nand/
H A Dtxx9ndfmc.c89 struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev); ndregaddr() local
92 return drvdata->base + (reg << plat->shift); ndregaddr()
229 struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev); txx9ndfmc_initialize() local
249 txx9ndfmc_write(dev, (drvdata->hold << 4) | drvdata->spw, TXX9_NDFSPR); txx9ndfmc_initialize()
280 struct txx9ndfmc_drvdata *drvdata; txx9ndfmc_probe() local
284 drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL); txx9ndfmc_probe()
285 if (!drvdata) txx9ndfmc_probe()
288 drvdata->base = devm_ioremap_resource(&dev->dev, res); txx9ndfmc_probe()
289 if (IS_ERR(drvdata->base)) txx9ndfmc_probe()
290 return PTR_ERR(drvdata->base); txx9ndfmc_probe()
301 drvdata->hold = hold; txx9ndfmc_probe()
303 drvdata->spw = spw; txx9ndfmc_probe()
307 spin_lock_init(&drvdata->hw_control.lock); txx9ndfmc_probe()
308 init_waitqueue_head(&drvdata->hw_control.wq); txx9ndfmc_probe()
310 platform_set_drvdata(dev, drvdata); txx9ndfmc_probe()
344 chip->controller = &drvdata->hw_control; txx9ndfmc_probe()
374 drvdata->mtds[i] = mtd; txx9ndfmc_probe()
382 struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev); txx9ndfmc_remove() local
385 if (!drvdata) txx9ndfmc_remove()
388 struct mtd_info *mtd = drvdata->mtds[i]; txx9ndfmc_remove()
/linux-4.4.14/drivers/media/platform/exynos4-is/
H A Dfimc-is-sensor.h43 * @drvdata: a pointer to the sensor's parameters data structure
48 const struct sensor_drv_data *drvdata; member in struct:fimc_is_sensor
H A Dmedia-dev.c583 void *drvdata; fimc_md_register_platform_entity() local
591 drvdata = dev_get_drvdata(dev); fimc_md_register_platform_entity()
592 /* Some subdev didn't probe successfully id drvdata is NULL */ fimc_md_register_platform_entity()
593 if (drvdata) { fimc_md_register_platform_entity()
596 ret = register_fimc_entity(fmd, drvdata); fimc_md_register_platform_entity()
599 ret = register_fimc_lite_entity(fmd, drvdata); fimc_md_register_platform_entity()
602 ret = register_csis_entity(fmd, pdev, drvdata); fimc_md_register_platform_entity()
605 ret = register_fimc_is_entity(fmd, drvdata); fimc_md_register_platform_entity()
H A Dfimc-is.c171 sensor->drvdata = fimc_is_sensor_get_drvdata(node); fimc_is_parse_sensor_config()
172 if (!sensor->drvdata) { fimc_is_parse_sensor_config()
636 mcuctl_write(sensor->drvdata->id, is, MCUCTL_REG_ISSR(2)); fimc_is_hw_open_sensor()
643 sensor->drvdata->open_timeout); fimc_is_hw_open_sensor()
H A Dfimc-is-param.c258 switch (is->sensor->drvdata->id) { fimc_is_hw_get_sensor_max_framerate()
/linux-4.4.14/include/linux/
H A Dhwmon.h23 void *drvdata,
27 void *drvdata,
H A Dcpu.h44 struct device *cpu_device_create(struct device *parent, void *drvdata,
H A Diommu.h260 struct device *iommu_device_create(struct device *parent, void *drvdata,
515 void *drvdata, iommu_device_create()
514 iommu_device_create(struct device *parent, void *drvdata, const struct attribute_group **groups, const char *fmt, ...) iommu_device_create() argument
H A Dtty.h437 void *drvdata,
537 struct device *device, void *drvdata,
H A Ddevice.h1051 dev_t devt, void *drvdata,
1055 dev_t devt, void *drvdata,
1059 struct device *parent, dev_t devt, void *drvdata,
/linux-4.4.14/drivers/phy/
H A Dphy-exynos-dp-video.c30 const struct exynos_dp_video_phy_drvdata *drvdata; member in struct:exynos_dp_video_phy
38 return regmap_update_bits(state->regs, state->drvdata->phy_ctrl_offset, exynos_dp_video_phy_power_on()
47 return regmap_update_bits(state->regs, state->drvdata->phy_ctrl_offset, exynos_dp_video_phy_power_off()
97 state->drvdata = match->data; exynos_dp_video_phy_probe()
/linux-4.4.14/arch/arm/mach-s3c64xx/
H A Ddev-backlight.c32 struct samsung_bl_drvdata *drvdata = container_of(pdata, samsung_bl_init() local
34 struct samsung_bl_gpio_info *bl_gpio_info = drvdata->gpio_info; samsung_bl_init()
51 struct samsung_bl_drvdata *drvdata = container_of(pdata, samsung_bl_exit() local
53 struct samsung_bl_gpio_info *bl_gpio_info = drvdata->gpio_info; samsung_bl_exit()
/linux-4.4.14/drivers/net/can/c_can/
H A Dc_can_platform.c260 const struct c_can_driver_data *drvdata; c_can_plat_probe() local
265 drvdata = match->data; c_can_plat_probe()
267 drvdata = (struct c_can_driver_data *) c_can_plat_probe()
302 switch (drvdata->id) { c_can_plat_probe()
360 if (id >= drvdata->raminit_num) { c_can_plat_probe()
366 raminit->bits = drvdata->raminit_bits[id]; c_can_plat_probe()
367 raminit->needs_pulse = drvdata->raminit_pulse; c_can_plat_probe()
384 priv->type = drvdata->id; c_can_plat_probe()
/linux-4.4.14/drivers/hwmon/
H A Dhwmon.c87 * @drvdata: driver data to attach to created device
97 void *drvdata, hwmon_device_register_with_groups()
122 dev_set_drvdata(&hwdev->dev, drvdata); hwmon_device_register_with_groups()
182 * @drvdata: driver data to attach to created device
190 void *drvdata, devm_hwmon_device_register_with_groups()
202 hwdev = hwmon_device_register_with_groups(dev, name, drvdata, groups); devm_hwmon_device_register_with_groups()
96 hwmon_device_register_with_groups(struct device *dev, const char *name, void *drvdata, const struct attribute_group **groups) hwmon_device_register_with_groups() argument
189 devm_hwmon_device_register_with_groups(struct device *dev, const char *name, void *drvdata, const struct attribute_group **groups) devm_hwmon_device_register_with_groups() argument
H A Dmax1111.c58 /* writing to drvdata struct is not thread safe, wait on mutex */ max1111_read()
/linux-4.4.14/sound/soc/samsung/
H A Dbells.c63 struct bells_drvdata *bells = card->drvdata; bells_set_bias_level()
104 struct bells_drvdata *bells = card->drvdata; bells_set_bias_level_post()
139 struct bells_drvdata *bells = card->drvdata; bells_late_probe()
385 .drvdata = &wm2200_drvdata,
405 .drvdata = &wm5102_drvdata,
425 .drvdata = &wm5110_drvdata,
H A Di2s.c1241 dev_err(&pdev->dev, "Unable to get drvdata\n"); samsung_i2s_probe()
/linux-4.4.14/drivers/net/ethernet/xilinx/
H A Dxilinx_emaclite.c151 * @drvdata: Pointer to the Emaclite device private data
156 static void xemaclite_enable_interrupts(struct net_local *drvdata) xemaclite_enable_interrupts() argument
161 reg_data = __raw_readl(drvdata->base_addr + XEL_TSR_OFFSET); xemaclite_enable_interrupts()
163 drvdata->base_addr + XEL_TSR_OFFSET); xemaclite_enable_interrupts()
166 __raw_writel(XEL_RSR_RECV_IE_MASK, drvdata->base_addr + XEL_RSR_OFFSET); xemaclite_enable_interrupts()
169 __raw_writel(XEL_GIER_GIE_MASK, drvdata->base_addr + XEL_GIER_OFFSET); xemaclite_enable_interrupts()
174 * @drvdata: Pointer to the Emaclite device private data
179 static void xemaclite_disable_interrupts(struct net_local *drvdata) xemaclite_disable_interrupts() argument
184 __raw_writel(XEL_GIER_GIE_MASK, drvdata->base_addr + XEL_GIER_OFFSET); xemaclite_disable_interrupts()
187 reg_data = __raw_readl(drvdata->base_addr + XEL_TSR_OFFSET); xemaclite_disable_interrupts()
189 drvdata->base_addr + XEL_TSR_OFFSET); xemaclite_disable_interrupts()
192 reg_data = __raw_readl(drvdata->base_addr + XEL_RSR_OFFSET); xemaclite_disable_interrupts()
194 drvdata->base_addr + XEL_RSR_OFFSET); xemaclite_disable_interrupts()
299 * @drvdata: Pointer to the Emaclite device private data
312 static int xemaclite_send_data(struct net_local *drvdata, u8 *data, xemaclite_send_data() argument
319 addr = drvdata->base_addr + drvdata->next_tx_buf_to_use; xemaclite_send_data()
331 if (drvdata->tx_ping_pong != 0) xemaclite_send_data()
332 drvdata->next_tx_buf_to_use ^= XEL_BUFFER_OFFSET; xemaclite_send_data()
333 } else if (drvdata->tx_ping_pong != 0) { xemaclite_send_data()
366 * @drvdata: Pointer to the Emaclite device private data
374 static u16 xemaclite_recv_data(struct net_local *drvdata, u8 *data) xemaclite_recv_data() argument
381 addr = (drvdata->base_addr + drvdata->next_rx_buf_to_use); xemaclite_recv_data()
387 if (drvdata->rx_ping_pong != 0) xemaclite_recv_data()
388 drvdata->next_rx_buf_to_use ^= XEL_BUFFER_OFFSET; xemaclite_recv_data()
394 if (drvdata->rx_ping_pong != 0) xemaclite_recv_data()
448 * @drvdata: Pointer to the Emaclite device private data
457 static void xemaclite_update_address(struct net_local *drvdata, xemaclite_update_address() argument
464 addr = drvdata->base_addr + drvdata->next_tx_buf_to_use; xemaclite_update_address()
/linux-4.4.14/drivers/pci/host/
H A Dpci-layerscape.c52 const struct ls_pcie_drvdata *drvdata; member in struct:ls_pcie
134 pcie->drvdata->ltssm_shift) & ls_pcie_link_up()
218 pp->ops = pcie->drvdata->ops; ls_add_pcie_port()
251 pcie->drvdata = match->data; ls_pcie_probe()
252 pcie->lut = pcie->dbi + pcie->drvdata->lut_offset; ls_pcie_probe()
/linux-4.4.14/drivers/media/pci/mantis/
H A Dhopper_cards.c161 struct mantis_pci_drvdata *drvdata; hopper_pci_probe() local
173 drvdata = (void *)pci_id->driver_data; hopper_pci_probe()
177 config = drvdata->hwconfig; hopper_pci_probe()
180 mantis->rc_map_name = drvdata->rc_map_name; hopper_pci_probe()
H A Dmantis_cards.c171 struct mantis_pci_drvdata *drvdata; mantis_pci_probe() local
182 drvdata = (void *)pci_id->driver_data; mantis_pci_probe()
186 config = drvdata->hwconfig; mantis_pci_probe()
189 mantis->rc_map_name = drvdata->rc_map_name; mantis_pci_probe()
/linux-4.4.14/drivers/nvdimm/
H A Dnd.h196 int nd_btt_probe(struct nd_namespace_common *ndns, void *drvdata);
200 static inline int nd_btt_probe(struct nd_namespace_common *ndns, void *drvdata) nd_btt_probe() argument
218 int nd_pfn_probe(struct nd_namespace_common *ndns, void *drvdata);
223 static inline int nd_pfn_probe(struct nd_namespace_common *ndns, void *drvdata) nd_pfn_probe() argument
H A Dbtt_devs.c276 int nd_btt_probe(struct nd_namespace_common *ndns, void *drvdata) nd_btt_probe() argument
291 dev_set_drvdata(dev, drvdata); nd_btt_probe()
H A Dpfn_devs.c304 int nd_pfn_probe(struct nd_namespace_common *ndns, void *drvdata) nd_pfn_probe() argument
320 dev_set_drvdata(dev, drvdata); nd_pfn_probe()
/linux-4.4.14/drivers/base/
H A Dcpu.c397 __cpu_device_create(struct device *parent, void *drvdata, __cpu_device_create() argument
414 dev_set_drvdata(dev, drvdata); __cpu_device_create()
431 struct device *cpu_device_create(struct device *parent, void *drvdata, cpu_device_create() argument
439 dev = __cpu_device_create(parent, drvdata, groups, fmt, vargs); cpu_device_create()
H A Dcore.c1681 dev_t devt, void *drvdata, device_create_groups_vargs()
1703 dev_set_drvdata(dev, drvdata); device_create_groups_vargs()
1725 * @drvdata: the data to be added to the device for callbacks
1746 dev_t devt, void *drvdata, const char *fmt, device_create_vargs()
1749 return device_create_groups_vargs(class, parent, devt, drvdata, NULL, device_create_vargs()
1759 * @drvdata: the data to be added to the device for callbacks
1779 dev_t devt, void *drvdata, const char *fmt, ...) device_create()
1785 dev = device_create_vargs(class, parent, devt, drvdata, fmt, vargs); device_create()
1796 * @drvdata: the data to be added to the device for callbacks
1820 void *drvdata, device_create_with_groups()
1828 dev = device_create_groups_vargs(class, parent, devt, drvdata, groups, device_create_with_groups()
1680 device_create_groups_vargs(struct class *class, struct device *parent, dev_t devt, void *drvdata, const struct attribute_group **groups, const char *fmt, va_list args) device_create_groups_vargs() argument
1745 device_create_vargs(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, va_list args) device_create_vargs() argument
1778 device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...) device_create() argument
1818 device_create_with_groups(struct class *class, struct device *parent, dev_t devt, void *drvdata, const struct attribute_group **groups, const char *fmt, ...) device_create_with_groups() argument
/linux-4.4.14/include/linux/bcma/
H A Dbcma.h278 void *drvdata; member in struct:bcma_device
284 return core->drvdata; bcma_get_drvdata()
286 static inline void bcma_set_drvdata(struct bcma_device *core, void *drvdata) bcma_set_drvdata() argument
288 core->drvdata = drvdata; bcma_set_drvdata()
/linux-4.4.14/drivers/pinctrl/
H A Dpinctrl-rockchip.c101 * @drvdata: common pinctrl basedata
120 struct rockchip_pinctrl *drvdata; member in struct:rockchip_pin_bank
387 struct rockchip_pinctrl *info = bank->drvdata; rockchip_get_mux()
441 struct rockchip_pinctrl *info = bank->drvdata; rockchip_set_mux()
504 struct rockchip_pinctrl *info = bank->drvdata; rk2928_calc_pull_reg_and_bit()
524 struct rockchip_pinctrl *info = bank->drvdata; rk3188_calc_pull_reg_and_bit()
559 struct rockchip_pinctrl *info = bank->drvdata; rk3288_calc_pull_reg_and_bit()
593 struct rockchip_pinctrl *info = bank->drvdata; rk3288_calc_drv_reg_and_bit()
624 struct rockchip_pinctrl *info = bank->drvdata; rk3368_calc_pull_reg_and_bit()
655 struct rockchip_pinctrl *info = bank->drvdata; rk3368_calc_drv_reg_and_bit()
684 struct rockchip_pinctrl *info = bank->drvdata; rockchip_get_drive_perpin()
706 struct rockchip_pinctrl *info = bank->drvdata; rockchip_set_drive_perpin()
745 struct rockchip_pinctrl *info = bank->drvdata; rockchip_get_pull()
795 struct rockchip_pinctrl *info = bank->drvdata; rockchip_set_pull()
1474 dev_dbg(bank->drvdata->dev, "got irq for bank %s\n", bank->name); rockchip_irq_demux()
1488 dev_err(bank->drvdata->dev, "unmapped irq %d\n", irq); rockchip_irq_demux()
1492 dev_dbg(bank->drvdata->dev, "handling irq %d\n", irq); rockchip_irq_demux()
1892 bank->drvdata = d;
/linux-4.4.14/drivers/dma/
H A Dimx-sdma.c385 const struct sdma_driver_data *drvdata; member in struct:sdma_engine
523 u32 chnenbl0 = sdma->drvdata->chnenbl0; chnenbl_ofs()
967 if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events) sdma_config_channel()
973 if (sdmac->event_id1 >= sdmac->sdma->drvdata->num_events) sdma_config_channel()
1576 for (i = 0; i < sdma->drvdata->num_events; i++) sdma_init()
1668 const struct sdma_driver_data *drvdata = NULL; sdma_probe() local
1671 drvdata = of_id->data; sdma_probe()
1673 drvdata = (void *)pdev->id_entry->driver_data; sdma_probe()
1675 if (!drvdata) { sdma_probe()
1691 sdma->drvdata = drvdata; sdma_probe()
1762 if (sdma->drvdata->script_addrs) sdma_probe()
1763 sdma_add_scripts(sdma, sdma->drvdata->script_addrs); sdma_probe()
/linux-4.4.14/drivers/tty/
H A Dtty_port.c81 * @drvdata: Driver data to be set to device.
90 struct device *device, void *drvdata, tty_port_register_device_attr()
94 return tty_register_device_attr(driver, index, device, drvdata, tty_port_register_device_attr()
88 tty_port_register_device_attr(struct tty_port *port, struct tty_driver *driver, unsigned index, struct device *device, void *drvdata, const struct attribute_group **attr_grp) tty_port_register_device_attr() argument
H A Dtty_io.c3265 * @drvdata: Driver data to be set to device.
3280 void *drvdata, tty_register_device_attr()
3319 dev_set_drvdata(dev, drvdata); tty_register_device_attr()
3278 tty_register_device_attr(struct tty_driver *driver, unsigned index, struct device *device, void *drvdata, const struct attribute_group **attr_grp) tty_register_device_attr() argument
/linux-4.4.14/drivers/media/platform/s3c-camif/
H A Dcamif-core.c415 struct s3c_camif_drvdata *drvdata; s3c_camif_probe() local
435 drvdata = (void *)platform_get_device_id(pdev)->driver_data; s3c_camif_probe()
436 camif->variant = drvdata->variant; s3c_camif_probe()
/linux-4.4.14/drivers/media/platform/soc_camera/
H A Dsoc_camera_platform.c162 /* soc-camera convention: control's drvdata points to the subdev */ soc_camera_platform_probe()
H A Dmx2_camera.c1577 * We're done with drvdata here. Clear the pointer so that mx2_camera_probe()
1578 * v4l2 core can start using drvdata on its purpose. mx2_camera_probe()
/linux-4.4.14/drivers/power/
H A Daxp20x_usb_power.c180 dev_err(&pdev->dev, "Parent drvdata not set\n"); axp20x_usb_power_probe()
/linux-4.4.14/include/linux/ssb/
H A Dssb.h260 /* Some kernel subsystems poke with dev->drvdata, so we must use the
281 void *drvdata; /* Per-device data */ member in struct:ssb_device
298 dev->drvdata = data; ssb_set_drvdata()
303 return dev->drvdata; ssb_get_drvdata()
/linux-4.4.14/sound/pci/asihpi/
H A Dhpios.h149 /** pci drvdata points to an instance of this struct */
/linux-4.4.14/sound/soc/atmel/
H A Dsam9x5_wm8731.c178 struct sam9x5_drvdata *priv = card->drvdata; sam9x5_wm8731_driver_remove()
/linux-4.4.14/drivers/input/keyboard/
H A Dgpio_keys.c156 * @ddata: pointer to drvdata
204 * @ddata: pointer to drvdata
/linux-4.4.14/drivers/isdn/hardware/mISDN/
H A Dspeedfax.c491 pr_debug("%s: drvdata already removed\n", __func__); sfax_remove_pci()
H A Davmfritz.c1142 pr_info("%s: drvdata already removed\n", __func__); fritz_remove_pci()
H A DmISDNinfineon.c1146 pr_debug("%s: drvdata already removed\n", __func__); inf_remove()
H A Dnetjet.c1134 pr_info("%s drvdata already removed\n", __func__); nj_remove()
H A Dw6692.c1399 pr_notice("%s: drvdata already removed\n", __func__); w6692_remove_pci()
H A Dhfcpci.c2258 printk(KERN_DEBUG "%s: drvdata already removed\n", hfc_remove_pci()
H A Dhfcmulti.c5294 printk(KERN_DEBUG "%s: drvdata already removed\n", hfc_remove_pci()
/linux-4.4.14/drivers/media/common/saa7146/
H A Dsaa7146_core.c474 /* V4L extensions will set the pci drvdata to the v4l2_device in the saa7146_init_one()
/linux-4.4.14/drivers/media/platform/marvell-ccic/
H A Dmmp-driver.c78 * no handy unused drvdata to stash a backpointer in. So just
/linux-4.4.14/drivers/ata/
H A Dpata_icside.c587 * don't NULL out the drvdata - devres/libata wants it pata_icside_remove()
/linux-4.4.14/drivers/gpio/
H A Dgpio-brcmstb.c296 dev_err(&pdev->dev, "called %s without drvdata!\n", __func__); brcmstb_gpio_remove()
/linux-4.4.14/drivers/net/ethernet/ibm/emac/
H A Dcore.c2261 void *drvdata; member in struct:emac_depentry
2303 if (deps[i].drvdata == NULL) emac_check_deps()
2304 deps[i].drvdata = platform_get_drvdata(deps[i].ofdev); emac_check_deps()
2305 if (deps[i].drvdata != NULL) emac_check_deps()
2873 /* Set our drvdata last as we don't want them visible until we are emac_probe()
/linux-4.4.14/include/sound/
H A Dsoc.h1166 void *drvdata; member in struct:snd_soc_card
1468 card->drvdata = data; snd_soc_card_set_drvdata()
1473 return card->drvdata; snd_soc_card_get_drvdata()
/linux-4.4.14/drivers/usb/core/
H A Dhcd-pci.c69 * If the function's drvdata isn't set then it isn't bound to for_each_companion()
/linux-4.4.14/drivers/media/platform/s5p-tv/
H A Dhdmi_drv.c947 /* passing NULL owner prevents driver from erasing drvdata */ hdmi_probe()
/linux-4.4.14/drivers/vfio/
H A Dvfio.c685 * release call path, so we can't trust drvdata for the shortcut.
/linux-4.4.14/drivers/usb/host/
H A Dr8a66597-hcd.c430 * Only when resetting USB, it is necessary to erase drvdata. When free_usb_address()

Completed in 3861 milliseconds