Symbol: drvdata
drivers/acpi/fan_hwmon.c
30
static umode_t acpi_fan_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/acpi/fan_hwmon.c
33
const struct acpi_fan *fan = drvdata;
drivers/acpi/platform_profile.c
551
void *drvdata,
drivers/acpi/platform_profile.c
567
err = ops->probe(drvdata, pprof->choices);
drivers/acpi/platform_profile.c
579
err = ops->hidden_choices(drvdata, pprof->hidden_choices);
drivers/acpi/platform_profile.c
598
dev_set_drvdata(&pprof->dev, drvdata);
drivers/acpi/platform_profile.c
666
void *drvdata,
drivers/acpi/platform_profile.c
676
ppdev = platform_profile_register(dev, name, drvdata, ops);
drivers/auxdisplay/charlcd.c
50
unsigned long long drvdata[];
drivers/auxdisplay/charlcd.c
610
lcd->drvdata = priv->drvdata;
drivers/auxdisplay/charlcd.h
54
void *drvdata; /* Set by charlcd_alloc() */
drivers/auxdisplay/hd44780.c
233
hdc = lcd->drvdata;
drivers/auxdisplay/hd44780.c
320
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780.c
43
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
100
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
175
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
195
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
221
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
235
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
249
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
274
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
288
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
310
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
364
hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
42
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
55
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/hd44780_common.c
81
struct hd44780_common *hdc = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
100
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
114
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
128
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
136
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
151
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
163
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
175
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
185
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
197
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
209
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
238
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
276
struct lcd2s_data *lcd2s = lcd->drvdata;
drivers/auxdisplay/lcd2s.c
322
lcd2s = lcd->drvdata;
drivers/auxdisplay/panel.c
838
hdc = charlcd->drvdata;
drivers/base/core.c
4345
dev_t devt, void *drvdata,
drivers/base/core.c
4367
dev_set_drvdata(dev, drvdata);
drivers/base/core.c
4406
dev_t devt, void *drvdata, const char *fmt, ...)
drivers/base/core.c
4412
dev = device_create_groups_vargs(class, parent, devt, drvdata, NULL,
drivers/base/core.c
4445
void *drvdata,
drivers/base/core.c
4453
dev = device_create_groups_vargs(class, parent, devt, drvdata, groups,
drivers/base/cpu.c
462
__cpu_device_create(struct device *parent, void *drvdata,
drivers/base/cpu.c
478
dev_set_drvdata(dev, drvdata);
drivers/base/cpu.c
495
struct device *cpu_device_create(struct device *parent, void *drvdata,
drivers/base/cpu.c
503
dev = __cpu_device_create(parent, drvdata, groups, fmt, vargs);
drivers/bluetooth/btusb.c
3958
struct btusb_data *drvdata = hci_get_drvdata(hdev);
drivers/bluetooth/btusb.c
3970
if (!drvdata->isoc)
drivers/bluetooth/btusb.c
3974
if (btusb_find_altsetting(drvdata, i))
drivers/char/hw_random/cctrng.c
106
static int cc_trng_pm_init(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
108
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
117
static void cc_trng_pm_go(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
119
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
125
static void cc_trng_pm_fini(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
127
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
133
static inline int cc_trng_parse_sampling_ratio(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
135
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
136
struct device_node *np = drvdata->pdev->dev.of_node;
drivers/char/hw_random/cctrng.c
143
drvdata->smpl_ratio,
drivers/char/hw_random/cctrng.c
153
i, drvdata->smpl_ratio[i]);
drivers/char/hw_random/cctrng.c
155
if (drvdata->smpl_ratio[i] > 0)
drivers/char/hw_random/cctrng.c
162
static int cc_trng_change_rosc(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
164
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
166
dev_dbg(dev, "cctrng change rosc (was %d)\n", drvdata->active_rosc);
drivers/char/hw_random/cctrng.c
167
drvdata->active_rosc += 1;
drivers/char/hw_random/cctrng.c
169
while (drvdata->active_rosc < CC_TRNG_NUM_OF_ROSCS) {
drivers/char/hw_random/cctrng.c
170
if (drvdata->smpl_ratio[drvdata->active_rosc] > 0)
drivers/char/hw_random/cctrng.c
173
drvdata->active_rosc += 1;
drivers/char/hw_random/cctrng.c
179
static void cc_trng_enable_rnd_source(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
184
max_cycles = CCTRNG_TIMEOUT(drvdata->smpl_ratio[drvdata->active_rosc]);
drivers/char/hw_random/cctrng.c
185
cc_iowrite(drvdata, CC_RNG_WATCHDOG_VAL_REG_OFFSET, max_cycles);
drivers/char/hw_random/cctrng.c
188
cc_iowrite(drvdata, CC_RND_SOURCE_ENABLE_REG_OFFSET, 0x1);
drivers/char/hw_random/cctrng.c
191
cc_iowrite(drvdata, CC_RNG_IMR_REG_OFFSET, (u32)~CC_RNG_INT_MASK);
drivers/char/hw_random/cctrng.c
202
static inline size_t circ_buf_space(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
204
return CIRC_SPACE(drvdata->circ.head,
drivers/char/hw_random/cctrng.c
205
drvdata->circ.tail, CCTRNG_DATA_BUF_WORDS);
drivers/char/hw_random/cctrng.c
213
struct cctrng_drvdata *drvdata = (struct cctrng_drvdata *)rng->priv;
drivers/char/hw_random/cctrng.c
214
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
215
u32 *buf = (u32 *)drvdata->circ.buf;
drivers/char/hw_random/cctrng.c
221
if (!spin_trylock(&drvdata->read_lock)) {
drivers/char/hw_random/cctrng.c
228
cnt_w = CIRC_CNT_TO_END(drvdata->circ.head,
drivers/char/hw_random/cctrng.c
229
drvdata->circ.tail, CCTRNG_DATA_BUF_WORDS);
drivers/char/hw_random/cctrng.c
231
memcpy(data, &(buf[drvdata->circ.tail]), size);
drivers/char/hw_random/cctrng.c
233
circ_idx_inc(&drvdata->circ.tail, size);
drivers/char/hw_random/cctrng.c
237
cnt_w = CIRC_CNT(drvdata->circ.head,
drivers/char/hw_random/cctrng.c
238
drvdata->circ.tail, CCTRNG_DATA_BUF_WORDS);
drivers/char/hw_random/cctrng.c
240
memcpy(data, &(buf[drvdata->circ.tail]), size);
drivers/char/hw_random/cctrng.c
242
circ_idx_inc(&drvdata->circ.tail, size);
drivers/char/hw_random/cctrng.c
245
spin_unlock(&drvdata->read_lock);
drivers/char/hw_random/cctrng.c
247
if (circ_buf_space(drvdata) >= CC_TRNG_EHR_IN_WORDS) {
drivers/char/hw_random/cctrng.c
248
if (atomic_cmpxchg(&drvdata->pending_hw, 0, 1) == 0) {
drivers/char/hw_random/cctrng.c
250
if (circ_buf_space(drvdata) >= CC_TRNG_EHR_IN_WORDS) {
drivers/char/hw_random/cctrng.c
264
schedule_work(&drvdata->startwork);
drivers/char/hw_random/cctrng.c
266
atomic_set(&drvdata->pending_hw, 0);
drivers/char/hw_random/cctrng.c
274
static void cc_trng_hw_trigger(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
277
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
282
cc_iowrite(drvdata, CC_RNG_CLK_ENABLE_REG_OFFSET, 0x1);
drivers/char/hw_random/cctrng.c
285
cc_iowrite(drvdata, CC_RNG_SW_RESET_REG_OFFSET, 0x1);
drivers/char/hw_random/cctrng.c
291
cc_iowrite(drvdata, CC_RNG_CLK_ENABLE_REG_OFFSET, 0x1);
drivers/char/hw_random/cctrng.c
294
cc_iowrite(drvdata, CC_SAMPLE_CNT1_REG_OFFSET,
drivers/char/hw_random/cctrng.c
295
drvdata->smpl_ratio[drvdata->active_rosc]);
drivers/char/hw_random/cctrng.c
298
tmp_smpl_cnt = cc_ioread(drvdata, CC_SAMPLE_CNT1_REG_OFFSET);
drivers/char/hw_random/cctrng.c
300
} while (tmp_smpl_cnt != drvdata->smpl_ratio[drvdata->active_rosc]);
drivers/char/hw_random/cctrng.c
303
cc_iowrite(drvdata, CC_RND_SOURCE_ENABLE_REG_OFFSET, 0);
drivers/char/hw_random/cctrng.c
305
cc_iowrite(drvdata, CC_RNG_ICR_REG_OFFSET, 0xFFFFFFFF);
drivers/char/hw_random/cctrng.c
307
cc_iowrite(drvdata, CC_TRNG_CONFIG_REG_OFFSET, drvdata->active_rosc);
drivers/char/hw_random/cctrng.c
310
cc_iowrite(drvdata, CC_TRNG_DEBUG_CONTROL_REG_OFFSET, 0);
drivers/char/hw_random/cctrng.c
312
cc_trng_enable_rnd_source(drvdata);
drivers/char/hw_random/cctrng.c
319
struct cctrng_drvdata *drvdata =
drivers/char/hw_random/cctrng.c
321
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
325
cc_iowrite(drvdata, CC_RNG_DMA_ENABLE_REG_OFFSET, 0);
drivers/char/hw_random/cctrng.c
326
cc_iowrite(drvdata, CC_RND_SOURCE_ENABLE_REG_OFFSET, 0);
drivers/char/hw_random/cctrng.c
329
isr = cc_ioread(drvdata, CC_RNG_ISR_REG_OFFSET);
drivers/char/hw_random/cctrng.c
340
cc_iowrite(drvdata, CC_RNG_ICR_REG_OFFSET, isr);
drivers/char/hw_random/cctrng.c
357
u32 *buf = (u32 *)drvdata->circ.buf;
drivers/char/hw_random/cctrng.c
359
buf[drvdata->circ.head] = cc_ioread(drvdata,
drivers/char/hw_random/cctrng.c
365
if (buf[drvdata->circ.head] == 0) {
drivers/char/hw_random/cctrng.c
367
drvdata->active_rosc);
drivers/char/hw_random/cctrng.c
371
circ_idx_inc(&drvdata->circ.head, 1<<2);
drivers/char/hw_random/cctrng.c
374
atomic_set(&drvdata->pending_hw, 0);
drivers/char/hw_random/cctrng.c
377
if (circ_buf_space(drvdata) >= CC_TRNG_EHR_IN_WORDS) {
drivers/char/hw_random/cctrng.c
378
if (atomic_cmpxchg(&drvdata->pending_hw, 0, 1) == 0) {
drivers/char/hw_random/cctrng.c
380
cc_trng_enable_rnd_source(drvdata);
drivers/char/hw_random/cctrng.c
391
if ((circ_buf_space(drvdata) >= CC_TRNG_EHR_IN_WORDS) &&
drivers/char/hw_random/cctrng.c
392
(cc_trng_change_rosc(drvdata) == 0)) {
drivers/char/hw_random/cctrng.c
394
cc_trng_hw_trigger(drvdata);
drivers/char/hw_random/cctrng.c
396
atomic_set(&drvdata->pending_hw, 0);
drivers/char/hw_random/cctrng.c
403
struct cctrng_drvdata *drvdata = (struct cctrng_drvdata *)dev_id;
drivers/char/hw_random/cctrng.c
404
struct device *dev = &(drvdata->pdev->dev);
drivers/char/hw_random/cctrng.c
412
irr = cc_ioread(drvdata, CC_HOST_RGF_IRR_REG_OFFSET);
drivers/char/hw_random/cctrng.c
419
cc_iowrite(drvdata, CC_HOST_RGF_ICR_REG_OFFSET, irr);
drivers/char/hw_random/cctrng.c
424
cc_iowrite(drvdata, CC_RNG_IMR_REG_OFFSET, 0xFFFFFFFF);
drivers/char/hw_random/cctrng.c
429
cc_iowrite(drvdata, CC_HOST_RGF_ICR_REG_OFFSET,
drivers/char/hw_random/cctrng.c
435
schedule_work(&drvdata->compwork);
drivers/char/hw_random/cctrng.c
450
struct cctrng_drvdata *drvdata =
drivers/char/hw_random/cctrng.c
453
drvdata->active_rosc = 0;
drivers/char/hw_random/cctrng.c
454
cc_trng_hw_trigger(drvdata);
drivers/char/hw_random/cctrng.c
459
struct cctrng_drvdata *drvdata;
drivers/char/hw_random/cctrng.c
469
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/char/hw_random/cctrng.c
470
if (!drvdata)
drivers/char/hw_random/cctrng.c
473
drvdata->rng.name = devm_kstrdup(dev, dev_name(dev), GFP_KERNEL);
drivers/char/hw_random/cctrng.c
474
if (!drvdata->rng.name)
drivers/char/hw_random/cctrng.c
477
drvdata->rng.read = cctrng_read;
drivers/char/hw_random/cctrng.c
478
drvdata->rng.priv = (unsigned long)drvdata;
drivers/char/hw_random/cctrng.c
479
drvdata->rng.quality = CC_TRNG_QUALITY;
drivers/char/hw_random/cctrng.c
481
platform_set_drvdata(pdev, drvdata);
drivers/char/hw_random/cctrng.c
482
drvdata->pdev = pdev;
drivers/char/hw_random/cctrng.c
484
drvdata->circ.buf = (char *)drvdata->data_buf;
drivers/char/hw_random/cctrng.c
486
drvdata->cc_base = devm_platform_ioremap_resource(pdev, 0);
drivers/char/hw_random/cctrng.c
487
if (IS_ERR(drvdata->cc_base))
drivers/char/hw_random/cctrng.c
488
return dev_err_probe(dev, PTR_ERR(drvdata->cc_base), "Failed to ioremap registers");
drivers/char/hw_random/cctrng.c
496
rc = cc_trng_parse_sampling_ratio(drvdata);
drivers/char/hw_random/cctrng.c
500
drvdata->clk = devm_clk_get_optional_enabled(dev, NULL);
drivers/char/hw_random/cctrng.c
501
if (IS_ERR(drvdata->clk))
drivers/char/hw_random/cctrng.c
502
return dev_err_probe(dev, PTR_ERR(drvdata->clk),
drivers/char/hw_random/cctrng.c
505
INIT_WORK(&drvdata->compwork, cc_trng_compwork_handler);
drivers/char/hw_random/cctrng.c
506
INIT_WORK(&drvdata->startwork, cc_trng_startwork_handler);
drivers/char/hw_random/cctrng.c
507
spin_lock_init(&drvdata->read_lock);
drivers/char/hw_random/cctrng.c
510
rc = devm_request_irq(dev, irq, cc_isr, IRQF_SHARED, "cctrng", drvdata);
drivers/char/hw_random/cctrng.c
516
val = cc_ioread(drvdata, CC_HOST_RGF_IRR_REG_OFFSET);
drivers/char/hw_random/cctrng.c
518
cc_iowrite(drvdata, CC_HOST_RGF_ICR_REG_OFFSET, val);
drivers/char/hw_random/cctrng.c
521
cc_iowrite(drvdata, CC_HOST_RGF_IMR_REG_OFFSET,
drivers/char/hw_random/cctrng.c
522
cc_ioread(drvdata, CC_HOST_RGF_IMR_REG_OFFSET) &
drivers/char/hw_random/cctrng.c
526
rc = cc_trng_pm_init(drvdata);
drivers/char/hw_random/cctrng.c
536
atomic_set(&drvdata->pending_hw, 1);
drivers/char/hw_random/cctrng.c
539
rc = devm_hwrng_register(dev, &drvdata->rng);
drivers/char/hw_random/cctrng.c
546
drvdata->active_rosc = 0;
drivers/char/hw_random/cctrng.c
547
cc_trng_hw_trigger(drvdata);
drivers/char/hw_random/cctrng.c
550
cc_trng_pm_go(drvdata);
drivers/char/hw_random/cctrng.c
557
cc_trng_pm_fini(drvdata);
drivers/char/hw_random/cctrng.c
564
struct cctrng_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/char/hw_random/cctrng.c
569
cc_trng_pm_fini(drvdata);
drivers/char/hw_random/cctrng.c
576
struct cctrng_drvdata *drvdata = dev_get_drvdata(dev);
drivers/char/hw_random/cctrng.c
579
cc_iowrite(drvdata, CC_HOST_POWER_DOWN_EN_REG_OFFSET,
drivers/char/hw_random/cctrng.c
582
clk_disable_unprepare(drvdata->clk);
drivers/char/hw_random/cctrng.c
587
static bool cctrng_wait_for_reset_completion(struct cctrng_drvdata *drvdata)
drivers/char/hw_random/cctrng.c
596
val = cc_ioread(drvdata, CC_NVM_IS_IDLE_REG_OFFSET);
drivers/char/hw_random/cctrng.c
610
struct cctrng_drvdata *drvdata = dev_get_drvdata(dev);
drivers/char/hw_random/cctrng.c
615
rc = clk_prepare_enable(drvdata->clk);
drivers/char/hw_random/cctrng.c
622
if (!cctrng_wait_for_reset_completion(drvdata)) {
drivers/char/hw_random/cctrng.c
624
clk_disable_unprepare(drvdata->clk);
drivers/char/hw_random/cctrng.c
629
cc_iowrite(drvdata, CC_HOST_RGF_IMR_REG_OFFSET,
drivers/char/hw_random/cctrng.c
630
cc_ioread(drvdata, CC_HOST_RGF_IMR_REG_OFFSET) &
drivers/char/hw_random/cctrng.c
633
cc_iowrite(drvdata, CC_HOST_POWER_DOWN_EN_REG_OFFSET,
drivers/char/hw_random/cctrng.c
77
static inline void cc_iowrite(struct cctrng_drvdata *drvdata, u32 reg, u32 val)
drivers/char/hw_random/cctrng.c
79
iowrite32(val, (drvdata->cc_base + reg));
drivers/char/hw_random/cctrng.c
81
static inline u32 cc_ioread(struct cctrng_drvdata *drvdata, u32 reg)
drivers/char/hw_random/cctrng.c
83
return ioread32(drvdata->cc_base + reg);
drivers/char/xilinx_hwicap/buffer_icap.c
187
static int buffer_icap_device_read(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/buffer_icap.c
192
void __iomem *base_address = drvdata->base_address;
drivers/char/xilinx_hwicap/buffer_icap.c
221
static int buffer_icap_device_write(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/buffer_icap.c
226
void __iomem *base_address = drvdata->base_address;
drivers/char/xilinx_hwicap/buffer_icap.c
256
void buffer_icap_reset(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/buffer_icap.c
258
out_be32(drvdata->base_address + XHI_STATUS_REG_OFFSET, 0xFEFE);
drivers/char/xilinx_hwicap/buffer_icap.c
267
int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/buffer_icap.c
274
void __iomem *base_address = drvdata->base_address;
drivers/char/xilinx_hwicap/buffer_icap.c
290
drvdata,
drivers/char/xilinx_hwicap/buffer_icap.c
295
buffer_icap_reset(drvdata);
drivers/char/xilinx_hwicap/buffer_icap.c
306
status = buffer_icap_device_write(drvdata, XHI_BUFFER_START,
drivers/char/xilinx_hwicap/buffer_icap.c
310
buffer_icap_reset(drvdata);
drivers/char/xilinx_hwicap/buffer_icap.c
324
int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/buffer_icap.c
330
void __iomem *base_address = drvdata->base_address;
drivers/char/xilinx_hwicap/buffer_icap.c
343
drvdata,
drivers/char/xilinx_hwicap/buffer_icap.c
348
buffer_icap_reset(drvdata);
drivers/char/xilinx_hwicap/buffer_icap.c
88
u32 buffer_icap_get_status(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/buffer_icap.c
90
return in_be32(drvdata->base_address + XHI_STATUS_REG_OFFSET);
drivers/char/xilinx_hwicap/buffer_icap.h
44
int buffer_icap_set_configuration(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/buffer_icap.h
48
int buffer_icap_get_configuration(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/buffer_icap.h
51
u32 buffer_icap_get_status(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/buffer_icap.h
52
void buffer_icap_reset(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
108
static inline u32 fifo_icap_fifo_read(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
110
u32 data = in_be32(drvdata->base_address + XHI_RF_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
111
dev_dbg(drvdata->dev, "fifo_read: %x\n", data);
drivers/char/xilinx_hwicap/fifo_icap.c
120
static inline void fifo_icap_set_read_size(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.c
123
out_be32(drvdata->base_address + XHI_SZ_OFFSET, data);
drivers/char/xilinx_hwicap/fifo_icap.c
130
static inline void fifo_icap_start_config(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
132
out_be32(drvdata->base_address + XHI_CR_OFFSET, XHI_CR_WRITE_MASK);
drivers/char/xilinx_hwicap/fifo_icap.c
133
dev_dbg(drvdata->dev, "configuration started\n");
drivers/char/xilinx_hwicap/fifo_icap.c
140
static inline void fifo_icap_start_readback(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
142
out_be32(drvdata->base_address + XHI_CR_OFFSET, XHI_CR_READ_MASK);
drivers/char/xilinx_hwicap/fifo_icap.c
143
dev_dbg(drvdata->dev, "readback started\n");
drivers/char/xilinx_hwicap/fifo_icap.c
164
u32 fifo_icap_get_status(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
166
u32 status = in_be32(drvdata->base_address + XHI_SR_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
167
dev_dbg(drvdata->dev, "Getting status = %x\n", status);
drivers/char/xilinx_hwicap/fifo_icap.c
178
static inline u32 fifo_icap_busy(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
180
u32 status = in_be32(drvdata->base_address + XHI_SR_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
191
struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
193
return in_be32(drvdata->base_address + XHI_WFV_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
203
struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
205
return in_be32(drvdata->base_address + XHI_RFO_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
222
int fifo_icap_set_configuration(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.c
230
dev_dbg(drvdata->dev, "fifo_set_configuration\n");
drivers/char/xilinx_hwicap/fifo_icap.c
235
if (fifo_icap_busy(drvdata))
drivers/char/xilinx_hwicap/fifo_icap.c
249
fifo_icap_write_fifo_vacancy(drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
260
fifo_icap_fifo_write(drvdata, *frame_buffer);
drivers/char/xilinx_hwicap/fifo_icap.c
267
fifo_icap_start_config(drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
271
while (fifo_icap_busy(drvdata)) {
drivers/char/xilinx_hwicap/fifo_icap.c
277
dev_dbg(drvdata->dev, "done fifo_set_configuration\n");
drivers/char/xilinx_hwicap/fifo_icap.c
300
int fifo_icap_get_configuration(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.c
310
dev_dbg(drvdata->dev, "fifo_get_configuration\n");
drivers/char/xilinx_hwicap/fifo_icap.c
315
if (fifo_icap_busy(drvdata))
drivers/char/xilinx_hwicap/fifo_icap.c
329
fifo_icap_set_read_size(drvdata, words_to_read);
drivers/char/xilinx_hwicap/fifo_icap.c
330
fifo_icap_start_readback(drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
336
fifo_icap_read_fifo_occupancy(drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
349
*data++ = fifo_icap_fifo_read(drvdata);
drivers/char/xilinx_hwicap/fifo_icap.c
355
dev_dbg(drvdata->dev, "done fifo_get_configuration\n");
drivers/char/xilinx_hwicap/fifo_icap.c
368
void fifo_icap_reset(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
375
reg_data = in_be32(drvdata->base_address + XHI_CR_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
377
out_be32(drvdata->base_address + XHI_CR_OFFSET,
drivers/char/xilinx_hwicap/fifo_icap.c
380
out_be32(drvdata->base_address + XHI_CR_OFFSET,
drivers/char/xilinx_hwicap/fifo_icap.c
389
void fifo_icap_flush_fifo(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/fifo_icap.c
396
reg_data = in_be32(drvdata->base_address + XHI_CR_OFFSET);
drivers/char/xilinx_hwicap/fifo_icap.c
398
out_be32(drvdata->base_address + XHI_CR_OFFSET,
drivers/char/xilinx_hwicap/fifo_icap.c
401
out_be32(drvdata->base_address + XHI_CR_OFFSET,
drivers/char/xilinx_hwicap/fifo_icap.c
93
static inline void fifo_icap_fifo_write(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.c
96
dev_dbg(drvdata->dev, "fifo_write: %x\n", data);
drivers/char/xilinx_hwicap/fifo_icap.c
97
out_be32(drvdata->base_address + XHI_WF_OFFSET, data);
drivers/char/xilinx_hwicap/fifo_icap.h
45
struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.h
51
struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/fifo_icap.h
55
u32 fifo_icap_get_status(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/fifo_icap.h
56
void fifo_icap_reset(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/fifo_icap.h
57
void fifo_icap_flush_fifo(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
227
static int hwicap_command_desync(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/xilinx_hwicap.c
235
buffer[index++] = hwicap_type_1_write(drvdata->config_regs->CMD) | 1;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
244
return drvdata->config->set_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
261
static int hwicap_get_configuration_register(struct hwicap_drvdata *drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
281
status = drvdata->config->set_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
287
status = drvdata->config->get_status(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
300
status = drvdata->config->set_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
308
status = drvdata->config->get_configuration(drvdata, reg_data, 1);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
315
static int hwicap_initialize_hwicap(struct hwicap_drvdata *drvdata)
drivers/char/xilinx_hwicap/xilinx_hwicap.c
320
dev_dbg(drvdata->dev, "initializing\n");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
325
dev_dbg(drvdata->dev, "Reset...\n");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
326
drvdata->config->reset(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
328
dev_dbg(drvdata->dev, "Desync...\n");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
329
status = hwicap_command_desync(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
337
dev_dbg(drvdata->dev, "Reading IDCODE...\n");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
339
drvdata, drvdata->config_regs->IDCODE, &idcode);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
340
dev_dbg(drvdata->dev, "IDCODE = %x\n", idcode);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
344
dev_dbg(drvdata->dev, "Desync...\n");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
345
status = hwicap_command_desync(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
355
struct hwicap_drvdata *drvdata = file->private_data;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
362
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
366
if (drvdata->read_buffer_in_use) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
371
(count < drvdata->read_buffer_in_use) ? count :
drivers/char/xilinx_hwicap/xilinx_hwicap.c
372
drvdata->read_buffer_in_use;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
375
if (copy_to_user(buf, drvdata->read_buffer, bytes_to_read)) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
379
drvdata->read_buffer_in_use -= bytes_to_read;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
380
memmove(drvdata->read_buffer,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
381
drvdata->read_buffer + bytes_to_read,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
410
status = drvdata->config->get_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
425
memcpy(drvdata->read_buffer,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
428
drvdata->read_buffer_in_use = bytes_remaining;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
433
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
441
struct hwicap_drvdata *drvdata = file->private_data;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
448
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
452
left += drvdata->write_buffer_in_use;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
475
if (drvdata->write_buffer_in_use) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
476
memcpy(kbuf, drvdata->write_buffer,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
477
drvdata->write_buffer_in_use);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
479
(((char *)kbuf) + drvdata->write_buffer_in_use),
drivers/char/xilinx_hwicap/xilinx_hwicap.c
481
len - (drvdata->write_buffer_in_use))) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
494
status = drvdata->config->set_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
502
if (drvdata->write_buffer_in_use) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
503
len -= drvdata->write_buffer_in_use;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
504
left -= drvdata->write_buffer_in_use;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
505
drvdata->write_buffer_in_use = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
511
if (!copy_from_user(drvdata->write_buffer,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
513
drvdata->write_buffer_in_use = left;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
522
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
528
struct hwicap_drvdata *drvdata;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
532
drvdata = container_of(inode->i_cdev, struct hwicap_drvdata, cdev);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
534
status = mutex_lock_interruptible(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
538
if (drvdata->is_open) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
543
status = hwicap_initialize_hwicap(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
545
dev_err(drvdata->dev, "Failed to open file");
drivers/char/xilinx_hwicap/xilinx_hwicap.c
549
file->private_data = drvdata;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
550
drvdata->write_buffer_in_use = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
551
drvdata->read_buffer_in_use = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
552
drvdata->is_open = 1;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
555
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
563
struct hwicap_drvdata *drvdata = file->private_data;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
567
mutex_lock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
569
if (drvdata->write_buffer_in_use) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
571
for (i = drvdata->write_buffer_in_use; i < 4; i++)
drivers/char/xilinx_hwicap/xilinx_hwicap.c
572
drvdata->write_buffer[i] = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
574
status = drvdata->config->set_configuration(drvdata,
drivers/char/xilinx_hwicap/xilinx_hwicap.c
575
(u32 *) drvdata->write_buffer, 1);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
580
status = hwicap_command_desync(drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
585
drvdata->is_open = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
586
mutex_unlock(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
604
struct hwicap_drvdata *drvdata = NULL;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
634
drvdata = devm_kzalloc(dev, sizeof(struct hwicap_drvdata), GFP_KERNEL);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
635
if (!drvdata) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
639
dev_set_drvdata(dev, drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
641
drvdata->base_address = devm_platform_ioremap_resource(pdev, 0);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
642
if (IS_ERR(drvdata->base_address)) {
drivers/char/xilinx_hwicap/xilinx_hwicap.c
643
retval = PTR_ERR(drvdata->base_address);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
647
drvdata->devt = devt;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
648
drvdata->dev = dev;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
649
drvdata->config = config;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
650
drvdata->config_regs = config_regs;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
652
mutex_init(&drvdata->sem);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
653
drvdata->is_open = 0;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
655
cdev_init(&drvdata->cdev, &hwicap_fops);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
656
drvdata->cdev.owner = THIS_MODULE;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
657
retval = cdev_add(&drvdata->cdev, devt, 1);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
719
struct hwicap_drvdata *drvdata;
drivers/char/xilinx_hwicap/xilinx_hwicap.c
721
drvdata = dev_get_drvdata(dev);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
723
device_destroy(&icap_class, drvdata->devt);
drivers/char/xilinx_hwicap/xilinx_hwicap.c
724
cdev_del(&drvdata->cdev);
drivers/char/xilinx_hwicap/xilinx_hwicap.h
67
int (*get_configuration)(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/xilinx_hwicap.h
72
int (*set_configuration)(struct hwicap_drvdata *drvdata, u32 *data,
drivers/char/xilinx_hwicap/xilinx_hwicap.h
85
u32 (*get_status)(struct hwicap_drvdata *drvdata);
drivers/char/xilinx_hwicap/xilinx_hwicap.h
87
void (*reset)(struct hwicap_drvdata *drvdata);
drivers/clk/clk-max9485.c
101
mask, value, drvdata->reg_value);
drivers/clk/clk-max9485.c
103
ret = i2c_master_send(drvdata->client,
drivers/clk/clk-max9485.c
104
&drvdata->reg_value,
drivers/clk/clk-max9485.c
105
sizeof(drvdata->reg_value));
drivers/clk/clk-max9485.c
114
return max9485_update_bits(clk_hw->drvdata,
drivers/clk/clk-max9485.c
123
max9485_update_bits(clk_hw->drvdata, clk_hw->enable_bit, 0);
drivers/clk/clk-max9485.c
142
return max9485_update_bits(clk_hw->drvdata,
drivers/clk/clk-max9485.c
151
struct max9485_driver_data *drvdata = clk_hw->drvdata;
drivers/clk/clk-max9485.c
152
u8 val = drvdata->reg_value & MAX9485_FREQ_MASK;
drivers/clk/clk-max9485.c
258
struct max9485_driver_data *drvdata = data;
drivers/clk/clk-max9485.c
261
return &drvdata->hw[idx].hw;
drivers/clk/clk-max9485.c
266
struct max9485_driver_data *drvdata;
drivers/clk/clk-max9485.c
271
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/clk/clk-max9485.c
272
if (!drvdata)
drivers/clk/clk-max9485.c
275
drvdata->xclk = devm_clk_get(dev, "xclk");
drivers/clk/clk-max9485.c
276
if (IS_ERR(drvdata->xclk))
drivers/clk/clk-max9485.c
277
return PTR_ERR(drvdata->xclk);
drivers/clk/clk-max9485.c
279
xclk_name = __clk_get_name(drvdata->xclk);
drivers/clk/clk-max9485.c
281
drvdata->supply = devm_regulator_get(dev, "vdd");
drivers/clk/clk-max9485.c
282
if (IS_ERR(drvdata->supply))
drivers/clk/clk-max9485.c
283
return PTR_ERR(drvdata->supply);
drivers/clk/clk-max9485.c
285
ret = regulator_enable(drvdata->supply);
drivers/clk/clk-max9485.c
289
drvdata->reset_gpio =
drivers/clk/clk-max9485.c
291
if (IS_ERR(drvdata->reset_gpio))
drivers/clk/clk-max9485.c
292
return PTR_ERR(drvdata->reset_gpio);
drivers/clk/clk-max9485.c
294
i2c_set_clientdata(client, drvdata);
drivers/clk/clk-max9485.c
295
drvdata->client = client;
drivers/clk/clk-max9485.c
297
ret = i2c_master_recv(drvdata->client, &drvdata->reg_value,
drivers/clk/clk-max9485.c
298
sizeof(drvdata->reg_value));
drivers/clk/clk-max9485.c
311
drvdata->hw[i].init.name = name;
drivers/clk/clk-max9485.c
313
drvdata->hw[i].init.name = max9485_clks[i].name;
drivers/clk/clk-max9485.c
316
drvdata->hw[i].init.ops = &max9485_clks[i].ops;
drivers/clk/clk-max9485.c
317
drvdata->hw[i].init.num_parents = 1;
drivers/clk/clk-max9485.c
318
drvdata->hw[i].init.flags = 0;
drivers/clk/clk-max9485.c
321
drvdata->hw[i].init.parent_names =
drivers/clk/clk-max9485.c
322
&drvdata->hw[parent_index].init.name;
drivers/clk/clk-max9485.c
323
drvdata->hw[i].init.flags |= CLK_SET_RATE_PARENT;
drivers/clk/clk-max9485.c
325
drvdata->hw[i].init.parent_names = &xclk_name;
drivers/clk/clk-max9485.c
328
drvdata->hw[i].enable_bit = max9485_clks[i].enable_bit;
drivers/clk/clk-max9485.c
329
drvdata->hw[i].hw.init = &drvdata->hw[i].init;
drivers/clk/clk-max9485.c
330
drvdata->hw[i].drvdata = drvdata;
drivers/clk/clk-max9485.c
332
ret = devm_clk_hw_register(dev, &drvdata->hw[i].hw);
drivers/clk/clk-max9485.c
337
return devm_of_clk_add_hw_provider(dev, max9485_of_clk_get, drvdata);
drivers/clk/clk-max9485.c
343
struct max9485_driver_data *drvdata = i2c_get_clientdata(client);
drivers/clk/clk-max9485.c
345
gpiod_set_value_cansleep(drvdata->reset_gpio, 0);
drivers/clk/clk-max9485.c
353
struct max9485_driver_data *drvdata = i2c_get_clientdata(client);
drivers/clk/clk-max9485.c
356
gpiod_set_value_cansleep(drvdata->reset_gpio, 1);
drivers/clk/clk-max9485.c
358
ret = i2c_master_send(client, &drvdata->reg_value,
drivers/clk/clk-max9485.c
359
sizeof(drvdata->reg_value));
drivers/clk/clk-max9485.c
74
struct max9485_driver_data *drvdata;
drivers/clk/clk-max9485.c
91
static int max9485_update_bits(struct max9485_driver_data *drvdata,
drivers/clk/clk-max9485.c
96
drvdata->reg_value &= ~mask;
drivers/clk/clk-max9485.c
97
drvdata->reg_value |= value;
drivers/clk/clk-max9485.c
99
dev_dbg(&drvdata->client->dev,
drivers/clk/clk-si5351.c
101
return regmap_bulk_read(drvdata->regmap, reg, buf, count);
drivers/clk/clk-si5351.c
1016
return _si5351_clkout_reparent(hwdata->drvdata, hwdata->num, parent);
drivers/clk/clk-si5351.c
1032
rdiv = si5351_reg_read(hwdata->drvdata, reg);
drivers/clk/clk-si5351.c
104
static inline int si5351_reg_write(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
107
return regmap_write(drvdata->regmap, reg, val);
drivers/clk/clk-si5351.c
1089
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
110
static inline int si5351_bulk_write(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
1122
si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER,
drivers/clk/clk-si5351.c
1126
si5351_set_bits(hwdata->drvdata, SI5351_CLK6_7_OUTPUT_DIVIDER,
drivers/clk/clk-si5351.c
113
return regmap_raw_write(drvdata->regmap, reg, buf, count);
drivers/clk/clk-si5351.c
1131
si5351_set_bits(hwdata->drvdata,
drivers/clk/clk-si5351.c
1138
si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
drivers/clk/clk-si5351.c
1141
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
116
static inline int si5351_set_bits(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
119
return regmap_update_bits(drvdata->regmap, reg, mask, val);
drivers/clk/clk-si5351.c
129
static void si5351_read_parameters(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
137
buf[0] = si5351_reg_read(drvdata, reg);
drivers/clk/clk-si5351.c
1404
struct si5351_driver_data *drvdata = data;
drivers/clk/clk-si5351.c
1407
if (idx >= drvdata->num_clkout) {
drivers/clk/clk-si5351.c
1412
return &drvdata->clkout[idx].hw;
drivers/clk/clk-si5351.c
143
si5351_bulk_read(drvdata, reg, SI5351_PARAMETERS_LENGTH, buf);
drivers/clk/clk-si5351.c
1440
struct si5351_driver_data *drvdata;
drivers/clk/clk-si5351.c
1455
drvdata = devm_kzalloc(&client->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/clk/clk-si5351.c
1456
if (!drvdata)
drivers/clk/clk-si5351.c
1459
i2c_set_clientdata(client, drvdata);
drivers/clk/clk-si5351.c
1460
drvdata->client = client;
drivers/clk/clk-si5351.c
1461
drvdata->variant = variant;
drivers/clk/clk-si5351.c
1462
drvdata->pxtal = devm_clk_get(&client->dev, "xtal");
drivers/clk/clk-si5351.c
1463
drvdata->pclkin = devm_clk_get(&client->dev, "clkin");
drivers/clk/clk-si5351.c
1465
if (PTR_ERR(drvdata->pxtal) == -EPROBE_DEFER ||
drivers/clk/clk-si5351.c
1466
PTR_ERR(drvdata->pclkin) == -EPROBE_DEFER)
drivers/clk/clk-si5351.c
1473
if (IS_ERR(drvdata->pxtal) &&
drivers/clk/clk-si5351.c
1474
(drvdata->variant != SI5351_VARIANT_C || IS_ERR(drvdata->pclkin))) {
drivers/clk/clk-si5351.c
1479
drvdata->regmap = devm_regmap_init_i2c(client, &si5351_regmap_config);
drivers/clk/clk-si5351.c
1480
if (IS_ERR(drvdata->regmap)) {
drivers/clk/clk-si5351.c
1482
return PTR_ERR(drvdata->regmap);
drivers/clk/clk-si5351.c
1486
si5351_reg_write(drvdata, SI5351_INTERRUPT_MASK, 0xf0);
drivers/clk/clk-si5351.c
1488
if (drvdata->variant != SI5351_VARIANT_C)
drivers/clk/clk-si5351.c
1489
si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE,
drivers/clk/clk-si5351.c
1494
ret = _si5351_pll_reparent(drvdata, n, pdata->pll_src[n]);
drivers/clk/clk-si5351.c
1504
ret = _si5351_msynth_reparent(drvdata, n,
drivers/clk/clk-si5351.c
151
static void si5351_write_parameters(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
1513
ret = _si5351_clkout_reparent(drvdata, n,
drivers/clk/clk-si5351.c
1522
ret = _si5351_clkout_set_drive_strength(drvdata, n,
drivers/clk/clk-si5351.c
1531
ret = _si5351_clkout_set_disable_state(drvdata, n,
drivers/clk/clk-si5351.c
1546
if (!IS_ERR(drvdata->pxtal)) {
drivers/clk/clk-si5351.c
1547
drvdata->pxtal_name = __clk_get_name(drvdata->pxtal);
drivers/clk/clk-si5351.c
1548
init.parent_names = &drvdata->pxtal_name;
drivers/clk/clk-si5351.c
1551
drvdata->xtal.init = &init;
drivers/clk/clk-si5351.c
1552
ret = devm_clk_hw_register(&client->dev, &drvdata->xtal);
drivers/clk/clk-si5351.c
1559
if (drvdata->variant == SI5351_VARIANT_C) {
drivers/clk/clk-si5351.c
1563
if (!IS_ERR(drvdata->pclkin)) {
drivers/clk/clk-si5351.c
1564
drvdata->pclkin_name = __clk_get_name(drvdata->pclkin);
drivers/clk/clk-si5351.c
1565
init.parent_names = &drvdata->pclkin_name;
drivers/clk/clk-si5351.c
1568
drvdata->clkin.init = &init;
drivers/clk/clk-si5351.c
1569
ret = devm_clk_hw_register(&client->dev, &drvdata->clkin);
drivers/clk/clk-si5351.c
1578
num_parents = (drvdata->variant == SI5351_VARIANT_C) ? 2 : 1;
drivers/clk/clk-si5351.c
1583
drvdata->pll[0].num = 0;
drivers/clk/clk-si5351.c
1584
drvdata->pll[0].drvdata = drvdata;
drivers/clk/clk-si5351.c
1585
drvdata->pll[0].hw.init = &init;
drivers/clk/clk-si5351.c
1592
ret = devm_clk_hw_register(&client->dev, &drvdata->pll[0].hw);
drivers/clk/clk-si5351.c
1599
drvdata->pll[1].num = 1;
drivers/clk/clk-si5351.c
160
si5351_reg_write(drvdata, reg, buf[0]);
drivers/clk/clk-si5351.c
1600
drvdata->pll[1].drvdata = drvdata;
drivers/clk/clk-si5351.c
1601
drvdata->pll[1].hw.init = &init;
drivers/clk/clk-si5351.c
1603
if (drvdata->variant == SI5351_VARIANT_B) {
drivers/clk/clk-si5351.c
1616
ret = devm_clk_hw_register(&client->dev, &drvdata->pll[1].hw);
drivers/clk/clk-si5351.c
1623
num_clocks = (drvdata->variant == SI5351_VARIANT_A3) ? 3 : 8;
drivers/clk/clk-si5351.c
1625
if (drvdata->variant == SI5351_VARIANT_B)
drivers/clk/clk-si5351.c
1630
drvdata->msynth = devm_kcalloc(&client->dev, num_clocks,
drivers/clk/clk-si5351.c
1631
sizeof(*drvdata->msynth), GFP_KERNEL);
drivers/clk/clk-si5351.c
1632
drvdata->clkout = devm_kcalloc(&client->dev, num_clocks,
drivers/clk/clk-si5351.c
1633
sizeof(*drvdata->clkout), GFP_KERNEL);
drivers/clk/clk-si5351.c
1634
drvdata->num_clkout = num_clocks;
drivers/clk/clk-si5351.c
1636
if (WARN_ON(!drvdata->msynth || !drvdata->clkout)) {
drivers/clk/clk-si5351.c
1642
drvdata->msynth[n].num = n;
drivers/clk/clk-si5351.c
1643
drvdata->msynth[n].drvdata = drvdata;
drivers/clk/clk-si5351.c
1644
drvdata->msynth[n].hw.init = &init;
drivers/clk/clk-si5351.c
1654
&drvdata->msynth[n].hw);
drivers/clk/clk-si5351.c
166
buf[2] = si5351_reg_read(drvdata, reg + 2) & ~0x03;
drivers/clk/clk-si5351.c
1662
num_parents = (drvdata->variant == SI5351_VARIANT_C) ? 4 : 3;
drivers/clk/clk-si5351.c
1670
drvdata->clkout[n].num = n;
drivers/clk/clk-si5351.c
1671
drvdata->clkout[n].drvdata = drvdata;
drivers/clk/clk-si5351.c
1672
drvdata->clkout[n].hw.init = &init;
drivers/clk/clk-si5351.c
1682
&drvdata->clkout[n].hw);
drivers/clk/clk-si5351.c
1692
ret = clk_set_rate(drvdata->clkout[n].hw.clk,
drivers/clk/clk-si5351.c
1702
drvdata);
drivers/clk/clk-si5351.c
174
si5351_bulk_write(drvdata, reg, SI5351_PARAMETERS_LENGTH, buf);
drivers/clk/clk-si5351.c
220
struct si5351_driver_data *drvdata =
drivers/clk/clk-si5351.c
222
si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE,
drivers/clk/clk-si5351.c
229
struct si5351_driver_data *drvdata =
drivers/clk/clk-si5351.c
231
si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE,
drivers/clk/clk-si5351.c
245
struct si5351_driver_data *drvdata =
drivers/clk/clk-si5351.c
247
si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE,
drivers/clk/clk-si5351.c
254
struct si5351_driver_data *drvdata =
drivers/clk/clk-si5351.c
256
si5351_set_bits(drvdata, SI5351_FANOUT_ENABLE,
drivers/clk/clk-si5351.c
268
struct si5351_driver_data *drvdata =
drivers/clk/clk-si5351.c
287
si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE,
drivers/clk/clk-si5351.c
290
dev_dbg(&drvdata->client->dev, "%s - clkin div = %d, rate = %lu\n",
drivers/clk/clk-si5351.c
311
dev_warn(&hwdata->drvdata->client->dev, "VXCO currently unsupported\n");
drivers/clk/clk-si5351.c
365
static int _si5351_pll_reparent(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
376
if (drvdata->variant != SI5351_VARIANT_C &&
drivers/clk/clk-si5351.c
380
si5351_set_bits(drvdata, SI5351_PLL_INPUT_SOURCE, mask,
drivers/clk/clk-si5351.c
392
val = si5351_reg_read(hwdata->drvdata, SI5351_PLL_INPUT_SOURCE);
drivers/clk/clk-si5351.c
402
if (hwdata->drvdata->variant != SI5351_VARIANT_C &&
drivers/clk/clk-si5351.c
409
return _si5351_pll_reparent(hwdata->drvdata, hwdata->num,
drivers/clk/clk-si5351.c
424
si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params);
drivers/clk/clk-si5351.c
436
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
44
struct si5351_driver_data *drvdata;
drivers/clk/clk-si5351.c
495
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
510
hwdata->drvdata->client->dev.platform_data;
drivers/clk/clk-si5351.c
515
si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params);
drivers/clk/clk-si5351.c
518
si5351_set_bits(hwdata->drvdata, SI5351_CLK6_CTRL + hwdata->num,
drivers/clk/clk-si5351.c
524
si5351_reg_write(hwdata->drvdata, SI5351_PLL_RESET,
drivers/clk/clk-si5351.c
528
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
568
static int _si5351_msynth_reparent(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
577
si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num, SI5351_CLK_PLL_SELECT,
drivers/clk/clk-si5351.c
589
val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num);
drivers/clk/clk-si5351.c
599
return _si5351_msynth_reparent(hwdata->drvdata, hwdata->num,
drivers/clk/clk-si5351.c
614
si5351_read_parameters(hwdata->drvdata, reg, &hwdata->params);
drivers/clk/clk-si5351.c
625
} else if ((si5351_reg_read(hwdata->drvdata, reg + 2) &
drivers/clk/clk-si5351.c
639
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
753
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
772
si5351_write_parameters(hwdata->drvdata, reg, &hwdata->params);
drivers/clk/clk-si5351.c
779
si5351_set_bits(hwdata->drvdata, reg + 2,
drivers/clk/clk-si5351.c
782
si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
drivers/clk/clk-si5351.c
787
dev_dbg(&hwdata->drvdata->client->dev,
drivers/clk/clk-si5351.c
807
static int _si5351_clkout_reparent(struct si5351_driver_data *drvdata,
drivers/clk/clk-si5351.c
83
static inline u8 si5351_reg_read(struct si5351_driver_data *drvdata, u8 reg)
drivers/clk/clk-si5351.c
830
if (drvdata->variant != SI5351_VARIANT_C)
drivers/clk/clk-si5351.c
839
si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num,
drivers/clk/clk-si5351.c
845
struct si5351_driver_data *drvdata, int num,
drivers/clk/clk-si5351.c
870
si5351_set_bits(drvdata, SI5351_CLK0_CTRL + num,
drivers/clk/clk-si5351.c
876
struct si5351_driver_data *drvdata, int num,
drivers/clk/clk-si5351.c
88
ret = regmap_read(drvdata->regmap, reg, &val);
drivers/clk/clk-si5351.c
90
dev_err(&drvdata->client->dev,
drivers/clk/clk-si5351.c
905
si5351_set_bits(drvdata, reg, mask, val << shift);
drivers/clk/clk-si5351.c
910
static void _si5351_clkout_reset_pll(struct si5351_driver_data *drvdata, int num)
drivers/clk/clk-si5351.c
912
u8 val = si5351_reg_read(drvdata, SI5351_CLK0_CTRL + num);
drivers/clk/clk-si5351.c
924
si5351_reg_write(drvdata, SI5351_PLL_RESET, mask);
drivers/clk/clk-si5351.c
926
err = regmap_read_poll_timeout(drvdata->regmap, SI5351_PLL_RESET, v,
drivers/clk/clk-si5351.c
929
dev_err(&drvdata->client->dev, "Reset bit didn't clear\n");
drivers/clk/clk-si5351.c
931
dev_dbg(&drvdata->client->dev, "%s - %s: pll = %d\n",
drivers/clk/clk-si5351.c
932
__func__, clk_hw_get_name(&drvdata->clkout[num].hw),
drivers/clk/clk-si5351.c
941
hwdata->drvdata->client->dev.platform_data;
drivers/clk/clk-si5351.c
943
si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
drivers/clk/clk-si5351.c
951
_si5351_clkout_reset_pll(hwdata->drvdata, hwdata->num);
drivers/clk/clk-si5351.c
953
si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL,
drivers/clk/clk-si5351.c
963
si5351_set_bits(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num,
drivers/clk/clk-si5351.c
965
si5351_set_bits(hwdata->drvdata, SI5351_OUTPUT_ENABLE_CTRL,
drivers/clk/clk-si5351.c
976
val = si5351_reg_read(hwdata->drvdata, SI5351_CLK0_CTRL + hwdata->num);
drivers/clk/clk-si5351.c
98
static inline int si5351_bulk_read(struct si5351_driver_data *drvdata,
drivers/clk/x86/clk-lpss-atom.c
18
struct lpss_clk_data *drvdata;
drivers/clk/x86/clk-lpss-atom.c
21
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/clk/x86/clk-lpss-atom.c
22
if (!drvdata)
drivers/clk/x86/clk-lpss-atom.c
26
drvdata->name = "lpss_clk";
drivers/clk/x86/clk-lpss-atom.c
27
clk = clk_register_fixed_rate(&pdev->dev, drvdata->name, NULL,
drivers/clk/x86/clk-lpss-atom.c
32
drvdata->clk = clk;
drivers/clk/x86/clk-lpss-atom.c
33
platform_set_drvdata(pdev, drvdata);
drivers/crypto/ccree/cc_aead.c
1012
set_din_sram(&desc[idx], cc_digest_len_addr(ctx->drvdata, hash_mode),
drivers/crypto/ccree/cc_aead.c
1102
struct cc_aead_handle *aead_handle = ctx->drvdata->aead_handle;
drivers/crypto/ccree/cc_aead.c
1141
set_din_sram(&desc[idx], cc_digest_len_addr(ctx->drvdata, hash_mode),
drivers/crypto/ccree/cc_aead.c
1164
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
1170
ctx->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_aead.c
1178
ctx->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_aead.c
122
return cc_get_default_hash_len(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
131
struct device *dev = drvdata_to_dev(cc_alg->drvdata);
drivers/crypto/ccree/cc_aead.c
1316
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
140
ctx->drvdata = cc_alg->drvdata;
drivers/crypto/ccree/cc_aead.c
1523
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_aead.c
1535
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
1785
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_aead.c
1834
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
1900
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
1975
rc = cc_map_aead_request(ctx->drvdata, req);
drivers/crypto/ccree/cc_aead.c
2009
rc = cc_send_request(ctx->drvdata, &cc_req, desc, seq_len, &req->base);
drivers/crypto/ccree/cc_aead.c
2111
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
2128
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
2164
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
2184
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
2597
int cc_aead_free(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_aead.c
2600
struct cc_aead_handle *aead_handle = drvdata->aead_handle;
drivers/crypto/ccree/cc_aead.c
2611
int cc_aead_alloc(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_aead.c
2617
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_aead.c
2626
drvdata->aead_handle = aead_handle;
drivers/crypto/ccree/cc_aead.c
2628
aead_handle->sram_workspace_addr = cc_sram_alloc(drvdata,
drivers/crypto/ccree/cc_aead.c
2638
if ((aead_algs[alg].min_hw_rev > drvdata->hw_rev) ||
drivers/crypto/ccree/cc_aead.c
2639
!(drvdata->std_bodies & aead_algs[alg].std_body))
drivers/crypto/ccree/cc_aead.c
2649
t_alg->drvdata = drvdata;
drivers/crypto/ccree/cc_aead.c
2665
cc_aead_free(drvdata);
drivers/crypto/ccree/cc_aead.c
312
cc_larval_digest_addr(ctx->drvdata,
drivers/crypto/ccree/cc_aead.c
364
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
415
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
458
larval_addr = cc_larval_digest_addr(ctx->drvdata,
drivers/crypto/ccree/cc_aead.c
47
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_aead.c
529
rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, idx);
drivers/crypto/ccree/cc_aead.c
548
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
627
rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, seq_len);
drivers/crypto/ccree/cc_aead.c
67
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
673
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
729
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
770
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
834
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_aead.c
889
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_aead.c
905
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_aead.h
105
int cc_aead_alloc(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_aead.h
106
int cc_aead_free(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
1077
rc = cc_aead_chain_assoc(drvdata, req, &sg_data, true, false);
drivers/crypto/ccree/cc_buffer_mgr.c
1080
rc = cc_aead_chain_iv(drvdata, req, &sg_data, true, false);
drivers/crypto/ccree/cc_buffer_mgr.c
1083
rc = cc_aead_chain_data(drvdata, req, &sg_data, true, false);
drivers/crypto/ccree/cc_buffer_mgr.c
1107
rc = cc_aead_chain_assoc(drvdata, req, &sg_data, false, true);
drivers/crypto/ccree/cc_buffer_mgr.c
1110
rc = cc_aead_chain_iv(drvdata, req, &sg_data, false, true);
drivers/crypto/ccree/cc_buffer_mgr.c
1113
rc = cc_aead_chain_data(drvdata, req, &sg_data, true, true);
drivers/crypto/ccree/cc_buffer_mgr.c
1123
mlli_params->curr_pool = drvdata->mlli_buffs_pool;
drivers/crypto/ccree/cc_buffer_mgr.c
1128
cc_update_aead_mlli_nents(drvdata, req);
drivers/crypto/ccree/cc_buffer_mgr.c
1141
int cc_map_hash_request_final(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_buffer_mgr.c
1146
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
1196
mlli_params->curr_pool = drvdata->mlli_buffs_pool;
drivers/crypto/ccree/cc_buffer_mgr.c
1220
int cc_map_hash_request_update(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_buffer_mgr.c
1225
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
1312
mlli_params->curr_pool = drvdata->mlli_buffs_pool;
drivers/crypto/ccree/cc_buffer_mgr.c
1377
int cc_buffer_mgr_init(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_buffer_mgr.c
1379
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
1381
drvdata->mlli_buffs_pool =
drivers/crypto/ccree/cc_buffer_mgr.c
1387
if (!drvdata->mlli_buffs_pool)
drivers/crypto/ccree/cc_buffer_mgr.c
1393
int cc_buffer_mgr_fini(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_buffer_mgr.c
1395
dma_pool_destroy(drvdata->mlli_buffs_pool);
drivers/crypto/ccree/cc_buffer_mgr.c
370
int cc_map_cipher_request(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_buffer_mgr.c
377
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
441
mlli_params->curr_pool = drvdata->mlli_buffs_pool;
drivers/crypto/ccree/cc_buffer_mgr.c
461
struct cc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/crypto/ccree/cc_buffer_mgr.c
527
if (drvdata->coherent &&
drivers/crypto/ccree/cc_buffer_mgr.c
544
static int cc_aead_chain_iv(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_buffer_mgr.c
551
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
584
static int cc_aead_chain_assoc(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_buffer_mgr.c
592
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
675
static void cc_prepare_aead_data_mlli(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_buffer_mgr.c
684
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
709
if (!drvdata->coherent)
drivers/crypto/ccree/cc_buffer_mgr.c
788
static int cc_aead_chain_data(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_buffer_mgr.c
794
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
882
cc_prepare_aead_data_mlli(drvdata, req, sg_data,
drivers/crypto/ccree/cc_buffer_mgr.c
895
static void cc_update_aead_mlli_nents(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_buffer_mgr.c
902
areq_ctx->assoc.sram_addr = drvdata->mlli_sram_addr;
drivers/crypto/ccree/cc_buffer_mgr.c
911
areq_ctx->src.sram_addr = drvdata->mlli_sram_addr +
drivers/crypto/ccree/cc_buffer_mgr.c
921
drvdata->mlli_sram_addr +
drivers/crypto/ccree/cc_buffer_mgr.c
932
drvdata->mlli_sram_addr +
drivers/crypto/ccree/cc_buffer_mgr.c
946
int cc_map_aead_request(struct cc_drvdata *drvdata, struct aead_request *req)
drivers/crypto/ccree/cc_buffer_mgr.c
950
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_buffer_mgr.c
966
if (drvdata->coherent &&
drivers/crypto/ccree/cc_buffer_mgr.h
40
int cc_buffer_mgr_init(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_buffer_mgr.h
42
int cc_buffer_mgr_fini(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_buffer_mgr.h
44
int cc_map_cipher_request(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_buffer_mgr.h
52
int cc_map_aead_request(struct cc_drvdata *drvdata, struct aead_request *req);
drivers/crypto/ccree/cc_buffer_mgr.h
56
int cc_map_hash_request_final(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_buffer_mgr.h
60
int cc_map_hash_request_update(struct cc_drvdata *drvdata, void *ctx,
drivers/crypto/ccree/cc_cipher.c
1412
int cc_cipher_free(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_cipher.c
1417
list_for_each_entry_safe(t_alg, n, &drvdata->alg_list, entry) {
drivers/crypto/ccree/cc_cipher.c
1424
int cc_cipher_alloc(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_cipher.c
1427
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_cipher.c
1431
INIT_LIST_HEAD(&drvdata->alg_list);
drivers/crypto/ccree/cc_cipher.c
1437
if ((skcipher_algs[alg].min_hw_rev > drvdata->hw_rev) ||
drivers/crypto/ccree/cc_cipher.c
1438
!(drvdata->std_bodies & skcipher_algs[alg].std_body) ||
drivers/crypto/ccree/cc_cipher.c
1439
(drvdata->sec_disabled && skcipher_algs[alg].sec_func))
drivers/crypto/ccree/cc_cipher.c
1450
t_alg->drvdata = drvdata;
drivers/crypto/ccree/cc_cipher.c
1463
list_add_tail(&t_alg->entry, &drvdata->alg_list);
drivers/crypto/ccree/cc_cipher.c
1470
cc_cipher_free(drvdata);
drivers/crypto/ccree/cc_cipher.c
160
struct device *dev = drvdata_to_dev(cc_alg->drvdata);
drivers/crypto/ccree/cc_cipher.c
169
ctx_p->drvdata = cc_alg->drvdata;
drivers/crypto/ccree/cc_cipher.c
240
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
300
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
366
if (ctx_p->drvdata->hw_rev < CC_HW_REV_713) {
drivers/crypto/ccree/cc_cipher.c
400
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
46
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_cipher.c
510
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
538
set_queue_last_ind(ctx_p->drvdata, &desc[*seq_size]);
drivers/crypto/ccree/cc_cipher.c
551
set_queue_last_ind(ctx_p->drvdata, &desc[*seq_size]);
drivers/crypto/ccree/cc_cipher.c
567
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
611
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
688
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
771
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
778
ctx_p->drvdata->mlli_sram_addr);
drivers/crypto/ccree/cc_cipher.c
784
ctx_p->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_cipher.c
798
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
815
set_queue_last_ind(ctx_p->drvdata, &desc[*seq_size]);
drivers/crypto/ccree/cc_cipher.c
822
ctx_p->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_cipher.c
826
ctx_p->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_cipher.c
827
ctx_p->drvdata->mlli_sram_addr);
drivers/crypto/ccree/cc_cipher.c
829
ctx_p->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_cipher.c
834
ctx_p->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_cipher.c
835
ctx_p->drvdata->mlli_sram_addr +
drivers/crypto/ccree/cc_cipher.c
838
(ctx_p->drvdata->mlli_sram_addr +
drivers/crypto/ccree/cc_cipher.c
845
set_queue_last_ind(ctx_p->drvdata, &desc[*seq_size]);
drivers/crypto/ccree/cc_cipher.c
883
struct device *dev = drvdata_to_dev(ctx_p->drvdata);
drivers/crypto/ccree/cc_cipher.c
943
rc = cc_map_cipher_request(ctx_p->drvdata, req_ctx, ivsize, nbytes,
drivers/crypto/ccree/cc_cipher.c
967
rc = cc_send_request(ctx_p->drvdata, &cc_req, desc, seq_len,
drivers/crypto/ccree/cc_cipher.h
27
int cc_cipher_alloc(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_cipher.h
29
int cc_cipher_free(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_debugfs.c
100
debugfs_create_regset32("version", 0400, drvdata->dir, verset);
drivers/crypto/ccree/cc_debugfs.c
104
void cc_debugfs_fini(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_debugfs.c
106
debugfs_remove_recursive(drvdata->dir);
drivers/crypto/ccree/cc_debugfs.c
63
int cc_debugfs_init(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_debugfs.c
65
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_debugfs.c
74
regset->base = drvdata->cc_base;
drivers/crypto/ccree/cc_debugfs.c
77
drvdata->dir = debugfs_create_dir(drvdata->plat_dev->name,
drivers/crypto/ccree/cc_debugfs.c
80
debugfs_create_regset32("regs", 0400, drvdata->dir, regset);
drivers/crypto/ccree/cc_debugfs.c
81
debugfs_create_bool("coherent", 0400, drvdata->dir, &drvdata->coherent);
drivers/crypto/ccree/cc_debugfs.c
88
if (drvdata->hw_rev <= CC_HW_REV_712) {
drivers/crypto/ccree/cc_debugfs.c
89
ver_sig_regs[0].offset = drvdata->sig_offset;
drivers/crypto/ccree/cc_debugfs.c
90
ver_sig_regs[1].offset = drvdata->ver_offset;
drivers/crypto/ccree/cc_debugfs.c
97
verset->base = drvdata->cc_base;
drivers/crypto/ccree/cc_debugfs.h
11
int cc_debugfs_init(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_debugfs.h
12
void cc_debugfs_fini(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_debugfs.h
19
static inline int cc_debugfs_init(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_debugfs.h
24
static inline void cc_debugfs_fini(struct cc_drvdata *drvdata) {}
drivers/crypto/ccree/cc_driver.c
102
static void init_cc_cache_params(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.c
104
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_driver.c
109
cache_params = cc_ioread(drvdata, CC_REG(AXIM_CACHE_PARAMS));
drivers/crypto/ccree/cc_driver.c
113
val = drvdata->coherent ? 0xb : 0x2;
drivers/crypto/ccree/cc_driver.c
127
drvdata->cache_params = cache_params;
drivers/crypto/ccree/cc_driver.c
131
if (drvdata->hw_rev <= CC_HW_REV_710)
drivers/crypto/ccree/cc_driver.c
135
ace_const = cc_ioread(drvdata, CC_REG(AXIM_ACE_CONST));
drivers/crypto/ccree/cc_driver.c
139
val = drvdata->coherent ? 0x2 : 0x3;
drivers/crypto/ccree/cc_driver.c
151
drvdata->ace_const = ace_const;
drivers/crypto/ccree/cc_driver.c
154
static u32 cc_read_idr(struct cc_drvdata *drvdata, const u32 *idr_offsets)
drivers/crypto/ccree/cc_driver.c
163
idr.regs[i] = cc_ioread(drvdata, idr_offsets[i]);
drivers/crypto/ccree/cc_driver.c
183
struct cc_drvdata *drvdata = (struct cc_drvdata *)dev_id;
drivers/crypto/ccree/cc_driver.c
184
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_driver.c
194
irr = cc_ioread(drvdata, CC_REG(HOST_IRR));
drivers/crypto/ccree/cc_driver.c
200
imr = cc_ioread(drvdata, CC_REG(HOST_IMR));
drivers/crypto/ccree/cc_driver.c
203
cc_iowrite(drvdata, CC_REG(HOST_ICR), irr);
drivers/crypto/ccree/cc_driver.c
205
drvdata->irq = irr;
drivers/crypto/ccree/cc_driver.c
207
if (irr & drvdata->comp_mask) {
drivers/crypto/ccree/cc_driver.c
211
cc_iowrite(drvdata, CC_REG(HOST_IMR), imr | drvdata->comp_mask);
drivers/crypto/ccree/cc_driver.c
212
irr &= ~drvdata->comp_mask;
drivers/crypto/ccree/cc_driver.c
213
complete_request(drvdata);
drivers/crypto/ccree/cc_driver.c
221
cc_iowrite(drvdata, CC_REG(HOST_IMR), imr | CC_GPR0_IRQ_MASK);
drivers/crypto/ccree/cc_driver.c
223
fips_handler(drvdata);
drivers/crypto/ccree/cc_driver.c
231
axi_err = cc_ioread(drvdata, CC_REG(AXIM_MON_ERR));
drivers/crypto/ccree/cc_driver.c
247
bool cc_wait_for_reset_completion(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.c
253
if (drvdata->hw_rev <= CC_HW_REV_712)
drivers/crypto/ccree/cc_driver.c
260
val = cc_ioread(drvdata, CC_REG(NVM_IS_IDLE));
drivers/crypto/ccree/cc_driver.c
272
int init_cc_regs(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.c
275
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_driver.c
279
if (drvdata->hw_rev <= CC_HW_REV_712) {
drivers/crypto/ccree/cc_driver.c
280
val = cc_ioread(drvdata, CC_REG(AXIM_CFG));
drivers/crypto/ccree/cc_driver.c
281
cc_iowrite(drvdata, CC_REG(AXIM_CFG), val & ~CC_AXI_IRQ_MASK);
drivers/crypto/ccree/cc_driver.c
283
cc_ioread(drvdata, CC_REG(AXIM_CFG)));
drivers/crypto/ccree/cc_driver.c
287
val = cc_ioread(drvdata, CC_REG(HOST_IRR));
drivers/crypto/ccree/cc_driver.c
289
cc_iowrite(drvdata, CC_REG(HOST_ICR), val);
drivers/crypto/ccree/cc_driver.c
292
val = drvdata->comp_mask | CC_AXI_ERR_IRQ_MASK;
drivers/crypto/ccree/cc_driver.c
294
if (drvdata->hw_rev >= CC_HW_REV_712)
drivers/crypto/ccree/cc_driver.c
297
cc_iowrite(drvdata, CC_REG(HOST_IMR), ~val);
drivers/crypto/ccree/cc_driver.c
299
cc_iowrite(drvdata, CC_REG(AXIM_CACHE_PARAMS), drvdata->cache_params);
drivers/crypto/ccree/cc_driver.c
300
if (drvdata->hw_rev >= CC_HW_REV_712)
drivers/crypto/ccree/cc_driver.c
301
cc_iowrite(drvdata, CC_REG(AXIM_ACE_CONST), drvdata->ace_const);
drivers/crypto/ccree/cc_driver.c
577
void fini_cc_regs(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.c
580
cc_iowrite(drvdata, CC_REG(HOST_IMR), 0xFFFFFFFF);
drivers/crypto/ccree/cc_driver.c
586
struct cc_drvdata *drvdata =
drivers/crypto/ccree/cc_driver.c
589
cc_aead_free(drvdata);
drivers/crypto/ccree/cc_driver.c
590
cc_cipher_free(drvdata);
drivers/crypto/ccree/cc_driver.c
591
cc_hash_free(drvdata);
drivers/crypto/ccree/cc_driver.c
592
cc_buffer_mgr_fini(drvdata);
drivers/crypto/ccree/cc_driver.c
593
cc_req_mgr_fini(drvdata);
drivers/crypto/ccree/cc_driver.c
594
cc_fips_fini(drvdata);
drivers/crypto/ccree/cc_driver.c
595
cc_debugfs_fini(drvdata);
drivers/crypto/ccree/cc_driver.c
596
fini_cc_regs(drvdata);
drivers/crypto/ccree/cc_driver.c
600
clk_disable_unprepare(drvdata->clk);
drivers/crypto/ccree/cc_driver.c
603
unsigned int cc_get_default_hash_len(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.c
605
if (drvdata->hw_rev >= CC_HW_REV_712)
drivers/crypto/ccree/cc_driver.h
165
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_driver.h
185
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_driver.h
194
static inline struct device *drvdata_to_dev(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_driver.h
196
return &drvdata->plat_dev->dev;
drivers/crypto/ccree/cc_driver.h
207
bool cc_wait_for_reset_completion(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_driver.h
208
int init_cc_regs(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_driver.h
209
void fini_cc_regs(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_driver.h
210
unsigned int cc_get_default_hash_len(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_driver.h
212
static inline void cc_iowrite(struct cc_drvdata *drvdata, u32 reg, u32 val)
drivers/crypto/ccree/cc_driver.h
214
iowrite32(val, (drvdata->cc_base + reg));
drivers/crypto/ccree/cc_driver.h
217
static inline u32 cc_ioread(struct cc_drvdata *drvdata, u32 reg)
drivers/crypto/ccree/cc_driver.h
219
return ioread32(drvdata->cc_base + reg);
drivers/crypto/ccree/cc_driver.h
228
static inline void set_queue_last_ind(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_driver.h
231
if (drvdata->hw_rev >= CC_HW_REV_712)
drivers/crypto/ccree/cc_fips.c
114
struct cc_drvdata *drvdata = (struct cc_drvdata *)devarg;
drivers/crypto/ccree/cc_fips.c
117
irq = (drvdata->irq & (CC_GPR0_IRQ_MASK));
drivers/crypto/ccree/cc_fips.c
120
cc_tee_handle_fips_error(drvdata);
drivers/crypto/ccree/cc_fips.c
127
cc_iowrite(drvdata, CC_REG(HOST_IMR), val);
drivers/crypto/ccree/cc_fips.c
147
fips_h->drvdata = p_drvdata;
drivers/crypto/ccree/cc_fips.c
16
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_fips.c
22
static bool cc_get_tee_fips_status(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_fips.c
26
reg = cc_ioread(drvdata, CC_REG(GPR_HOST));
drivers/crypto/ccree/cc_fips.c
40
void cc_set_ree_fips_status(struct cc_drvdata *drvdata, bool status)
drivers/crypto/ccree/cc_fips.c
44
if (drvdata->hw_rev < CC_HW_REV_712)
drivers/crypto/ccree/cc_fips.c
49
cc_iowrite(drvdata, CC_REG(HOST_GPR0), val);
drivers/crypto/ccree/cc_fips.c
58
struct cc_drvdata *drvdata = fips_h->drvdata;
drivers/crypto/ccree/cc_fips.c
59
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_fips.c
61
cc_set_ree_fips_status(drvdata, false);
drivers/crypto/ccree/cc_fips.c
67
void cc_fips_fini(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_fips.c
69
struct cc_fips_handle *fips_h = drvdata->fips_handle;
drivers/crypto/ccree/cc_fips.c
71
if (drvdata->hw_rev < CC_HW_REV_712 || !fips_h)
drivers/crypto/ccree/cc_fips.c
78
drvdata->fips_handle = NULL;
drivers/crypto/ccree/cc_fips.c
81
void fips_handler(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_fips.c
83
struct cc_fips_handle *fips_handle_ptr = drvdata->fips_handle;
drivers/crypto/ccree/cc_fips.c
85
if (drvdata->hw_rev < CC_HW_REV_712)
drivers/crypto/ccree/cc_fips.h
18
void cc_fips_fini(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_fips.h
19
void fips_handler(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_fips.h
20
void cc_set_ree_fips_status(struct cc_drvdata *drvdata, bool ok);
drivers/crypto/ccree/cc_fips.h
30
static inline void cc_fips_fini(struct cc_drvdata *drvdata) {}
drivers/crypto/ccree/cc_fips.h
31
static inline void cc_set_ree_fips_status(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_fips.h
33
static inline void fips_handler(struct cc_drvdata *drvdata) {}
drivers/crypto/ccree/cc_hash.c
1011
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1049
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1072
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1117
return cc_get_default_hash_len(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1136
ctx->drvdata = cc_alg->drvdata;
drivers/crypto/ccree/cc_hash.c
1144
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1155
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1170
rc = cc_map_hash_request_update(ctx->drvdata, state, req->src,
drivers/crypto/ccree/cc_hash.c
1200
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
1209
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
1223
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1249
if (cc_map_hash_request_final(ctx->drvdata, state, req->src,
drivers/crypto/ccree/cc_hash.c
1323
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
1329
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
1344
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1364
if (cc_map_hash_request_final(ctx->drvdata, state, req->src,
drivers/crypto/ccree/cc_hash.c
1404
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
1410
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
1425
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1448
if (cc_map_hash_request_final(ctx->drvdata, state, req->src,
drivers/crypto/ccree/cc_hash.c
1482
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
1489
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
1529
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
1570
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_hash.c
1865
static int cc_init_copy_sram(struct cc_drvdata *drvdata, const u32 *data,
drivers/crypto/ccree/cc_hash.c
1874
rc = send_request_init(drvdata, larval_seq, larval_seq_len);
drivers/crypto/ccree/cc_hash.c
1882
int cc_init_hash_sram(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_hash.c
1884
struct cc_hash_handle *hash_handle = drvdata->hash_handle;
drivers/crypto/ccree/cc_hash.c
1886
bool large_sha_supported = (drvdata->hw_rev >= CC_HW_REV_712);
drivers/crypto/ccree/cc_hash.c
1887
bool sm3_supported = (drvdata->hw_rev >= CC_HW_REV_713);
drivers/crypto/ccree/cc_hash.c
1891
rc = cc_init_copy_sram(drvdata, cc_digest_len_init,
drivers/crypto/ccree/cc_hash.c
1898
rc = cc_init_copy_sram(drvdata, cc_digest_len_sha512_init,
drivers/crypto/ccree/cc_hash.c
1909
rc = cc_init_copy_sram(drvdata, cc_md5_init, sizeof(cc_md5_init),
drivers/crypto/ccree/cc_hash.c
1914
rc = cc_init_copy_sram(drvdata, cc_sha1_init, sizeof(cc_sha1_init),
drivers/crypto/ccree/cc_hash.c
1919
rc = cc_init_copy_sram(drvdata, cc_sha224_init, sizeof(cc_sha224_init),
drivers/crypto/ccree/cc_hash.c
1924
rc = cc_init_copy_sram(drvdata, cc_sha256_init, sizeof(cc_sha256_init),
drivers/crypto/ccree/cc_hash.c
1930
rc = cc_init_copy_sram(drvdata, cc_sm3_init,
drivers/crypto/ccree/cc_hash.c
1937
rc = cc_init_copy_sram(drvdata, cc_sha384_init,
drivers/crypto/ccree/cc_hash.c
1942
rc = cc_init_copy_sram(drvdata, cc_sha512_init,
drivers/crypto/ccree/cc_hash.c
1952
int cc_hash_alloc(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_hash.c
1957
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_hash.c
1966
drvdata->hash_handle = hash_handle;
drivers/crypto/ccree/cc_hash.c
1974
if (drvdata->hw_rev >= CC_HW_REV_713)
drivers/crypto/ccree/cc_hash.c
1977
if (drvdata->hw_rev >= CC_HW_REV_712)
drivers/crypto/ccree/cc_hash.c
1981
sram_buff = cc_sram_alloc(drvdata, sram_size_to_alloc);
drivers/crypto/ccree/cc_hash.c
1991
rc = cc_init_hash_sram(drvdata);
drivers/crypto/ccree/cc_hash.c
2003
if ((driver_hash[alg].min_hw_rev > drvdata->hw_rev) ||
drivers/crypto/ccree/cc_hash.c
2004
!(drvdata->std_bodies & driver_hash[alg].std_body))
drivers/crypto/ccree/cc_hash.c
2016
t_alg->drvdata = drvdata;
drivers/crypto/ccree/cc_hash.c
2039
t_alg->drvdata = drvdata;
drivers/crypto/ccree/cc_hash.c
2054
cc_hash_free(drvdata);
drivers/crypto/ccree/cc_hash.c
2058
int cc_hash_free(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_hash.c
2061
struct cc_hash_handle *hash_handle = drvdata->hash_handle;
drivers/crypto/ccree/cc_hash.c
2168
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
2188
set_dout_sram(&desc[idx], ctx->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_hash.c
2195
ctx->drvdata->mlli_sram_addr,
drivers/crypto/ccree/cc_hash.c
2239
u32 cc_larval_digest_addr(void *drvdata, u32 mode)
drivers/crypto/ccree/cc_hash.c
2241
struct cc_drvdata *_drvdata = (struct cc_drvdata *)drvdata;
drivers/crypto/ccree/cc_hash.c
2297
u32 cc_digest_len_addr(void *drvdata, u32 mode)
drivers/crypto/ccree/cc_hash.c
2299
struct cc_drvdata *_drvdata = (struct cc_drvdata *)drvdata;
drivers/crypto/ccree/cc_hash.c
354
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
395
cc_digest_len_addr(ctx->drvdata, ctx->hash_mode),
drivers/crypto/ccree/cc_hash.c
427
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
452
if (cc_map_hash_request_final(ctx->drvdata, state, src, nbytes, 1,
drivers/crypto/ccree/cc_hash.c
473
larval_digest_addr = cc_larval_digest_addr(ctx->drvdata,
drivers/crypto/ccree/cc_hash.c
519
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
564
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
579
rc = cc_map_hash_request_update(ctx->drvdata, state, src, nbytes,
drivers/crypto/ccree/cc_hash.c
618
set_queue_last_ind(ctx->drvdata, &desc[idx]);
drivers/crypto/ccree/cc_hash.c
623
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
641
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
657
if (cc_map_hash_request_final(ctx->drvdata, state, src, nbytes, update,
drivers/crypto/ccree/cc_hash.c
691
rc = cc_send_request(ctx->drvdata, &cc_req, desc, idx, &req->base);
drivers/crypto/ccree/cc_hash.c
717
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
72
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_hash.c
740
dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
746
larval_addr = cc_larval_digest_addr(ctx->drvdata, ctx->hash_mode);
drivers/crypto/ccree/cc_hash.c
84
struct cc_drvdata *drvdata;
drivers/crypto/ccree/cc_hash.c
849
rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, idx);
drivers/crypto/ccree/cc_hash.c
906
rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, idx);
drivers/crypto/ccree/cc_hash.c
926
struct device *dev = drvdata_to_dev(ctx->drvdata);
drivers/crypto/ccree/cc_hash.c
995
rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, idx);
drivers/crypto/ccree/cc_hash.h
104
u32 cc_larval_digest_addr(void *drvdata, u32 mode);
drivers/crypto/ccree/cc_hash.h
79
int cc_hash_alloc(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_hash.h
80
int cc_init_hash_sram(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_hash.h
81
int cc_hash_free(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_hash.h
92
u32 cc_digest_len_addr(void *drvdata, u32 mode);
drivers/crypto/ccree/cc_pm.c
20
struct cc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/crypto/ccree/cc_pm.c
23
fini_cc_regs(drvdata);
drivers/crypto/ccree/cc_pm.c
24
cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE);
drivers/crypto/ccree/cc_pm.c
25
clk_disable_unprepare(drvdata->clk);
drivers/crypto/ccree/cc_pm.c
32
struct cc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/crypto/ccree/cc_pm.c
36
rc = clk_prepare_enable(drvdata->clk);
drivers/crypto/ccree/cc_pm.c
42
if (!cc_wait_for_reset_completion(drvdata)) {
drivers/crypto/ccree/cc_pm.c
44
clk_disable_unprepare(drvdata->clk);
drivers/crypto/ccree/cc_pm.c
48
cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_DISABLE);
drivers/crypto/ccree/cc_pm.c
49
rc = init_cc_regs(drvdata);
drivers/crypto/ccree/cc_pm.c
52
clk_disable_unprepare(drvdata->clk);
drivers/crypto/ccree/cc_pm.c
56
cc_tee_handle_fips_error(drvdata);
drivers/crypto/ccree/cc_pm.c
58
cc_init_hash_sram(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
110
drvdata->request_mgr_handle = NULL;
drivers/crypto/ccree/cc_request_mgr.c
113
int cc_req_mgr_init(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
116
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
125
drvdata->request_mgr_handle = req_mgr_h;
drivers/crypto/ccree/cc_request_mgr.c
143
(unsigned long)drvdata);
drivers/crypto/ccree/cc_request_mgr.c
145
req_mgr_h->hw_queue_size = cc_ioread(drvdata,
drivers/crypto/ccree/cc_request_mgr.c
175
set_queue_last_ind(drvdata, &req_mgr_h->compl_desc);
drivers/crypto/ccree/cc_request_mgr.c
180
cc_req_mgr_fini(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
184
static void enqueue_seq(struct cc_drvdata *drvdata, struct cc_hw_desc seq[],
drivers/crypto/ccree/cc_request_mgr.c
188
void __iomem *reg = drvdata->cc_base + CC_REG(DSCRPTR_QUEUE_WORD0);
drivers/crypto/ccree/cc_request_mgr.c
189
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
224
static int cc_queues_status(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_request_mgr.c
229
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
248
cc_ioread(drvdata, CC_REG(DSCRPTR_QUEUE_CONTENT));
drivers/crypto/ccree/cc_request_mgr.c
278
static void cc_do_send_request(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_request_mgr.c
283
struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
286
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
310
enqueue_seq(drvdata, desc, len);
drivers/crypto/ccree/cc_request_mgr.c
313
enqueue_seq(drvdata, &req_mgr_h->compl_desc, 1);
drivers/crypto/ccree/cc_request_mgr.c
330
static void cc_enqueue_backlog(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_request_mgr.c
333
struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
334
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
344
static void cc_proc_backlog(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
346
struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
350
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
376
rc = cc_queues_status(drvdata, mgr, bli->len);
drivers/crypto/ccree/cc_request_mgr.c
387
cc_do_send_request(drvdata, &bli->creq, bli->desc, bli->len,
drivers/crypto/ccree/cc_request_mgr.c
401
int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
drivers/crypto/ccree/cc_request_mgr.c
406
struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
407
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
419
rc = cc_queues_status(drvdata, mgr, len);
drivers/crypto/ccree/cc_request_mgr.c
439
cc_enqueue_backlog(drvdata, bli);
drivers/crypto/ccree/cc_request_mgr.c
444
cc_do_send_request(drvdata, cc_req, desc, len, false);
drivers/crypto/ccree/cc_request_mgr.c
452
int cc_send_sync_request(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_request_mgr.c
457
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
458
struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
472
rc = cc_queues_status(drvdata, mgr, len + 1);
drivers/crypto/ccree/cc_request_mgr.c
478
wait_for_completion_interruptible(&drvdata->hw_queue_avail);
drivers/crypto/ccree/cc_request_mgr.c
479
reinit_completion(&drvdata->hw_queue_avail);
drivers/crypto/ccree/cc_request_mgr.c
482
cc_do_send_request(drvdata, cc_req, desc, len, true);
drivers/crypto/ccree/cc_request_mgr.c
501
int send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc,
drivers/crypto/ccree/cc_request_mgr.c
504
struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
510
rc = cc_queues_status(drvdata, req_mgr_h, total_seq_len);
drivers/crypto/ccree/cc_request_mgr.c
514
set_queue_last_ind(drvdata, &desc[(len - 1)]);
drivers/crypto/ccree/cc_request_mgr.c
522
enqueue_seq(drvdata, desc, len);
drivers/crypto/ccree/cc_request_mgr.c
526
cc_ioread(drvdata, CC_REG(DSCRPTR_QUEUE_CONTENT));
drivers/crypto/ccree/cc_request_mgr.c
531
void complete_request(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
534
drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
536
complete(&drvdata->hw_queue_avail);
drivers/crypto/ccree/cc_request_mgr.c
548
struct cc_drvdata *drvdata =
drivers/crypto/ccree/cc_request_mgr.c
551
comp_handler((unsigned long)drvdata);
drivers/crypto/ccree/cc_request_mgr.c
555
static void proc_completions(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
558
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
560
drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
588
rc = (drvdata->irq & mask ? -EPERM : 0);
drivers/crypto/ccree/cc_request_mgr.c
590
drvdata->irq, rc);
drivers/crypto/ccree/cc_request_mgr.c
606
static inline u32 cc_axi_comp_count(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
609
cc_ioread(drvdata, drvdata->axim_mon_offset));
drivers/crypto/ccree/cc_request_mgr.c
615
struct cc_drvdata *drvdata = (struct cc_drvdata *)devarg;
drivers/crypto/ccree/cc_request_mgr.c
617
drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
618
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
622
irq = (drvdata->irq & drvdata->comp_mask);
drivers/crypto/ccree/cc_request_mgr.c
627
cc_iowrite(drvdata, CC_REG(HOST_ICR), irq);
drivers/crypto/ccree/cc_request_mgr.c
631
request_mgr_handle->axi_completed += cc_axi_comp_count(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
638
drvdata->irq |= cc_ioread(drvdata, CC_REG(HOST_IRR));
drivers/crypto/ccree/cc_request_mgr.c
639
irq = (drvdata->irq & drvdata->comp_mask);
drivers/crypto/ccree/cc_request_mgr.c
640
proc_completions(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
646
cc_axi_comp_count(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
649
cc_iowrite(drvdata, CC_REG(HOST_ICR), irq);
drivers/crypto/ccree/cc_request_mgr.c
651
request_mgr_handle->axi_completed += cc_axi_comp_count(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
657
cc_iowrite(drvdata, CC_REG(HOST_IMR),
drivers/crypto/ccree/cc_request_mgr.c
658
cc_ioread(drvdata, CC_REG(HOST_IMR)) & ~drvdata->comp_mask);
drivers/crypto/ccree/cc_request_mgr.c
660
cc_proc_backlog(drvdata);
drivers/crypto/ccree/cc_request_mgr.c
86
void cc_req_mgr_fini(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_request_mgr.c
88
struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle;
drivers/crypto/ccree/cc_request_mgr.c
89
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_request_mgr.h
13
int cc_req_mgr_init(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_request_mgr.h
27
int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
drivers/crypto/ccree/cc_request_mgr.h
31
int cc_send_sync_request(struct cc_drvdata *drvdata,
drivers/crypto/ccree/cc_request_mgr.h
35
int send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc,
drivers/crypto/ccree/cc_request_mgr.h
38
void complete_request(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_request_mgr.h
40
void cc_req_mgr_fini(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_sram_mgr.c
17
int cc_sram_mgr_init(struct cc_drvdata *drvdata)
drivers/crypto/ccree/cc_sram_mgr.c
20
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_sram_mgr.c
22
if (drvdata->hw_rev < CC_HW_REV_712) {
drivers/crypto/ccree/cc_sram_mgr.c
24
start = cc_ioread(drvdata, CC_REG(HOST_SEP_SRAM_THRESHOLD));
drivers/crypto/ccree/cc_sram_mgr.c
31
drvdata->sram_free_offset = start;
drivers/crypto/ccree/cc_sram_mgr.c
44
u32 cc_sram_alloc(struct cc_drvdata *drvdata, u32 size)
drivers/crypto/ccree/cc_sram_mgr.c
46
struct device *dev = drvdata_to_dev(drvdata);
drivers/crypto/ccree/cc_sram_mgr.c
54
if (size > (CC_CC_SRAM_SIZE - drvdata->sram_free_offset)) {
drivers/crypto/ccree/cc_sram_mgr.c
56
size, drvdata->sram_free_offset);
drivers/crypto/ccree/cc_sram_mgr.c
60
p = drvdata->sram_free_offset;
drivers/crypto/ccree/cc_sram_mgr.c
61
drvdata->sram_free_offset += size;
drivers/crypto/ccree/cc_sram_mgr.h
25
int cc_sram_mgr_init(struct cc_drvdata *drvdata);
drivers/crypto/ccree/cc_sram_mgr.h
36
u32 cc_sram_alloc(struct cc_drvdata *drvdata, u32 size);
drivers/dma/fsl-edma-common.c
110
if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) {
drivers/dma/fsl-edma-common.c
144
if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_WRAP_IO) {
drivers/dma/fsl-edma-common.c
189
u32 dmamux_nr = fsl_chan->edma->drvdata->dmamuxs;
drivers/dma/fsl-edma-common.c
197
if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_MUX_SWAP)
drivers/dma/fsl-edma-common.c
203
if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_CONFIG32)
drivers/dma/fsl-edma-common.c
890
if (edma->drvdata->dmamuxs)
drivers/dma/fsl-edma-common.c
933
bool is64 = !!(edma->drvdata->flags & FSL_EDMA_DRV_EDMA64);
drivers/dma/fsl-edma-common.h
261
const struct fsl_edma_drvdata *drvdata;
drivers/dma/fsl-edma-common.h
274
return fsl_chan->edma->drvdata->flags;
drivers/dma/fsl-edma-main.c
257
u32 dmamux_nr = fsl_edma->drvdata->dmamuxs;
drivers/dma/fsl-edma-main.c
306
b_chmux = !!(fsl_edma->drvdata->flags & FSL_EDMA_DRV_HAS_CHMUX);
drivers/dma/fsl-edma-main.c
402
if (!(fsl_edma->drvdata->flags & FSL_EDMA_DRV_ERRIRQ_SHARE)) {
drivers/dma/fsl-edma-main.c
409
if (fsl_edma->drvdata->flags & FSL_EDMA_DRV_ERRIRQ_SHARE) {
drivers/dma/fsl-edma-main.c
700
const struct fsl_edma_drvdata *drvdata = NULL;
drivers/dma/fsl-edma-main.c
707
drvdata = device_get_match_data(&pdev->dev);
drivers/dma/fsl-edma-main.c
708
if (!drvdata) {
drivers/dma/fsl-edma-main.c
726
fsl_edma->drvdata = drvdata;
drivers/dma/fsl-edma-main.c
734
if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)) {
drivers/dma/fsl-edma-main.c
739
if (drvdata->flags & FSL_EDMA_DRV_HAS_DMACLK) {
drivers/dma/fsl-edma-main.c
755
for (i = 0; i < fsl_edma->drvdata->dmamuxs; i++) {
drivers/dma/fsl-edma-main.c
777
if (drvdata->flags & FSL_EDMA_DRV_HAS_PD) {
drivers/dma/fsl-edma-main.c
786
if (drvdata->flags & FSL_EDMA_DRV_TCD64)
drivers/dma/fsl-edma-main.c
809
len = (drvdata->flags & FSL_EDMA_DRV_SPLIT_REG) ?
drivers/dma/fsl-edma-main.c
812
+ i * drvdata->chreg_space_sz + drvdata->chreg_off + len;
drivers/dma/fsl-edma-main.c
813
fsl_chan->mux_addr = fsl_edma->membase + drvdata->mux_off + i * drvdata->mux_skip;
drivers/dma/fsl-edma-main.c
815
if (drvdata->flags & FSL_EDMA_DRV_HAS_CHCLK) {
drivers/dma/fsl-edma-main.c
828
if (fsl_chan->edma->drvdata->flags & FSL_EDMA_DRV_HAS_CHCLK)
drivers/dma/fsl-edma-main.c
832
ret = fsl_edma->drvdata->setup_irq(pdev, fsl_edma);
drivers/dma/fsl-edma-main.c
860
if (drvdata->flags & FSL_EDMA_DRV_BUS_8BYTE) {
drivers/dma/fsl-edma-main.c
866
if (drvdata->flags & FSL_EDMA_DRV_DEV_TO_DEV)
drivers/dma/fsl-edma-main.c
869
fsl_edma->dma_dev.copy_align = drvdata->flags & FSL_EDMA_DRV_ALIGN_64BYTE ?
drivers/dma/fsl-edma-main.c
889
drvdata->dmamuxs ? fsl_edma_xlate : fsl_edma3_xlate,
drivers/dma/fsl-edma-main.c
899
if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG))
drivers/dma/fsl-edma-main.c
959
if (!(fsl_edma->drvdata->flags & FSL_EDMA_DRV_SPLIT_REG))
drivers/dma/imx-sdma.c
1030
if (sdmac->sdma->drvdata->ecspi_fixed) {
drivers/dma/imx-sdma.c
1860
if (sdmac->event_id0 >= sdmac->sdma->drvdata->num_events)
drivers/dma/imx-sdma.c
1865
if (sdmac->event_id1 >= sdmac->sdma->drvdata->num_events)
drivers/dma/imx-sdma.c
2128
if (sdma->drvdata->check_ratio &&
drivers/dma/imx-sdma.c
2155
for (i = 0; i < sdma->drvdata->num_events; i++)
drivers/dma/imx-sdma.c
2258
sdma->drvdata = of_device_get_match_data(sdma->dev);
drivers/dma/imx-sdma.c
2342
if (sdma->drvdata->script_addrs)
drivers/dma/imx-sdma.c
2343
sdma_add_scripts(sdma, sdma->drvdata->script_addrs);
drivers/dma/imx-sdma.c
536
const struct sdma_driver_data *drvdata;
drivers/dma/imx-sdma.c
695
u32 chnenbl0 = sdma->drvdata->chnenbl0;
drivers/dma/mcf-edma-main.c
180
mcf_edma->drvdata = &mcf_data;
drivers/dma/mcf-edma-main.c
209
ret = mcf_edma->drvdata->setup_irq(pdev, mcf_edma);
drivers/dma/st_fdma.c
714
const struct st_fdma_driverdata *drvdata,
drivers/dma/st_fdma.c
718
drvdata->name, drvdata->id);
drivers/dma/st_fdma.c
744
const struct st_fdma_driverdata *drvdata;
drivers/dma/st_fdma.c
747
drvdata = device_get_match_data(&pdev->dev);
drivers/dma/st_fdma.c
753
ret = st_fdma_parse_dt(pdev, drvdata, fdev);
drivers/dma/st_fdma.c
765
fdev->drvdata = drvdata;
drivers/dma/st_fdma.h
132
const struct st_fdma_driverdata *drvdata;
drivers/edac/altera_edac.c
100
regmap_read(drvdata->mc_vbase, priv->ecc_saddr_offset,
drivers/edac/altera_edac.c
103
regmap_read(drvdata->mc_vbase, priv->ecc_cecnt_offset,
drivers/edac/altera_edac.c
110
regmap_write(drvdata->mc_vbase, priv->ecc_irq_clr_offset,
drivers/edac/altera_edac.c
123
struct altr_sdram_mc_data *drvdata = mci->pvt_info;
drivers/edac/altera_edac.c
124
const struct altr_sdram_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
136
regmap_read(drvdata->mc_vbase, priv->ce_ue_trgr_offset,
drivers/edac/altera_edac.c
148
regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset,
drivers/edac/altera_edac.c
155
regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset,
drivers/edac/altera_edac.c
164
regmap_write(drvdata->mc_vbase, priv->ce_ue_trgr_offset, read_reg);
drivers/edac/altera_edac.c
1747
struct altr_edac_device_dev *drvdata = edac_dci->pvt_info;
drivers/edac/altera_edac.c
1748
const struct edac_device_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
1749
void __iomem *set_addr = (drvdata->base + priv->set_err_ofst);
drivers/edac/altera_edac.c
1779
struct altr_edac_device_dev *drvdata = edac_dci->pvt_info;
drivers/edac/altera_edac.c
1780
const struct edac_device_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
1781
void __iomem *set_addr = (drvdata->base + priv->set_err_ofst);
drivers/edac/altera_edac.c
1793
writel(ECC_WORD_WRITE, drvdata->base + ECC_BLK_DBYTECTRL_OFST);
drivers/edac/altera_edac.c
1795
writel(0, drvdata->base + ECC_BLK_ADDRESS_OFST);
drivers/edac/altera_edac.c
1797
writel(ECC_READ_EDOVR, drvdata->base + ECC_BLK_ACCCTRL_OFST);
drivers/edac/altera_edac.c
1799
writel(ECC_XACT_KICK, drvdata->base + ECC_BLK_STARTACC_OFST);
drivers/edac/altera_edac.c
1801
writel(readl(drvdata->base + ECC_BLK_RDATA0_OFST) ^ 0x1,
drivers/edac/altera_edac.c
1802
drvdata->base + ECC_BLK_WDATA0_OFST);
drivers/edac/altera_edac.c
1803
writel(readl(drvdata->base + ECC_BLK_RDATA1_OFST),
drivers/edac/altera_edac.c
1804
drvdata->base + ECC_BLK_WDATA1_OFST);
drivers/edac/altera_edac.c
1805
writel(readl(drvdata->base + ECC_BLK_RDATA2_OFST),
drivers/edac/altera_edac.c
1806
drvdata->base + ECC_BLK_WDATA2_OFST);
drivers/edac/altera_edac.c
1807
writel(readl(drvdata->base + ECC_BLK_RDATA3_OFST),
drivers/edac/altera_edac.c
1808
drvdata->base + ECC_BLK_WDATA3_OFST);
drivers/edac/altera_edac.c
1811
writel(readl(drvdata->base + ECC_BLK_RECC0_OFST),
drivers/edac/altera_edac.c
1812
drvdata->base + ECC_BLK_WECC0_OFST);
drivers/edac/altera_edac.c
1813
writel(readl(drvdata->base + ECC_BLK_RECC1_OFST),
drivers/edac/altera_edac.c
1814
drvdata->base + ECC_BLK_WECC1_OFST);
drivers/edac/altera_edac.c
1816
writel(ECC_WRITE_EDOVR, drvdata->base + ECC_BLK_ACCCTRL_OFST);
drivers/edac/altera_edac.c
1818
writel(ECC_XACT_KICK, drvdata->base + ECC_BLK_STARTACC_OFST);
drivers/edac/altera_edac.c
1820
writel(ECC_READ_EDOVR, drvdata->base + ECC_BLK_ACCCTRL_OFST);
drivers/edac/altera_edac.c
1822
writel(ECC_XACT_KICK, drvdata->base + ECC_BLK_STARTACC_OFST);
drivers/edac/altera_edac.c
284
struct altr_sdram_mc_data *drvdata;
drivers/edac/altera_edac.c
365
drvdata = mci->pvt_info;
drivers/edac/altera_edac.c
366
drvdata->mc_vbase = mc_vbase;
drivers/edac/altera_edac.c
367
drvdata->data = priv;
drivers/edac/altera_edac.c
430
if (regmap_update_bits(drvdata->mc_vbase, priv->ecc_irq_en_offset,
drivers/edac/altera_edac.c
551
struct altr_edac_device_dev *drvdata = dci->pvt_info;
drivers/edac/altera_edac.c
552
const struct edac_device_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
554
if (irq == drvdata->sb_irq) {
drivers/edac/altera_edac.c
556
writel(priv->ce_clear_mask, drvdata->base);
drivers/edac/altera_edac.c
557
edac_device_handle_ce(dci, 0, 0, drvdata->edac_dev_name);
drivers/edac/altera_edac.c
559
} else if (irq == drvdata->db_irq) {
drivers/edac/altera_edac.c
561
writel(priv->ue_clear_mask, drvdata->base);
drivers/edac/altera_edac.c
562
edac_device_handle_ue(dci, 0, 0, drvdata->edac_dev_name);
drivers/edac/altera_edac.c
582
struct altr_edac_device_dev *drvdata = edac_dci->pvt_info;
drivers/edac/altera_edac.c
583
const struct edac_device_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
619
writel(error_mask, (drvdata->base + priv->set_err_ofst));
drivers/edac/altera_edac.c
620
writel(priv->ecc_enable_mask, (drvdata->base +
drivers/edac/altera_edac.c
672
struct altr_edac_device_dev *drvdata = edac_dci->pvt_info;
drivers/edac/altera_edac.c
677
drvdata->debugfs_dir = edac_debugfs_create_dir(drvdata->edac_dev_name);
drivers/edac/altera_edac.c
678
if (!drvdata->debugfs_dir)
drivers/edac/altera_edac.c
682
drvdata->debugfs_dir, edac_dci,
drivers/edac/altera_edac.c
684
debugfs_remove_recursive(drvdata->debugfs_dir);
drivers/edac/altera_edac.c
709
struct altr_edac_device_dev *drvdata;
drivers/edac/altera_edac.c
738
dci = edac_device_alloc_ctl_info(sizeof(*drvdata), ecc_name,
drivers/edac/altera_edac.c
748
drvdata = dci->pvt_info;
drivers/edac/altera_edac.c
751
drvdata->edac_dev_name = ecc_name;
drivers/edac/altera_edac.c
753
drvdata->base = devm_ioremap(&pdev->dev, r->start, resource_size(r));
drivers/edac/altera_edac.c
754
if (!drvdata->base) {
drivers/edac/altera_edac.c
760
drvdata->data = of_match_node(altr_edac_device_of_match, np)->data;
drivers/edac/altera_edac.c
763
if (drvdata->data->setup) {
drivers/edac/altera_edac.c
764
res = drvdata->data->setup(drvdata);
drivers/edac/altera_edac.c
769
drvdata->sb_irq = platform_get_irq(pdev, 0);
drivers/edac/altera_edac.c
770
res = devm_request_irq(&pdev->dev, drvdata->sb_irq,
drivers/edac/altera_edac.c
776
drvdata->db_irq = platform_get_irq(pdev, 1);
drivers/edac/altera_edac.c
777
res = devm_request_irq(&pdev->dev, drvdata->db_irq,
drivers/edac/altera_edac.c
784
dci->dev_name = drvdata->edac_dev_name;
drivers/edac/altera_edac.c
790
altr_create_edacdev_dbgfs(dci, drvdata->data);
drivers/edac/altera_edac.c
809
struct altr_edac_device_dev *drvdata = dci->pvt_info;
drivers/edac/altera_edac.c
811
debugfs_remove_recursive(drvdata->debugfs_dir);
drivers/edac/altera_edac.c
84
struct altr_sdram_mc_data *drvdata = mci->pvt_info;
drivers/edac/altera_edac.c
85
const struct altr_sdram_prv_data *priv = drvdata->data;
drivers/edac/altera_edac.c
88
regmap_read(drvdata->mc_vbase, priv->ecc_stat_offset, &status);
drivers/edac/altera_edac.c
91
regmap_read(drvdata->mc_vbase, priv->ecc_daddr_offset,
drivers/edac/altera_edac.c
94
regmap_read(drvdata->mc_vbase, priv->ecc_uecnt_offset,
drivers/edac/armada_xp_edac.c
100
} else if (drvdata->width == 4) {
drivers/edac/armada_xp_edac.c
102
if (drvdata->cs_addr_sel[cs])
drivers/edac/armada_xp_edac.c
114
if (drvdata->cs_addr_sel[cs])
drivers/edac/armada_xp_edac.c
129
struct axp_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
134
char *msg = drvdata->msg;
drivers/edac/armada_xp_edac.c
136
data_h = readl(drvdata->base + SDRAM_ERR_DATA_H_REG);
drivers/edac/armada_xp_edac.c
137
data_l = readl(drvdata->base + SDRAM_ERR_DATA_L_REG);
drivers/edac/armada_xp_edac.c
138
recv_ecc = readl(drvdata->base + SDRAM_ERR_RECV_ECC_REG);
drivers/edac/armada_xp_edac.c
139
calc_ecc = readl(drvdata->base + SDRAM_ERR_CALC_ECC_REG);
drivers/edac/armada_xp_edac.c
140
addr = readl(drvdata->base + SDRAM_ERR_ADDR_REG);
drivers/edac/armada_xp_edac.c
141
cnt_sbe = readl(drvdata->base + SDRAM_ERR_SBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
142
cnt_dbe = readl(drvdata->base + SDRAM_ERR_DBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
143
cause_err = readl(drvdata->base + SDRAM_ERR_CAUSE_ERR_REG);
drivers/edac/armada_xp_edac.c
144
cause_msg = readl(drvdata->base + SDRAM_ERR_CAUSE_MSG_REG);
drivers/edac/armada_xp_edac.c
148
drvdata->base + SDRAM_ERR_CAUSE_ERR_REG);
drivers/edac/armada_xp_edac.c
150
drvdata->base + SDRAM_ERR_CAUSE_MSG_REG);
drivers/edac/armada_xp_edac.c
154
writel(0, drvdata->base + SDRAM_ERR_SBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
156
writel(0, drvdata->base + SDRAM_ERR_DBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
195
addr_val = axp_mc_calc_address(drvdata, cs_val, bank_val, row_val,
drivers/edac/armada_xp_edac.c
209
mci->ctl_name, drvdata->msg);
drivers/edac/armada_xp_edac.c
217
mci->ctl_name, drvdata->msg);
drivers/edac/armada_xp_edac.c
223
struct axp_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
228
config = readl(drvdata->base + SDRAM_CONFIG_REG);
drivers/edac/armada_xp_edac.c
231
drvdata->width = 8;
drivers/edac/armada_xp_edac.c
234
drvdata->width = 4;
drivers/edac/armada_xp_edac.c
236
addr_ctrl = readl(drvdata->base + SDRAM_ADDR_CTRL_REG);
drivers/edac/armada_xp_edac.c
237
rank_ctrl = readl(drvdata->base + SDRAM_RANK_CTRL_REG);
drivers/edac/armada_xp_edac.c
244
drvdata->cs_addr_sel[i] =
drivers/edac/armada_xp_edac.c
287
struct axp_mc_drvdata *drvdata;
drivers/edac/armada_xp_edac.c
310
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*drvdata));
drivers/edac/armada_xp_edac.c
314
drvdata = mci->pvt_info;
drivers/edac/armada_xp_edac.c
315
drvdata->base = base;
drivers/edac/armada_xp_edac.c
333
drvdata->width /= 2;
drivers/edac/armada_xp_edac.c
337
writel(1 << SDRAM_ERR_CTRL_THR_OFFSET, drvdata->base + SDRAM_ERR_CTRL_REG);
drivers/edac/armada_xp_edac.c
340
writel(~(SDRAM_ERR_CAUSE_DBE_MASK | SDRAM_ERR_CAUSE_SBE_MASK), drvdata->base + SDRAM_ERR_CAUSE_ERR_REG);
drivers/edac/armada_xp_edac.c
341
writel(~(SDRAM_ERR_CAUSE_DBE_MASK | SDRAM_ERR_CAUSE_SBE_MASK), drvdata->base + SDRAM_ERR_CAUSE_MSG_REG);
drivers/edac/armada_xp_edac.c
344
writel(0, drvdata->base + SDRAM_ERR_SBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
345
writel(0, drvdata->base + SDRAM_ERR_DBE_COUNT_REG);
drivers/edac/armada_xp_edac.c
390
static void aurora_l2_inject(struct aurora_l2_drvdata *drvdata)
drivers/edac/armada_xp_edac.c
392
drvdata->inject_addr &= AURORA_ERR_INJECT_CTL_ADDR_MASK;
drivers/edac/armada_xp_edac.c
393
drvdata->inject_ctl &= AURORA_ERR_INJECT_CTL_EN_MASK;
drivers/edac/armada_xp_edac.c
394
writel(0, drvdata->base + AURORA_ERR_INJECT_CTL_REG);
drivers/edac/armada_xp_edac.c
395
writel(drvdata->inject_mask, drvdata->base + AURORA_ERR_INJECT_MASK_REG);
drivers/edac/armada_xp_edac.c
396
writel(drvdata->inject_addr | drvdata->inject_ctl, drvdata->base + AURORA_ERR_INJECT_CTL_REG);
drivers/edac/armada_xp_edac.c
402
struct aurora_l2_drvdata *drvdata = dci->pvt_info;
drivers/edac/armada_xp_edac.c
405
char *msg = drvdata->msg;
drivers/edac/armada_xp_edac.c
406
size_t size = sizeof(drvdata->msg);
drivers/edac/armada_xp_edac.c
409
cnt = readl(drvdata->base + AURORA_ERR_CNT_REG);
drivers/edac/armada_xp_edac.c
410
attr_cap = readl(drvdata->base + AURORA_ERR_ATTR_CAP_REG);
drivers/edac/armada_xp_edac.c
411
addr_cap = readl(drvdata->base + AURORA_ERR_ADDR_CAP_REG);
drivers/edac/armada_xp_edac.c
412
way_cap = readl(drvdata->base + AURORA_ERR_WAY_CAP_REG);
drivers/edac/armada_xp_edac.c
418
writel(AURORA_ERR_CNT_CLR, drvdata->base + AURORA_ERR_CNT_REG);
drivers/edac/armada_xp_edac.c
467
writel(AURORA_ERR_ATTR_CAP_VALID, drvdata->base + AURORA_ERR_ATTR_CAP_REG);
drivers/edac/armada_xp_edac.c
472
edac_device_handle_ue(dci, 0, 0, drvdata->msg);
drivers/edac/armada_xp_edac.c
476
edac_device_handle_ce(dci, 0, 0, drvdata->msg);
drivers/edac/armada_xp_edac.c
490
struct aurora_l2_drvdata *drvdata = dci->pvt_info;
drivers/edac/armada_xp_edac.c
495
aurora_l2_inject(drvdata);
drivers/edac/armada_xp_edac.c
507
struct aurora_l2_drvdata *drvdata;
drivers/edac/armada_xp_edac.c
525
dci = edac_device_alloc_ctl_info(sizeof(*drvdata),
drivers/edac/armada_xp_edac.c
530
drvdata = dci->pvt_info;
drivers/edac/armada_xp_edac.c
531
drvdata->base = base;
drivers/edac/armada_xp_edac.c
542
writel(AURORA_ERR_CNT_CLR, drvdata->base + AURORA_ERR_CNT_REG);
drivers/edac/armada_xp_edac.c
543
writel(AURORA_ERR_ATTR_CAP_VALID, drvdata->base + AURORA_ERR_ATTR_CAP_REG);
drivers/edac/armada_xp_edac.c
551
drvdata->debugfs = edac_debugfs_create_dir(dev_name(&pdev->dev));
drivers/edac/armada_xp_edac.c
552
if (drvdata->debugfs) {
drivers/edac/armada_xp_edac.c
554
drvdata->debugfs,
drivers/edac/armada_xp_edac.c
555
&drvdata->inject_addr);
drivers/edac/armada_xp_edac.c
557
drvdata->debugfs,
drivers/edac/armada_xp_edac.c
558
&drvdata->inject_mask);
drivers/edac/armada_xp_edac.c
560
drvdata->debugfs, &drvdata->inject_ctl);
drivers/edac/armada_xp_edac.c
571
struct aurora_l2_drvdata *drvdata = dci->pvt_info;
drivers/edac/armada_xp_edac.c
573
edac_debugfs_remove_recursive(drvdata->debugfs);
drivers/edac/armada_xp_edac.c
84
static uint32_t axp_mc_calc_address(struct axp_mc_drvdata *drvdata,
drivers/edac/armada_xp_edac.c
88
if (drvdata->width == 8) {
drivers/edac/armada_xp_edac.c
90
if (drvdata->cs_addr_sel[cs])
drivers/edac/highbank_l2_edac.c
104
drvdata->sb_irq = platform_get_irq(pdev, 1);
drivers/edac/highbank_l2_edac.c
105
res = devm_request_irq(&pdev->dev, drvdata->sb_irq,
drivers/edac/highbank_l2_edac.c
28
struct hb_l2_drvdata *drvdata = dci->pvt_info;
drivers/edac/highbank_l2_edac.c
30
if (irq == drvdata->sb_irq) {
drivers/edac/highbank_l2_edac.c
31
writel(1, drvdata->base + SR_CLR_SB_ECC_INTR);
drivers/edac/highbank_l2_edac.c
34
if (irq == drvdata->db_irq) {
drivers/edac/highbank_l2_edac.c
35
writel(1, drvdata->base + SR_CLR_DB_ECC_INTR);
drivers/edac/highbank_l2_edac.c
52
struct hb_l2_drvdata *drvdata;
drivers/edac/highbank_l2_edac.c
56
dci = edac_device_alloc_ctl_info(sizeof(*drvdata), "cpu",
drivers/edac/highbank_l2_edac.c
61
drvdata = dci->pvt_info;
drivers/edac/highbank_l2_edac.c
82
drvdata->base = devm_ioremap(&pdev->dev, r->start, resource_size(r));
drivers/edac/highbank_l2_edac.c
83
if (!drvdata->base) {
drivers/edac/highbank_l2_edac.c
97
drvdata->db_irq = platform_get_irq(pdev, 0);
drivers/edac/highbank_l2_edac.c
98
res = devm_request_irq(&pdev->dev, drvdata->db_irq,
drivers/edac/highbank_mc_edac.c
151
struct hb_mc_drvdata *drvdata;
drivers/edac/highbank_mc_edac.c
175
drvdata = mci->pvt_info;
drivers/edac/highbank_mc_edac.c
205
drvdata->mc_err_base = base + settings->err_offset;
drivers/edac/highbank_mc_edac.c
206
drvdata->mc_int_base = base + settings->int_offset;
drivers/edac/highbank_mc_edac.c
208
control = readl(drvdata->mc_err_base + HB_DDR_ECC_OPT) & 0x3;
drivers/edac/highbank_mc_edac.c
57
struct hb_mc_drvdata *drvdata = mci->pvt_info;
drivers/edac/highbank_mc_edac.c
61
status = readl(drvdata->mc_int_base + HB_DDR_ECC_INT_STATUS);
drivers/edac/highbank_mc_edac.c
64
err_addr = readl(drvdata->mc_err_base + HB_DDR_ECC_U_ERR_ADDR);
drivers/edac/highbank_mc_edac.c
72
u32 syndrome = readl(drvdata->mc_err_base + HB_DDR_ECC_C_ERR_STAT);
drivers/edac/highbank_mc_edac.c
74
err_addr = readl(drvdata->mc_err_base + HB_DDR_ECC_C_ERR_ADDR);
drivers/edac/highbank_mc_edac.c
83
writel(status, drvdata->mc_int_base + HB_DDR_ECC_INT_ACK);
drivers/fpga/dfl-fme-main.c
219
static umode_t thermal_hwmon_attrs_visible(const void *drvdata,
drivers/fpga/dfl-fme-main.c
223
const struct dfl_feature *feature = drvdata;
drivers/fpga/dfl-fme-main.c
452
static umode_t power_hwmon_attrs_visible(const void *drvdata,
drivers/fpga/dfl-pci.c
117
struct cci_drvdata *drvdata;
drivers/fpga/dfl-pci.c
119
drvdata = devm_kzalloc(&pcidev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/fpga/dfl-pci.c
120
if (!drvdata)
drivers/fpga/dfl-pci.c
123
pci_set_drvdata(pcidev, drvdata);
drivers/fpga/dfl-pci.c
130
struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
drivers/fpga/dfl-pci.c
133
dfl_fpga_feature_devs_remove(drvdata->cdev);
drivers/fpga/dfl-pci.c
299
struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
drivers/fpga/dfl-pci.c
344
drvdata->cdev = cdev;
drivers/fpga/dfl-pci.c
393
struct cci_drvdata *drvdata = pci_get_drvdata(pcidev);
drivers/fpga/dfl-pci.c
394
struct dfl_fpga_cdev *cdev = drvdata->cdev;
drivers/gnss/serial.h
19
unsigned long drvdata[];
drivers/gnss/serial.h
44
return gserial->drvdata;
drivers/gpio/gpio-pcie-idio-24.c
379
gpio_config.drvdata = idio24gpio->map;
drivers/gpio/gpio-qixis-fpga.c
74
config.drvdata = (void *)cfg;
drivers/gpio/gpio-regmap.c
267
gpio->driver_data = config->drvdata;
drivers/gpu/drm/drm_privacy_screen.c
410
priv->drvdata = data;
drivers/gpu/drm/drm_privacy_screen.c
446
priv->drvdata = NULL;
drivers/gpu/drm/i915/i915_hwmon.c
723
hwm_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/gpu/drm/i915/i915_hwmon.c
726
struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
drivers/gpu/drm/i915/i915_hwmon.c
798
hwm_gt_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/gpu/drm/i915/i915_hwmon.c
801
struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
drivers/gpu/drm/xe/xe_hwmon.c
1337
xe_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/gpu/drm/xe/xe_hwmon.c
1340
struct xe_hwmon *hwmon = (struct xe_hwmon *)drvdata;
drivers/hid/hid-asus.c
1000
drvdata->input = input;
drivers/hid/hid-asus.c
1002
if (drvdata->quirks & QUIRK_HID_FN_LOCK) {
drivers/hid/hid-asus.c
1003
drvdata->fn_lock = true;
drivers/hid/hid-asus.c
1004
INIT_WORK(&drvdata->fn_lock_sync_work, asus_sync_fn_lock);
drivers/hid/hid-asus.c
1018
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
1020
if (drvdata->quirks & QUIRK_SKIP_INPUT_MAPPING) {
drivers/hid/hid-asus.c
1032
if ((drvdata->quirks & (QUIRK_T100CHI | QUIRK_T90CHI)) &&
drivers/hid/hid-asus.c
1111
if (drvdata->quirks & QUIRK_NO_CONSUMER_USAGES &&
drivers/hid/hid-asus.c
1130
if ((drvdata->quirks & QUIRK_MEDION_E1239T) &&
drivers/hid/hid-asus.c
1167
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
1170
if (drvdata->kbd_backlight) {
drivers/hid/hid-asus.c
1172
drvdata->kbd_backlight->brightness };
drivers/hid/hid-asus.c
1186
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
1188
if (drvdata->tp)
drivers/hid/hid-asus.c
1197
struct asus_drvdata *drvdata;
drivers/hid/hid-asus.c
1202
drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hid/hid-asus.c
1203
if (drvdata == NULL) {
drivers/hid/hid-asus.c
1208
hid_set_drvdata(hdev, drvdata);
drivers/hid/hid-asus.c
1210
drvdata->quirks = id->driver_data;
drivers/hid/hid-asus.c
1217
drvdata->quirks &= ~QUIRK_T100CHI;
drivers/hid/hid-asus.c
1218
drvdata->quirks |= QUIRK_T90CHI;
drivers/hid/hid-asus.c
1221
if (drvdata->quirks & QUIRK_IS_MULTITOUCH)
drivers/hid/hid-asus.c
1222
drvdata->tp = &asus_i2c_tp;
drivers/hid/hid-asus.c
1224
if ((drvdata->quirks & QUIRK_T100_KEYBOARD) && hid_is_usb(hdev)) {
drivers/hid/hid-asus.c
1228
drvdata->quirks = QUIRK_SKIP_INPUT_MAPPING;
drivers/hid/hid-asus.c
1235
drvdata->tp = &asus_t100ha_tp;
drivers/hid/hid-asus.c
1237
drvdata->tp = &asus_t200ta_tp;
drivers/hid/hid-asus.c
1239
drvdata->tp = &asus_t100ta_tp;
drivers/hid/hid-asus.c
1243
if (drvdata->quirks & QUIRK_T100CHI) {
drivers/hid/hid-asus.c
1249
drvdata->tp = &asus_t100chi_tp;
drivers/hid/hid-asus.c
1252
if ((drvdata->quirks & QUIRK_MEDION_E1239T) && hid_is_usb(hdev)) {
drivers/hid/hid-asus.c
1259
drvdata->quirks |= QUIRK_SKIP_INPUT_MAPPING;
drivers/hid/hid-asus.c
1260
drvdata->tp = &medion_e1239t_tp;
drivers/hid/hid-asus.c
1264
if (drvdata->quirks & QUIRK_NO_INIT_REPORTS)
drivers/hid/hid-asus.c
1267
drvdata->hdev = hdev;
drivers/hid/hid-asus.c
1269
if (drvdata->quirks & (QUIRK_T100CHI | QUIRK_T90CHI)) {
drivers/hid/hid-asus.c
1297
if (is_vendor && (drvdata->quirks & QUIRK_USE_KBD_BACKLIGHT) &&
drivers/hid/hid-asus.c
1305
if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD)
drivers/hid/hid-asus.c
1314
if (!drvdata->input || !(hdev->claimed & HID_CLAIMED_INPUT)) {
drivers/hid/hid-asus.c
1320
if (drvdata->tp) {
drivers/hid/hid-asus.c
1321
drvdata->input->name = "Asus TouchPad";
drivers/hid/hid-asus.c
1323
drvdata->input->name = "Asus Keyboard";
drivers/hid/hid-asus.c
1326
if (drvdata->tp) {
drivers/hid/hid-asus.c
1340
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
1343
if (drvdata->kbd_backlight) {
drivers/hid/hid-asus.c
1344
asus_hid_unregister_listener(&drvdata->kbd_backlight->listener);
drivers/hid/hid-asus.c
1346
spin_lock_irqsave(&drvdata->kbd_backlight->lock, flags);
drivers/hid/hid-asus.c
1347
drvdata->kbd_backlight->removed = true;
drivers/hid/hid-asus.c
1348
spin_unlock_irqrestore(&drvdata->kbd_backlight->lock, flags);
drivers/hid/hid-asus.c
1350
cancel_work_sync(&drvdata->kbd_backlight->work);
drivers/hid/hid-asus.c
1353
if (drvdata->quirks & QUIRK_HID_FN_LOCK)
drivers/hid/hid-asus.c
1354
cancel_work_sync(&drvdata->fn_lock_sync_work);
drivers/hid/hid-asus.c
1367
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
1369
if (drvdata->quirks & QUIRK_FIX_NOTEBOOK_REPORT &&
drivers/hid/hid-asus.c
1375
if (drvdata->quirks & QUIRK_T100_KEYBOARD &&
drivers/hid/hid-asus.c
1382
if (drvdata->quirks & (QUIRK_T100CHI | QUIRK_T90CHI)) {
drivers/hid/hid-asus.c
1386
if (drvdata->quirks & QUIRK_T100CHI) {
drivers/hid/hid-asus.c
1410
drvdata->quirks & QUIRK_T100CHI ?
drivers/hid/hid-asus.c
1426
if (drvdata->quirks & QUIRK_G752_KEYBOARD &&
drivers/hid/hid-asus.c
1448
if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD &&
drivers/hid/hid-asus.c
1456
if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD && *rsize > 15) {
drivers/hid/hid-asus.c
333
static int asus_wmi_send_event(struct asus_drvdata *drvdata, u8 code)
drivers/hid/hid-asus.c
356
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
374
if (drvdata->quirks & QUIRK_HID_FN_LOCK) {
drivers/hid/hid-asus.c
375
drvdata->fn_lock = !drvdata->fn_lock;
drivers/hid/hid-asus.c
376
schedule_work(&drvdata->fn_lock_sync_work);
drivers/hid/hid-asus.c
388
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
390
if (drvdata->battery && data[0] == BATTERY_REPORT_ID)
drivers/hid/hid-asus.c
391
return asus_report_battery(drvdata, data, size);
drivers/hid/hid-asus.c
393
if (drvdata->tp && data[0] == INPUT_REPORT_ID)
drivers/hid/hid-asus.c
394
return asus_report_input(drvdata, data, size);
drivers/hid/hid-asus.c
396
if (drvdata->quirks & QUIRK_MEDION_E1239T)
drivers/hid/hid-asus.c
397
return asus_e1239t_event(drvdata, data, size);
drivers/hid/hid-asus.c
405
if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
drivers/hid/hid-asus.c
414
int ret = asus_wmi_send_event(drvdata, ASUS_FAN_CTRL_KEY_CODE);
drivers/hid/hid-asus.c
452
if (drvdata->quirks & QUIRK_ROG_CLAYMORE_II_KEYBOARD) {
drivers/hid/hid-asus.c
588
struct asus_drvdata *drvdata =
drivers/hid/hid-asus.c
591
asus_kbd_set_fn_lock(drvdata->hdev, drvdata->fn_lock);
drivers/hid/hid-asus.c
727
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
746
if (drvdata->quirks & QUIRK_ROG_NKEY_ID1ID2_INIT) {
drivers/hid/hid-asus.c
757
if (drvdata->quirks & QUIRK_ROG_ALLY_XPAD) {
drivers/hid/hid-asus.c
764
drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
drivers/hid/hid-asus.c
767
if (!drvdata->kbd_backlight)
drivers/hid/hid-asus.c
770
drvdata->kbd_backlight->removed = false;
drivers/hid/hid-asus.c
771
drvdata->kbd_backlight->brightness = 0;
drivers/hid/hid-asus.c
772
drvdata->kbd_backlight->hdev = hdev;
drivers/hid/hid-asus.c
773
drvdata->kbd_backlight->listener.brightness_set = asus_kbd_backlight_set;
drivers/hid/hid-asus.c
774
INIT_WORK(&drvdata->kbd_backlight->work, asus_kbd_backlight_work);
drivers/hid/hid-asus.c
775
spin_lock_init(&drvdata->kbd_backlight->lock);
drivers/hid/hid-asus.c
777
ret = asus_hid_register_listener(&drvdata->kbd_backlight->listener);
drivers/hid/hid-asus.c
780
devm_kfree(&hdev->dev, drvdata->kbd_backlight);
drivers/hid/hid-asus.c
795
static int asus_parse_battery(struct asus_drvdata *drvdata, u8 *data, int size)
drivers/hid/hid-asus.c
804
drvdata->battery_capacity = ((int)lvl * 100) / (int)BATTERY_LEVEL_MAX;
drivers/hid/hid-asus.c
818
drvdata->battery_stat = val;
drivers/hid/hid-asus.c
823
static int asus_report_battery(struct asus_drvdata *drvdata, u8 *data, int size)
drivers/hid/hid-asus.c
826
if ((drvdata->battery_in_query == false) &&
drivers/hid/hid-asus.c
828
power_supply_changed(drvdata->battery);
drivers/hid/hid-asus.c
833
static int asus_battery_query(struct asus_drvdata *drvdata)
drivers/hid/hid-asus.c
842
drvdata->battery_in_query = true;
drivers/hid/hid-asus.c
843
ret = hid_hw_raw_request(drvdata->hdev, BATTERY_REPORT_ID,
drivers/hid/hid-asus.c
846
drvdata->battery_in_query = false;
drivers/hid/hid-asus.c
848
ret = asus_parse_battery(drvdata, buf, BATTERY_REPORT_SIZE);
drivers/hid/hid-asus.c
871
struct asus_drvdata *drvdata = power_supply_get_drvdata(psy);
drivers/hid/hid-asus.c
877
if (time_before(drvdata->battery_next_query, jiffies)) {
drivers/hid/hid-asus.c
878
drvdata->battery_next_query =
drivers/hid/hid-asus.c
880
ret = asus_battery_query(drvdata);
drivers/hid/hid-asus.c
885
val->intval = drvdata->battery_stat;
drivers/hid/hid-asus.c
887
val->intval = drvdata->battery_capacity;
drivers/hid/hid-asus.c
896
val->strval = drvdata->hdev->name;
drivers/hid/hid-asus.c
908
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
909
struct power_supply_config pscfg = { .drv_data = drvdata };
drivers/hid/hid-asus.c
912
drvdata->battery_capacity = 0;
drivers/hid/hid-asus.c
913
drvdata->battery_stat = POWER_SUPPLY_STATUS_UNKNOWN;
drivers/hid/hid-asus.c
914
drvdata->battery_in_query = false;
drivers/hid/hid-asus.c
916
drvdata->battery_desc.properties = asus_battery_props;
drivers/hid/hid-asus.c
917
drvdata->battery_desc.num_properties = ARRAY_SIZE(asus_battery_props);
drivers/hid/hid-asus.c
918
drvdata->battery_desc.get_property = asus_battery_get_property;
drivers/hid/hid-asus.c
919
drvdata->battery_desc.type = POWER_SUPPLY_TYPE_BATTERY;
drivers/hid/hid-asus.c
920
drvdata->battery_desc.use_for_apm = 0;
drivers/hid/hid-asus.c
921
drvdata->battery_desc.name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
drivers/hid/hid-asus.c
925
if (!drvdata->battery_desc.name)
drivers/hid/hid-asus.c
928
drvdata->battery_next_query = jiffies;
drivers/hid/hid-asus.c
930
drvdata->battery = devm_power_supply_register(&hdev->dev,
drivers/hid/hid-asus.c
931
&(drvdata->battery_desc), &pscfg);
drivers/hid/hid-asus.c
932
if (IS_ERR(drvdata->battery)) {
drivers/hid/hid-asus.c
933
ret = PTR_ERR(drvdata->battery);
drivers/hid/hid-asus.c
934
drvdata->battery = NULL;
drivers/hid/hid-asus.c
939
power_supply_powers(drvdata->battery, &hdev->dev);
drivers/hid/hid-asus.c
947
struct asus_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-asus.c
950
if (drvdata->quirks & QUIRK_T100CHI &&
drivers/hid/hid-asus.c
955
if (drvdata->tp && (drvdata->quirks & QUIRK_MEDION_E1239T)) {
drivers/hid/hid-asus.c
960
drvdata->tp_kbd_input = input;
drivers/hid/hid-asus.c
969
if (drvdata->tp) {
drivers/hid/hid-asus.c
973
drvdata->tp->max_x, 0, 0);
drivers/hid/hid-asus.c
975
drvdata->tp->max_y, 0, 0);
drivers/hid/hid-asus.c
976
input_abs_set_res(input, ABS_MT_POSITION_X, drvdata->tp->res_x);
drivers/hid/hid-asus.c
977
input_abs_set_res(input, ABS_MT_POSITION_Y, drvdata->tp->res_y);
drivers/hid/hid-asus.c
979
if (drvdata->tp->contact_size >= 5) {
drivers/hid/hid-asus.c
991
ret = input_mt_init_slots(input, drvdata->tp->max_contacts,
drivers/hid/hid-corsair-void.c
174
static void corsair_void_set_wireless_status(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
176
struct usb_interface *usb_if = to_usb_interface(drvdata->dev->parent);
drivers/hid/hid-corsair-void.c
178
if (drvdata->is_wired)
drivers/hid/hid-corsair-void.c
181
usb_set_wireless_status(usb_if, drvdata->connected ?
drivers/hid/hid-corsair-void.c
186
static void corsair_void_set_unknown_batt(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
188
struct corsair_void_battery_data *battery_data = &drvdata->battery_data;
drivers/hid/hid-corsair-void.c
197
static void corsair_void_set_unknown_wireless_data(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
200
drvdata->fw_headset_major = 0;
drivers/hid/hid-corsair-void.c
201
drvdata->fw_headset_minor = 0;
drivers/hid/hid-corsair-void.c
203
drvdata->connected = false;
drivers/hid/hid-corsair-void.c
204
drvdata->mic_up = false;
drivers/hid/hid-corsair-void.c
206
corsair_void_set_wireless_status(drvdata);
drivers/hid/hid-corsair-void.c
209
static void corsair_void_process_receiver(struct corsair_void_drvdata *drvdata,
drivers/hid/hid-corsair-void.c
214
struct corsair_void_battery_data *battery_data = &drvdata->battery_data;
drivers/hid/hid-corsair-void.c
251
hid_warn(drvdata->hid_dev, "unknown battery status '%d'",
drivers/hid/hid-corsair-void.c
258
corsair_void_set_wireless_status(drvdata);
drivers/hid/hid-corsair-void.c
262
corsair_void_set_unknown_batt(drvdata);
drivers/hid/hid-corsair-void.c
268
&drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
269
schedule_work(&drvdata->battery_work);
drivers/hid/hid-corsair-void.c
281
struct corsair_void_drvdata *drvdata = power_supply_get_drvdata(psy);
drivers/hid/hid-corsair-void.c
288
if (!strncmp(drvdata->hid_dev->name, "Corsair ", 8))
drivers/hid/hid-corsair-void.c
289
val->strval = drvdata->hid_dev->name + 8;
drivers/hid/hid-corsair-void.c
291
val->strval = drvdata->hid_dev->name;
drivers/hid/hid-corsair-void.c
297
val->intval = drvdata->battery_data.status;
drivers/hid/hid-corsair-void.c
300
val->intval = drvdata->battery_data.present;
drivers/hid/hid-corsair-void.c
303
val->intval = drvdata->battery_data.capacity;
drivers/hid/hid-corsair-void.c
306
val->intval = drvdata->battery_data.capacity_level;
drivers/hid/hid-corsair-void.c
318
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
320
if (!drvdata->connected)
drivers/hid/hid-corsair-void.c
323
return sysfs_emit(buf, "%d\n", drvdata->mic_up);
drivers/hid/hid-corsair-void.c
330
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
332
if (drvdata->fw_receiver_major == 0 && drvdata->fw_receiver_minor == 0)
drivers/hid/hid-corsair-void.c
335
return sysfs_emit(buf, "%d.%02d\n", drvdata->fw_receiver_major,
drivers/hid/hid-corsair-void.c
336
drvdata->fw_receiver_minor);
drivers/hid/hid-corsair-void.c
344
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
346
if (drvdata->fw_headset_major == 0 && drvdata->fw_headset_minor == 0)
drivers/hid/hid-corsair-void.c
349
return sysfs_emit(buf, "%d.%02d\n", drvdata->fw_headset_major,
drivers/hid/hid-corsair-void.c
350
drvdata->fw_headset_minor);
drivers/hid/hid-corsair-void.c
357
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
359
return sysfs_emit(buf, "%d\n", drvdata->sidetone_max);
drivers/hid/hid-corsair-void.c
370
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
371
struct hid_device *hid_dev = drvdata->hid_dev;
drivers/hid/hid-corsair-void.c
376
if (!drvdata->connected || drvdata->is_wired)
drivers/hid/hid-corsair-void.c
426
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
427
struct hid_device *hid_dev = drvdata->hid_dev;
drivers/hid/hid-corsair-void.c
457
struct corsair_void_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hid/hid-corsair-void.c
458
struct hid_device *hid_dev = drvdata->hid_dev;
drivers/hid/hid-corsair-void.c
462
if (!drvdata->connected)
drivers/hid/hid-corsair-void.c
466
if (kstrtouint(buf, 10, &sidetone) || sidetone > drvdata->sidetone_max)
drivers/hid/hid-corsair-void.c
469
if (drvdata->is_wired)
drivers/hid/hid-corsair-void.c
506
struct corsair_void_drvdata *drvdata;
drivers/hid/hid-corsair-void.c
511
drvdata = container_of(delayed_work, struct corsair_void_drvdata,
drivers/hid/hid-corsair-void.c
514
battery_ret = corsair_void_request_status(drvdata->hid_dev,
drivers/hid/hid-corsair-void.c
517
hid_warn(drvdata->hid_dev,
drivers/hid/hid-corsair-void.c
524
struct corsair_void_drvdata *drvdata;
drivers/hid/hid-corsair-void.c
529
drvdata = container_of(delayed_work, struct corsair_void_drvdata,
drivers/hid/hid-corsair-void.c
532
firmware_ret = corsair_void_request_status(drvdata->hid_dev,
drivers/hid/hid-corsair-void.c
535
hid_warn(drvdata->hid_dev,
drivers/hid/hid-corsair-void.c
541
static void corsair_void_add_battery(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
546
if (drvdata->battery)
drivers/hid/hid-corsair-void.c
549
psy_cfg.drv_data = drvdata;
drivers/hid/hid-corsair-void.c
550
new_supply = power_supply_register(drvdata->dev,
drivers/hid/hid-corsair-void.c
551
&drvdata->battery_desc,
drivers/hid/hid-corsair-void.c
555
hid_err(drvdata->hid_dev,
drivers/hid/hid-corsair-void.c
557
drvdata->battery_desc.name, new_supply);
drivers/hid/hid-corsair-void.c
561
if (power_supply_powers(new_supply, drvdata->dev)) {
drivers/hid/hid-corsair-void.c
566
drvdata->battery = new_supply;
drivers/hid/hid-corsair-void.c
571
struct corsair_void_drvdata *drvdata = container_of(work,
drivers/hid/hid-corsair-void.c
575
&drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
577
&drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
579
&drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
582
corsair_void_add_battery(drvdata);
drivers/hid/hid-corsair-void.c
583
} else if (remove_battery && !add_battery && drvdata->battery) {
drivers/hid/hid-corsair-void.c
584
power_supply_unregister(drvdata->battery);
drivers/hid/hid-corsair-void.c
585
drvdata->battery = NULL;
drivers/hid/hid-corsair-void.c
588
if (update_battery && drvdata->battery)
drivers/hid/hid-corsair-void.c
589
power_supply_changed(drvdata->battery);
drivers/hid/hid-corsair-void.c
593
static void corsair_void_headset_connected(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
595
set_bit(CORSAIR_VOID_ADD_BATTERY, &drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
596
schedule_work(&drvdata->battery_work);
drivers/hid/hid-corsair-void.c
597
schedule_delayed_work(&drvdata->delayed_firmware_work,
drivers/hid/hid-corsair-void.c
601
static void corsair_void_headset_disconnected(struct corsair_void_drvdata *drvdata)
drivers/hid/hid-corsair-void.c
603
set_bit(CORSAIR_VOID_REMOVE_BATTERY, &drvdata->battery_work_flags);
drivers/hid/hid-corsair-void.c
604
schedule_work(&drvdata->battery_work);
drivers/hid/hid-corsair-void.c
606
corsair_void_set_unknown_wireless_data(drvdata);
drivers/hid/hid-corsair-void.c
607
corsair_void_set_unknown_batt(drvdata);
drivers/hid/hid-corsair-void.c
640
struct corsair_void_drvdata *drvdata;
drivers/hid/hid-corsair-void.c
646
drvdata = devm_kzalloc(&hid_dev->dev, sizeof(*drvdata),
drivers/hid/hid-corsair-void.c
648
if (!drvdata)
drivers/hid/hid-corsair-void.c
651
hid_set_drvdata(hid_dev, drvdata);
drivers/hid/hid-corsair-void.c
652
dev_set_drvdata(&hid_dev->dev, drvdata);
drivers/hid/hid-corsair-void.c
654
drvdata->dev = &hid_dev->dev;
drivers/hid/hid-corsair-void.c
655
drvdata->hid_dev = hid_dev;
drivers/hid/hid-corsair-void.c
656
drvdata->is_wired = hid_id->driver_data == CORSAIR_VOID_WIRED;
drivers/hid/hid-corsair-void.c
658
drvdata->sidetone_max = CORSAIR_VOID_SIDETONE_MAX_WIRELESS;
drivers/hid/hid-corsair-void.c
659
if (drvdata->is_wired)
drivers/hid/hid-corsair-void.c
660
drvdata->sidetone_max = CORSAIR_VOID_SIDETONE_MAX_WIRED;
drivers/hid/hid-corsair-void.c
664
corsair_void_set_unknown_wireless_data(drvdata);
drivers/hid/hid-corsair-void.c
665
corsair_void_set_unknown_batt(drvdata);
drivers/hid/hid-corsair-void.c
669
drvdata->fw_receiver_major = 0;
drivers/hid/hid-corsair-void.c
670
drvdata->fw_receiver_minor = 0;
drivers/hid/hid-corsair-void.c
678
name = devm_kasprintf(drvdata->dev, GFP_KERNEL,
drivers/hid/hid-corsair-void.c
683
drvdata->battery_desc.name = name;
drivers/hid/hid-corsair-void.c
684
drvdata->battery_desc.type = POWER_SUPPLY_TYPE_BATTERY;
drivers/hid/hid-corsair-void.c
685
drvdata->battery_desc.properties = corsair_void_battery_props;
drivers/hid/hid-corsair-void.c
686
drvdata->battery_desc.num_properties = ARRAY_SIZE(corsair_void_battery_props);
drivers/hid/hid-corsair-void.c
687
drvdata->battery_desc.get_property = corsair_void_battery_get_property;
drivers/hid/hid-corsair-void.c
689
drvdata->battery = NULL;
drivers/hid/hid-corsair-void.c
690
INIT_WORK(&drvdata->battery_work, corsair_void_battery_work_handler);
drivers/hid/hid-corsair-void.c
704
INIT_DELAYED_WORK(&drvdata->delayed_status_work,
drivers/hid/hid-corsair-void.c
706
schedule_delayed_work(&drvdata->delayed_status_work,
drivers/hid/hid-corsair-void.c
710
INIT_DELAYED_WORK(&drvdata->delayed_firmware_work,
drivers/hid/hid-corsair-void.c
712
schedule_delayed_work(&drvdata->delayed_firmware_work,
drivers/hid/hid-corsair-void.c
724
struct corsair_void_drvdata *drvdata = hid_get_drvdata(hid_dev);
drivers/hid/hid-corsair-void.c
727
cancel_work_sync(&drvdata->battery_work);
drivers/hid/hid-corsair-void.c
728
if (drvdata->battery)
drivers/hid/hid-corsair-void.c
729
power_supply_unregister(drvdata->battery);
drivers/hid/hid-corsair-void.c
731
cancel_delayed_work_sync(&drvdata->delayed_status_work);
drivers/hid/hid-corsair-void.c
732
cancel_delayed_work_sync(&drvdata->delayed_firmware_work);
drivers/hid/hid-corsair-void.c
740
struct corsair_void_drvdata *drvdata = hid_get_drvdata(hid_dev);
drivers/hid/hid-corsair-void.c
741
bool was_connected = drvdata->connected;
drivers/hid/hid-corsair-void.c
745
drvdata->mic_up = FIELD_GET(CORSAIR_VOID_MIC_MASK, data[2]);
drivers/hid/hid-corsair-void.c
746
drvdata->connected = (data[3] == CORSAIR_VOID_WIRELESS_CONNECTED) ||
drivers/hid/hid-corsair-void.c
747
drvdata->is_wired;
drivers/hid/hid-corsair-void.c
749
corsair_void_process_receiver(drvdata,
drivers/hid/hid-corsair-void.c
753
drvdata->fw_receiver_major = data[1];
drivers/hid/hid-corsair-void.c
754
drvdata->fw_receiver_minor = data[2];
drivers/hid/hid-corsair-void.c
755
drvdata->fw_headset_major = data[3];
drivers/hid/hid-corsair-void.c
756
drvdata->fw_headset_minor = data[4];
drivers/hid/hid-corsair-void.c
760
if ((was_connected != drvdata->connected) && !drvdata->is_wired) {
drivers/hid/hid-corsair-void.c
761
if (drvdata->connected)
drivers/hid/hid-corsair-void.c
762
corsair_void_headset_connected(drvdata);
drivers/hid/hid-corsair-void.c
764
corsair_void_headset_disconnected(drvdata);
drivers/hid/hid-corsair.c
426
struct corsair_drvdata *drvdata = hid_get_drvdata(dev);
drivers/hid/hid-corsair.c
430
drvdata->backlight = kzalloc_obj(struct k90_led);
drivers/hid/hid-corsair.c
431
if (!drvdata->backlight) {
drivers/hid/hid-corsair.c
445
drvdata->backlight->removed = false;
drivers/hid/hid-corsair.c
446
drvdata->backlight->cdev.name = name;
drivers/hid/hid-corsair.c
447
drvdata->backlight->cdev.max_brightness = 3;
drivers/hid/hid-corsair.c
448
drvdata->backlight->cdev.brightness_set = k90_brightness_set;
drivers/hid/hid-corsair.c
449
drvdata->backlight->cdev.brightness_get = k90_backlight_get;
drivers/hid/hid-corsair.c
450
INIT_WORK(&drvdata->backlight->work, k90_backlight_work);
drivers/hid/hid-corsair.c
451
ret = led_classdev_register(&dev->dev, &drvdata->backlight->cdev);
drivers/hid/hid-corsair.c
458
kfree(drvdata->backlight->cdev.name);
drivers/hid/hid-corsair.c
460
kfree(drvdata->backlight);
drivers/hid/hid-corsair.c
461
drvdata->backlight = NULL;
drivers/hid/hid-corsair.c
469
struct corsair_drvdata *drvdata = hid_get_drvdata(dev);
drivers/hid/hid-corsair.c
479
drvdata->k90 = k90;
drivers/hid/hid-corsair.c
517
drvdata->k90 = NULL;
drivers/hid/hid-corsair.c
523
struct corsair_drvdata *drvdata = hid_get_drvdata(dev);
drivers/hid/hid-corsair.c
525
if (drvdata->backlight) {
drivers/hid/hid-corsair.c
526
drvdata->backlight->removed = true;
drivers/hid/hid-corsair.c
527
led_classdev_unregister(&drvdata->backlight->cdev);
drivers/hid/hid-corsair.c
528
cancel_work_sync(&drvdata->backlight->work);
drivers/hid/hid-corsair.c
529
kfree(drvdata->backlight->cdev.name);
drivers/hid/hid-corsair.c
530
kfree(drvdata->backlight);
drivers/hid/hid-corsair.c
536
struct corsair_drvdata *drvdata = hid_get_drvdata(dev);
drivers/hid/hid-corsair.c
537
struct k90_drvdata *k90 = drvdata->k90;
drivers/hid/hid-corsair.c
555
struct corsair_drvdata *drvdata;
drivers/hid/hid-corsair.c
563
drvdata = devm_kzalloc(&dev->dev, sizeof(struct corsair_drvdata),
drivers/hid/hid-corsair.c
565
if (drvdata == NULL)
drivers/hid/hid-corsair.c
567
drvdata->quirks = quirks;
drivers/hid/hid-corsair.c
568
hid_set_drvdata(dev, drvdata);
drivers/hid/hid-corsair.c
608
struct corsair_drvdata *drvdata = hid_get_drvdata(dev);
drivers/hid/hid-corsair.c
610
if (!drvdata->k90)
drivers/hid/hid-corsair.c
615
drvdata->k90->record_led.brightness = 1;
drivers/hid/hid-corsair.c
618
drvdata->k90->record_led.brightness = 0;
drivers/hid/hid-elan.c
120
struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-elan.c
132
drvdata->max_x = (dmabuf[4] << 8) | dmabuf[3];
drivers/hid/hid-elan.c
138
drvdata->max_y = (dmabuf[4] << 8) | dmabuf[3];
drivers/hid/hid-elan.c
144
drvdata->res_x = elan_convert_res(dmabuf[3]);
drivers/hid/hid-elan.c
145
drvdata->res_y = elan_convert_res(dmabuf[4]);
drivers/hid/hid-elan.c
156
struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-elan.c
178
input_set_abs_params(input, ABS_MT_POSITION_X, 0, drvdata->max_x,
drivers/hid/hid-elan.c
180
input_set_abs_params(input, ABS_MT_POSITION_Y, 0, drvdata->max_y,
drivers/hid/hid-elan.c
194
input_abs_set_res(input, ABS_X, drvdata->res_x);
drivers/hid/hid-elan.c
195
input_abs_set_res(input, ABS_Y, drvdata->res_y);
drivers/hid/hid-elan.c
205
drvdata->input = input;
drivers/hid/hid-elan.c
210
static void elan_report_mt_slot(struct elan_drvdata *drvdata, u8 *data,
drivers/hid/hid-elan.c
213
struct input_dev *input = drvdata->input;
drivers/hid/hid-elan.c
222
y = drvdata->max_y -
drivers/hid/hid-elan.c
232
static void elan_usb_report_input(struct elan_drvdata *drvdata, u8 *data)
drivers/hid/hid-elan.c
235
struct input_dev *input = drvdata->input;
drivers/hid/hid-elan.c
275
elan_report_mt_slot(drvdata, data + 3, i);
drivers/hid/hid-elan.c
277
elan_report_mt_slot(drvdata, NULL, i);
drivers/hid/hid-elan.c
288
memcpy(drvdata->prev_report, data,
drivers/hid/hid-elan.c
289
sizeof(drvdata->prev_report));
drivers/hid/hid-elan.c
295
u8 *prev_report = drvdata->prev_report;
drivers/hid/hid-elan.c
304
elan_report_mt_slot(drvdata, prev_report + 3, i);
drivers/hid/hid-elan.c
306
elan_report_mt_slot(drvdata, data + 1, i);
drivers/hid/hid-elan.c
309
elan_report_mt_slot(drvdata, NULL, i);
drivers/hid/hid-elan.c
319
static void elan_i2c_report_input(struct elan_drvdata *drvdata, u8 *data)
drivers/hid/hid-elan.c
321
struct input_dev *input = drvdata->input;
drivers/hid/hid-elan.c
347
elan_report_mt_slot(drvdata, finger_data, i);
drivers/hid/hid-elan.c
350
elan_report_mt_slot(drvdata, NULL, i);
drivers/hid/hid-elan.c
362
struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-elan.c
371
elan_usb_report_input(drvdata, data);
drivers/hid/hid-elan.c
377
elan_i2c_report_input(drvdata, data);
drivers/hid/hid-elan.c
418
struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-elan.c
442
drvdata->mute_led_state = led_state;
drivers/hid/hid-elan.c
448
struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-elan.c
449
struct led_classdev *mute_led = &drvdata->mute_led;
drivers/hid/hid-elan.c
464
struct elan_drvdata *drvdata;
drivers/hid/hid-elan.c
466
drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hid/hid-elan.c
468
if (!drvdata)
drivers/hid/hid-elan.c
471
hid_set_drvdata(hdev, drvdata);
drivers/hid/hid-elan.c
488
if (!drvdata->input) {
drivers/hid/hid-uclogic-core.c
128
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-core.c
129
struct uclogic_params *params = &drvdata->params;
drivers/hid/hid-uclogic-core.c
145
drvdata->pen_input = hi->input;
drivers/hid/hid-uclogic-core.c
201
struct uclogic_drvdata *drvdata = NULL;
drivers/hid/hid-uclogic-core.c
215
drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hid/hid-uclogic-core.c
216
if (drvdata == NULL) {
drivers/hid/hid-uclogic-core.c
220
timer_setup(&drvdata->inrange_timer, uclogic_inrange_timeout, 0);
drivers/hid/hid-uclogic-core.c
221
drvdata->re_state = U8_MAX;
drivers/hid/hid-uclogic-core.c
222
drvdata->quirks = id->driver_data;
drivers/hid/hid-uclogic-core.c
223
hid_set_drvdata(hdev, drvdata);
drivers/hid/hid-uclogic-core.c
226
rc = uclogic_params_init(&drvdata->params, hdev);
drivers/hid/hid-uclogic-core.c
233
uclogic_params_hid_dbg(hdev, &drvdata->params);
drivers/hid/hid-uclogic-core.c
234
if (drvdata->params.invalid) {
drivers/hid/hid-uclogic-core.c
241
rc = uclogic_params_get_desc(&drvdata->params,
drivers/hid/hid-uclogic-core.c
242
&drvdata->desc_ptr,
drivers/hid/hid-uclogic-core.c
243
&drvdata->desc_size);
drivers/hid/hid-uclogic-core.c
267
uclogic_params_cleanup(&drvdata->params);
drivers/hid/hid-uclogic-core.c
324
static int uclogic_raw_event_pen(struct uclogic_drvdata *drvdata,
drivers/hid/hid-uclogic-core.c
327
struct uclogic_params_pen *pen = &drvdata->params.pen;
drivers/hid/hid-uclogic-core.c
329
WARN_ON(drvdata == NULL);
drivers/hid/hid-uclogic-core.c
35
struct uclogic_drvdata *drvdata = timer_container_of(drvdata, t,
drivers/hid/hid-uclogic-core.c
37
struct input_dev *input = drvdata->pen_input;
drivers/hid/hid-uclogic-core.c
385
mod_timer(&drvdata->inrange_timer,
drivers/hid/hid-uclogic-core.c
407
struct uclogic_drvdata *drvdata,
drivers/hid/hid-uclogic-core.c
411
WARN_ON(drvdata == NULL);
drivers/hid/hid-uclogic-core.c
431
u8 prev_state = drvdata->re_state;
drivers/hid/hid-uclogic-core.c
448
drvdata->re_state = state;
drivers/hid/hid-uclogic-core.c
493
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-core.c
494
struct uclogic_params *params = &drvdata->params;
drivers/hid/hid-uclogic-core.c
526
return uclogic_raw_event_pen(drvdata, data, size);
drivers/hid/hid-uclogic-core.c
534
drvdata, &params->frame_list[i],
drivers/hid/hid-uclogic-core.c
547
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-core.c
549
timer_delete_sync(&drvdata->inrange_timer);
drivers/hid/hid-uclogic-core.c
551
kfree(drvdata->desc_ptr);
drivers/hid/hid-uclogic-core.c
552
uclogic_params_cleanup(&drvdata->params);
drivers/hid/hid-uclogic-core.c
56
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-core.c
58
if (drvdata->desc_ptr != NULL) {
drivers/hid/hid-uclogic-core.c
59
*rsize = drvdata->desc_size;
drivers/hid/hid-uclogic-core.c
60
return drvdata->desc_ptr;
drivers/hid/hid-uclogic-core.c
96
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-core.c
97
struct uclogic_params *params = &drvdata->params;
drivers/hid/hid-uclogic-params.c
1259
struct uclogic_drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-params.c
1261
if (drvdata->quirks & UCLOGIC_BATTERY_QUIRK)
drivers/hid/hid-uclogic-params.c
1408
struct uclogic_drvdata *drvdata;
drivers/hid/hid-uclogic-params.c
1424
drvdata = hid_get_drvdata(hdev);
drivers/hid/hid-uclogic-params.c
1493
if (drvdata->quirks & UCLOGIC_MOUSE_FRAME_QUIRK)
drivers/hid/hid-vivaldi.c
20
struct vivaldi_data *drvdata;
drivers/hid/hid-vivaldi.c
23
drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hid/hid-vivaldi.c
24
if (!drvdata)
drivers/hid/hid-vivaldi.c
27
hid_set_drvdata(hdev, drvdata);
drivers/hwmon/aspeed-g6-pwm-tach.c
362
static umode_t aspeed_tach_dev_is_visible(const void *drvdata,
drivers/hwmon/aspeed-g6-pwm-tach.c
366
const struct aspeed_pwm_tach_data *priv = drvdata;
drivers/hwmon/asus-ec-sensors.c
1271
static umode_t asus_ec_hwmon_is_visible(const void *drvdata,
drivers/hwmon/asus-ec-sensors.c
1275
const struct ec_sensors_data *state = drvdata;
drivers/hwmon/asus_wmi_sensors.c
479
static umode_t asus_wmi_hwmon_is_visible(const void *drvdata,
drivers/hwmon/asus_wmi_sensors.c
483
const struct asus_wmi_sensors *sensor_data = drvdata;
drivers/hwmon/dell-smm-hwmon.c
804
static umode_t dell_smm_is_visible(const void *drvdata, enum hwmon_sensor_types type, u32 attr,
drivers/hwmon/dell-smm-hwmon.c
807
const struct dell_smm_data *data = drvdata;
drivers/hwmon/gpd-fan.c
246
u16 addr_port = gpd_driver_priv.drvdata->addr_port;
drivers/hwmon/gpd-fan.c
247
u16 data_port = gpd_driver_priv.drvdata->data_port;
drivers/hwmon/gpd-fan.c
267
u16 addr_port = gpd_driver_priv.drvdata->addr_port;
drivers/hwmon/gpd-fan.c
268
u16 data_port = gpd_driver_priv.drvdata->data_port;
drivers/hwmon/gpd-fan.c
288
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
291
gpd_ecram_read(drvdata->rpm_read, &high);
drivers/hwmon/gpd-fan.c
292
gpd_ecram_read(drvdata->rpm_read + 1, &low);
drivers/hwmon/gpd-fan.c
315
switch (gpd_driver_priv.drvdata->board) {
drivers/hwmon/gpd-fan.c
330
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
333
gpd_ecram_read(drvdata->pwm_write, &var);
drivers/hwmon/gpd-fan.c
336
return DIV_ROUND_CLOSEST((var - 1) * 255, (drvdata->pwm_max - 1));
drivers/hwmon/gpd-fan.c
342
switch (gpd_driver_priv.drvdata->board) {
drivers/hwmon/gpd-fan.c
365
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
367
return DIV_ROUND_CLOSEST(val * (drvdata->pwm_max - 1), 255) + 1;
drivers/hwmon/gpd-fan.c
372
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
376
gpd_ecram_write(drvdata->pwm_write, pwm_reg);
drivers/hwmon/gpd-fan.c
381
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
385
gpd_ecram_write(drvdata->pwm_write, pwm_reg);
drivers/hwmon/gpd-fan.c
386
gpd_ecram_write(drvdata->pwm_write + 1, pwm_reg);
drivers/hwmon/gpd-fan.c
395
switch (gpd_driver_priv.drvdata->board) {
drivers/hwmon/gpd-fan.c
420
gpd_ecram_write(gpd_driver_priv.drvdata->pwm_write, 0);
drivers/hwmon/gpd-fan.c
435
gpd_ecram_write(gpd_driver_priv.drvdata->pwm_write, 0);
drivers/hwmon/gpd-fan.c
442
const struct gpd_fan_drvdata *const drvdata = gpd_driver_priv.drvdata;
drivers/hwmon/gpd-fan.c
447
gpd_ecram_write(drvdata->manual_control_enable, 1);
drivers/hwmon/gpd-fan.c
451
gpd_ecram_write(drvdata->manual_control_enable, 1);
drivers/hwmon/gpd-fan.c
454
gpd_ecram_write(drvdata->manual_control_enable, 0);
drivers/hwmon/gpd-fan.c
467
switch (gpd_driver_priv.drvdata->board) {
drivers/hwmon/gpd-fan.c
47
const struct gpd_fan_drvdata *drvdata;
drivers/hwmon/gpd-fan.c
482
static umode_t gpd_fan_hwmon_is_visible(__always_unused const void *drvdata,
drivers/hwmon/gpd-fan.c
597
if (gpd_driver_priv.drvdata->board == win4_6800u)
drivers/hwmon/gpd-fan.c
672
gpd_driver_priv.drvdata = match;
drivers/hwmon/gxp-fan-ctrl.c
100
struct gxp_fan_ctrl_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/gxp-fan-ctrl.c
109
reg = readl(drvdata->fn2 + OFS_SEVSTAT);
drivers/hwmon/gxp-fan-ctrl.c
112
*val = fan_installed(dev, channel) ? readb(drvdata->base + channel) : 0;
drivers/hwmon/gxp-fan-ctrl.c
201
struct gxp_fan_ctrl_drvdata *drvdata;
drivers/hwmon/gxp-fan-ctrl.c
205
drvdata = devm_kzalloc(dev, sizeof(struct gxp_fan_ctrl_drvdata),
drivers/hwmon/gxp-fan-ctrl.c
207
if (!drvdata)
drivers/hwmon/gxp-fan-ctrl.c
210
drvdata->base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
drivers/hwmon/gxp-fan-ctrl.c
211
if (IS_ERR(drvdata->base))
drivers/hwmon/gxp-fan-ctrl.c
212
return dev_err_probe(dev, PTR_ERR(drvdata->base),
drivers/hwmon/gxp-fan-ctrl.c
215
drvdata->plreg = devm_platform_ioremap_resource_byname(pdev,
drivers/hwmon/gxp-fan-ctrl.c
217
if (IS_ERR(drvdata->plreg))
drivers/hwmon/gxp-fan-ctrl.c
218
return dev_err_probe(dev, PTR_ERR(drvdata->plreg),
drivers/hwmon/gxp-fan-ctrl.c
221
drvdata->fn2 = devm_platform_ioremap_resource_byname(pdev,
drivers/hwmon/gxp-fan-ctrl.c
223
if (IS_ERR(drvdata->fn2))
drivers/hwmon/gxp-fan-ctrl.c
224
return dev_err_probe(dev, PTR_ERR(drvdata->fn2),
drivers/hwmon/gxp-fan-ctrl.c
229
drvdata,
drivers/hwmon/gxp-fan-ctrl.c
25
struct gxp_fan_ctrl_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/gxp-fan-ctrl.c
28
val = readb(drvdata->plreg + OFS_FAN_INST);
drivers/hwmon/gxp-fan-ctrl.c
35
struct gxp_fan_ctrl_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/gxp-fan-ctrl.c
38
val = readb(drvdata->plreg + OFS_FAN_FAIL);
drivers/hwmon/gxp-fan-ctrl.c
45
struct gxp_fan_ctrl_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/gxp-fan-ctrl.c
53
val = readl(drvdata->fn2 + OFS_SEVSTAT);
drivers/hwmon/gxp-fan-ctrl.c
60
struct gxp_fan_ctrl_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/gxp-fan-ctrl.c
66
writeb(val, drvdata->base + channel);
drivers/hwmon/hp-wmi-sensors.c
1420
static umode_t hp_wmi_hwmon_is_visible(const void *drvdata,
drivers/hwmon/hp-wmi-sensors.c
1424
const struct hp_wmi_sensors *state = drvdata;
drivers/hwmon/hwmon.c
1039
void *drvdata,
drivers/hwmon/hwmon.c
1045
return __hwmon_device_register(dev, name, drvdata, NULL, groups);
drivers/hwmon/hwmon.c
1065
void *drvdata,
drivers/hwmon/hwmon.c
1075
return __hwmon_device_register(dev, name, drvdata, chip, extra_groups);
drivers/hwmon/hwmon.c
1095
void *drvdata)
drivers/hwmon/hwmon.c
1100
return __hwmon_device_register(dev, name, drvdata, NULL, NULL);
drivers/hwmon/hwmon.c
1159
void *drvdata,
drivers/hwmon/hwmon.c
1171
hwdev = hwmon_device_register_with_groups(dev, name, drvdata, groups);
drivers/hwmon/hwmon.c
1198
void *drvdata,
drivers/hwmon/hwmon.c
1217
hwdev = hwmon_device_register_with_info(dev, name, drvdata, chip,
drivers/hwmon/hwmon.c
151
const void *drvdata,
drivers/hwmon/hwmon.c
158
return ops->is_visible(drvdata, type, attr, channel);
drivers/hwmon/hwmon.c
269
void *drvdata = dev_get_drvdata(dev);
drivers/hwmon/hwmon.c
285
!hwmon_is_visible(chip->ops, drvdata, hwmon_temp,
drivers/hwmon/hwmon.c
512
static struct attribute *hwmon_genattr(const void *drvdata,
drivers/hwmon/hwmon.c
526
mode = hwmon_is_visible(ops, drvdata, type, attr, index);
drivers/hwmon/hwmon.c
831
static int hwmon_genattrs(const void *drvdata,
drivers/hwmon/hwmon.c
857
a = hwmon_genattr(drvdata, info->type, attr, i,
drivers/hwmon/hwmon.c
871
__hwmon_create_attrs(const void *drvdata, const struct hwmon_chip_info *chip)
drivers/hwmon/hwmon.c
887
ret = hwmon_genattrs(drvdata, &attrs[aindex], chip->ops,
drivers/hwmon/hwmon.c
900
__hwmon_device_register(struct device *dev, const char *name, void *drvdata,
drivers/hwmon/hwmon.c
942
attrs = __hwmon_create_attrs(drvdata, chip);
drivers/hwmon/hwmon.c
982
dev_set_drvdata(hdev, drvdata);
drivers/hwmon/ina238.c
623
static umode_t ina238_is_visible(const void *drvdata,
drivers/hwmon/ina238.c
627
const struct ina238_data *data = drvdata;
drivers/hwmon/ina3221.c
587
static umode_t ina3221_is_visible(const void *drvdata,
drivers/hwmon/ina3221.c
591
const struct ina3221_data *ina = drvdata;
drivers/hwmon/k10temp.c
285
static umode_t k10temp_is_visible(const void *drvdata,
drivers/hwmon/k10temp.c
289
const struct k10temp_data *data = drvdata;
drivers/hwmon/k8temp.c
71
k8temp_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/hwmon/k8temp.c
74
const struct k8temp_data *data = drvdata;
drivers/hwmon/lochnagar-hwmon.c
225
static umode_t lochnagar_is_visible(const void *drvdata,
drivers/hwmon/nzxt-smart2.c
221
static void handle_fan_config_report(struct drvdata *drvdata, void *data, int size)
drivers/hwmon/nzxt-smart2.c
232
spin_lock(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
235
drvdata->fan_type[i] = report->fan_type[i];
drivers/hwmon/nzxt-smart2.c
237
drvdata->fan_config_received = true;
drivers/hwmon/nzxt-smart2.c
238
wake_up_all_locked(&drvdata->wq);
drivers/hwmon/nzxt-smart2.c
239
spin_unlock(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
242
static void handle_fan_status_report(struct drvdata *drvdata, void *data, int size)
drivers/hwmon/nzxt-smart2.c
250
spin_lock(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
258
if (!drvdata->fan_config_received) {
drivers/hwmon/nzxt-smart2.c
259
spin_unlock(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
264
if (drvdata->fan_type[i] == report->fan_type[i])
drivers/hwmon/nzxt-smart2.c
274
hid_warn_once(drvdata->hid,
drivers/hwmon/nzxt-smart2.c
276
i, drvdata->fan_type[i], report->fan_type[i]);
drivers/hwmon/nzxt-smart2.c
277
drvdata->fan_type[i] = report->fan_type[i];
drivers/hwmon/nzxt-smart2.c
283
drvdata->fan_rpm[i] =
drivers/hwmon/nzxt-smart2.c
285
drvdata->fan_duty_percent[i] =
drivers/hwmon/nzxt-smart2.c
289
drvdata->pwm_status_received = true;
drivers/hwmon/nzxt-smart2.c
290
wake_up_all_locked(&drvdata->wq);
drivers/hwmon/nzxt-smart2.c
295
drvdata->fan_in[i] =
drivers/hwmon/nzxt-smart2.c
297
drvdata->fan_curr[i] =
drivers/hwmon/nzxt-smart2.c
301
drvdata->voltage_status_received = true;
drivers/hwmon/nzxt-smart2.c
302
wake_up_all_locked(&drvdata->wq);
drivers/hwmon/nzxt-smart2.c
306
spin_unlock(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
341
struct drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/nzxt-smart2.c
347
*val = drvdata->update_interval;
drivers/hwmon/nzxt-smart2.c
355
spin_lock_irq(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
369
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
370
drvdata->fan_config_received);
drivers/hwmon/nzxt-smart2.c
374
*val = drvdata->fan_type[channel] != FAN_TYPE_NONE;
drivers/hwmon/nzxt-smart2.c
378
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
379
drvdata->fan_config_received);
drivers/hwmon/nzxt-smart2.c
383
*val = drvdata->fan_type[channel] == FAN_TYPE_PWM;
drivers/hwmon/nzxt-smart2.c
387
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
388
drvdata->pwm_status_received);
drivers/hwmon/nzxt-smart2.c
392
*val = scale_pwm_value(drvdata->fan_duty_percent[channel],
drivers/hwmon/nzxt-smart2.c
405
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
406
drvdata->pwm_status_received);
drivers/hwmon/nzxt-smart2.c
410
*val = drvdata->fan_rpm[channel];
drivers/hwmon/nzxt-smart2.c
416
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
417
drvdata->voltage_status_received);
drivers/hwmon/nzxt-smart2.c
421
*val = drvdata->fan_in[channel];
drivers/hwmon/nzxt-smart2.c
427
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
428
drvdata->voltage_status_received);
drivers/hwmon/nzxt-smart2.c
432
*val = drvdata->fan_curr[channel];
drivers/hwmon/nzxt-smart2.c
441
spin_unlock_irq(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
445
static int send_output_report(struct drvdata *drvdata, const void *data,
drivers/hwmon/nzxt-smart2.c
450
if (data_size > sizeof(drvdata->output_buffer))
drivers/hwmon/nzxt-smart2.c
453
memcpy(drvdata->output_buffer, data, data_size);
drivers/hwmon/nzxt-smart2.c
455
if (data_size < sizeof(drvdata->output_buffer))
drivers/hwmon/nzxt-smart2.c
456
memset(drvdata->output_buffer + data_size, 0,
drivers/hwmon/nzxt-smart2.c
457
sizeof(drvdata->output_buffer) - data_size);
drivers/hwmon/nzxt-smart2.c
459
ret = hid_hw_output_report(drvdata->hid, drvdata->output_buffer,
drivers/hwmon/nzxt-smart2.c
460
sizeof(drvdata->output_buffer));
drivers/hwmon/nzxt-smart2.c
464
static int set_pwm(struct drvdata *drvdata, int channel, long val)
drivers/hwmon/nzxt-smart2.c
475
ret = mutex_lock_interruptible(&drvdata->mutex);
drivers/hwmon/nzxt-smart2.c
480
ret = send_output_report(drvdata, &report, sizeof(report));
drivers/hwmon/nzxt-smart2.c
495
spin_lock_bh(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
496
drvdata->fan_duty_percent[channel] = duty_percent;
drivers/hwmon/nzxt-smart2.c
497
spin_unlock_bh(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
500
mutex_unlock(&drvdata->mutex);
drivers/hwmon/nzxt-smart2.c
509
static int set_pwm_enable(struct drvdata *drvdata, int channel, long val)
drivers/hwmon/nzxt-smart2.c
514
spin_lock_irq(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
516
res = wait_event_interruptible_locked_irq(drvdata->wq,
drivers/hwmon/nzxt-smart2.c
517
drvdata->fan_config_received);
drivers/hwmon/nzxt-smart2.c
519
spin_unlock_irq(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
523
expected_val = drvdata->fan_type[channel] != FAN_TYPE_NONE;
drivers/hwmon/nzxt-smart2.c
525
spin_unlock_irq(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
560
static int set_update_interval(struct drvdata *drvdata, long val)
drivers/hwmon/nzxt-smart2.c
575
ret = send_output_report(drvdata, report, sizeof(report));
drivers/hwmon/nzxt-smart2.c
579
drvdata->update_interval = control_byte_to_update_interval(control);
drivers/hwmon/nzxt-smart2.c
583
static int init_device(struct drvdata *drvdata, long update_interval)
drivers/hwmon/nzxt-smart2.c
591
ret = send_output_report(drvdata, detect_fans_report,
drivers/hwmon/nzxt-smart2.c
596
return set_update_interval(drvdata, update_interval);
drivers/hwmon/nzxt-smart2.c
603
struct drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwmon/nzxt-smart2.c
610
return set_pwm_enable(drvdata, channel, val);
drivers/hwmon/nzxt-smart2.c
613
return set_pwm(drvdata, channel, val);
drivers/hwmon/nzxt-smart2.c
622
ret = mutex_lock_interruptible(&drvdata->mutex);
drivers/hwmon/nzxt-smart2.c
626
ret = set_update_interval(drvdata, val);
drivers/hwmon/nzxt-smart2.c
628
mutex_unlock(&drvdata->mutex);
drivers/hwmon/nzxt-smart2.c
691
struct drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hwmon/nzxt-smart2.c
696
handle_fan_config_report(drvdata, data, size);
drivers/hwmon/nzxt-smart2.c
700
handle_fan_status_report(drvdata, data, size);
drivers/hwmon/nzxt-smart2.c
709
struct drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hwmon/nzxt-smart2.c
715
spin_lock_bh(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
716
drvdata->fan_config_received = false;
drivers/hwmon/nzxt-smart2.c
717
drvdata->pwm_status_received = false;
drivers/hwmon/nzxt-smart2.c
718
drvdata->voltage_status_received = false;
drivers/hwmon/nzxt-smart2.c
719
spin_unlock_bh(&drvdata->wq.lock);
drivers/hwmon/nzxt-smart2.c
721
return init_device(drvdata, drvdata->update_interval);
drivers/hwmon/nzxt-smart2.c
727
struct drvdata *drvdata;
drivers/hwmon/nzxt-smart2.c
730
drvdata = devm_kzalloc(&hdev->dev, sizeof(struct drvdata), GFP_KERNEL);
drivers/hwmon/nzxt-smart2.c
731
if (!drvdata)
drivers/hwmon/nzxt-smart2.c
734
drvdata->hid = hdev;
drivers/hwmon/nzxt-smart2.c
735
hid_set_drvdata(hdev, drvdata);
drivers/hwmon/nzxt-smart2.c
737
init_waitqueue_head(&drvdata->wq);
drivers/hwmon/nzxt-smart2.c
739
ret = devm_mutex_init(&hdev->dev, &drvdata->mutex);
drivers/hwmon/nzxt-smart2.c
757
init_device(drvdata, UPDATE_INTERVAL_DEFAULT_MS);
drivers/hwmon/nzxt-smart2.c
759
drvdata->hwmon =
drivers/hwmon/nzxt-smart2.c
760
hwmon_device_register_with_info(&hdev->dev, "nzxtsmart2", drvdata,
drivers/hwmon/nzxt-smart2.c
762
if (IS_ERR(drvdata->hwmon)) {
drivers/hwmon/nzxt-smart2.c
763
ret = PTR_ERR(drvdata->hwmon);
drivers/hwmon/nzxt-smart2.c
779
struct drvdata *drvdata = hid_get_drvdata(hdev);
drivers/hwmon/nzxt-smart2.c
781
hwmon_device_unregister(drvdata->hwmon);
drivers/hwmon/sch5627.c
250
static umode_t sch5627_is_visible(const void *drvdata, enum hwmon_sensor_types type, u32 attr,
drivers/hwmon/sch5627.c
253
const struct sch5627_data *data = drvdata;
drivers/hwmon/scmi-hwmon.c
115
scmi_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/hwmon/scmi-hwmon.c
119
const struct scmi_sensors *scmi_sensors = drvdata;
drivers/hwmon/w83627ehf.c
1337
w83627ehf_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/hwmon/w83627ehf.c
1340
const struct w83627ehf_data *data = drvdata;
drivers/hwtracing/coresight/coresight-catu.c
392
static int catu_wait_for_ready(struct catu_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-catu.c
394
struct csdev_access *csa = &drvdata->csdev->access;
drivers/hwtracing/coresight/coresight-catu.c
399
static int catu_enable_hw(struct catu_drvdata *drvdata, enum cs_mode cs_mode,
drivers/hwtracing/coresight/coresight-catu.c
405
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-catu.c
406
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-catu.c
412
if (catu_wait_for_ready(drvdata))
drivers/hwtracing/coresight/coresight-catu.c
415
control = catu_read_control(drvdata);
drivers/hwtracing/coresight/coresight-catu.c
438
catu_write_axictrl(drvdata, CATU_OS_AXICTRL);
drivers/hwtracing/coresight/coresight-catu.c
439
catu_write_sladdr(drvdata, catu_buf->sladdr);
drivers/hwtracing/coresight/coresight-catu.c
440
catu_write_inaddr(drvdata, CATU_DEFAULT_INADDR);
drivers/hwtracing/coresight/coresight-catu.c
443
catu_write_sladdr(drvdata, 0);
drivers/hwtracing/coresight/coresight-catu.c
444
catu_write_inaddr(drvdata, 0);
drivers/hwtracing/coresight/coresight-catu.c
447
catu_write_irqen(drvdata, 0);
drivers/hwtracing/coresight/coresight-catu.c
448
catu_write_mode(drvdata, mode);
drivers/hwtracing/coresight/coresight-catu.c
449
catu_write_control(drvdata, control);
drivers/hwtracing/coresight/coresight-catu.c
474
static int catu_disable_hw(struct catu_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-catu.c
477
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-catu.c
478
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-catu.c
480
catu_write_control(drvdata, 0);
drivers/hwtracing/coresight/coresight-catu.c
482
if (catu_wait_for_ready(drvdata)) {
drivers/hwtracing/coresight/coresight-catu.c
518
struct catu_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-catu.c
523
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-catu.c
524
if (!drvdata)
drivers/hwtracing/coresight/coresight-catu.c
527
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-catu.c
529
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-catu.c
569
drvdata->base = base;
drivers/hwtracing/coresight/coresight-catu.c
570
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-catu.c
580
drvdata->csdev = coresight_register(&catu_desc);
drivers/hwtracing/coresight/coresight-catu.c
581
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-catu.c
582
ret = PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-catu.c
600
struct catu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-catu.c
602
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-catu.c
646
struct catu_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-catu.c
648
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-catu.c
658
struct catu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-catu.c
660
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-catu.c
661
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-catu.c
668
struct catu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-catu.c
671
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-catu.c
675
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-catu.c
677
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-catu.h
74
catu_read_##name(struct catu_drvdata *drvdata) \
drivers/hwtracing/coresight/coresight-catu.h
76
return csdev_access_relaxed_read32(&drvdata->csdev->access, offset); \
drivers/hwtracing/coresight/coresight-catu.h
79
catu_write_##name(struct catu_drvdata *drvdata, u32 val) \
drivers/hwtracing/coresight/coresight-catu.h
81
csdev_access_relaxed_write32(&drvdata->csdev->access, val, offset); \
drivers/hwtracing/coresight/coresight-catu.h
86
catu_read_##name(struct catu_drvdata *drvdata) \
drivers/hwtracing/coresight/coresight-catu.h
88
return csdev_access_relaxed_read_pair(&drvdata->csdev->access, lo_off, hi_off); \
drivers/hwtracing/coresight/coresight-catu.h
91
catu_write_##name(struct catu_drvdata *drvdata, u64 val) \
drivers/hwtracing/coresight/coresight-catu.h
93
csdev_access_relaxed_write_pair(&drvdata->csdev->access, val, lo_off, hi_off); \
drivers/hwtracing/coresight/coresight-cpu-debug.c
115
static void debug_os_unlock(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
118
writel_relaxed(0x0, drvdata->base + EDOSLAR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
135
static bool debug_access_permitted(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
138
if (!(drvdata->edprsr & EDPRSR_PU))
drivers/hwtracing/coresight/coresight-cpu-debug.c
142
if (drvdata->edprsr & EDPRSR_DLK)
drivers/hwtracing/coresight/coresight-cpu-debug.c
148
static void debug_force_cpu_powered_up(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
160
edprcr = readl_relaxed(drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
162
writel_relaxed(edprcr, drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
165
if (readx_poll_timeout_atomic(readl_relaxed, drvdata->base + EDPRSR,
drivers/hwtracing/coresight/coresight-cpu-debug.c
166
drvdata->edprsr, (drvdata->edprsr & EDPRSR_PU),
drivers/hwtracing/coresight/coresight-cpu-debug.c
174
dev_err(drvdata->dev, "%s: power up request for CPU%d failed\n",
drivers/hwtracing/coresight/coresight-cpu-debug.c
175
__func__, drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
183
edprcr = readl_relaxed(drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
185
writel_relaxed(edprcr, drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
187
drvdata->edprsr = readl_relaxed(drvdata->base + EDPRSR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
190
if (unlikely(!(drvdata->edprsr & EDPRSR_PU)))
drivers/hwtracing/coresight/coresight-cpu-debug.c
194
static void debug_read_regs(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
198
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cpu-debug.c
201
debug_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
204
save_edprcr = readl_relaxed(drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
210
debug_force_cpu_powered_up(drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
212
if (!debug_access_permitted(drvdata))
drivers/hwtracing/coresight/coresight-cpu-debug.c
215
drvdata->edpcsr = readl_relaxed(drvdata->base + EDPCSR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
224
if (drvdata->edpcsr == EDPCSR_PROHIBITED)
drivers/hwtracing/coresight/coresight-cpu-debug.c
233
drvdata->edpcsr_hi = readl_relaxed(drvdata->base + EDPCSR_HI);
drivers/hwtracing/coresight/coresight-cpu-debug.c
235
if (drvdata->edcidsr_present)
drivers/hwtracing/coresight/coresight-cpu-debug.c
236
drvdata->edcidsr = readl_relaxed(drvdata->base + EDCIDSR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
238
if (drvdata->edvidsr_present)
drivers/hwtracing/coresight/coresight-cpu-debug.c
239
drvdata->edvidsr = readl_relaxed(drvdata->base + EDVIDSR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
243
writel_relaxed(save_edprcr, drvdata->base + EDPRCR);
drivers/hwtracing/coresight/coresight-cpu-debug.c
245
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cpu-debug.c
249
static unsigned long debug_adjust_pc(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
251
return (unsigned long)drvdata->edpcsr_hi << 32 |
drivers/hwtracing/coresight/coresight-cpu-debug.c
252
(unsigned long)drvdata->edpcsr;
drivers/hwtracing/coresight/coresight-cpu-debug.c
255
static unsigned long debug_adjust_pc(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
260
pc = (unsigned long)drvdata->edpcsr;
drivers/hwtracing/coresight/coresight-cpu-debug.c
262
if (drvdata->pc_has_offset) {
drivers/hwtracing/coresight/coresight-cpu-debug.c
280
dev_emerg(drvdata->dev,
drivers/hwtracing/coresight/coresight-cpu-debug.c
289
static void debug_dump_regs(struct debug_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
291
struct device *dev = drvdata->dev;
drivers/hwtracing/coresight/coresight-cpu-debug.c
295
drvdata->edprsr,
drivers/hwtracing/coresight/coresight-cpu-debug.c
296
drvdata->edprsr & EDPRSR_PU ? "On" : "Off",
drivers/hwtracing/coresight/coresight-cpu-debug.c
297
drvdata->edprsr & EDPRSR_DLK ? "Lock" : "Unlock");
drivers/hwtracing/coresight/coresight-cpu-debug.c
299
if (!debug_access_permitted(drvdata)) {
drivers/hwtracing/coresight/coresight-cpu-debug.c
304
if (drvdata->edpcsr == EDPCSR_PROHIBITED) {
drivers/hwtracing/coresight/coresight-cpu-debug.c
309
pc = debug_adjust_pc(drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
312
if (drvdata->edcidsr_present)
drivers/hwtracing/coresight/coresight-cpu-debug.c
313
dev_emerg(dev, " EDCIDSR: %08x\n", drvdata->edcidsr);
drivers/hwtracing/coresight/coresight-cpu-debug.c
315
if (drvdata->edvidsr_present)
drivers/hwtracing/coresight/coresight-cpu-debug.c
317
drvdata->edvidsr,
drivers/hwtracing/coresight/coresight-cpu-debug.c
318
drvdata->edvidsr & EDVIDSR_NS ?
drivers/hwtracing/coresight/coresight-cpu-debug.c
320
drvdata->edvidsr & EDVIDSR_E3 ? "EL3" :
drivers/hwtracing/coresight/coresight-cpu-debug.c
321
(drvdata->edvidsr & EDVIDSR_E2 ?
drivers/hwtracing/coresight/coresight-cpu-debug.c
323
drvdata->edvidsr & EDVIDSR_HV ? 64 : 32,
drivers/hwtracing/coresight/coresight-cpu-debug.c
324
drvdata->edvidsr & (u32)EDVIDSR_VMID);
drivers/hwtracing/coresight/coresight-cpu-debug.c
329
struct debug_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-cpu-debug.c
333
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cpu-debug.c
336
eddevid = readl_relaxed(drvdata->base + EDDEVID);
drivers/hwtracing/coresight/coresight-cpu-debug.c
337
eddevid1 = readl_relaxed(drvdata->base + EDDEVID1);
drivers/hwtracing/coresight/coresight-cpu-debug.c
339
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cpu-debug.c
345
drvdata->edpcsr_present = false;
drivers/hwtracing/coresight/coresight-cpu-debug.c
346
drvdata->edcidsr_present = false;
drivers/hwtracing/coresight/coresight-cpu-debug.c
347
drvdata->edvidsr_present = false;
drivers/hwtracing/coresight/coresight-cpu-debug.c
348
drvdata->pc_has_offset = false;
drivers/hwtracing/coresight/coresight-cpu-debug.c
352
drvdata->edvidsr_present = true;
drivers/hwtracing/coresight/coresight-cpu-debug.c
355
drvdata->edcidsr_present = true;
drivers/hwtracing/coresight/coresight-cpu-debug.c
365
drvdata->edpcsr_present =
drivers/hwtracing/coresight/coresight-cpu-debug.c
369
drvdata->pc_has_offset =
drivers/hwtracing/coresight/coresight-cpu-debug.c
384
struct debug_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-cpu-debug.c
396
drvdata = per_cpu(debug_drvdata, cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
397
if (!drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
400
dev_emerg(drvdata->dev, "CPU[%d]:\n", drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
402
debug_read_regs(drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
403
debug_dump_regs(drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
417
struct debug_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-cpu-debug.c
428
drvdata = per_cpu(debug_drvdata, cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
429
if (!drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
432
ret = pm_runtime_get_sync(drvdata->dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
447
drvdata = per_cpu(debug_drvdata, cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
448
pm_runtime_put_noidle(drvdata->dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
456
struct debug_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-cpu-debug.c
465
drvdata = per_cpu(debug_drvdata, cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
466
if (!drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
469
pm_runtime_put(drvdata->dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
561
struct debug_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-cpu-debug.c
565
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-cpu-debug.c
566
if (!drvdata)
drivers/hwtracing/coresight/coresight-cpu-debug.c
569
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-cpu-debug.c
571
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, NULL);
drivers/hwtracing/coresight/coresight-cpu-debug.c
575
drvdata->cpu = coresight_get_cpu(dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
576
if (drvdata->cpu < 0)
drivers/hwtracing/coresight/coresight-cpu-debug.c
577
return drvdata->cpu;
drivers/hwtracing/coresight/coresight-cpu-debug.c
579
if (per_cpu(debug_drvdata, drvdata->cpu)) {
drivers/hwtracing/coresight/coresight-cpu-debug.c
581
drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
585
drvdata->dev = dev;
drivers/hwtracing/coresight/coresight-cpu-debug.c
590
drvdata->base = base;
drivers/hwtracing/coresight/coresight-cpu-debug.c
593
per_cpu(debug_drvdata, drvdata->cpu) = drvdata;
drivers/hwtracing/coresight/coresight-cpu-debug.c
594
ret = smp_call_function_single(drvdata->cpu, debug_init_arch_data,
drivers/hwtracing/coresight/coresight-cpu-debug.c
595
drvdata, 1);
drivers/hwtracing/coresight/coresight-cpu-debug.c
599
dev_err(dev, "CPU%d debug arch init failed\n", drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
603
if (!drvdata->edpcsr_present) {
drivers/hwtracing/coresight/coresight-cpu-debug.c
605
drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
622
dev_info(dev, "Coresight debug-CPU%d initialized\n", drvdata->cpu);
drivers/hwtracing/coresight/coresight-cpu-debug.c
628
per_cpu(debug_drvdata, drvdata->cpu) = NULL;
drivers/hwtracing/coresight/coresight-cpu-debug.c
639
struct debug_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
641
per_cpu(debug_drvdata, drvdata->cpu) = NULL;
drivers/hwtracing/coresight/coresight-cpu-debug.c
708
struct debug_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
710
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-cpu-debug.c
728
struct debug_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
730
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-cpu-debug.c
737
struct debug_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-cpu-debug.c
739
return clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-ctcu-core.c
101
atid_offset = drvdata->atid_offset[port_num];
drivers/hwtracing/coresight/coresight-ctcu-core.c
110
guard(raw_spinlock_irqsave)(&drvdata->spin_lock);
drivers/hwtracing/coresight/coresight-ctcu-core.c
111
refcnt = drvdata->traceid_refcnt[port_num][traceid];
drivers/hwtracing/coresight/coresight-ctcu-core.c
114
ctcu_program_atid_register(drvdata, reg_offset, bit, enable);
drivers/hwtracing/coresight/coresight-ctcu-core.c
116
drvdata->traceid_refcnt[port_num][traceid] = refcnt;
drivers/hwtracing/coresight/coresight-ctcu-core.c
186
struct ctcu_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-ctcu-core.c
194
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-ctcu-core.c
195
if (!drvdata)
drivers/hwtracing/coresight/coresight-ctcu-core.c
207
ret = coresight_get_enable_clocks(dev, &drvdata->apb_clk, NULL);
drivers/hwtracing/coresight/coresight-ctcu-core.c
216
drvdata->atid_offset[i] = etr_cfg->atid_offset;
drivers/hwtracing/coresight/coresight-ctcu-core.c
221
drvdata->base = base;
drivers/hwtracing/coresight/coresight-ctcu-core.c
222
drvdata->dev = dev;
drivers/hwtracing/coresight/coresight-ctcu-core.c
223
platform_set_drvdata(pdev, drvdata);
drivers/hwtracing/coresight/coresight-ctcu-core.c
232
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-ctcu-core.c
233
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-ctcu-core.c
234
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
24
#define ctcu_writel(drvdata, val, offset) __raw_writel((val), drvdata->base + offset)
drivers/hwtracing/coresight/coresight-ctcu-core.c
241
struct ctcu_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
243
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
25
#define ctcu_readl(drvdata, offset) __raw_readl(drvdata->base + offset)
drivers/hwtracing/coresight/coresight-ctcu-core.c
264
struct ctcu_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
266
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-ctcu-core.c
276
struct ctcu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
278
clk_disable_unprepare(drvdata->apb_clk);
drivers/hwtracing/coresight/coresight-ctcu-core.c
285
struct ctcu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-ctcu-core.c
287
return clk_prepare_enable(drvdata->apb_clk);
drivers/hwtracing/coresight/coresight-ctcu-core.c
67
static void ctcu_program_atid_register(struct ctcu_drvdata *drvdata, u32 reg_offset,
drivers/hwtracing/coresight/coresight-ctcu-core.c
72
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-ctcu-core.c
73
val = ctcu_readl(drvdata, reg_offset);
drivers/hwtracing/coresight/coresight-ctcu-core.c
79
ctcu_writel(drvdata, val, reg_offset);
drivers/hwtracing/coresight/coresight-ctcu-core.c
80
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-ctcu-core.c
97
struct ctcu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-cti-core.c
103
rc = coresight_claim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
107
cti_write_all_hw_regs(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
110
drvdata->config.enable_req_count++;
drivers/hwtracing/coresight/coresight-cti-core.c
111
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-cti-core.c
115
drvdata->config.enable_req_count++;
drivers/hwtracing/coresight/coresight-cti-core.c
119
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-cti-core.c
124
static void cti_cpuhp_enable_hw(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
126
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
128
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
132
if (!drvdata->config.enable_req_count)
drivers/hwtracing/coresight/coresight-cti-core.c
136
if (coresight_claim_device(drvdata->csdev))
drivers/hwtracing/coresight/coresight-cti-core.c
139
cti_write_all_hw_regs(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
141
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
146
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
150
static int cti_disable_hw(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
152
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
153
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
156
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
159
if (!drvdata->config.enable_req_count) {
drivers/hwtracing/coresight/coresight-cti-core.c
165
if (--drvdata->config.enable_req_count > 0)
drivers/hwtracing/coresight/coresight-cti-core.c
172
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
175
writel_relaxed(0, drvdata->base + CTICONTROL);
drivers/hwtracing/coresight/coresight-cti-core.c
179
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
180
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
185
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
189
void cti_write_single_reg(struct cti_drvdata *drvdata, int offset, u32 value)
drivers/hwtracing/coresight/coresight-cti-core.c
191
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
192
writel_relaxed(value, drvdata->base + offset);
drivers/hwtracing/coresight/coresight-cti-core.c
193
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
198
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-core.c
199
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
201
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
204
cti_write_single_reg(drvdata, CTIINTACK, ackval);
drivers/hwtracing/coresight/coresight-cti-core.c
205
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
218
struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
220
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
223
devid = readl_relaxed(drvdata->base + CORESIGHT_DEVID);
drivers/hwtracing/coresight/coresight-cti-core.c
249
int cti_add_connection_entry(struct device *dev, struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti-core.c
254
struct cti_device *cti_dev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-core.c
273
drvdata->config.trig_in_use |= tc->con_in->used_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
274
drvdata->config.trig_out_use |= tc->con_out->used_mask;
drivers/hwtracing/coresight/coresight-cti-core.c
313
int cti_add_default_connection(struct device *dev, struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
316
int n_trigs = drvdata->config.nr_trig_max;
drivers/hwtracing/coresight/coresight-cti-core.c
330
ret = cti_add_connection_entry(dev, drvdata, tc, NULL, "default");
drivers/hwtracing/coresight/coresight-cti-core.c
340
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-core.c
341
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
372
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
390
cti_write_single_reg(drvdata, reg_offset, reg_value);
drivers/hwtracing/coresight/coresight-cti-core.c
391
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
398
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-core.c
399
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
409
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
427
cti_write_single_reg(drvdata, CTIGATE, reg_value);
drivers/hwtracing/coresight/coresight-cti-core.c
429
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
436
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-core.c
437
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
448
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
475
cti_write_single_reg(drvdata, reg_offset, reg_value);
drivers/hwtracing/coresight/coresight-cti-core.c
476
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
481
static bool cti_add_sysfs_link(struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti-core.c
487
link_info.orig = drvdata->csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
490
link_info.target_name = dev_name(&drvdata->csdev->dev);
drivers/hwtracing/coresight/coresight-cti-core.c
494
dev_warn(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-cti-core.c
500
static void cti_remove_sysfs_link(struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti-core.c
505
link_info.orig = drvdata->csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
508
link_info.target_name = dev_name(&drvdata->csdev->dev);
drivers/hwtracing/coresight/coresight-cti-core.c
522
struct cti_drvdata *drvdata = container_of(ctidev, struct cti_drvdata,
drivers/hwtracing/coresight/coresight-cti-core.c
532
if (cti_add_sysfs_link(drvdata, tc))
drivers/hwtracing/coresight/coresight-cti-core.c
61
void cti_write_all_hw_regs(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
629
static void cti_update_conn_xrefs(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
63
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
632
struct cti_device *ctidev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-core.c
637
if (cti_add_sysfs_link(drvdata, tc))
drivers/hwtracing/coresight/coresight-cti-core.c
640
drvdata->csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
648
static void cti_remove_conn_xrefs(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
651
struct cti_device *ctidev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-core.c
655
cti_remove_sysfs_link(drvdata, tc);
drivers/hwtracing/coresight/coresight-cti-core.c
66
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
665
struct cti_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-cti-core.c
673
drvdata = cti_cpu_drvdata[cpu];
drivers/hwtracing/coresight/coresight-cti-core.c
674
csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-cti-core.c
676
if (WARN_ON_ONCE(drvdata->ctidev.cpu != cpu))
drivers/hwtracing/coresight/coresight-cti-core.c
679
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
684
drvdata->config.hw_powered = false;
drivers/hwtracing/coresight/coresight-cti-core.c
685
if (drvdata->config.hw_enabled)
drivers/hwtracing/coresight/coresight-cti-core.c
69
writel_relaxed(0, drvdata->base + CTICONTROL);
drivers/hwtracing/coresight/coresight-cti-core.c
690
drvdata->config.hw_powered = true;
drivers/hwtracing/coresight/coresight-cti-core.c
691
if (drvdata->config.hw_enabled) {
drivers/hwtracing/coresight/coresight-cti-core.c
693
drvdata->config.hw_enabled = false;
drivers/hwtracing/coresight/coresight-cti-core.c
699
drvdata->config.hw_powered = true;
drivers/hwtracing/coresight/coresight-cti-core.c
700
drvdata->config.hw_enabled = false;
drivers/hwtracing/coresight/coresight-cti-core.c
703
if (drvdata->config.enable_req_count) {
drivers/hwtracing/coresight/coresight-cti-core.c
708
drvdata->config.hw_enabled = true;
drivers/hwtracing/coresight/coresight-cti-core.c
709
cti_write_all_hw_regs(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
719
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
73
writel_relaxed(config->ctiinen[i], drvdata->base + CTIINEN(i));
drivers/hwtracing/coresight/coresight-cti-core.c
730
struct cti_drvdata *drvdata = cti_cpu_drvdata[cpu];
drivers/hwtracing/coresight/coresight-cti-core.c
732
if (!drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
735
cti_cpuhp_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
741
struct cti_drvdata *drvdata = cti_cpu_drvdata[cpu];
drivers/hwtracing/coresight/coresight-cti-core.c
743
if (!drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
746
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
747
drvdata->config.hw_powered = false;
drivers/hwtracing/coresight/coresight-cti-core.c
748
if (drvdata->config.hw_enabled)
drivers/hwtracing/coresight/coresight-cti-core.c
749
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
75
drvdata->base + CTIOUTEN(i));
drivers/hwtracing/coresight/coresight-cti-core.c
750
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
754
static int cti_pm_setup(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
758
if (drvdata->ctidev.cpu == -1)
drivers/hwtracing/coresight/coresight-cti-core.c
783
cti_cpu_drvdata[drvdata->ctidev.cpu] = drvdata;
drivers/hwtracing/coresight/coresight-cti-core.c
789
static void cti_pm_release(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
79
writel_relaxed(config->ctigate, drvdata->base + CTIGATE);
drivers/hwtracing/coresight/coresight-cti-core.c
791
if (drvdata->ctidev.cpu == -1)
drivers/hwtracing/coresight/coresight-cti-core.c
794
cti_cpu_drvdata[drvdata->ctidev.cpu] = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
80
writel_relaxed(config->asicctl, drvdata->base + ASICCTL);
drivers/hwtracing/coresight/coresight-cti-core.c
805
struct cti_drvdata *drvdata = csdev_to_cti_drvdata(csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
807
return cti_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
81
writel_relaxed(config->ctiappset, drvdata->base + CTIAPPSET);
drivers/hwtracing/coresight/coresight-cti-core.c
812
struct cti_drvdata *drvdata = csdev_to_cti_drvdata(csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
814
return cti_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
832
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-core.c
836
cti_pm_release(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
84
writel_relaxed(1, drvdata->base + CTICONTROL);
drivers/hwtracing/coresight/coresight-cti-core.c
840
if (ect_item == drvdata) {
drivers/hwtracing/coresight/coresight-cti-core.c
847
if (drvdata->csdev_release)
drivers/hwtracing/coresight/coresight-cti-core.c
848
drvdata->csdev_release(dev);
drivers/hwtracing/coresight/coresight-cti-core.c
852
struct cti_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-cti-core.c
855
cti_remove_conn_xrefs(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
858
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
86
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-core.c
866
struct cti_drvdata *drvdata = NULL;
drivers/hwtracing/coresight/coresight-cti-core.c
872
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-cti-core.c
873
if (!drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
881
drvdata->base = base;
drivers/hwtracing/coresight/coresight-cti-core.c
884
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
887
drvdata->ctidev.cpu = -1;
drivers/hwtracing/coresight/coresight-cti-core.c
888
drvdata->ctidev.nr_trig_con = 0;
drivers/hwtracing/coresight/coresight-cti-core.c
889
drvdata->ctidev.ctm_id = 0;
drivers/hwtracing/coresight/coresight-cti-core.c
890
INIT_LIST_HEAD(&drvdata->ctidev.trig_cons);
drivers/hwtracing/coresight/coresight-cti-core.c
892
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-core.c
895
cti_set_default_config(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
90
static int cti_enable_hw(struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-core.c
904
drvdata->config.hw_powered = true;
drivers/hwtracing/coresight/coresight-cti-core.c
907
if (drvdata->ctidev.cpu >= 0)
drivers/hwtracing/coresight/coresight-cti-core.c
909
drvdata->ctidev.cpu);
drivers/hwtracing/coresight/coresight-cti-core.c
916
ret = cti_pm_setup(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
92
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-core.c
921
ret = cti_create_cons_sysfs(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
933
cti_desc.groups = drvdata->ctidev.con_groups;
drivers/hwtracing/coresight/coresight-cti-core.c
937
drvdata->csdev = coresight_register(&cti_desc);
drivers/hwtracing/coresight/coresight-cti-core.c
938
if (IS_ERR(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-cti-core.c
939
ret = PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-cti-core.c
945
list_add(&drvdata->node, &ect_net);
drivers/hwtracing/coresight/coresight-cti-core.c
947
cti_update_conn_xrefs(drvdata);
drivers/hwtracing/coresight/coresight-cti-core.c
951
drvdata->csdev_release = drvdata->csdev->dev.release;
drivers/hwtracing/coresight/coresight-cti-core.c
952
drvdata->csdev->dev.release = cti_device_release;
drivers/hwtracing/coresight/coresight-cti-core.c
956
dev_info(&drvdata->csdev->dev, "CTI initialized\n");
drivers/hwtracing/coresight/coresight-cti-core.c
96
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-cti-core.c
960
cti_pm_release(drvdata);
drivers/hwtracing/coresight/coresight-cti-platform.c
115
struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-platform.c
162
ret = cti_add_connection_entry(dev, drvdata, tc, csdev, assoc_name);
drivers/hwtracing/coresight/coresight-cti-platform.c
174
struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-platform.c
176
struct cti_device *cti_dev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-platform.c
206
ret = cti_add_connection_entry(dev, drvdata, tc, NULL, cpu_name_str);
drivers/hwtracing/coresight/coresight-cti-platform.c
211
ret = cti_plat_create_v8_etm_connection(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-platform.c
216
drvdata->config.trig_out_filter |= 0x1;
drivers/hwtracing/coresight/coresight-cti-platform.c
314
static int cti_plat_process_filter_sigs(struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti-platform.c
325
if (nr_filter_sigs > drvdata->config.nr_trig_max)
drivers/hwtracing/coresight/coresight-cti-platform.c
334
drvdata->config.trig_out_filter |= tg->used_mask;
drivers/hwtracing/coresight/coresight-cti-platform.c
341
struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti-platform.c
355
if ((nr_sigs_in > drvdata->config.nr_trig_max) ||
drivers/hwtracing/coresight/coresight-cti-platform.c
356
(nr_sigs_out > drvdata->config.nr_trig_max))
drivers/hwtracing/coresight/coresight-cti-platform.c
384
err = cti_plat_process_filter_sigs(drvdata, fwnode);
drivers/hwtracing/coresight/coresight-cti-platform.c
394
drvdata->ctidev.cpu = cpuid;
drivers/hwtracing/coresight/coresight-cti-platform.c
409
err = cti_add_connection_entry(dev, drvdata, tc, csdev, assoc_name);
drivers/hwtracing/coresight/coresight-cti-platform.c
416
struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-platform.c
425
rc = cti_plat_create_connection(dev, drvdata, child);
drivers/hwtracing/coresight/coresight-cti-platform.c
434
static int cti_plat_get_hw_data(struct device *dev, struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-platform.c
437
struct cti_device *cti_dev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-platform.c
444
rc = cti_plat_create_v8_connections(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-platform.c
446
rc = cti_plat_create_impdef_connections(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-platform.c
452
rc = cti_add_default_connection(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-platform.c
462
struct cti_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-cti-platform.c
480
ret = cti_plat_get_hw_data(dev, drvdata);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
105
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1137
int cti_create_cons_sysfs(struct device *dev, struct cti_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
1139
struct cti_device *ctidev = &drvdata->ctidev;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
115
ret = cti_enable(drvdata->csdev, CS_MODE_SYSFS, NULL);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
119
ret = cti_disable(drvdata->csdev, NULL);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
135
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
137
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
138
powered = drvdata->config.hw_powered;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
139
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
148
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
150
return sprintf(buf, "%d\n", drvdata->ctidev.ctm_id);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
158
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
160
return sprintf(buf, "%d\n", drvdata->ctidev.nr_trig_con);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
179
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
184
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
185
if (drvdata->config.hw_powered)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
186
val = readl_relaxed(drvdata->base + cti_attr->off);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
187
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
197
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
205
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
206
if (drvdata->config.hw_powered)
drivers/hwtracing/coresight/coresight-cti-sysfs.c
207
cti_write_single_reg(drvdata, cti_attr->off, val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
208
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
264
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
265
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
267
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
269
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
270
val = readl_relaxed(drvdata->base + reg_offset);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
273
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
277
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
290
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
291
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
296
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
303
cti_write_single_reg(drvdata, reg_offset, val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
304
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
314
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent); \
drivers/hwtracing/coresight/coresight-cti-sysfs.c
316
&drvdata->config.cfgname, offset); \
drivers/hwtracing/coresight/coresight-cti-sysfs.c
323
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent); \
drivers/hwtracing/coresight/coresight-cti-sysfs.c
325
&drvdata->config.cfgname, offset); \
drivers/hwtracing/coresight/coresight-cti-sysfs.c
334
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
336
val = (u32)drvdata->config.ctiinout_sel;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
345
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
352
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
353
drvdata->config.ctiinout_sel = val;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
354
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
365
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
367
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
368
index = drvdata->config.ctiinout_sel;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
369
val = drvdata->config.ctiinen[index];
drivers/hwtracing/coresight/coresight-cti-sysfs.c
370
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
380
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
381
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
386
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
392
cti_write_single_reg(drvdata, CTIINEN(index), val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
393
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
404
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
406
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
407
index = drvdata->config.ctiinout_sel;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
408
val = drvdata->config.ctiouten[index];
drivers/hwtracing/coresight/coresight-cti-sysfs.c
409
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
419
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
420
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
425
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
431
cti_write_single_reg(drvdata, CTIOUTEN(index), val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
432
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
460
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
461
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
466
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
473
cti_write_single_reg(drvdata, CTIAPPCLEAR, val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
474
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
484
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
485
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
490
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
494
cti_write_single_reg(drvdata, CTIAPPPULSE, val);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
495
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
606
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
607
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
682
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
684
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
685
val = drvdata->config.trig_filter_enable;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
686
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
695
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
700
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
701
drvdata->config.trig_filter_enable = !!val;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
702
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
711
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
712
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
728
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
729
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
731
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
748
cti_write_all_hw_regs(drvdata);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
750
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
764
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
768
if (val > (drvdata->config.nr_ctm_channels - 1))
drivers/hwtracing/coresight/coresight-cti-sysfs.c
771
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
772
drvdata->config.xtrig_rchan_sel = val;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
773
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
782
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
784
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
785
val = drvdata->config.xtrig_rchan_sel;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
786
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
796
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
797
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
799
int nr_trig_max = drvdata->config.nr_trig_max;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
816
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
817
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
819
int nr_trig_max = drvdata->config.nr_trig_max;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
835
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
836
struct cti_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
841
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
846
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
85
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
87
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
88
enable_req = drvdata->config.enable_req_count;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
89
powered = drvdata->config.hw_powered;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
90
enabled = drvdata->config.hw_enabled;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
91
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
927
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
928
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti-sysfs.c
941
struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-cti-sysfs.c
942
struct cti_config *cfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-cti.h
212
struct cti_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-cti.h
213
int cti_add_connection_entry(struct device *dev, struct cti_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-cti.h
222
void cti_write_all_hw_regs(struct cti_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-cti.h
224
void cti_write_single_reg(struct cti_drvdata *drvdata, int offset, u32 value);
drivers/hwtracing/coresight/coresight-cti.h
232
int cti_create_cons_sysfs(struct device *dev, struct cti_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-dummy.c
119
struct dummy_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-dummy.c
123
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-dummy.c
124
if (!drvdata)
drivers/hwtracing/coresight/coresight-dummy.c
155
drvdata->traceid = (u8)trace_id;
drivers/hwtracing/coresight/coresight-dummy.c
177
drvdata->dev = &pdev->dev;
drivers/hwtracing/coresight/coresight-dummy.c
178
platform_set_drvdata(pdev, drvdata);
drivers/hwtracing/coresight/coresight-dummy.c
182
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-dummy.c
183
if (IS_ERR(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-dummy.c
184
ret = PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-dummy.c
195
if (IS_VALID_CS_TRACE_ID(drvdata->traceid))
drivers/hwtracing/coresight/coresight-dummy.c
196
coresight_trace_id_put_system_id(drvdata->traceid);
drivers/hwtracing/coresight/coresight-dummy.c
204
struct dummy_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/coresight-dummy.c
207
if (IS_VALID_CS_TRACE_ID(drvdata->traceid))
drivers/hwtracing/coresight/coresight-dummy.c
208
coresight_trace_id_put_system_id(drvdata->traceid);
drivers/hwtracing/coresight/coresight-dummy.c
210
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-dummy.c
47
struct dummy_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-dummy.c
49
drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-dummy.c
51
return drvdata->traceid;
drivers/hwtracing/coresight/coresight-dummy.c
93
struct dummy_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-dummy.c
95
val = drvdata->traceid;
drivers/hwtracing/coresight/coresight-etb10.c
100
return readl_relaxed(drvdata->base + ETB_RAM_DEPTH_REG);
drivers/hwtracing/coresight/coresight-etb10.c
103
static void __etb_enable_hw(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
108
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
110
depth = drvdata->buffer_depth;
drivers/hwtracing/coresight/coresight-etb10.c
112
writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
115
writel_relaxed(0x0, drvdata->base + ETB_RWD_REG);
drivers/hwtracing/coresight/coresight-etb10.c
118
writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
120
writel_relaxed(0x0, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
122
writel_relaxed(drvdata->trigger_cntr, drvdata->base + ETB_TRG);
drivers/hwtracing/coresight/coresight-etb10.c
124
drvdata->base + ETB_FFCR);
drivers/hwtracing/coresight/coresight-etb10.c
126
writel_relaxed(ETB_CTL_CAPT_EN, drvdata->base + ETB_CTL_REG);
drivers/hwtracing/coresight/coresight-etb10.c
128
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
131
static int etb_enable_hw(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
133
int rc = coresight_claim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etb10.c
138
__etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
146
struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etb10.c
148
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
157
ret = etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
166
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
175
struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etb10.c
179
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
182
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS) {
drivers/hwtracing/coresight/coresight-etb10.c
190
if (drvdata->pid != -1 && drvdata->pid != pid) {
drivers/hwtracing/coresight/coresight-etb10.c
199
if (drvdata->pid == pid) {
drivers/hwtracing/coresight/coresight-etb10.c
213
ret = etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
216
drvdata->pid = pid;
drivers/hwtracing/coresight/coresight-etb10.c
217
coresight_set_mode(drvdata->csdev, CS_MODE_PERF);
drivers/hwtracing/coresight/coresight-etb10.c
222
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
250
static void __etb_disable_hw(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
253
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-etb10.c
254
struct csdev_access *csa = &drvdata->csdev->access;
drivers/hwtracing/coresight/coresight-etb10.c
256
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
258
ffcr = readl_relaxed(drvdata->base + ETB_FFCR);
drivers/hwtracing/coresight/coresight-etb10.c
261
writel_relaxed(ffcr, drvdata->base + ETB_FFCR);
drivers/hwtracing/coresight/coresight-etb10.c
264
writel_relaxed(ffcr, drvdata->base + ETB_FFCR);
drivers/hwtracing/coresight/coresight-etb10.c
272
writel_relaxed(0x0, drvdata->base + ETB_CTL_REG);
drivers/hwtracing/coresight/coresight-etb10.c
279
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
282
static void etb_dump_hw(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
290
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-etb10.c
292
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
294
read_ptr = readl_relaxed(drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
295
write_ptr = readl_relaxed(drvdata->base + ETB_RAM_WRITE_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
308
if ((readl_relaxed(drvdata->base + ETB_STATUS_REG)
drivers/hwtracing/coresight/coresight-etb10.c
310
writel_relaxed(0x0, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
312
writel_relaxed(write_ptr, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
316
depth = drvdata->buffer_depth;
drivers/hwtracing/coresight/coresight-etb10.c
317
buf_ptr = drvdata->buf;
drivers/hwtracing/coresight/coresight-etb10.c
319
read_data = readl_relaxed(drvdata->base +
drivers/hwtracing/coresight/coresight-etb10.c
326
coresight_insert_barrier_packet(drvdata->buf);
drivers/hwtracing/coresight/coresight-etb10.c
338
writel_relaxed(read_ptr, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
340
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
343
static void etb_disable_hw(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
345
__etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
346
etb_dump_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
347
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etb10.c
352
struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etb10.c
355
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
359
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
365
etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
367
drvdata->pid = -1;
drivers/hwtracing/coresight/coresight-etb10.c
369
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
439
struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etb10.c
444
capacity = drvdata->buffer_depth * ETB_FRAME_SIZE_WORDS;
drivers/hwtracing/coresight/coresight-etb10.c
446
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
452
__etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
453
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
456
read_ptr = readl_relaxed(drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
457
write_ptr = readl_relaxed(drvdata->base + ETB_RAM_WRITE_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
479
status = readl_relaxed(drvdata->base + ETB_STATUS_REG);
drivers/hwtracing/coresight/coresight-etb10.c
485
to_read = CIRC_CNT(write_ptr, read_ptr, drvdata->buffer_depth);
drivers/hwtracing/coresight/coresight-etb10.c
508
read_ptr = (write_ptr + drvdata->buffer_depth) -
drivers/hwtracing/coresight/coresight-etb10.c
511
if (read_ptr > (drvdata->buffer_depth - 1))
drivers/hwtracing/coresight/coresight-etb10.c
512
read_ptr -= drvdata->buffer_depth;
drivers/hwtracing/coresight/coresight-etb10.c
527
writel_relaxed(read_ptr, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
535
read_data = readl_relaxed(drvdata->base +
drivers/hwtracing/coresight/coresight-etb10.c
555
writel_relaxed(0x0, drvdata->base + ETB_RAM_READ_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
556
writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER);
drivers/hwtracing/coresight/coresight-etb10.c
566
__etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
567
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-etb10.c
569
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
586
static void etb_dump(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
590
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
591
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS) {
drivers/hwtracing/coresight/coresight-etb10.c
592
__etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
593
etb_dump_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
594
__etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
596
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etb10.c
598
dev_dbg(&drvdata->csdev->dev, "ETB dumped\n");
drivers/hwtracing/coresight/coresight-etb10.c
603
struct etb_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-etb10.c
606
if (local_cmpxchg(&drvdata->reading, 0, 1))
drivers/hwtracing/coresight/coresight-etb10.c
609
dev_dbg(&drvdata->csdev->dev, "%s: successfully opened\n", __func__);
drivers/hwtracing/coresight/coresight-etb10.c
617
struct etb_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-etb10.c
619
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-etb10.c
621
etb_dump(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
623
depth = drvdata->buffer_depth;
drivers/hwtracing/coresight/coresight-etb10.c
627
if (copy_to_user(data, drvdata->buf + *ppos, len)) {
drivers/hwtracing/coresight/coresight-etb10.c
642
struct etb_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-etb10.c
644
local_set(&drvdata->reading, 0);
drivers/hwtracing/coresight/coresight-etb10.c
646
dev_dbg(&drvdata->csdev->dev, "%s: released\n", __func__);
drivers/hwtracing/coresight/coresight-etb10.c
672
struct etb_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etb10.c
673
unsigned long val = drvdata->trigger_cntr;
drivers/hwtracing/coresight/coresight-etb10.c
684
struct etb_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etb10.c
690
drvdata->trigger_cntr = val;
drivers/hwtracing/coresight/coresight-etb10.c
721
struct etb_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etb10.c
729
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-etb10.c
730
if (!drvdata)
drivers/hwtracing/coresight/coresight-etb10.c
733
drvdata->atclk = devm_clk_get_optional_enabled(dev, "atclk");
drivers/hwtracing/coresight/coresight-etb10.c
734
if (IS_ERR(drvdata->atclk))
drivers/hwtracing/coresight/coresight-etb10.c
735
return PTR_ERR(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etb10.c
737
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
744
drvdata->base = base;
drivers/hwtracing/coresight/coresight-etb10.c
747
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etb10.c
749
drvdata->buffer_depth = etb_get_buffer_depth(drvdata);
drivers/hwtracing/coresight/coresight-etb10.c
751
if (drvdata->buffer_depth & 0x80000000)
drivers/hwtracing/coresight/coresight-etb10.c
754
drvdata->buf = devm_kcalloc(dev,
drivers/hwtracing/coresight/coresight-etb10.c
755
drvdata->buffer_depth, 4, GFP_KERNEL);
drivers/hwtracing/coresight/coresight-etb10.c
756
if (!drvdata->buf)
drivers/hwtracing/coresight/coresight-etb10.c
760
drvdata->pid = -1;
drivers/hwtracing/coresight/coresight-etb10.c
775
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-etb10.c
776
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-etb10.c
777
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etb10.c
779
drvdata->miscdev.name = desc.name;
drivers/hwtracing/coresight/coresight-etb10.c
780
drvdata->miscdev.minor = MISC_DYNAMIC_MINOR;
drivers/hwtracing/coresight/coresight-etb10.c
781
drvdata->miscdev.fops = &etb_fops;
drivers/hwtracing/coresight/coresight-etb10.c
782
ret = misc_register(&drvdata->miscdev);
drivers/hwtracing/coresight/coresight-etb10.c
790
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etb10.c
796
struct etb_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-etb10.c
803
misc_deregister(&drvdata->miscdev);
drivers/hwtracing/coresight/coresight-etb10.c
804
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etb10.c
810
struct etb_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etb10.c
812
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etb10.c
819
struct etb_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etb10.c
821
return clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etb10.c
98
static unsigned int etb_get_buffer_depth(struct etb_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm.h
254
static inline void etm_writel(struct etm_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm.h
257
if (drvdata->use_cp14) {
drivers/hwtracing/coresight/coresight-etm.h
259
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm.h
263
writel_relaxed(val, drvdata->csa.base + off);
drivers/hwtracing/coresight/coresight-etm.h
267
static inline unsigned int etm_readl(struct etm_drvdata *drvdata, u32 off)
drivers/hwtracing/coresight/coresight-etm.h
271
if (drvdata->use_cp14) {
drivers/hwtracing/coresight/coresight-etm.h
273
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm.h
277
val = readl_relaxed(drvdata->csa.base + off);
drivers/hwtracing/coresight/coresight-etm.h
286
struct etm_config *get_etm_config(struct etm_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-etm.h
287
void etm_release_trace_id(struct etm_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
105
etmpdcr = readl_relaxed(drvdata->csa.base + ETMPDCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
107
writel_relaxed(etmpdcr, drvdata->csa.base + ETMPDCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
124
static int coresight_timeout_etm(struct etm_drvdata *drvdata, u32 offset,
drivers/hwtracing/coresight/coresight-etm3x-core.c
131
val = etm_readl(drvdata, offset);
drivers/hwtracing/coresight/coresight-etm3x-core.c
155
static void etm_set_prog(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
159
etmcr = etm_readl(drvdata, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
161
etm_writel(drvdata, etmcr, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
167
if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 1)) {
drivers/hwtracing/coresight/coresight-etm3x-core.c
168
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm3x-core.c
174
static void etm_clr_prog(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
178
etmcr = etm_readl(drvdata, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
180
etm_writel(drvdata, etmcr, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
186
if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 0)) {
drivers/hwtracing/coresight/coresight-etm3x-core.c
187
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm3x-core.c
308
static int etm_parse_event_config(struct etm_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm3x-core.c
311
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-core.c
346
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm3x-core.c
360
(drvdata->etmccer & ETMCCER_RETSTACK))
drivers/hwtracing/coresight/coresight-etm3x-core.c
366
static int etm_enable_hw(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
370
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-core.c
371
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm3x-core.c
373
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
380
etm_clr_pwrdwn(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
382
etm_set_pwrup(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
384
etm_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
386
etm_set_prog(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
388
etmcr = etm_readl(drvdata, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
391
etmcr |= drvdata->port_size;
drivers/hwtracing/coresight/coresight-etm3x-core.c
393
etm_writel(drvdata, config->ctrl | etmcr, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
394
etm_writel(drvdata, config->trigger_event, ETMTRIGGER);
drivers/hwtracing/coresight/coresight-etm3x-core.c
395
etm_writel(drvdata, config->startstop_ctrl, ETMTSSCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
396
etm_writel(drvdata, config->enable_event, ETMTEEVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
397
etm_writel(drvdata, config->enable_ctrl1, ETMTECR1);
drivers/hwtracing/coresight/coresight-etm3x-core.c
398
etm_writel(drvdata, config->fifofull_level, ETMFFLR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
399
for (i = 0; i < drvdata->nr_addr_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm3x-core.c
400
etm_writel(drvdata, config->addr_val[i], ETMACVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
401
etm_writel(drvdata, config->addr_acctype[i], ETMACTRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
403
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm3x-core.c
404
etm_writel(drvdata, config->cntr_rld_val[i], ETMCNTRLDVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
405
etm_writel(drvdata, config->cntr_event[i], ETMCNTENRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
406
etm_writel(drvdata, config->cntr_rld_event[i],
drivers/hwtracing/coresight/coresight-etm3x-core.c
408
etm_writel(drvdata, config->cntr_val[i], ETMCNTVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
410
etm_writel(drvdata, config->seq_12_event, ETMSQ12EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
411
etm_writel(drvdata, config->seq_21_event, ETMSQ21EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
412
etm_writel(drvdata, config->seq_23_event, ETMSQ23EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
413
etm_writel(drvdata, config->seq_31_event, ETMSQ31EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
414
etm_writel(drvdata, config->seq_32_event, ETMSQ32EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
415
etm_writel(drvdata, config->seq_13_event, ETMSQ13EVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
416
etm_writel(drvdata, config->seq_curr_state, ETMSQR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
417
for (i = 0; i < drvdata->nr_ext_out; i++)
drivers/hwtracing/coresight/coresight-etm3x-core.c
418
etm_writel(drvdata, ETM_DEFAULT_EVENT_VAL, ETMEXTOUTEVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
419
for (i = 0; i < drvdata->nr_ctxid_cmp; i++)
drivers/hwtracing/coresight/coresight-etm3x-core.c
420
etm_writel(drvdata, config->ctxid_pid[i], ETMCIDCVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
421
etm_writel(drvdata, config->ctxid_mask, ETMCIDCMR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
422
etm_writel(drvdata, config->sync_freq, ETMSYNCFR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
424
etm_writel(drvdata, 0x0, ETMEXTINSELR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
425
etm_writel(drvdata, config->timestamp_event, ETMTSEVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
427
etm_writel(drvdata, 0x0, ETMAUXCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
428
etm_writel(drvdata, drvdata->traceid, ETMTRACEIDR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
430
etm_writel(drvdata, 0x0, ETMVMIDCVR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
432
etm_clr_prog(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
435
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
437
dev_dbg(&drvdata->csdev->dev, "cpu: %d enable smp call done: %d\n",
drivers/hwtracing/coresight/coresight-etm3x-core.c
438
drvdata->cpu, rc);
drivers/hwtracing/coresight/coresight-etm3x-core.c
443
struct etm_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm3x-core.c
455
csdev = arg->drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm3x-core.c
462
arg->rc = etm_enable_hw(arg->drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
471
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm3x-core.c
473
return drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm3x-core.c
476
void etm_release_trace_id(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
478
coresight_trace_id_put_cpu_id(drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm3x-core.c
485
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm3x-core.c
488
if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id()))
drivers/hwtracing/coresight/coresight-etm3x-core.c
495
etm_parse_event_config(drvdata, event);
drivers/hwtracing/coresight/coresight-etm3x-core.c
496
drvdata->traceid = path->trace_id;
drivers/hwtracing/coresight/coresight-etm3x-core.c
499
ret = etm_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
510
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm3x-core.c
514
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-core.c
516
drvdata->traceid = path->trace_id;
drivers/hwtracing/coresight/coresight-etm3x-core.c
522
if (cpu_online(drvdata->cpu)) {
drivers/hwtracing/coresight/coresight-etm3x-core.c
523
arg.drvdata = drvdata;
drivers/hwtracing/coresight/coresight-etm3x-core.c
524
ret = smp_call_function_single(drvdata->cpu,
drivers/hwtracing/coresight/coresight-etm3x-core.c
529
drvdata->sticky_enable = true;
drivers/hwtracing/coresight/coresight-etm3x-core.c
535
etm_release_trace_id(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
537
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-core.c
54
static void etm_os_unlock(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
563
static void etm_disable_hw(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
566
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-core.c
567
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm3x-core.c
569
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
57
etm_writel(drvdata, 0x0, ETMOSLAR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
570
etm_set_prog(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
573
config->seq_curr_state = (etm_readl(drvdata, ETMSQR) & ETM_SQR_MASK);
drivers/hwtracing/coresight/coresight-etm3x-core.c
575
for (i = 0; i < drvdata->nr_cntr; i++)
drivers/hwtracing/coresight/coresight-etm3x-core.c
576
config->cntr_val[i] = etm_readl(drvdata, ETMCNTVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-core.c
578
etm_set_pwrdwn(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
58
drvdata->os_unlock = true;
drivers/hwtracing/coresight/coresight-etm3x-core.c
581
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
583
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm3x-core.c
584
"cpu: %d disable smp call done\n", drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm3x-core.c
589
struct etm_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-etm3x-core.c
591
etm_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
593
coresight_set_mode(drvdata->csdev, CS_MODE_DISABLED);
drivers/hwtracing/coresight/coresight-etm3x-core.c
598
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm3x-core.c
600
if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id()))
drivers/hwtracing/coresight/coresight-etm3x-core.c
603
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
606
etm_set_prog(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
612
etm_set_pwrdwn(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
615
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
617
coresight_set_mode(drvdata->csdev, CS_MODE_DISABLED);
drivers/hwtracing/coresight/coresight-etm3x-core.c
62
static void etm_set_pwrdwn(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
628
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm3x-core.c
637
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-core.c
643
smp_call_function_single(drvdata->cpu, etm_disable_sysfs_smp_call,
drivers/hwtracing/coresight/coresight-etm3x-core.c
644
drvdata, 1);
drivers/hwtracing/coresight/coresight-etm3x-core.c
646
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-core.c
69
etmcr = etm_readl(drvdata, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
71
etm_writel(drvdata, etmcr, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
74
static void etm_clr_pwrdwn(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
757
struct etm_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-etm3x-core.c
760
etm_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
762
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
765
(void)etm_readl(drvdata, ETMPDSR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
767
etm_set_pwrup(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
772
etm_clr_pwrdwn(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
777
etm_set_prog(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
78
etmcr = etm_readl(drvdata, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
780
etmidr = etm_readl(drvdata, ETMIDR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
781
drvdata->arch = BMVAL(etmidr, 4, 11);
drivers/hwtracing/coresight/coresight-etm3x-core.c
782
drvdata->port_size = etm_readl(drvdata, ETMCR) & PORT_SIZE_MASK;
drivers/hwtracing/coresight/coresight-etm3x-core.c
784
drvdata->etmccer = etm_readl(drvdata, ETMCCER);
drivers/hwtracing/coresight/coresight-etm3x-core.c
785
etmccr = etm_readl(drvdata, ETMCCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
786
drvdata->etmccr = etmccr;
drivers/hwtracing/coresight/coresight-etm3x-core.c
787
drvdata->nr_addr_cmp = BMVAL(etmccr, 0, 3) * 2;
drivers/hwtracing/coresight/coresight-etm3x-core.c
788
drvdata->nr_cntr = BMVAL(etmccr, 13, 15);
drivers/hwtracing/coresight/coresight-etm3x-core.c
789
drvdata->nr_ext_inp = BMVAL(etmccr, 17, 19);
drivers/hwtracing/coresight/coresight-etm3x-core.c
790
drvdata->nr_ext_out = BMVAL(etmccr, 20, 22);
drivers/hwtracing/coresight/coresight-etm3x-core.c
791
drvdata->nr_ctxid_cmp = BMVAL(etmccr, 24, 25);
drivers/hwtracing/coresight/coresight-etm3x-core.c
793
coresight_clear_self_claim_tag_unlocked(&drvdata->csa);
drivers/hwtracing/coresight/coresight-etm3x-core.c
794
etm_set_pwrdwn(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
795
etm_clr_pwrup(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
796
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
80
etm_writel(drvdata, etmcr, ETMCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
841
struct etm_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm3x-core.c
845
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-etm3x-core.c
846
if (!drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
849
drvdata->use_cp14 = fwnode_property_read_bool(dev->fwnode, "arm,cp14");
drivers/hwtracing/coresight/coresight-etm3x-core.c
850
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-etm3x-core.c
857
desc.access = drvdata->csa = CSDEV_ACCESS_IOMEM(base);
drivers/hwtracing/coresight/coresight-etm3x-core.c
859
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-core.c
86
static void etm_set_pwrup(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-core.c
861
drvdata->atclk = devm_clk_get_optional_enabled(dev, "atclk");
drivers/hwtracing/coresight/coresight-etm3x-core.c
862
if (IS_ERR(drvdata->atclk))
drivers/hwtracing/coresight/coresight-etm3x-core.c
863
return PTR_ERR(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm3x-core.c
865
drvdata->cpu = coresight_get_cpu(dev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
866
if (drvdata->cpu < 0)
drivers/hwtracing/coresight/coresight-etm3x-core.c
867
return drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm3x-core.c
869
desc.name = devm_kasprintf(dev, GFP_KERNEL, "etm%d", drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm3x-core.c
873
if (smp_call_function_single(drvdata->cpu,
drivers/hwtracing/coresight/coresight-etm3x-core.c
874
etm_init_arch_data, drvdata, 1))
drivers/hwtracing/coresight/coresight-etm3x-core.c
877
if (etm_arch_supported(drvdata->arch) == false)
drivers/hwtracing/coresight/coresight-etm3x-core.c
880
etm_set_default(&drvdata->config);
drivers/hwtracing/coresight/coresight-etm3x-core.c
894
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-etm3x-core.c
895
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm3x-core.c
896
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
898
ret = etm_perf_symlink(drvdata->csdev, true);
drivers/hwtracing/coresight/coresight-etm3x-core.c
90
etmpdcr = readl_relaxed(drvdata->csa.base + ETMPDCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
900
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
904
etmdrvdata[drvdata->cpu] = drvdata;
drivers/hwtracing/coresight/coresight-etm3x-core.c
907
dev_info(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm3x-core.c
910
coresight_enable_sysfs(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
911
drvdata->boot_enable = true;
drivers/hwtracing/coresight/coresight-etm3x-core.c
92
writel_relaxed(etmpdcr, drvdata->csa.base + ETMPDCR);
drivers/hwtracing/coresight/coresight-etm3x-core.c
926
struct etm_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
928
etm_perf_symlink(drvdata->csdev, false);
drivers/hwtracing/coresight/coresight-etm3x-core.c
941
if (smp_call_function_single(drvdata->cpu, clear_etmdrvdata, &drvdata->cpu, 1))
drivers/hwtracing/coresight/coresight-etm3x-core.c
942
etmdrvdata[drvdata->cpu] = NULL;
drivers/hwtracing/coresight/coresight-etm3x-core.c
946
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
952
struct etm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
954
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm3x-core.c
961
struct etm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm3x-core.c
963
return clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm3x-core.c
98
static void etm_clr_pwrup(struct etm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
100
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1001
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1002
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1008
if (val >= drvdata->nr_ctxid_cmp)
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
101
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1015
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1017
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1027
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1028
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1037
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1039
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1050
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1051
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1069
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1071
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1081
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1082
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1101
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1102
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1124
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1125
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
113
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1137
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1138
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
114
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1153
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1154
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1166
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1167
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1182
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1184
val = drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1193
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
1194
int trace_id = coresight_etm_get_trace_id(drvdata->csdev, CS_MODE_SYSFS, NULL);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
120
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
134
if (!(drvdata->etmccr & ETMCCR_FIFOFULL)) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
144
if (!(drvdata->etmccer & ETMCCER_TIMESTAMP)) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
17
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
171
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
176
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
185
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
186
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
19
val = drvdata->nr_addr_cmp;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
198
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
199
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
215
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
216
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
228
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
229
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
245
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
246
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
258
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
259
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
27
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
275
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
276
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
288
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
289
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
29
val = drvdata->nr_cntr;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
295
if (val >= drvdata->nr_addr_cmp)
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
302
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
304
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
315
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
316
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
318
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
322
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
327
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
339
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
340
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
346
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
350
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
356
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
367
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
368
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
370
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
373
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
38
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
380
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
386
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
397
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
398
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
40
val = drvdata->nr_ctxid_cmp;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
406
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
409
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
416
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
425
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
436
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
437
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
439
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
443
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
448
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
460
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
461
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
467
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
471
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
479
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
49
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
490
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
491
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
493
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
497
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
502
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
514
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
515
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
52
spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
521
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
525
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
53
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
533
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
543
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
544
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
546
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
548
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
55
val = etm_readl(drvdata, ETMSR);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
559
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
560
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
566
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
568
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
57
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
578
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
579
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
58
spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
591
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
592
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
598
if (val >= drvdata->nr_cntr)
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
604
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
606
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
616
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
617
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
619
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
621
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
632
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
633
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
639
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
641
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
651
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
652
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
654
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
656
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
667
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
668
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
674
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
676
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
686
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
687
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
689
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
691
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
702
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
703
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
709
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
71
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
711
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
72
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
722
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
723
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
725
if (!coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
726
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
727
for (i = 0; i < drvdata->nr_cntr; i++)
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
730
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
734
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
735
val = etm_readl(drvdata, ETMCNTVRn(i));
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
748
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
749
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
755
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
757
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
767
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
768
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
780
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
781
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
79
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
796
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
797
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
809
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
810
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
825
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
826
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
83
for (i = 0; i < drvdata->nr_addr_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
838
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
839
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
854
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
855
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
867
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
868
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
88
etm_release_trace_id(drvdata);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
883
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
884
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
89
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
896
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
897
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
912
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
913
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
925
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
926
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
941
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
942
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
944
if (!coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
950
spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
952
CS_UNLOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
953
val = (etm_readl(drvdata, ETMSQR) & ETM_SQR_MASK);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
954
CS_LOCK(drvdata->csa.base);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
956
spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
968
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
969
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
988
struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm3x-sysfs.c
989
struct etm_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-cfg.c
151
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm4x-cfg.c
161
feat_csdev->drv_spinlock = &drvdata->spinlock;
drivers/hwtracing/coresight/coresight-etm4x-cfg.c
166
err = etm4_cfg_map_reg_offset(drvdata, &feat_csdev->regs_csdev[i], offset);
drivers/hwtracing/coresight/coresight-etm4x-cfg.c
46
static int etm4_cfg_map_reg_offset(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-cfg.c
50
struct etmv4_config *drvcfg = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1028
static void etm4_disable_hw(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1031
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1032
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1036
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1037
etm4_disable_arch_specific(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1039
if (!drvdata->skip_power_up) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1046
etm4_disable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1049
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1055
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1061
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1063
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1064
"cpu: %d disable smp call done\n", drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1069
struct etmv4_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1071
etm4_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1073
coresight_set_mode(drvdata->csdev, CS_MODE_DISABLED);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1081
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1084
if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id()))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1087
etm4_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1102
coresight_set_mode(drvdata->csdev, CS_MODE_DISABLED);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1114
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1123
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1129
smp_call_function_single(drvdata->cpu, etm4_disable_sysfs_smp_call,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1130
drvdata, 1);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1132
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1174
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1180
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1181
etm4_enable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1182
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1184
drvdata->paused = false;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1190
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1196
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1197
etm4_disable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1198
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1200
drvdata->paused = true;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1223
static bool etm4_init_sysreg_access(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1254
drvdata->arch = etm_devarch_to_arch(devarch);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1265
static bool etm4_init_iomem_access(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1268
u32 devarch = readl_relaxed(drvdata->base + TRCDEVARCH);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1270
if (!is_coresight_device(drvdata->base) || !is_devtype_cpu_trace(drvdata->base))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1286
drvdata->arch = etm_devarch_to_arch(devarch);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1287
*csa = CSDEV_ACCESS_IOMEM(drvdata->base);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1291
static bool etm4_init_csdev_access(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1299
if (drvdata->base)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1300
return etm4_init_iomem_access(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1302
if (etm4_init_sysreg_access(drvdata, csa))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1308
static void cpu_detect_trace_filtering(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1313
drvdata->trfcr = 0;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1330
drvdata->trfcr = trfcr;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1353
static void etm4_fixup_wrong_ccitmin(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1363
if (drvdata->ccitmin == 256)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1364
drvdata->ccitmin = 4;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1376
struct etmv4_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1381
drvdata = dev_get_drvdata(init_arg->dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1389
if (!etm4_init_csdev_access(drvdata, csa))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1394
drvdata->skip_power_up = true;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1397
etm_detect_os_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1400
etm4_os_unlock_csa(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1401
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1403
etm4_check_arch_features(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1409
drvdata->instrp0 = !!(FIELD_GET(TRCIDR0_INSTP0_MASK, etmidr0) == 0b11);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1411
drvdata->trcbb = !!(etmidr0 & TRCIDR0_TRCBB);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1413
drvdata->trccond = !!(etmidr0 & TRCIDR0_TRCCOND);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1415
drvdata->trccci = !!(etmidr0 & TRCIDR0_TRCCCI);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1417
drvdata->retstack = !!(etmidr0 & TRCIDR0_RETSTACK);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1419
drvdata->nr_event = FIELD_GET(TRCIDR0_NUMEVENT_MASK, etmidr0);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1421
drvdata->q_support = FIELD_GET(TRCIDR0_QSUPP_MASK, etmidr0);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1422
if (drvdata->q_support)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1423
drvdata->q_filt = !!(etmidr0 & TRCIDR0_QFILT);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1425
drvdata->ts_size = FIELD_GET(TRCIDR0_TSSIZE_MASK, etmidr0);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1430
drvdata->ctxid_size = FIELD_GET(TRCIDR2_CIDSIZE_MASK, etmidr2);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1432
drvdata->vmid_size = FIELD_GET(TRCIDR2_VMIDSIZE_MASK, etmidr2);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1434
drvdata->ccsize = FIELD_GET(TRCIDR2_CCSIZE_MASK, etmidr2);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1438
drvdata->ccitmin = FIELD_GET(TRCIDR3_CCITMIN_MASK, etmidr3);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1439
etm4_fixup_wrong_ccitmin(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1442
drvdata->s_ex_level = FIELD_GET(TRCIDR3_EXLEVEL_S_MASK, etmidr3);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1443
drvdata->config.s_ex_level = drvdata->s_ex_level;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1445
drvdata->ns_ex_level = FIELD_GET(TRCIDR3_EXLEVEL_NS_MASK, etmidr3);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1450
drvdata->trc_error = !!(etmidr3 & TRCIDR3_TRCERR);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1452
drvdata->syncpr = !!(etmidr3 & TRCIDR3_SYNCPR);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1454
drvdata->stallctl = !!(etmidr3 & TRCIDR3_STALLCTL);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1456
drvdata->sysstall = !!(etmidr3 & TRCIDR3_SYSSTALL);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1463
drvdata->nr_pe = (FIELD_GET(TRCIDR3_NUMPROC_HI_MASK, etmidr3) << 3) |
drivers/hwtracing/coresight/coresight-etm4x-core.c
1466
drvdata->nooverflow = !!(etmidr3 & TRCIDR3_NOOVERFLOW);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1471
drvdata->nr_addr_cmp = FIELD_GET(TRCIDR4_NUMACPAIRS_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1473
drvdata->nr_pe_cmp = FIELD_GET(TRCIDR4_NUMPC_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1484
drvdata->nr_resource = FIELD_GET(TRCIDR4_NUMRSPAIR_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1485
if ((drvdata->arch < ETM_ARCH_V4_3) || (drvdata->nr_resource > 0))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1486
drvdata->nr_resource += 1;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1492
drvdata->nr_ss_cmp = FIELD_GET(TRCIDR4_NUMSSCC_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1493
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1494
drvdata->config.ss_status[i] =
drivers/hwtracing/coresight/coresight-etm4x-core.c
1498
drvdata->numcidc = FIELD_GET(TRCIDR4_NUMCIDC_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1500
drvdata->numvmidc = FIELD_GET(TRCIDR4_NUMVMIDC_MASK, etmidr4);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1504
drvdata->nr_ext_inp = FIELD_GET(TRCIDR5_NUMEXTIN_MASK, etmidr5);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1505
drvdata->numextinsel = FIELD_GET(TRCIDR5_NUMEXTINSEL_MASK, etmidr5);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1507
drvdata->trcid_size = FIELD_GET(TRCIDR5_TRACEIDSIZE_MASK, etmidr5);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1509
drvdata->atbtrig = !!(etmidr5 & TRCIDR5_ATBTRIG);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1514
drvdata->lpoverride = (etmidr5 & TRCIDR5_LPOVERRIDE) && (!drvdata->skip_power_up);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1516
drvdata->nrseqstate = FIELD_GET(TRCIDR5_NUMSEQSTATE_MASK, etmidr5);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1518
drvdata->nr_cntr = FIELD_GET(TRCIDR5_NUMCNTR_MASK, etmidr5);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1521
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1522
cpu_detect_trace_filtering(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
160
static void etm_detect_os_lock(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
165
drvdata->os_lock_model = ETM_OSLSR_OSLM(oslsr);
drivers/hwtracing/coresight/coresight-etm4x-core.c
168
static void etm_write_os_lock(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1685
static int etm4_get_next_comparator(struct etmv4_drvdata *drvdata, u32 type)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1688
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1694
nr_comparator = drvdata->nr_addr_cmp * 2;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1724
static int etm4_set_event_filters(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1729
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
173
switch (drvdata->os_lock_model) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1750
comparator = etm4_get_next_comparator(drvdata, type);
drivers/hwtracing/coresight/coresight-etm4x-core.c
182
smp_processor_id(), drvdata->os_lock_model);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1869
static int __etm4_cpu_save(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1873
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1890
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1892
etm4_os_lock(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1898
etm4_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
190
static void etm4_os_unlock_csa(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
1903
if (!drvdata->paused)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1904
etm4_disable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
1906
state = drvdata->save_state;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1908
if (drvdata->nr_pe)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1914
if (drvdata->stallctl)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1921
if (drvdata->q_filt)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1927
if (drvdata->nr_pe_cmp)
drivers/hwtracing/coresight/coresight-etm4x-core.c
193
WARN_ON(drvdata->cpu != smp_processor_id());
drivers/hwtracing/coresight/coresight-etm4x-core.c
1930
for (i = 0; i < drvdata->nrseqstate - 1; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1933
if (drvdata->nrseqstate) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1938
if (drvdata->numextinsel)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1941
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1948
for (i = 2; i < drvdata->nr_resource * 2; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1951
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
1954
if (etm4x_sspcicrn_present(drvdata, i))
drivers/hwtracing/coresight/coresight-etm4x-core.c
1958
for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
196
etm_write_os_lock(drvdata, csa, 0x0);
drivers/hwtracing/coresight/coresight-etm4x-core.c
197
drvdata->os_unlock = true;
drivers/hwtracing/coresight/coresight-etm4x-core.c
1970
for (i = 0; i < drvdata->numcidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1973
for (i = 0; i < drvdata->numvmidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1977
if (drvdata->numcidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1981
if (drvdata->numvmidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1986
if (!drvdata->skip_power_up)
drivers/hwtracing/coresight/coresight-etm4x-core.c
1993
etm4_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
200
static void etm4_os_unlock(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2003
if (!drvdata->skip_power_up)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2007
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2011
static int etm4_cpu_save(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
202
if (!WARN_ON(!drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2022
if (coresight_get_mode(drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2023
ret = __etm4_cpu_save(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2027
static void __etm4_cpu_restore(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
203
etm4_os_unlock_csa(drvdata, &drvdata->csdev->access);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2030
struct etmv4_save_state *state = drvdata->save_state;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2031
struct csdev_access *csa = &drvdata->csdev->access;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2033
if (WARN_ON(!drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2036
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2039
if (drvdata->nr_pe)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2045
if (drvdata->stallctl)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2052
if (drvdata->q_filt)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2058
if (drvdata->nr_pe_cmp)
drivers/hwtracing/coresight/coresight-etm4x-core.c
206
static void etm4_os_lock(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2061
for (i = 0; i < drvdata->nrseqstate - 1; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2064
if (drvdata->nrseqstate) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
2068
if (drvdata->numextinsel)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2071
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
2078
for (i = 2; i < drvdata->nr_resource * 2; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
208
if (WARN_ON(!drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2081
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
2084
if (etm4x_sspcicrn_present(drvdata, i))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2088
for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
2093
for (i = 0; i < drvdata->numcidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2096
for (i = 0; i < drvdata->numvmidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2100
if (drvdata->numcidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2104
if (drvdata->numvmidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2109
if (!drvdata->skip_power_up)
drivers/hwtracing/coresight/coresight-etm4x-core.c
211
etm_write_os_lock(drvdata, &drvdata->csdev->access, 0x1);
drivers/hwtracing/coresight/coresight-etm4x-core.c
212
drvdata->os_unlock = false;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2120
etm4_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2122
if (!drvdata->paused)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2123
etm4_enable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2125
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2128
static void etm4_cpu_restore(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2133
if (coresight_get_mode(drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2134
__etm4_cpu_restore(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2140
struct etmv4_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2146
drvdata = etmdrvdata[cpu];
drivers/hwtracing/coresight/coresight-etm4x-core.c
2148
if (WARN_ON_ONCE(drvdata->cpu != cpu))
drivers/hwtracing/coresight/coresight-etm4x-core.c
215
static void etm4_cs_lock(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
2153
if (etm4_cpu_save(drvdata))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2158
etm4_cpu_restore(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2220
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2225
if (!drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
223
static void etm4_cs_unlock(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
2230
if (!drvdata->arch)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2233
major = ETM_ARCH_MAJOR_VERSION(drvdata->arch);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2234
minor = ETM_ARCH_MINOR_VERSION(drvdata->arch);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2236
if (etm4x_is_ete(drvdata)) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
2245
"%s%d", type_name, drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2249
etm4_set_default(&drvdata->config);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2263
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2264
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2265
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2267
ret = etm_perf_symlink(drvdata->csdev, true);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2269
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2274
ret = etm4_cscfg_register(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2276
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2280
etmdrvdata[drvdata->cpu] = drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2282
dev_info(&drvdata->csdev->dev, "CPU%d: %s v%d.%d initialized\n",
drivers/hwtracing/coresight/coresight-etm4x-core.c
2283
drvdata->cpu, type_name, major, minor);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2286
coresight_enable_sysfs(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2287
drvdata->boot_enable = true;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2295
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2301
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2304
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2313
drvdata->save_state = devm_kmalloc(dev,
drivers/hwtracing/coresight/coresight-etm4x-core.c
2315
if (!drvdata->save_state)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2319
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-core.c
232
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2321
drvdata->cpu = coresight_get_cpu(dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2322
if (drvdata->cpu < 0)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2323
return drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2333
if (smp_call_function_single(drvdata->cpu,
drivers/hwtracing/coresight/coresight-etm4x-core.c
234
return drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2344
per_cpu(delayed_probe, drvdata->cpu) = delayed;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2356
struct etmv4_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2367
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2368
if (!drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
237
void etm4_release_trace_id(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2371
drvdata->base = base;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2372
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2383
struct etmv4_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2386
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2387
if (!drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
239
coresight_trace_id_put_cpu_id(drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2391
drvdata->base = devm_ioremap_resource(&pdev->dev, res);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2392
if (IS_ERR(drvdata->base))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2393
return PTR_ERR(drvdata->base);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2396
dev_set_drvdata(&pdev->dev, drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
243
struct etmv4_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
2456
static void etm4_remove_dev(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2465
had_delayed_probe = per_cpu(delayed_probe, drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2473
if (smp_call_function_single(drvdata->cpu, clear_etmdrvdata, &drvdata->cpu, 1))
drivers/hwtracing/coresight/coresight-etm4x-core.c
2474
clear_etmdrvdata(&drvdata->cpu);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2479
etm_perf_symlink(drvdata->csdev, false);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2480
cscfg_unregister_csdev(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2481
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2487
struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2489
if (drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2490
etm4_remove_dev(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2495
struct etmv4_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2497
if (drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2498
etm4_remove_dev(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
252
static void etm4x_prohibit_trace(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
2545
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2547
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2548
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2555
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2558
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2562
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
2564
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-etm4x-core.c
257
if (!drvdata->trfcr)
drivers/hwtracing/coresight/coresight-etm4x-core.c
260
trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
drivers/hwtracing/coresight/coresight-etm4x-core.c
266
static u64 etm4x_get_kern_user_filter(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
268
u64 trfcr = drvdata->trfcr;
drivers/hwtracing/coresight/coresight-etm4x-core.c
270
if (drvdata->config.mode & ETM_MODE_EXCL_KERN)
drivers/hwtracing/coresight/coresight-etm4x-core.c
272
if (drvdata->config.mode & ETM_MODE_EXCL_USER)
drivers/hwtracing/coresight/coresight-etm4x-core.c
288
static void etm4x_allow_trace(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
293
if (!drvdata->trfcr)
drivers/hwtracing/coresight/coresight-etm4x-core.c
296
if (drvdata->config.mode & ETM_MODE_EXCL_HOST)
drivers/hwtracing/coresight/coresight-etm4x-core.c
297
trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
drivers/hwtracing/coresight/coresight-etm4x-core.c
299
trfcr = etm4x_get_kern_user_filter(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
304
if (drvdata->config.mode & ETM_MODE_EXCL_GUEST)
drivers/hwtracing/coresight/coresight-etm4x-core.c
305
guest_trfcr = drvdata->trfcr & ~(TRFCR_EL1_ExTRE | TRFCR_EL1_E0TRE);
drivers/hwtracing/coresight/coresight-etm4x-core.c
307
guest_trfcr = etm4x_get_kern_user_filter(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
358
static void etm4_enable_arch_specific(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
363
for_each_set_bit(bit, drvdata->arch_features, ETM4_IMPDEF_FEATURE_MAX) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
371
static void etm4_disable_arch_specific(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
376
for_each_set_bit(bit, drvdata->arch_features, ETM4_IMPDEF_FEATURE_MAX) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
384
static void etm4_check_arch_features(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
396
set_bit(ETM4_IMPDEF_HISI_CORE_COMMIT, drvdata->arch_features);
drivers/hwtracing/coresight/coresight-etm4x-core.c
399
static void etm4_enable_arch_specific(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
403
static void etm4_disable_arch_specific(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
407
static void etm4_check_arch_features(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
436
static int etm4_enable_trace_unit(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
438
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
446
if (etm4x_is_ete(drvdata))
drivers/hwtracing/coresight/coresight-etm4x-core.c
449
etm4x_allow_trace(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
494
static int etm4_enable_hw(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
497
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
498
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
503
etm4_cs_unlock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
504
etm4_enable_arch_specific(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
506
etm4_os_unlock(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
528
if (drvdata->nr_pe)
drivers/hwtracing/coresight/coresight-etm4x-core.c
535
if (drvdata->stallctl)
drivers/hwtracing/coresight/coresight-etm4x-core.c
541
etm4x_relaxed_write32(csa, drvdata->trcid, TRCTRACEIDR);
drivers/hwtracing/coresight/coresight-etm4x-core.c
545
if (drvdata->nr_pe_cmp)
drivers/hwtracing/coresight/coresight-etm4x-core.c
547
for (i = 0; i < drvdata->nrseqstate - 1; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
549
if (drvdata->nrseqstate) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
553
if (drvdata->numextinsel)
drivers/hwtracing/coresight/coresight-etm4x-core.c
555
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
565
for (i = 2; i < drvdata->nr_resource * 2; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
568
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
574
if (etm4x_sspcicrn_present(drvdata, i))
drivers/hwtracing/coresight/coresight-etm4x-core.c
577
for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
581
for (i = 0; i < drvdata->numcidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
584
if (drvdata->numcidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
587
for (i = 0; i < drvdata->numvmidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
590
if (drvdata->numvmidc > 4)
drivers/hwtracing/coresight/coresight-etm4x-core.c
593
if (!drvdata->skip_power_up) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
603
if (!drvdata->paused)
drivers/hwtracing/coresight/coresight-etm4x-core.c
604
rc = etm4_enable_trace_unit(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
606
etm4_cs_lock(drvdata, csa);
drivers/hwtracing/coresight/coresight-etm4x-core.c
609
drvdata->cpu, rc);
drivers/hwtracing/coresight/coresight-etm4x-core.c
621
csdev = arg->drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
628
arg->rc = etm4_enable_hw(arg->drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
66
static int etm4_set_event_filters(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
664
static int etm4_config_timestamp_event(struct etmv4_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-etm4x-core.c
669
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
672
if (!drvdata->nr_cntr)
drivers/hwtracing/coresight/coresight-etm4x-core.c
676
for (ctridx = 0; ctridx < drvdata->nr_cntr; ctridx++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
681
if (ctridx == drvdata->nr_cntr) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
697
for (rselector = 2; rselector < drvdata->nr_resource * 2; rselector++)
drivers/hwtracing/coresight/coresight-etm4x-core.c
701
if (rselector == drvdata->nr_resource * 2) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
751
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
752
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-core.c
780
ret = etm4_set_event_filters(drvdata, event);
drivers/hwtracing/coresight/coresight-etm4x-core.c
791
if (cc_threshold < drvdata->ccitmin)
drivers/hwtracing/coresight/coresight-etm4x-core.c
792
cc_threshold = drvdata->ccitmin;
drivers/hwtracing/coresight/coresight-etm4x-core.c
804
ret = etm4_config_timestamp_event(drvdata, ts_level);
drivers/hwtracing/coresight/coresight-etm4x-core.c
840
if (ATTR_CFG_GET_FLD(attr, retstack) && drvdata->retstack)
drivers/hwtracing/coresight/coresight-etm4x-core.c
856
if (!drvdata->trcbb) {
drivers/hwtracing/coresight/coresight-etm4x-core.c
876
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
879
if (WARN_ON_ONCE(drvdata->cpu != smp_processor_id()))
drivers/hwtracing/coresight/coresight-etm4x-core.c
89
static bool etm4x_sspcicrn_present(struct etmv4_drvdata *drvdata, int n)
drivers/hwtracing/coresight/coresight-etm4x-core.c
890
drvdata->trcid = path->trace_id;
drivers/hwtracing/coresight/coresight-etm4x-core.c
893
drvdata->paused = !!READ_ONCE(event->hw.aux_paused);
drivers/hwtracing/coresight/coresight-etm4x-core.c
896
ret = etm4_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
907
struct etmv4_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-etm4x-core.c
91
return (n < drvdata->nr_ss_cmp) &&
drivers/hwtracing/coresight/coresight-etm4x-core.c
92
drvdata->nr_pe &&
drivers/hwtracing/coresight/coresight-etm4x-core.c
920
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-core.c
922
drvdata->trcid = path->trace_id;
drivers/hwtracing/coresight/coresight-etm4x-core.c
925
drvdata->paused = false;
drivers/hwtracing/coresight/coresight-etm4x-core.c
93
(drvdata->config.ss_status[n] & TRCSSCSRn_PC);
drivers/hwtracing/coresight/coresight-etm4x-core.c
931
arg.drvdata = drvdata;
drivers/hwtracing/coresight/coresight-etm4x-core.c
932
ret = smp_call_function_single(drvdata->cpu,
drivers/hwtracing/coresight/coresight-etm4x-core.c
937
drvdata->sticky_enable = true;
drivers/hwtracing/coresight/coresight-etm4x-core.c
940
etm4_release_trace_id(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-core.c
942
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-core.c
968
static void etm4_disable_trace_unit(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x-core.c
971
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-core.c
984
etm4x_prohibit_trace(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
100
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1000
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1003
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1011
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
102
val = drvdata->nr_ext_inp;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1026
etm4_set_mode_exclude(drvdata, exclude ? true : false);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1028
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1039
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1040
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1042
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1047
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1052
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1062
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1063
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1068
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1070
if (!drvdata->nr_addr_cmp) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1071
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1076
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1083
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1094
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1095
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1097
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1102
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1107
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1117
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1118
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
112
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1123
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1125
if (!drvdata->nr_addr_cmp) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1126
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1131
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1138
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
114
val = drvdata->numcidc;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1149
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1150
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1152
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1159
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1169
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1170
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1177
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1184
if (drvdata->numcidc) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1190
if (drvdata->numvmidc) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1199
if (drvdata->numcidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1201
if (drvdata->numvmidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1204
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1215
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1216
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1218
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1222
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1232
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1233
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1237
if ((drvdata->numcidc <= 1) && (drvdata->numvmidc <= 1))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1239
if (val >= (drvdata->numcidc >= drvdata->numvmidc ?
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
124
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1240
drvdata->numcidc : drvdata->numvmidc))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1243
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1248
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1259
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
126
val = drvdata->numvmidc;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1260
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1262
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1265
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1275
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1276
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1284
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1289
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1307
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1308
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1312
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1327
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1350
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1351
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1353
if (!drvdata->nr_pe_cmp)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
136
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1363
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1364
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1368
if (!drvdata->nr_pe_cmp)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1371
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1373
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
138
val = drvdata->nrseqstate;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1383
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1384
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1395
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1396
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1400
if (val >= drvdata->nrseqstate - 1)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1407
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1409
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1419
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1420
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1431
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1432
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1436
if (val >= drvdata->nrseqstate)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1450
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1451
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1453
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1456
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1466
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1467
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1472
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1476
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
148
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1486
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1487
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1498
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1499
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
150
val = drvdata->nr_resource;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1503
if (!(drvdata->nrseqstate))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1516
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1517
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1528
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1529
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1533
if (val >= drvdata->nr_cntr)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1540
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1542
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1553
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1554
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1556
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1559
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1569
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1570
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1577
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1580
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1591
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1592
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1594
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1597
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
16
static int etm4_set_mode_exclude(struct etmv4_drvdata *drvdata, bool exclude)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
160
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1607
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1608
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1615
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1618
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
162
val = drvdata->nr_ss_cmp;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1629
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1630
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1632
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1635
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1645
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1646
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1651
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1654
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1664
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1665
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1676
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1677
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1685
if ((val < 2) || (val >= 2 * drvdata->nr_resource))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1692
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1694
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1705
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1706
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1708
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1711
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1721
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1722
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1727
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
173
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1737
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
174
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1746
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1747
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1758
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1759
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1763
if (val >= drvdata->nr_ss_cmp)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1766
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1768
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1778
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1779
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1781
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1783
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
179
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1793
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1794
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1799
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1804
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1813
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1814
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1816
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1818
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1828
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1829
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1831
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1833
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1843
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1844
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1849
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1854
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1864
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1865
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1876
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1877
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1881
if (val >= drvdata->numcidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1888
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1890
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
19
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1901
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1902
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1911
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1914
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1924
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1925
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1944
if (!drvdata->ctxid_size || !drvdata->numcidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1949
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1952
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1962
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1963
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1972
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1975
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1985
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
1986
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2001
if (!drvdata->ctxid_size || !drvdata->numcidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2005
if ((drvdata->numcidc > 4) && (nr_inputs != 2))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2008
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2013
switch (drvdata->numcidc) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
203
if (drvdata->syncpr == false)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2060
for (i = 0; i < drvdata->numcidc; i++) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2080
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2090
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2091
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2102
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2103
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2107
if (val >= drvdata->numvmidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2114
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2116
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
212
if (drvdata->nr_addr_cmp > 0) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2126
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2127
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2136
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2138
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2147
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2148
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2161
if (!drvdata->vmid_size || !drvdata->numvmidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2166
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2168
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2177
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2178
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2187
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2190
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2200
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2201
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2215
if (!drvdata->vmid_size || !drvdata->numvmidc)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2219
if ((drvdata->numvmidc > 4) && (nr_inputs != 2))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2222
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2228
switch (drvdata->numvmidc) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
226
for (i = 0; i < drvdata->nrseqstate-1; i++)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2276
for (i = 0; i < drvdata->numvmidc; i++) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2295
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2304
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2306
val = drvdata->cpu;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2317
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2319
if (!drvdata->trfcr) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2324
val = FIELD_GET(TRFCR_EL1_TS_MASK, drvdata->trfcr);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
235
for (i = 0; i < drvdata->nr_cntr; i++) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2407
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2408
int trace_id = coresight_etm_get_trace_id(drvdata->csdev, CS_MODE_SYSFS, NULL);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
242
for (i = 2; i < 2 * drvdata->nr_resource; i++)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2429
static u32 etmv4_cross_read(const struct etmv4_drvdata *drvdata, u32 offset)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2434
reg.csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2440
smp_call_function_single(drvdata->cpu, do_smp_cross_read, &reg, 1);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2457
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
246
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2462
val = etmv4_cross_read(drvdata, offset);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2469
etm4x_register_implemented(struct etmv4_drvdata *drvdata, u32 offset)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2484
return !etm4x_is_ete(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2498
return !!drvdata->base;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2501
return etm4x_is_ete(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2519
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
252
for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
2526
if (etm4x_register_implemented(drvdata, offset))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
259
for (i = 0; i < drvdata->numcidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
266
for (i = 0; i < drvdata->numvmidc; i++)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
271
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
274
etm4_release_trace_id(drvdata);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
287
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
288
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
299
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
300
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
305
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
308
if (drvdata->instrp0 == true) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
326
if ((config->mode & ETM_MODE_BB) && (drvdata->trcbb == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
333
(drvdata->trccci == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
339
if ((config->mode & ETMv4_MODE_CTXID) && (drvdata->ctxid_size))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
344
if ((config->mode & ETM_MODE_VMID) && (drvdata->vmid_size))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
351
if (drvdata->trccond == true) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
357
if ((config->mode & ETMv4_MODE_TIMESTAMP) && (drvdata->ts_size))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
364
(drvdata->retstack == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
378
if (mode && drvdata->q_support)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
384
if ((mode & BIT(1)) && (drvdata->q_support & BIT(1)))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
389
(drvdata->atbtrig == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
396
(drvdata->lpoverride == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
402
if ((config->mode & ETM_MODE_ISTALL_EN) && (drvdata->stallctl == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
415
(drvdata->nooverflow == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
434
(drvdata->trc_error == true))
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
442
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
453
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
454
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
465
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
466
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
471
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
472
if (val > drvdata->nr_pe) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
473
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
478
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
488
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
489
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
500
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
501
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
506
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
507
switch (drvdata->nr_event) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
527
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
537
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
538
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
549
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
550
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
555
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
558
switch (drvdata->nr_event) {
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
583
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
593
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
594
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
605
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
606
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
610
if (!drvdata->ts_size)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
623
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
624
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
635
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
636
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
64
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
640
if (drvdata->syncpr == true)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
653
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
654
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
66
val = drvdata->nr_pe_cmp;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
665
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
666
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
673
if (val < drvdata->ccitmin)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
686
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
687
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
698
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
699
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
703
if (drvdata->trcbb == false)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
705
if (!drvdata->nr_addr_cmp)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
726
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
727
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
738
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
739
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
744
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
748
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
758
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
759
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
76
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
770
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
771
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
776
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
78
val = drvdata->nr_addr_cmp;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
780
val &= drvdata->s_ex_level;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
782
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
792
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
793
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
805
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
806
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
811
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
815
val &= drvdata->ns_ex_level;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
817
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
827
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
828
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
839
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
840
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
844
if (val >= drvdata->nr_addr_cmp * 2)
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
851
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
853
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
864
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
865
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
867
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
875
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
88
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
885
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
886
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
893
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
899
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
90
val = drvdata->nr_cntr;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
910
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
911
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
914
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
917
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
921
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
931
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
932
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
937
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
941
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
947
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
958
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
959
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
961
raw_spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
964
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
971
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
977
raw_spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
987
struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
988
struct etmv4_config *config = &drvdata->config;
drivers/hwtracing/coresight/coresight-etm4x.h
1109
static inline bool etm4x_is_ete(struct etmv4_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-etm4x.h
1111
return drvdata->arch >= ETM_ARCH_ETE;
drivers/hwtracing/coresight/coresight-etm4x.h
1114
void etm4_release_trace_id(struct etmv4_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-funnel.c
105
static void dynamic_funnel_disable_hw(struct funnel_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-funnel.c
109
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-funnel.c
111
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
113
functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL);
drivers/hwtracing/coresight/coresight-funnel.c
115
writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL);
drivers/hwtracing/coresight/coresight-funnel.c
121
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
128
struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-funnel.c
132
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-funnel.c
134
if (drvdata->base)
drivers/hwtracing/coresight/coresight-funnel.c
135
dynamic_funnel_disable_hw(drvdata, in->dest_port);
drivers/hwtracing/coresight/coresight-funnel.c
138
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-funnel.c
157
struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-funnel.c
158
unsigned long val = drvdata->priority;
drivers/hwtracing/coresight/coresight-funnel.c
169
struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-funnel.c
175
drvdata->priority = val;
drivers/hwtracing/coresight/coresight-funnel.c
180
static u32 get_funnel_ctrl_hw(struct funnel_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-funnel.c
184
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
185
functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL);
drivers/hwtracing/coresight/coresight-funnel.c
186
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
195
struct funnel_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-funnel.c
199
val = get_funnel_ctrl_hw(drvdata);
drivers/hwtracing/coresight/coresight-funnel.c
218
struct funnel_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-funnel.c
230
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-funnel.c
231
if (!drvdata)
drivers/hwtracing/coresight/coresight-funnel.c
234
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-funnel.c
246
drvdata->base = base;
drivers/hwtracing/coresight/coresight-funnel.c
252
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-funnel.c
260
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-funnel.c
266
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-funnel.c
267
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-funnel.c
268
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-funnel.c
275
struct funnel_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-funnel.c
277
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-funnel.c
285
struct funnel_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-funnel.c
287
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-funnel.c
288
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-funnel.c
295
struct funnel_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-funnel.c
298
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-funnel.c
302
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-funnel.c
304
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-funnel.c
333
struct funnel_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-funnel.c
335
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-funnel.c
53
static int dynamic_funnel_enable_hw(struct funnel_drvdata *drvdata, int port)
drivers/hwtracing/coresight/coresight-funnel.c
57
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-funnel.c
59
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
61
functl = readl_relaxed(drvdata->base + FUNNEL_FUNCTL);
drivers/hwtracing/coresight/coresight-funnel.c
72
writel_relaxed(functl, drvdata->base + FUNNEL_FUNCTL);
drivers/hwtracing/coresight/coresight-funnel.c
73
writel_relaxed(drvdata->priority, drvdata->base + FUNNEL_PRICTL);
drivers/hwtracing/coresight/coresight-funnel.c
75
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-funnel.c
84
struct funnel_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-funnel.c
88
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-funnel.c
90
if (drvdata->base)
drivers/hwtracing/coresight/coresight-funnel.c
91
rc = dynamic_funnel_enable_hw(drvdata, in->dest_port);
drivers/hwtracing/coresight/coresight-funnel.c
97
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-replicator.c
110
writel_relaxed(id0val, drvdata->base + REPLICATOR_IDFILTER0);
drivers/hwtracing/coresight/coresight-replicator.c
111
writel_relaxed(id1val, drvdata->base + REPLICATOR_IDFILTER1);
drivers/hwtracing/coresight/coresight-replicator.c
114
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
124
struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-replicator.c
128
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-replicator.c
130
if (drvdata->base)
drivers/hwtracing/coresight/coresight-replicator.c
131
rc = dynamic_replicator_enable(drvdata, in->dest_port,
drivers/hwtracing/coresight/coresight-replicator.c
138
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-replicator.c
145
static void dynamic_replicator_disable(struct replicator_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-replicator.c
149
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-replicator.c
163
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
166
writel_relaxed(0xff, drvdata->base + reg);
drivers/hwtracing/coresight/coresight-replicator.c
168
if ((readl_relaxed(drvdata->base + REPLICATOR_IDFILTER0) == 0xff) &&
drivers/hwtracing/coresight/coresight-replicator.c
169
(readl_relaxed(drvdata->base + REPLICATOR_IDFILTER1) == 0xff))
drivers/hwtracing/coresight/coresight-replicator.c
171
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
178
struct replicator_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-replicator.c
182
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-replicator.c
184
if (drvdata->base)
drivers/hwtracing/coresight/coresight-replicator.c
185
dynamic_replicator_disable(drvdata, in->dest_port,
drivers/hwtracing/coresight/coresight-replicator.c
189
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-replicator.c
223
struct replicator_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-replicator.c
237
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-replicator.c
238
if (!drvdata)
drivers/hwtracing/coresight/coresight-replicator.c
241
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-replicator.c
253
drvdata->base = base;
drivers/hwtracing/coresight/coresight-replicator.c
261
drvdata->check_idfilter_val = true;
drivers/hwtracing/coresight/coresight-replicator.c
263
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-replicator.c
270
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-replicator.c
277
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-replicator.c
278
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-replicator.c
279
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-replicator.c
281
replicator_reset(drvdata);
drivers/hwtracing/coresight/coresight-replicator.c
287
struct replicator_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-replicator.c
289
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-replicator.c
312
struct replicator_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-replicator.c
314
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-replicator.c
324
struct replicator_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-replicator.c
326
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-replicator.c
327
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-replicator.c
334
struct replicator_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-replicator.c
337
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-replicator.c
341
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-replicator.c
343
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-replicator.c
48
static void dynamic_replicator_reset(struct replicator_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-replicator.c
50
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-replicator.c
52
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
55
writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER0);
drivers/hwtracing/coresight/coresight-replicator.c
56
writel_relaxed(0xff, drvdata->base + REPLICATOR_IDFILTER1);
drivers/hwtracing/coresight/coresight-replicator.c
60
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
66
static void replicator_reset(struct replicator_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-replicator.c
68
if (drvdata->base)
drivers/hwtracing/coresight/coresight-replicator.c
69
dynamic_replicator_reset(drvdata);
drivers/hwtracing/coresight/coresight-replicator.c
72
static int dynamic_replicator_enable(struct replicator_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-replicator.c
77
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-replicator.c
79
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-replicator.c
81
id0val = readl_relaxed(drvdata->base + REPLICATOR_IDFILTER0);
drivers/hwtracing/coresight/coresight-replicator.c
82
id1val = readl_relaxed(drvdata->base + REPLICATOR_IDFILTER1);
drivers/hwtracing/coresight/coresight-replicator.c
88
if (drvdata->check_idfilter_val && id0val == 0x0 && id1val == 0x0)
drivers/hwtracing/coresight/coresight-stm.c
1025
struct stm_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-stm.c
1027
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-stm.c
151
static void stm_hwevent_enable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
153
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
155
writel_relaxed(drvdata->stmhebsr, drvdata->base + STMHEBSR);
drivers/hwtracing/coresight/coresight-stm.c
156
writel_relaxed(drvdata->stmheter, drvdata->base + STMHETER);
drivers/hwtracing/coresight/coresight-stm.c
157
writel_relaxed(drvdata->stmheer, drvdata->base + STMHEER);
drivers/hwtracing/coresight/coresight-stm.c
160
drvdata->base + STMHEMCR);
drivers/hwtracing/coresight/coresight-stm.c
162
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
165
static void stm_port_enable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
167
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
170
drvdata->base + STMSPTRIGCSR);
drivers/hwtracing/coresight/coresight-stm.c
171
writel_relaxed(drvdata->stmspscr, drvdata->base + STMSPSCR);
drivers/hwtracing/coresight/coresight-stm.c
172
writel_relaxed(drvdata->stmsper, drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
174
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
177
static void stm_enable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
179
if (drvdata->stmheer)
drivers/hwtracing/coresight/coresight-stm.c
180
stm_hwevent_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
182
stm_port_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
184
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
187
writel_relaxed(0xFFF, drvdata->base + STMSYNCR);
drivers/hwtracing/coresight/coresight-stm.c
188
writel_relaxed((drvdata->traceid << 16 | /* trace id */
drivers/hwtracing/coresight/coresight-stm.c
191
drvdata->base + STMTCSR);
drivers/hwtracing/coresight/coresight-stm.c
193
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
200
struct stm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-stm.c
212
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
213
stm_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
214
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
220
static void stm_hwevent_disable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
222
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
224
writel_relaxed(0x0, drvdata->base + STMHEMCR);
drivers/hwtracing/coresight/coresight-stm.c
225
writel_relaxed(0x0, drvdata->base + STMHEER);
drivers/hwtracing/coresight/coresight-stm.c
226
writel_relaxed(0x0, drvdata->base + STMHETER);
drivers/hwtracing/coresight/coresight-stm.c
228
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
231
static void stm_port_disable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
233
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
235
writel_relaxed(0x0, drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
236
writel_relaxed(0x0, drvdata->base + STMSPTRIGCSR);
drivers/hwtracing/coresight/coresight-stm.c
238
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
241
static void stm_disable_hw(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
245
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
247
val = readl_relaxed(drvdata->base + STMTCSR);
drivers/hwtracing/coresight/coresight-stm.c
249
writel_relaxed(val, drvdata->base + STMTCSR);
drivers/hwtracing/coresight/coresight-stm.c
251
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
253
stm_port_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
254
if (drvdata->stmheer)
drivers/hwtracing/coresight/coresight-stm.c
255
stm_hwevent_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
261
struct stm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-stm.c
270
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
271
stm_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
272
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
287
struct stm_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-stm.c
289
drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-stm.c
291
return drvdata->traceid;
drivers/hwtracing/coresight/coresight-stm.c
343
struct stm_drvdata *drvdata = container_of(stm_data,
drivers/hwtracing/coresight/coresight-stm.c
345
if (!drvdata->csdev)
drivers/hwtracing/coresight/coresight-stm.c
348
return coresight_enable_sysfs(drvdata->csdev);
drivers/hwtracing/coresight/coresight-stm.c
354
struct stm_drvdata *drvdata = container_of(stm_data,
drivers/hwtracing/coresight/coresight-stm.c
356
if (!drvdata->csdev)
drivers/hwtracing/coresight/coresight-stm.c
359
coresight_disable_sysfs(drvdata->csdev);
drivers/hwtracing/coresight/coresight-stm.c
366
struct stm_drvdata *drvdata = container_of(stm_data,
drivers/hwtracing/coresight/coresight-stm.c
370
addr = drvdata->chs.phys + channel * BYTES_PER_CHANNEL;
drivers/hwtracing/coresight/coresight-stm.c
385
struct stm_drvdata *drvdata = container_of(stm_data,
drivers/hwtracing/coresight/coresight-stm.c
387
if (!coresight_get_mode(drvdata->csdev))
drivers/hwtracing/coresight/coresight-stm.c
390
if (channel >= drvdata->numsp)
drivers/hwtracing/coresight/coresight-stm.c
395
set_bit(channel, drvdata->chs.guaranteed);
drivers/hwtracing/coresight/coresight-stm.c
399
clear_bit(channel, drvdata->chs.guaranteed);
drivers/hwtracing/coresight/coresight-stm.c
418
struct stm_drvdata *drvdata = container_of(stm_data,
drivers/hwtracing/coresight/coresight-stm.c
422
if (!coresight_get_mode(drvdata->csdev))
drivers/hwtracing/coresight/coresight-stm.c
425
if (channel >= drvdata->numsp)
drivers/hwtracing/coresight/coresight-stm.c
428
ch_addr = stm_channel_addr(drvdata, channel);
drivers/hwtracing/coresight/coresight-stm.c
432
stm_flags |= test_bit(channel, drvdata->chs.guaranteed) ?
drivers/hwtracing/coresight/coresight-stm.c
435
if (size > drvdata->write_bytes)
drivers/hwtracing/coresight/coresight-stm.c
436
size = drvdata->write_bytes;
drivers/hwtracing/coresight/coresight-stm.c
449
stm_send(ch_addr, payload, 1, drvdata->write_bytes);
drivers/hwtracing/coresight/coresight-stm.c
457
drvdata->write_bytes);
drivers/hwtracing/coresight/coresight-stm.c
470
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
471
unsigned long val = drvdata->stmheer;
drivers/hwtracing/coresight/coresight-stm.c
480
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
488
drvdata->stmheer = val;
drivers/hwtracing/coresight/coresight-stm.c
490
drvdata->stmheter = val;
drivers/hwtracing/coresight/coresight-stm.c
499
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
500
unsigned long val = drvdata->stmhebsr;
drivers/hwtracing/coresight/coresight-stm.c
509
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
517
drvdata->stmhebsr = val;
drivers/hwtracing/coresight/coresight-stm.c
526
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
529
if (!coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-stm.c
530
val = drvdata->stmspscr;
drivers/hwtracing/coresight/coresight-stm.c
532
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
533
val = readl_relaxed(drvdata->base + STMSPSCR);
drivers/hwtracing/coresight/coresight-stm.c
534
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
544
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
552
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
553
drvdata->stmspscr = val;
drivers/hwtracing/coresight/coresight-stm.c
555
if (coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-stm.c
556
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
558
stmsper = readl_relaxed(drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
559
writel_relaxed(0x0, drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
560
writel_relaxed(drvdata->stmspscr, drvdata->base + STMSPSCR);
drivers/hwtracing/coresight/coresight-stm.c
561
writel_relaxed(stmsper, drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
562
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
564
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
573
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
576
if (!coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-stm.c
577
val = drvdata->stmsper;
drivers/hwtracing/coresight/coresight-stm.c
579
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
580
val = readl_relaxed(drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
581
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
591
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
599
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
600
drvdata->stmsper = val;
drivers/hwtracing/coresight/coresight-stm.c
602
if (coresight_get_mode(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-stm.c
603
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
604
writel_relaxed(drvdata->stmsper, drvdata->base + STMSPER);
drivers/hwtracing/coresight/coresight-stm.c
605
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-stm.c
607
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
617
struct stm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-stm.c
619
val = drvdata->traceid;
drivers/hwtracing/coresight/coresight-stm.c
750
static u32 stm_fundamental_data_size(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
757
stmspfeat2r = readl_relaxed(drvdata->base + STMSPFEAT2R);
drivers/hwtracing/coresight/coresight-stm.c
767
static u32 stm_num_stimulus_port(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
771
numsp = readl_relaxed(drvdata->base + CORESIGHT_DEVID);
drivers/hwtracing/coresight/coresight-stm.c
782
static void stm_init_default_data(struct stm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-stm.c
785
drvdata->stmspscr = 0x0;
drivers/hwtracing/coresight/coresight-stm.c
791
drvdata->stmsper = ~0x0;
drivers/hwtracing/coresight/coresight-stm.c
794
bitmap_clear(drvdata->chs.guaranteed, 0, drvdata->numsp);
drivers/hwtracing/coresight/coresight-stm.c
797
static void stm_init_generic_data(struct stm_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-stm.c
800
drvdata->stm.name = name;
drivers/hwtracing/coresight/coresight-stm.c
806
drvdata->stm.sw_start = 1;
drivers/hwtracing/coresight/coresight-stm.c
807
drvdata->stm.sw_end = 1;
drivers/hwtracing/coresight/coresight-stm.c
808
drvdata->stm.hw_override = true;
drivers/hwtracing/coresight/coresight-stm.c
809
drvdata->stm.sw_nchannels = drvdata->numsp;
drivers/hwtracing/coresight/coresight-stm.c
810
drvdata->stm.sw_mmiosz = BYTES_PER_CHANNEL;
drivers/hwtracing/coresight/coresight-stm.c
811
drvdata->stm.packet = stm_generic_packet;
drivers/hwtracing/coresight/coresight-stm.c
812
drvdata->stm.mmio_addr = stm_mmio_addr;
drivers/hwtracing/coresight/coresight-stm.c
813
drvdata->stm.link = stm_generic_link;
drivers/hwtracing/coresight/coresight-stm.c
814
drvdata->stm.unlink = stm_generic_unlink;
drivers/hwtracing/coresight/coresight-stm.c
815
drvdata->stm.set_options = stm_generic_set_options;
drivers/hwtracing/coresight/coresight-stm.c
833
struct stm_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-stm.c
841
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-stm.c
842
if (!drvdata)
drivers/hwtracing/coresight/coresight-stm.c
845
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-stm.c
849
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-stm.c
854
drvdata->base = base;
drivers/hwtracing/coresight/coresight-stm.c
860
drvdata->chs.phys = ch_res.start;
drivers/hwtracing/coresight/coresight-stm.c
865
drvdata->chs.base = base;
drivers/hwtracing/coresight/coresight-stm.c
867
drvdata->write_bytes = stm_fundamental_data_size(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
87
#define stm_channel_addr(drvdata, ch) (drvdata->chs.base + \
drivers/hwtracing/coresight/coresight-stm.c
870
drvdata->numsp = boot_nr_channel;
drivers/hwtracing/coresight/coresight-stm.c
872
drvdata->numsp = stm_num_stimulus_port(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
874
drvdata->chs.guaranteed = devm_bitmap_zalloc(dev, drvdata->numsp,
drivers/hwtracing/coresight/coresight-stm.c
876
if (!drvdata->chs.guaranteed)
drivers/hwtracing/coresight/coresight-stm.c
879
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-stm.c
881
stm_init_default_data(drvdata);
drivers/hwtracing/coresight/coresight-stm.c
882
stm_init_generic_data(drvdata, desc.name);
drivers/hwtracing/coresight/coresight-stm.c
884
if (stm_register_device(dev, &drvdata->stm, THIS_MODULE)) {
drivers/hwtracing/coresight/coresight-stm.c
904
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-stm.c
905
if (IS_ERR(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-stm.c
906
ret = PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-stm.c
915
drvdata->traceid = (u8)trace_id;
drivers/hwtracing/coresight/coresight-stm.c
917
dev_info(&drvdata->csdev->dev, "%s initialized\n",
drivers/hwtracing/coresight/coresight-stm.c
918
stm_csdev_name(drvdata->csdev));
drivers/hwtracing/coresight/coresight-stm.c
922
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-stm.c
925
stm_unregister_device(&drvdata->stm);
drivers/hwtracing/coresight/coresight-stm.c
942
struct stm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-stm.c
944
coresight_trace_id_put_system_id(drvdata->traceid);
drivers/hwtracing/coresight/coresight-stm.c
945
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-stm.c
947
stm_unregister_device(&drvdata->stm);
drivers/hwtracing/coresight/coresight-stm.c
958
struct stm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-stm.c
960
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-stm.c
961
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-stm.c
968
struct stm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-stm.c
971
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-stm.c
975
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-stm.c
977
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
1003
struct tmc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
1005
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
1006
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
1013
struct tmc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
1016
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
1020
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
1022
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
109
static bool is_tmc_crashdata_valid(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
113
if (!tmc_has_reserved_buffer(drvdata) ||
drivers/hwtracing/coresight/coresight-tmc-core.c
114
!tmc_has_crash_mdata_buffer(drvdata))
drivers/hwtracing/coresight/coresight-tmc-core.c
117
mdata = drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc-core.c
125
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
135
if (drvdata->resrv_buf.paddr != mdata->trace_paddr) {
drivers/hwtracing/coresight/coresight-tmc-core.c
136
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
143
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
148
if (mdata->crc32_tdata != find_crash_tracedata_crc(drvdata, mdata)) {
drivers/hwtracing/coresight/coresight-tmc-core.c
149
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
157
static inline ssize_t tmc_get_resvbuf_trace(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-core.c
162
struct tmc_resrv_buf *rbuf = &drvdata->resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-core.c
183
static int tmc_prepare_crashdata(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
192
mdata = drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc-core.c
193
rbuf = &drvdata->resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-core.c
211
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
217
len = tmc_get_resvbuf_trace(drvdata, 0x0,
drivers/hwtracing/coresight/coresight-tmc-core.c
222
mdata->crc32_tdata = find_crash_tracedata_crc(drvdata,
drivers/hwtracing/coresight/coresight-tmc-core.c
231
static int tmc_read_prepare(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
235
switch (drvdata->config_type) {
drivers/hwtracing/coresight/coresight-tmc-core.c
238
ret = tmc_read_prepare_etb(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
241
ret = tmc_read_prepare_etr(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
248
dev_dbg(&drvdata->csdev->dev, "TMC read start\n");
drivers/hwtracing/coresight/coresight-tmc-core.c
253
static int tmc_read_unprepare(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
257
switch (drvdata->config_type) {
drivers/hwtracing/coresight/coresight-tmc-core.c
260
ret = tmc_read_unprepare_etb(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
263
ret = tmc_read_unprepare_etr(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
270
dev_dbg(&drvdata->csdev->dev, "TMC read end\n");
drivers/hwtracing/coresight/coresight-tmc-core.c
278
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
281
ret = tmc_read_prepare(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
287
dev_dbg(&drvdata->csdev->dev, "%s: successfully opened\n", __func__);
drivers/hwtracing/coresight/coresight-tmc-core.c
291
static ssize_t tmc_get_sysfs_trace(struct tmc_drvdata *drvdata, loff_t pos, size_t len,
drivers/hwtracing/coresight/coresight-tmc-core.c
294
switch (drvdata->config_type) {
drivers/hwtracing/coresight/coresight-tmc-core.c
297
return tmc_etb_get_sysfs_trace(drvdata, pos, len, bufpp);
drivers/hwtracing/coresight/coresight-tmc-core.c
299
return tmc_etr_get_sysfs_trace(drvdata, pos, len, bufpp);
drivers/hwtracing/coresight/coresight-tmc-core.c
310
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
312
actual = tmc_get_sysfs_trace(drvdata, *ppos, len, &bufp);
drivers/hwtracing/coresight/coresight-tmc-core.c
317
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
323
dev_dbg(&drvdata->csdev->dev, "%zu bytes copied\n", actual);
drivers/hwtracing/coresight/coresight-tmc-core.c
331
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
334
ret = tmc_read_unprepare(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
338
dev_dbg(&drvdata->csdev->dev, "%s: released\n", __func__);
drivers/hwtracing/coresight/coresight-tmc-core.c
355
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
359
mdata = drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc-core.c
360
rbuf = &drvdata->resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-core.c
362
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
367
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
372
dev_dbg(&drvdata->csdev->dev, "%s: successfully opened\n", __func__);
drivers/hwtracing/coresight/coresight-tmc-core.c
382
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
386
actual = tmc_get_resvbuf_trace(drvdata, *ppos, len, &bufp);
drivers/hwtracing/coresight/coresight-tmc-core.c
39
int tmc_wait_for_tmcready(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
391
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
397
dev_dbg(&drvdata->csdev->dev, "%zu bytes copied\n", actual);
drivers/hwtracing/coresight/coresight-tmc-core.c
407
struct tmc_drvdata *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/coresight-tmc-core.c
41
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-tmc-core.c
411
rbuf = &drvdata->resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-core.c
412
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
414
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
416
dev_dbg(&drvdata->csdev->dev, "%s: released\n", __func__);
drivers/hwtracing/coresight/coresight-tmc-core.c
481
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
482
unsigned long val = drvdata->trigger_cntr;
drivers/hwtracing/coresight/coresight-tmc-core.c
493
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
499
drvdata->trigger_cntr = val;
drivers/hwtracing/coresight/coresight-tmc-core.c
507
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
509
return sprintf(buf, "%#x\n", drvdata->size);
drivers/hwtracing/coresight/coresight-tmc-core.c
518
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
521
if (drvdata->config_type != TMC_CONFIG_TYPE_ETR)
drivers/hwtracing/coresight/coresight-tmc-core.c
53
void tmc_flush_and_stop(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
530
drvdata->size = val;
drivers/hwtracing/coresight/coresight-tmc-core.c
539
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
541
return sprintf(buf, "%#x\n", drvdata->stop_on_flush);
drivers/hwtracing/coresight/coresight-tmc-core.c
55
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-tmc-core.c
550
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
556
drvdata->stop_on_flush = true;
drivers/hwtracing/coresight/coresight-tmc-core.c
558
drvdata->stop_on_flush = false;
drivers/hwtracing/coresight/coresight-tmc-core.c
59
ffcr = readl_relaxed(drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-core.c
61
writel_relaxed(ffcr, drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-core.c
625
static bool tmc_etr_has_non_secure_access(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
627
u32 auth = readl_relaxed(drvdata->base + TMC_AUTHSTATUS);
drivers/hwtracing/coresight/coresight-tmc-core.c
63
writel_relaxed(ffcr, drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-core.c
652
struct tmc_drvdata *drvdata = dev_get_drvdata(parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
658
drvdata->resrv_buf.vaddr = memremap(res.start,
drivers/hwtracing/coresight/coresight-tmc-core.c
661
if (IS_ERR_OR_NULL(drvdata->resrv_buf.vaddr)) {
drivers/hwtracing/coresight/coresight-tmc-core.c
666
drvdata->resrv_buf.paddr = res.start;
drivers/hwtracing/coresight/coresight-tmc-core.c
667
drvdata->resrv_buf.size = resource_size(&res);
drivers/hwtracing/coresight/coresight-tmc-core.c
672
drvdata->crash_mdata.vaddr = memremap(res.start,
drivers/hwtracing/coresight/coresight-tmc-core.c
675
if (IS_ERR_OR_NULL(drvdata->crash_mdata.vaddr)) {
drivers/hwtracing/coresight/coresight-tmc-core.c
680
drvdata->crash_mdata.paddr = res.start;
drivers/hwtracing/coresight/coresight-tmc-core.c
681
drvdata->crash_mdata.size = resource_size(&res);
drivers/hwtracing/coresight/coresight-tmc-core.c
690
struct tmc_drvdata *drvdata = dev_get_drvdata(parent);
drivers/hwtracing/coresight/coresight-tmc-core.c
693
if (!tmc_etr_has_non_secure_access(drvdata))
drivers/hwtracing/coresight/coresight-tmc-core.c
70
tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
700
tmc_etr_init_caps(drvdata, (u32)(unsigned long)dev_caps);
drivers/hwtracing/coresight/coresight-tmc-core.c
703
tmc_etr_set_cap(drvdata, TMC_ETR_SG);
drivers/hwtracing/coresight/coresight-tmc-core.c
73
void tmc_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
75
writel_relaxed(TMC_CTL_CAPT_EN, drvdata->base + TMC_CTL);
drivers/hwtracing/coresight/coresight-tmc-core.c
756
static void register_crash_dev_interface(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-core.c
759
drvdata->crashdev.name =
drivers/hwtracing/coresight/coresight-tmc-core.c
760
devm_kasprintf(&drvdata->csdev->dev, GFP_KERNEL, "%s_%s", "crash", name);
drivers/hwtracing/coresight/coresight-tmc-core.c
761
drvdata->crashdev.minor = MISC_DYNAMIC_MINOR;
drivers/hwtracing/coresight/coresight-tmc-core.c
762
drvdata->crashdev.fops = &tmc_crashdata_fops;
drivers/hwtracing/coresight/coresight-tmc-core.c
763
if (misc_register(&drvdata->crashdev)) {
drivers/hwtracing/coresight/coresight-tmc-core.c
764
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
766
drvdata->crashdev.fops = NULL;
drivers/hwtracing/coresight/coresight-tmc-core.c
768
dev_info(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-core.c
778
struct tmc_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tmc-core.c
78
void tmc_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
782
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tmc-core.c
783
if (!drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
786
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
788
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-tmc-core.c
80
writel_relaxed(0x0, drvdata->base + TMC_CTL);
drivers/hwtracing/coresight/coresight-tmc-core.c
801
drvdata->base = base;
drivers/hwtracing/coresight/coresight-tmc-core.c
804
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tmc-core.c
806
devid = readl_relaxed(drvdata->base + CORESIGHT_DEVID);
drivers/hwtracing/coresight/coresight-tmc-core.c
807
drvdata->config_type = BMVAL(devid, 6, 7);
drivers/hwtracing/coresight/coresight-tmc-core.c
808
drvdata->memwidth = tmc_get_memwidth(devid);
drivers/hwtracing/coresight/coresight-tmc-core.c
810
drvdata->pid = -1;
drivers/hwtracing/coresight/coresight-tmc-core.c
811
drvdata->etr_mode = ETR_MODE_AUTO;
drivers/hwtracing/coresight/coresight-tmc-core.c
813
if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) {
drivers/hwtracing/coresight/coresight-tmc-core.c
814
drvdata->size = tmc_etr_get_default_buffer_size(dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
815
drvdata->max_burst_size = tmc_etr_get_max_burst_size(dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
817
drvdata->size = readl_relaxed(drvdata->base + TMC_RSZ) * 4;
drivers/hwtracing/coresight/coresight-tmc-core.c
824
switch (drvdata->config_type) {
drivers/hwtracing/coresight/coresight-tmc-core.c
83
u32 tmc_get_memwidth_mask(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-core.c
840
idr_init(&drvdata->idr);
drivers/hwtracing/coresight/coresight-tmc-core.c
841
mutex_init(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-core.c
873
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-tmc-core.c
874
if (IS_ERR(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-tmc-core.c
875
ret = PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
879
drvdata->miscdev.name = desc.name;
drivers/hwtracing/coresight/coresight-tmc-core.c
880
drvdata->miscdev.minor = MISC_DYNAMIC_MINOR;
drivers/hwtracing/coresight/coresight-tmc-core.c
881
drvdata->miscdev.fops = &tmc_fops;
drivers/hwtracing/coresight/coresight-tmc-core.c
882
ret = misc_register(&drvdata->miscdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
884
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
889
if (is_tmc_crashdata_valid(drvdata) &&
drivers/hwtracing/coresight/coresight-tmc-core.c
890
!tmc_prepare_crashdata(drvdata))
drivers/hwtracing/coresight/coresight-tmc-core.c
891
register_crash_dev_interface(drvdata, desc.name);
drivers/hwtracing/coresight/coresight-tmc-core.c
909
struct tmc_drvdata *drvdata = amba_get_drvdata(adev);
drivers/hwtracing/coresight/coresight-tmc-core.c
911
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
913
if (coresight_get_mode(drvdata->csdev) == CS_MODE_DISABLED)
drivers/hwtracing/coresight/coresight-tmc-core.c
916
if (drvdata->config_type == TMC_CONFIG_TYPE_ETR)
drivers/hwtracing/coresight/coresight-tmc-core.c
917
tmc_etr_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-core.c
925
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-core.c
930
struct tmc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
937
misc_deregister(&drvdata->miscdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
938
if (drvdata->crashdev.fops)
drivers/hwtracing/coresight/coresight-tmc-core.c
939
misc_deregister(&drvdata->crashdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
940
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-core.c
95
switch (drvdata->memwidth) {
drivers/hwtracing/coresight/coresight-tmc-core.c
991
struct tmc_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-tmc-core.c
993
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-tmc-etf.c
102
static void tmc_etb_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
104
__tmc_etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
105
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etf.c
108
static int __tmc_etf_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
112
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
115
rc = tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
117
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-etf.c
119
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
123
writel_relaxed(TMC_MODE_HARDWARE_FIFO, drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
125
drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-etf.c
126
writel_relaxed(0x0, drvdata->base + TMC_BUFWM);
drivers/hwtracing/coresight/coresight-tmc-etf.c
127
tmc_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
129
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
133
static int tmc_etf_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
135
int rc = coresight_claim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etf.c
140
rc = __tmc_etf_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
142
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etf.c
146
static void tmc_etf_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
148
struct coresight_device *csdev = drvdata->csdev;
drivers/hwtracing/coresight/coresight-tmc-etf.c
150
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
152
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
153
tmc_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
155
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
163
ssize_t tmc_etb_get_sysfs_trace(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etf.c
169
if (pos + actual > drvdata->len)
drivers/hwtracing/coresight/coresight-tmc-etf.c
170
actual = drvdata->len - pos;
drivers/hwtracing/coresight/coresight-tmc-etf.c
172
*bufpp = drvdata->buf + pos;
drivers/hwtracing/coresight/coresight-tmc-etf.c
182
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
188
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
189
if (!drvdata->buf) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
19
static int __tmc_etb_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
190
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
193
buf = kzalloc(drvdata->size, GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tmc-etf.c
198
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
201
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
225
if (drvdata->buf) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
226
memset(drvdata->buf, 0, drvdata->size);
drivers/hwtracing/coresight/coresight-tmc-etf.c
229
drvdata->buf = buf;
drivers/hwtracing/coresight/coresight-tmc-etf.c
231
ret = tmc_etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
24
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
240
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
255
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
259
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
262
if (drvdata->reading)
drivers/hwtracing/coresight/coresight-tmc-etf.c
27
rc = tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
276
if (drvdata->pid != -1 && drvdata->pid != pid) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
289
if (drvdata->pid == pid) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
29
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-etf.c
294
ret = tmc_etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
297
drvdata->pid = pid;
drivers/hwtracing/coresight/coresight-tmc-etf.c
302
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
31
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
336
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
338
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
340
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
341
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
347
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
35
writel_relaxed(TMC_MODE_CIRCULAR_BUFFER, drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
353
tmc_etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
355
drvdata->pid = -1;
drivers/hwtracing/coresight/coresight-tmc-etf.c
358
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
370
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
373
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
374
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
375
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
380
ret = tmc_etf_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
388
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
39
if (drvdata->stop_on_flush)
drivers/hwtracing/coresight/coresight-tmc-etf.c
400
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
403
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
404
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
405
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
41
writel_relaxed(ffcr, drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-etf.c
411
tmc_etf_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
415
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
43
writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG);
drivers/hwtracing/coresight/coresight-tmc-etf.c
44
tmc_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
46
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
486
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
496
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
50
static int tmc_etb_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
502
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
504
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
506
read_ptr = tmc_read_rrp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
507
write_ptr = tmc_read_rwp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
513
status = readl_relaxed(drvdata->base + TMC_STS);
drivers/hwtracing/coresight/coresight-tmc-etf.c
516
to_read = drvdata->size;
drivers/hwtracing/coresight/coresight-tmc-etf.c
518
to_read = CIRC_CNT(write_ptr, read_ptr, drvdata->size);
drivers/hwtracing/coresight/coresight-tmc-etf.c
52
int rc = coresight_claim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etf.c
529
u32 mask = tmc_get_memwidth_mask(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
537
read_ptr = (write_ptr + drvdata->size) - to_read;
drivers/hwtracing/coresight/coresight-tmc-etf.c
539
if (read_ptr > (drvdata->size - 1))
drivers/hwtracing/coresight/coresight-tmc-etf.c
540
read_ptr -= drvdata->size;
drivers/hwtracing/coresight/coresight-tmc-etf.c
542
tmc_write_rrp(drvdata, read_ptr);
drivers/hwtracing/coresight/coresight-tmc-etf.c
562
*buf_ptr = readl_relaxed(drvdata->base + TMC_RRD);
drivers/hwtracing/coresight/coresight-tmc-etf.c
57
rc = __tmc_etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
59
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etf.c
591
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
598
__tmc_etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
601
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
610
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etf.c
612
mdata = (struct tmc_crash_metadata *)drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc-etf.c
615
if (!tmc_has_reserved_buffer(drvdata) ||
drivers/hwtracing/coresight/coresight-tmc-etf.c
616
!tmc_has_crash_mdata_buffer(drvdata))
drivers/hwtracing/coresight/coresight-tmc-etf.c
619
tmc_crashdata_set_invalid(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
621
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
624
val = readl(drvdata->base + TMC_CTL);
drivers/hwtracing/coresight/coresight-tmc-etf.c
627
val = readl(drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
63
static void tmc_etb_dump_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
631
val = readl(drvdata->base + TMC_FFSR);
drivers/hwtracing/coresight/coresight-tmc-etf.c
636
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
638
tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
641
mdata->tmc_sts = readl(drvdata->base + TMC_STS);
drivers/hwtracing/coresight/coresight-tmc-etf.c
642
mdata->tmc_mode = readl(drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
643
mdata->tmc_ffcr = readl(drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-etf.c
644
mdata->tmc_ffsr = readl(drvdata->base + TMC_FFSR);
drivers/hwtracing/coresight/coresight-tmc-etf.c
647
drvdata->buf = drvdata->resrv_buf.vaddr;
drivers/hwtracing/coresight/coresight-tmc-etf.c
648
tmc_etb_dump_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
650
mdata->tmc_ram_size = drvdata->len >> 2;
drivers/hwtracing/coresight/coresight-tmc-etf.c
655
mdata->tmc_rwp = drvdata->len;
drivers/hwtracing/coresight/coresight-tmc-etf.c
656
mdata->trace_paddr = drvdata->resrv_buf.paddr;
drivers/hwtracing/coresight/coresight-tmc-etf.c
670
mdata->crc32_tdata = find_crash_tracedata_crc(drvdata, mdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
673
tmc_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
677
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
69
lost = readl_relaxed(drvdata->base + TMC_STS) & TMC_STS_FULL;
drivers/hwtracing/coresight/coresight-tmc-etf.c
70
bufp = drvdata->buf;
drivers/hwtracing/coresight/coresight-tmc-etf.c
708
int tmc_read_prepare_etb(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
71
drvdata->len = 0;
drivers/hwtracing/coresight/coresight-tmc-etf.c
715
if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETB &&
drivers/hwtracing/coresight/coresight-tmc-etf.c
716
drvdata->config_type != TMC_CONFIG_TYPE_ETF))
drivers/hwtracing/coresight/coresight-tmc-etf.c
719
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
721
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
727
if (coresight_get_mode(drvdata->csdev) == CS_MODE_PERF) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
73
read_data = readl_relaxed(drvdata->base + TMC_RRD);
drivers/hwtracing/coresight/coresight-tmc-etf.c
733
if (drvdata->buf == NULL) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
739
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
741
mode = readl_relaxed(drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
746
__tmc_etb_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
749
drvdata->reading = true;
drivers/hwtracing/coresight/coresight-tmc-etf.c
751
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
756
int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
763
if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETB &&
drivers/hwtracing/coresight/coresight-tmc-etf.c
764
drvdata->config_type != TMC_CONFIG_TYPE_ETF))
drivers/hwtracing/coresight/coresight-tmc-etf.c
767
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
770
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS) {
drivers/hwtracing/coresight/coresight-tmc-etf.c
772
mode = readl_relaxed(drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etf.c
774
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
78
drvdata->len += 4;
drivers/hwtracing/coresight/coresight-tmc-etf.c
785
memset(drvdata->buf, 0, drvdata->size);
drivers/hwtracing/coresight/coresight-tmc-etf.c
790
__tmc_etb_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
796
buf = drvdata->buf;
drivers/hwtracing/coresight/coresight-tmc-etf.c
797
drvdata->buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etf.c
800
drvdata->reading = false;
drivers/hwtracing/coresight/coresight-tmc-etf.c
801
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etf.c
82
coresight_insert_barrier_packet(drvdata->buf);
drivers/hwtracing/coresight/coresight-tmc-etf.c
86
static void __tmc_etb_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etf.c
88
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etf.c
90
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
95
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS)
drivers/hwtracing/coresight/coresight-tmc-etf.c
96
tmc_etb_dump_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
97
tmc_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etf.c
99
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1028
static void tmc_sync_etr_buf(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1030
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1034
rrp = tmc_read_rrp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1035
rwp = tmc_read_rwp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1036
status = readl_relaxed(drvdata->base + TMC_STS);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1043
dev_dbg(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1057
static int __tmc_etr_enable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1060
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1063
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1066
rc = tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1068
dev_err(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1070
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1074
writel_relaxed(etr_buf->size / 4, drvdata->base + TMC_RSZ);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1075
writel_relaxed(TMC_MODE_CIRCULAR_BUFFER, drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1077
axictl = readl_relaxed(drvdata->base + TMC_AXICTL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1080
axictl |= TMC_AXICTL_WR_BURST(drvdata->max_burst_size);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1083
if (tmc_etr_has_cap(drvdata, TMC_ETR_AXI_ARCACHE)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1091
writel_relaxed(axictl, drvdata->base + TMC_AXICTL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1092
tmc_write_dba(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1098
if (tmc_etr_has_cap(drvdata, TMC_ETR_SAVE_RESTORE)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1099
tmc_write_rrp(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1100
tmc_write_rwp(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1101
sts = readl_relaxed(drvdata->base + TMC_STS) & ~TMC_STS_FULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1102
writel_relaxed(sts, drvdata->base + TMC_STS);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1107
if (drvdata->stop_on_flush)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1109
writel_relaxed(ffcr, drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1111
writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1112
tmc_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1114
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1118
static int tmc_etr_enable_hw(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1128
WARN_ON(!tmc_etr_has_cap(drvdata, TMC_ETR_SG)))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1131
if (WARN_ON(drvdata->etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1134
rc = coresight_claim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1136
drvdata->etr_buf = etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1137
rc = __tmc_etr_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1139
drvdata->etr_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1140
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1157
ssize_t tmc_etr_get_sysfs_trace(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1162
struct etr_buf *etr_buf = drvdata->sysfs_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1177
tmc_etr_setup_sysfs_buf(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1179
return tmc_alloc_etr_buf(drvdata, drvdata->size,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1190
static void tmc_etr_sync_sysfs_buf(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1192
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1194
if (WARN_ON(drvdata->sysfs_buf != etr_buf)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1195
tmc_etr_free_sysfs_buf(drvdata->sysfs_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1196
drvdata->sysfs_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1198
tmc_sync_etr_buf(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1209
static void __tmc_etr_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1211
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1213
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1218
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1219
tmc_etr_sync_sysfs_buf(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1221
tmc_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1223
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1227
void tmc_etr_disable_hw(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1229
__tmc_etr_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1230
coresight_disclaim_device(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1232
drvdata->etr_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1239
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1250
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1258
sysfs_buf = READ_ONCE(drvdata->sysfs_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1259
if (!sysfs_buf || (sysfs_buf->size != drvdata->size)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1260
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1263
free_buf = new_buf = tmc_etr_setup_sysfs_buf(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1268
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1271
if (drvdata->reading || coresight_get_mode(csdev) == CS_MODE_PERF) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1280
sysfs_buf = READ_ONCE(drvdata->sysfs_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1283
drvdata->sysfs_buf = new_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1287
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1292
return ret ? ERR_PTR(ret) : drvdata->sysfs_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1299
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1305
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1312
drvdata->sysfs_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1313
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1330
ret = tmc_etr_enable_hw(drvdata, sysfs_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1337
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1372
alloc_etr_buf(struct tmc_drvdata *drvdata, struct perf_event *event,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1390
etr_buf = tmc_alloc_etr_buf(drvdata, size, 0, node, NULL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1400
get_perf_etr_buf_cpu_wide(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1427
mutex_lock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1428
etr_buf = idr_find(&drvdata->idr, pid);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1431
mutex_unlock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1436
mutex_unlock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1438
etr_buf = alloc_etr_buf(drvdata, event, nr_pages, pages, snapshot);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1443
mutex_lock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1444
ret = idr_alloc(&drvdata->idr, etr_buf, pid, pid + 1, GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1445
mutex_unlock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1464
get_perf_etr_buf_per_thread(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1472
return alloc_etr_buf(drvdata, event, nr_pages, pages, snapshot);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1476
get_perf_etr_buf(struct tmc_drvdata *drvdata, struct perf_event *event,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1480
return get_perf_etr_buf_per_thread(drvdata, event, nr_pages,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1483
return get_perf_etr_buf_cpu_wide(drvdata, event, nr_pages,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1488
tmc_etr_setup_perf_buf(struct tmc_drvdata *drvdata, struct perf_event *event,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1501
etr_buf = get_perf_etr_buf(drvdata, event, nr_pages, pages, snapshot);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1513
etr_perf->drvdata = drvdata;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1525
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1527
etr_perf = tmc_etr_setup_perf_buf(drvdata, event,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1545
struct tmc_drvdata *drvdata = etr_perf->drvdata;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1551
mutex_lock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1554
mutex_unlock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1559
buf = idr_remove(&drvdata->idr, etr_perf->pid);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1560
mutex_unlock(&drvdata->idr_mutex);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1641
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1646
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1650
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1654
if (WARN_ON(drvdata->perf_buf != etr_buf)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1656
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1660
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1662
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1663
tmc_sync_etr_buf(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1665
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1666
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1680
u32 mask = tmc_get_memwidth_mask(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1718
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1720
__tmc_etr_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1721
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1741
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1745
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1761
if (drvdata->pid != -1 && drvdata->pid != pid) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1770
if (drvdata->pid == pid) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1775
rc = tmc_etr_enable_hw(drvdata, etr_perf->etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1778
drvdata->pid = pid;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1780
drvdata->perf_buf = etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1785
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1806
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1808
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1810
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1811
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1817
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1823
tmc_etr_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1825
drvdata->pid = -1;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1828
drvdata->perf_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1830
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1840
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1842
mdata = (struct tmc_crash_metadata *)drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1844
if (!drvdata->etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1848
if (drvdata->etr_buf->mode != ETR_MODE_RESRV)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1851
if (!tmc_has_crash_mdata_buffer(drvdata))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1854
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1857
val = readl(drvdata->base + TMC_CTL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1861
val = readl(drvdata->base + TMC_FFSR);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1866
tmc_flush_and_stop(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1868
tmc_wait_for_tmcready(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1871
mdata->tmc_ram_size = readl(drvdata->base + TMC_RSZ);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1872
mdata->tmc_sts = readl(drvdata->base + TMC_STS);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1873
mdata->tmc_mode = readl(drvdata->base + TMC_MODE);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1874
mdata->tmc_ffcr = readl(drvdata->base + TMC_FFCR);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1875
mdata->tmc_ffsr = readl(drvdata->base + TMC_FFSR);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1876
mdata->tmc_rrp = tmc_read_rrp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1877
mdata->tmc_rwp = tmc_read_rwp(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1878
mdata->tmc_dba = tmc_read_dba(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1879
mdata->trace_paddr = drvdata->resrv_buf.paddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1892
mdata->crc32_tdata = find_crash_tracedata_crc(drvdata, mdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1895
tmc_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1899
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1921
int tmc_read_prepare_etr(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1927
if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1930
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1931
if (drvdata->reading) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1941
if (!drvdata->sysfs_buf) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1947
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1948
__tmc_etr_disable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1950
drvdata->reading = true;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1952
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1957
int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1963
if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1966
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1969
if (coresight_get_mode(drvdata->csdev) == CS_MODE_SYSFS) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1975
__tmc_etr_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1981
sysfs_buf = drvdata->sysfs_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1982
drvdata->sysfs_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1985
drvdata->reading = false;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1986
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2029
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2031
return sysfs_emit(buf, "%s\n", buf_modes_str[drvdata->etr_mode]);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2034
static int buf_mode_set_resrv(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
2040
rbuf = &drvdata->resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2043
raw_spin_lock_irqsave(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2045
tmc_crashdata_set_invalid(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2047
drvdata->etr_mode = ETR_MODE_RESRV;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2050
raw_spin_unlock_irqrestore(&drvdata->spinlock, flags);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2058
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
2063
drvdata->etr_mode = ETR_MODE_FLAT;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2065
drvdata->etr_mode = ETR_MODE_ETR_SG;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2067
drvdata->etr_mode = ETR_MODE_CATU;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2069
return buf_mode_set_resrv(drvdata) ? : size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
2071
drvdata->etr_mode = ETR_MODE_AUTO;
drivers/hwtracing/coresight/coresight-tmc-etr.c
47
struct tmc_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tmc-etr.c
602
static int tmc_etr_alloc_flat_buf(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
607
struct device *real_dev = drvdata->csdev->dev.parent;
drivers/hwtracing/coresight/coresight-tmc-etr.c
627
flat_buf->dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-tmc-etr.c
700
static int tmc_etr_alloc_resrv_buf(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
705
struct device *real_dev = drvdata->csdev->dev.parent;
drivers/hwtracing/coresight/coresight-tmc-etr.c
715
resrv_buf->daddr = dma_map_resource(real_dev, drvdata->resrv_buf.paddr,
drivers/hwtracing/coresight/coresight-tmc-etr.c
716
drvdata->resrv_buf.size,
drivers/hwtracing/coresight/coresight-tmc-etr.c
724
resrv_buf->vaddr = drvdata->resrv_buf.vaddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
725
resrv_buf->size = etr_buf->size = drvdata->resrv_buf.size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
726
resrv_buf->dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-tmc-etr.c
770
static int tmc_etr_alloc_sg_buf(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
775
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-tmc-etr.c
853
tmc_etr_get_catu_device(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc-etr.c
855
struct coresight_device *etr = drvdata->csdev;
drivers/hwtracing/coresight/coresight-tmc-etr.c
887
static int tmc_etr_mode_alloc_buf(int mode, struct tmc_drvdata *drvdata, struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
898
rc = etr_buf_ops[mode]->alloc(drvdata, etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
910
struct tmc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tmc-etr.c
913
buf_hw->has_etr_sg = tmc_etr_has_cap(drvdata, TMC_ETR_SG);
drivers/hwtracing/coresight/coresight-tmc-etr.c
914
buf_hw->has_catu = !!tmc_etr_get_catu_device(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
915
buf_hw->has_resrv = tmc_has_reserved_buffer(drvdata);
drivers/hwtracing/coresight/coresight-tmc-etr.c
933
static struct etr_buf *tmc_alloc_etr_buf(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
940
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/coresight-tmc-etr.c
950
if (drvdata->etr_mode != ETR_MODE_AUTO)
drivers/hwtracing/coresight/coresight-tmc-etr.c
951
rc = tmc_etr_mode_alloc_buf(drvdata->etr_mode, drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
967
rc = tmc_etr_mode_alloc_buf(ETR_MODE_FLAT, drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
970
rc = tmc_etr_mode_alloc_buf(ETR_MODE_ETR_SG, drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
973
rc = tmc_etr_mode_alloc_buf(ETR_MODE_CATU, drvdata,
drivers/hwtracing/coresight/coresight-tmc.h
281
int (*alloc)(struct tmc_drvdata *drvdata, struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc.h
322
int tmc_wait_for_tmcready(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
323
void tmc_flush_and_stop(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
324
void tmc_enable_hw(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
325
void tmc_disable_hw(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
326
u32 tmc_get_memwidth_mask(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
327
int tmc_read_prepare_crashdata(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
330
int tmc_read_prepare_etb(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
331
int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
335
ssize_t tmc_etb_get_sysfs_trace(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc.h
338
int tmc_read_prepare_etr(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
339
int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
340
void tmc_etr_disable_hw(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tmc.h
342
ssize_t tmc_etr_get_sysfs_trace(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc.h
348
tmc_read_##name(struct tmc_drvdata *drvdata) \
drivers/hwtracing/coresight/coresight-tmc.h
350
return csdev_access_relaxed_read_pair(&drvdata->csdev->access, lo_off, hi_off); \
drivers/hwtracing/coresight/coresight-tmc.h
353
tmc_write_##name(struct tmc_drvdata *drvdata, u64 val) \
drivers/hwtracing/coresight/coresight-tmc.h
355
csdev_access_relaxed_write_pair(&drvdata->csdev->access, val, lo_off, hi_off); \
drivers/hwtracing/coresight/coresight-tmc.h
363
static inline void tmc_etr_init_caps(struct tmc_drvdata *drvdata, u32 dev_caps)
drivers/hwtracing/coresight/coresight-tmc.h
365
WARN_ON(drvdata->etr_caps);
drivers/hwtracing/coresight/coresight-tmc.h
366
drvdata->etr_caps = dev_caps;
drivers/hwtracing/coresight/coresight-tmc.h
369
static inline void tmc_etr_set_cap(struct tmc_drvdata *drvdata, u32 cap)
drivers/hwtracing/coresight/coresight-tmc.h
371
drvdata->etr_caps |= cap;
drivers/hwtracing/coresight/coresight-tmc.h
374
static inline bool tmc_etr_has_cap(struct tmc_drvdata *drvdata, u32 cap)
drivers/hwtracing/coresight/coresight-tmc.h
376
return !!(drvdata->etr_caps & cap);
drivers/hwtracing/coresight/coresight-tmc.h
397
static inline bool tmc_has_reserved_buffer(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc.h
399
if (drvdata->resrv_buf.vaddr &&
drivers/hwtracing/coresight/coresight-tmc.h
400
drvdata->resrv_buf.size)
drivers/hwtracing/coresight/coresight-tmc.h
405
static inline bool tmc_has_crash_mdata_buffer(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc.h
407
if (drvdata->crash_mdata.vaddr &&
drivers/hwtracing/coresight/coresight-tmc.h
408
drvdata->crash_mdata.size)
drivers/hwtracing/coresight/coresight-tmc.h
413
static inline void tmc_crashdata_set_invalid(struct tmc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tmc.h
417
mdata = (struct tmc_crash_metadata *)drvdata->crash_mdata.vaddr;
drivers/hwtracing/coresight/coresight-tmc.h
419
if (tmc_has_crash_mdata_buffer(drvdata))
drivers/hwtracing/coresight/coresight-tmc.h
432
static inline uint32_t find_crash_tracedata_crc(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc.h
439
return crc32_le(0, (void *)drvdata->resrv_buf.vaddr, crc_size);
drivers/hwtracing/coresight/coresight-tmc.h
442
struct coresight_device *tmc_etr_get_catu_device(struct tmc_drvdata *drvdata);
drivers/hwtracing/coresight/coresight-tnoc.c
102
struct trace_noc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tnoc.c
104
scoped_guard(spinlock, &drvdata->spinlock) {
drivers/hwtracing/coresight/coresight-tnoc.c
106
writel(0x0, drvdata->base + TRACE_NOC_CTRL);
drivers/hwtracing/coresight/coresight-tnoc.c
108
dev_dbg(drvdata->dev, "Trace NOC is disabled\n");
drivers/hwtracing/coresight/coresight-tnoc.c
114
struct trace_noc_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tnoc.c
116
drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tnoc.c
118
return drvdata->atid;
drivers/hwtracing/coresight/coresight-tnoc.c
131
static int trace_noc_init_default_data(struct trace_noc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tnoc.c
135
if (!dev_is_amba(drvdata->dev)) {
drivers/hwtracing/coresight/coresight-tnoc.c
136
drvdata->atid = -EOPNOTSUPP;
drivers/hwtracing/coresight/coresight-tnoc.c
144
drvdata->atid = atid;
drivers/hwtracing/coresight/coresight-tnoc.c
153
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tnoc.c
155
val = drvdata->atid;
drivers/hwtracing/coresight/coresight-tnoc.c
169
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tnoc.c
171
if (attr == &dev_attr_traceid.attr && drvdata->atid < 0)
drivers/hwtracing/coresight/coresight-tnoc.c
190
struct trace_noc_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tnoc.c
203
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tnoc.c
204
if (!drvdata)
drivers/hwtracing/coresight/coresight-tnoc.c
207
drvdata->dev = dev;
drivers/hwtracing/coresight/coresight-tnoc.c
208
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-tnoc.c
210
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, NULL);
drivers/hwtracing/coresight/coresight-tnoc.c
214
drvdata->base = devm_ioremap_resource(dev, res);
drivers/hwtracing/coresight/coresight-tnoc.c
215
if (IS_ERR(drvdata->base))
drivers/hwtracing/coresight/coresight-tnoc.c
216
return PTR_ERR(drvdata->base);
drivers/hwtracing/coresight/coresight-tnoc.c
218
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tnoc.c
220
ret = trace_noc_init_default_data(drvdata);
drivers/hwtracing/coresight/coresight-tnoc.c
229
desc.access = CSDEV_ACCESS_IOMEM(drvdata->base);
drivers/hwtracing/coresight/coresight-tnoc.c
231
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-tnoc.c
232
if (IS_ERR(drvdata->csdev)) {
drivers/hwtracing/coresight/coresight-tnoc.c
233
if (drvdata->atid > 0)
drivers/hwtracing/coresight/coresight-tnoc.c
234
coresight_trace_id_put_system_id(drvdata->atid);
drivers/hwtracing/coresight/coresight-tnoc.c
235
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tnoc.c
254
struct trace_noc_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-tnoc.c
256
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tnoc.c
257
coresight_trace_id_put_system_id(drvdata->atid);
drivers/hwtracing/coresight/coresight-tnoc.c
302
struct trace_noc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/coresight-tnoc.c
304
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tnoc.c
311
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tnoc.c
313
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tnoc.c
320
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tnoc.c
322
return clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tnoc.c
52
static void trace_noc_enable_hw(struct trace_noc_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tnoc.c
57
if (drvdata->atid == -EOPNOTSUPP) {
drivers/hwtracing/coresight/coresight-tnoc.c
58
writel(TRACE_NOC_CTRL_PORTEN, drvdata->base + TRACE_NOC_CTRL);
drivers/hwtracing/coresight/coresight-tnoc.c
63
writel_relaxed(drvdata->atid, drvdata->base + TRACE_NOC_XLD);
drivers/hwtracing/coresight/coresight-tnoc.c
66
writel_relaxed(TRACE_NOC_SYNC_INTERVAL, drvdata->base + TRACE_NOC_SYNCR);
drivers/hwtracing/coresight/coresight-tnoc.c
74
val = readl_relaxed(drvdata->base + TRACE_NOC_CTRL);
drivers/hwtracing/coresight/coresight-tnoc.c
80
writel(val, drvdata->base + TRACE_NOC_CTRL);
drivers/hwtracing/coresight/coresight-tnoc.c
86
struct trace_noc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tnoc.c
88
scoped_guard(spinlock, &drvdata->spinlock) {
drivers/hwtracing/coresight/coresight-tnoc.c
90
trace_noc_enable_hw(drvdata);
drivers/hwtracing/coresight/coresight-tnoc.c
95
dev_dbg(drvdata->dev, "Trace NOC is enabled\n");
drivers/hwtracing/coresight/coresight-tpda.c
121
if (drvdata->dsb_esize || drvdata->cmb_esize)
drivers/hwtracing/coresight/coresight-tpda.c
123
rc = tpdm_read_element_size(drvdata, in);
drivers/hwtracing/coresight/coresight-tpda.c
128
rc = tpda_get_element_size(drvdata, in, -1);
drivers/hwtracing/coresight/coresight-tpda.c
138
static void tpda_enable_pre_port(struct tpda_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpda.c
142
val |= FIELD_PREP(TPDA_CR_ATID, drvdata->atid);
drivers/hwtracing/coresight/coresight-tpda.c
143
if (drvdata->trig_async)
drivers/hwtracing/coresight/coresight-tpda.c
146
if (drvdata->trig_flag_ts)
drivers/hwtracing/coresight/coresight-tpda.c
149
if (drvdata->trig_freq)
drivers/hwtracing/coresight/coresight-tpda.c
152
if (drvdata->freq_ts)
drivers/hwtracing/coresight/coresight-tpda.c
155
if (drvdata->cmbchan_mode)
drivers/hwtracing/coresight/coresight-tpda.c
158
writel_relaxed(val, drvdata->base + TPDA_CR);
drivers/hwtracing/coresight/coresight-tpda.c
164
if (drvdata->trig_flag_ts)
drivers/hwtracing/coresight/coresight-tpda.c
165
writel_relaxed(0x0, drvdata->base + TPDA_FPID_CR);
drivers/hwtracing/coresight/coresight-tpda.c
169
if (drvdata->syncr_mode)
drivers/hwtracing/coresight/coresight-tpda.c
172
if (drvdata->syncr_count > 0 &&
drivers/hwtracing/coresight/coresight-tpda.c
173
drvdata->syncr_count < TPDA_SYNCR_COUNT_MASK)
drivers/hwtracing/coresight/coresight-tpda.c
174
val |= drvdata->syncr_count;
drivers/hwtracing/coresight/coresight-tpda.c
179
writel_relaxed(val, drvdata->base + TPDA_SYNCR);
drivers/hwtracing/coresight/coresight-tpda.c
182
static int tpda_enable_port(struct tpda_drvdata *drvdata, int port)
drivers/hwtracing/coresight/coresight-tpda.c
187
val = readl_relaxed(drvdata->base + TPDA_Pn_CR(port));
drivers/hwtracing/coresight/coresight-tpda.c
188
tpda_clear_element_size(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpda.c
189
rc = tpda_get_element_size(drvdata, drvdata->csdev, port);
drivers/hwtracing/coresight/coresight-tpda.c
190
if (!rc && (drvdata->dsb_esize || drvdata->cmb_esize)) {
drivers/hwtracing/coresight/coresight-tpda.c
191
tpda_set_element_size(drvdata, &val);
drivers/hwtracing/coresight/coresight-tpda.c
194
writel_relaxed(val, drvdata->base + TPDA_Pn_CR(port));
drivers/hwtracing/coresight/coresight-tpda.c
196
dev_warn_once(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tpda.c
199
dev_warn_once(&drvdata->csdev->dev,
drivers/hwtracing/coresight/coresight-tpda.c
205
static int __tpda_enable(struct tpda_drvdata *drvdata, int port)
drivers/hwtracing/coresight/coresight-tpda.c
209
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
215
lockdep_assert_held(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
216
if (!drvdata->csdev->refcnt)
drivers/hwtracing/coresight/coresight-tpda.c
217
tpda_enable_pre_port(drvdata);
drivers/hwtracing/coresight/coresight-tpda.c
219
ret = tpda_enable_port(drvdata, port);
drivers/hwtracing/coresight/coresight-tpda.c
220
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
229
struct tpda_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpda.c
232
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
234
ret = __tpda_enable(drvdata, in->dest_port);
drivers/hwtracing/coresight/coresight-tpda.c
238
dev_dbg(drvdata->dev, "TPDA inport %d enabled.\n", in->dest_port);
drivers/hwtracing/coresight/coresight-tpda.c
242
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
246
static void __tpda_disable(struct tpda_drvdata *drvdata, int port)
drivers/hwtracing/coresight/coresight-tpda.c
250
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
252
val = readl_relaxed(drvdata->base + TPDA_Pn_CR(port));
drivers/hwtracing/coresight/coresight-tpda.c
254
writel_relaxed(val, drvdata->base + TPDA_Pn_CR(port));
drivers/hwtracing/coresight/coresight-tpda.c
256
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
263
struct tpda_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpda.c
265
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
267
__tpda_disable(drvdata, in->dest_port);
drivers/hwtracing/coresight/coresight-tpda.c
27
struct tpda_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpda.c
270
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
272
dev_dbg(drvdata->dev, "TPDA inport %d disabled\n", in->dest_port);
drivers/hwtracing/coresight/coresight-tpda.c
278
struct tpda_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tpda.c
280
drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpda.c
282
return drvdata->atid;
drivers/hwtracing/coresight/coresight-tpda.c
29
drvdata->dsb_esize = 0;
drivers/hwtracing/coresight/coresight-tpda.c
30
drvdata->cmb_esize = 0;
drivers/hwtracing/coresight/coresight-tpda.c
302
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
304
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
307
return sysfs_emit(buf, "%u\n", (unsigned int)drvdata->freq_ts);
drivers/hwtracing/coresight/coresight-tpda.c
309
return sysfs_emit(buf, "%u\n", (unsigned int)drvdata->trig_freq);
drivers/hwtracing/coresight/coresight-tpda.c
311
return sysfs_emit(buf, "%u\n", (unsigned int)drvdata->trig_flag_ts);
drivers/hwtracing/coresight/coresight-tpda.c
313
return sysfs_emit(buf, "%u\n", (unsigned int)drvdata->trig_async);
drivers/hwtracing/coresight/coresight-tpda.c
315
return sysfs_emit(buf, "%u\n", (unsigned int)drvdata->cmbchan_mode);
drivers/hwtracing/coresight/coresight-tpda.c
328
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
33
static void tpda_set_element_size(struct tpda_drvdata *drvdata, u32 *val)
drivers/hwtracing/coresight/coresight-tpda.c
334
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
337
drvdata->freq_ts = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
340
drvdata->trig_freq = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
343
drvdata->trig_flag_ts = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
346
drvdata->trig_async = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
349
drvdata->cmbchan_mode = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
362
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
365
if (!drvdata->csdev->refcnt)
drivers/hwtracing/coresight/coresight-tpda.c
368
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
369
val = readl_relaxed(drvdata->base + TPDA_CR);
drivers/hwtracing/coresight/coresight-tpda.c
38
if (drvdata->dsb_esize == 64)
drivers/hwtracing/coresight/coresight-tpda.c
381
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
387
if (!drvdata->csdev->refcnt || !val)
drivers/hwtracing/coresight/coresight-tpda.c
390
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
391
val = readl_relaxed(drvdata->base + TPDA_CR);
drivers/hwtracing/coresight/coresight-tpda.c
394
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
395
writel_relaxed(val, drvdata->base + TPDA_CR);
drivers/hwtracing/coresight/coresight-tpda.c
396
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
40
else if (drvdata->dsb_esize == 32)
drivers/hwtracing/coresight/coresight-tpda.c
406
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
409
if (!drvdata->csdev->refcnt)
drivers/hwtracing/coresight/coresight-tpda.c
412
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
413
syncr_val = readl_relaxed(drvdata->base + TPDA_SYNCR);
drivers/hwtracing/coresight/coresight-tpda.c
424
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
43
if (drvdata->cmb_esize == 64)
drivers/hwtracing/coresight/coresight-tpda.c
430
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
432
drvdata->syncr_mode = !!val;
drivers/hwtracing/coresight/coresight-tpda.c
442
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
445
if (!drvdata->csdev->refcnt)
drivers/hwtracing/coresight/coresight-tpda.c
448
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
449
val = readl_relaxed(drvdata->base + TPDA_SYNCR);
drivers/hwtracing/coresight/coresight-tpda.c
45
else if (drvdata->cmb_esize == 32)
drivers/hwtracing/coresight/coresight-tpda.c
460
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
469
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
47
else if (drvdata->cmb_esize == 8)
drivers/hwtracing/coresight/coresight-tpda.c
470
drvdata->syncr_count = val;
drivers/hwtracing/coresight/coresight-tpda.c
480
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
483
if (!drvdata->csdev->refcnt)
drivers/hwtracing/coresight/coresight-tpda.c
486
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
487
val = readl_relaxed(drvdata->base + TPDA_FLUSH_CR);
drivers/hwtracing/coresight/coresight-tpda.c
497
struct tpda_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpda.c
503
if (!drvdata->csdev->refcnt || !val)
drivers/hwtracing/coresight/coresight-tpda.c
506
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
507
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
508
writel_relaxed(val, drvdata->base + TPDA_FLUSH_CR);
drivers/hwtracing/coresight/coresight-tpda.c
509
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpda.c
537
static int tpda_init_default_data(struct tpda_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpda.c
551
drvdata->atid = atid;
drivers/hwtracing/coresight/coresight-tpda.c
552
drvdata->freq_ts = true;
drivers/hwtracing/coresight/coresight-tpda.c
561
struct tpda_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tpda.c
570
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpda.c
571
if (!drvdata)
drivers/hwtracing/coresight/coresight-tpda.c
574
drvdata->dev = &adev->dev;
drivers/hwtracing/coresight/coresight-tpda.c
575
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-tpda.c
58
static int tpdm_read_element_size(struct tpda_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tpda.c
580
drvdata->base = base;
drivers/hwtracing/coresight/coresight-tpda.c
582
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpda.c
584
ret = tpda_init_default_data(drvdata);
drivers/hwtracing/coresight/coresight-tpda.c
598
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-tpda.c
599
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-tpda.c
600
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpda.c
604
dev_dbg(drvdata->dev, "TPDA initialized\n");
drivers/hwtracing/coresight/coresight-tpda.c
610
struct tpda_drvdata *drvdata = dev_get_drvdata(&adev->dev);
drivers/hwtracing/coresight/coresight-tpda.c
612
coresight_trace_id_put_system_id(drvdata->atid);
drivers/hwtracing/coresight/coresight-tpda.c
613
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpda.c
66
"qcom,dsb-element-bits", &drvdata->dsb_esize);
drivers/hwtracing/coresight/coresight-tpda.c
73
"qcom,cmb-element-bits", &drvdata->cmb_esize);
drivers/hwtracing/coresight/coresight-tpda.c
92
static int tpda_get_element_size(struct tpda_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tpdm.c
1007
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1010
(unsigned int)drvdata->cmb->ts_all);
drivers/hwtracing/coresight/coresight-tpdm.c
1018
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1024
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
1026
drvdata->cmb->ts_all = true;
drivers/hwtracing/coresight/coresight-tpdm.c
1028
drvdata->cmb->ts_all = false;
drivers/hwtracing/coresight/coresight-tpdm.c
103
drvdata->cmb->patt_mask[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
1038
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1041
(unsigned int)drvdata->cmb->trig_ts);
drivers/hwtracing/coresight/coresight-tpdm.c
1049
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
105
if (tpdm_attr->idx >= drvdata->cmb_msr_num)
drivers/hwtracing/coresight/coresight-tpdm.c
1055
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
1057
drvdata->cmb->trig_ts = true;
drivers/hwtracing/coresight/coresight-tpdm.c
1059
drvdata->cmb->trig_ts = false;
drivers/hwtracing/coresight/coresight-tpdm.c
1069
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1072
(unsigned int)drvdata->cmb->mcmb.trig_lane);
drivers/hwtracing/coresight/coresight-tpdm.c
108
drvdata->cmb->msr[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
1080
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1086
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
1087
drvdata->cmb->mcmb.trig_lane = val;
drivers/hwtracing/coresight/coresight-tpdm.c
1097
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1100
(unsigned int)drvdata->cmb->mcmb.lane_select);
drivers/hwtracing/coresight/coresight-tpdm.c
1108
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
1114
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
1115
drvdata->cmb->mcmb.lane_select = val & TPDM_MCMB_E_LN_MASK;
drivers/hwtracing/coresight/coresight-tpdm.c
122
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
129
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
133
drvdata->dsb->trig_patt[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
1379
struct tpdm_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tpdm.c
1389
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpdm.c
139
drvdata->dsb->trig_patt_mask[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
1390
if (!drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
1392
drvdata->dev = dev;
drivers/hwtracing/coresight/coresight-tpdm.c
1393
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
1400
drvdata->base = base;
drivers/hwtracing/coresight/coresight-tpdm.c
1401
ret = tpdm_datasets_setup(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
1405
if (tpdm_has_dsb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
1406
of_property_read_u32(drvdata->dev->of_node,
drivers/hwtracing/coresight/coresight-tpdm.c
1407
"qcom,dsb-msrs-num", &drvdata->dsb_msr_num);
drivers/hwtracing/coresight/coresight-tpdm.c
1409
if (tpdm_has_cmb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
1410
of_property_read_u32(drvdata->dev->of_node,
drivers/hwtracing/coresight/coresight-tpdm.c
1411
"qcom,cmb-msrs-num", &drvdata->cmb_msr_num);
drivers/hwtracing/coresight/coresight-tpdm.c
1413
ret = static_tpdm_datasets_setup(drvdata, dev);
drivers/hwtracing/coresight/coresight-tpdm.c
1430
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-tpdm.c
1431
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-tpdm.c
1432
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpdm.c
1434
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
1441
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tpdm.c
1443
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpdm.c
145
drvdata->dsb->patt_val[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
1508
struct tpdm_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-tpdm.c
151
drvdata->dsb->patt_mask[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
1510
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
156
if (tpdm_attr->idx < drvdata->dsb_msr_num) {
drivers/hwtracing/coresight/coresight-tpdm.c
157
drvdata->dsb->msr[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
163
drvdata->cmb->trig_patt[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
169
drvdata->cmb->trig_patt_mask[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
175
drvdata->cmb->patt_val[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
181
drvdata->cmb->patt_mask[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
186
if (tpdm_attr->idx < drvdata->cmb_msr_num) {
drivers/hwtracing/coresight/coresight-tpdm.c
187
drvdata->cmb->msr[tpdm_attr->idx] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
202
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
204
if (drvdata && tpdm_has_dsb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
214
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
216
if (drvdata && drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
226
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
232
if (tpdm_attr->idx < drvdata->dsb_msr_num)
drivers/hwtracing/coresight/coresight-tpdm.c
24
static bool tpdm_has_dsb_dataset(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
242
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
249
if (tpdm_attr->idx < drvdata->cmb_msr_num)
drivers/hwtracing/coresight/coresight-tpdm.c
259
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
26
return (drvdata->datasets & TPDM_PIDR0_DS_DSB);
drivers/hwtracing/coresight/coresight-tpdm.c
261
if (drvdata && tpdm_has_mcmb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
267
static void tpdm_reset_datasets(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
269
if (tpdm_has_dsb_dataset(drvdata)) {
drivers/hwtracing/coresight/coresight-tpdm.c
270
memset(drvdata->dsb, 0, sizeof(struct dsb_dataset));
drivers/hwtracing/coresight/coresight-tpdm.c
272
drvdata->dsb->trig_ts = true;
drivers/hwtracing/coresight/coresight-tpdm.c
273
drvdata->dsb->trig_type = false;
drivers/hwtracing/coresight/coresight-tpdm.c
276
if (drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
277
memset(drvdata->cmb, 0, sizeof(struct cmb_dataset));
drivers/hwtracing/coresight/coresight-tpdm.c
280
static void set_dsb_mode(struct tpdm_drvdata *drvdata, u32 *val)
drivers/hwtracing/coresight/coresight-tpdm.c
285
mode = TPDM_DSB_MODE_TEST(drvdata->dsb->mode);
drivers/hwtracing/coresight/coresight-tpdm.c
29
static bool tpdm_has_cmb_dataset(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
290
mode = TPDM_DSB_MODE_HPBYTESEL(drvdata->dsb->mode);
drivers/hwtracing/coresight/coresight-tpdm.c
295
if (drvdata->dsb->mode & TPDM_DSB_MODE_PERF)
drivers/hwtracing/coresight/coresight-tpdm.c
301
static void set_dsb_tier(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
305
val = readl_relaxed(drvdata->base + TPDM_DSB_TIER);
drivers/hwtracing/coresight/coresight-tpdm.c
31
return (drvdata->datasets & TPDM_PIDR0_DS_CMB);
drivers/hwtracing/coresight/coresight-tpdm.c
312
if (drvdata->dsb->patt_ts) {
drivers/hwtracing/coresight/coresight-tpdm.c
314
if (drvdata->dsb->patt_type)
drivers/hwtracing/coresight/coresight-tpdm.c
323
if (drvdata->dsb->trig_ts)
drivers/hwtracing/coresight/coresight-tpdm.c
328
writel_relaxed(val, drvdata->base + TPDM_DSB_TIER);
drivers/hwtracing/coresight/coresight-tpdm.c
331
static void set_dsb_msr(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
335
for (i = 0; i < drvdata->dsb_msr_num; i++)
drivers/hwtracing/coresight/coresight-tpdm.c
336
writel_relaxed(drvdata->dsb->msr[i],
drivers/hwtracing/coresight/coresight-tpdm.c
337
drvdata->base + TPDM_DSB_MSR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
34
static bool tpdm_has_mcmb_dataset(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
340
static void tpdm_enable_dsb(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
344
if (!tpdm_has_dsb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
348
writel_relaxed(drvdata->dsb->edge_ctrl[i],
drivers/hwtracing/coresight/coresight-tpdm.c
349
drvdata->base + TPDM_DSB_EDCR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
351
writel_relaxed(drvdata->dsb->edge_ctrl_mask[i],
drivers/hwtracing/coresight/coresight-tpdm.c
352
drvdata->base + TPDM_DSB_EDCMR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
354
writel_relaxed(drvdata->dsb->patt_val[i],
drivers/hwtracing/coresight/coresight-tpdm.c
355
drvdata->base + TPDM_DSB_TPR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
356
writel_relaxed(drvdata->dsb->patt_mask[i],
drivers/hwtracing/coresight/coresight-tpdm.c
357
drvdata->base + TPDM_DSB_TPMR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
358
writel_relaxed(drvdata->dsb->trig_patt[i],
drivers/hwtracing/coresight/coresight-tpdm.c
359
drvdata->base + TPDM_DSB_XPR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
36
return (drvdata->datasets & TPDM_PIDR0_DS_MCMB);
drivers/hwtracing/coresight/coresight-tpdm.c
360
writel_relaxed(drvdata->dsb->trig_patt_mask[i],
drivers/hwtracing/coresight/coresight-tpdm.c
361
drvdata->base + TPDM_DSB_XPMR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
364
set_dsb_tier(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
365
set_dsb_msr(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
367
val = readl_relaxed(drvdata->base + TPDM_DSB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
369
set_dsb_mode(drvdata, &val);
drivers/hwtracing/coresight/coresight-tpdm.c
371
if (drvdata->dsb->trig_type)
drivers/hwtracing/coresight/coresight-tpdm.c
377
writel_relaxed(val, drvdata->base + TPDM_DSB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
380
static void set_cmb_tier(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
384
val = readl_relaxed(drvdata->base + TPDM_CMB_TIER);
drivers/hwtracing/coresight/coresight-tpdm.c
391
if (drvdata->cmb->patt_ts)
drivers/hwtracing/coresight/coresight-tpdm.c
395
if (drvdata->cmb->trig_ts)
drivers/hwtracing/coresight/coresight-tpdm.c
399
if (drvdata->cmb->ts_all)
drivers/hwtracing/coresight/coresight-tpdm.c
402
writel_relaxed(val, drvdata->base + TPDM_CMB_TIER);
drivers/hwtracing/coresight/coresight-tpdm.c
405
static void set_cmb_msr(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
409
for (i = 0; i < drvdata->cmb_msr_num; i++)
drivers/hwtracing/coresight/coresight-tpdm.c
410
writel_relaxed(drvdata->cmb->msr[i],
drivers/hwtracing/coresight/coresight-tpdm.c
411
drvdata->base + TPDM_CMB_MSR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
414
static void tpdm_enable_cmb(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
418
if (!drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
423
writel_relaxed(drvdata->cmb->patt_val[i],
drivers/hwtracing/coresight/coresight-tpdm.c
424
drvdata->base + TPDM_CMB_TPR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
425
writel_relaxed(drvdata->cmb->patt_mask[i],
drivers/hwtracing/coresight/coresight-tpdm.c
426
drvdata->base + TPDM_CMB_TPMR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
427
writel_relaxed(drvdata->cmb->trig_patt[i],
drivers/hwtracing/coresight/coresight-tpdm.c
428
drvdata->base + TPDM_CMB_XPR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
429
writel_relaxed(drvdata->cmb->trig_patt_mask[i],
drivers/hwtracing/coresight/coresight-tpdm.c
430
drvdata->base + TPDM_CMB_XPMR(i));
drivers/hwtracing/coresight/coresight-tpdm.c
433
set_cmb_tier(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
434
set_cmb_msr(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
436
val = readl_relaxed(drvdata->base + TPDM_CMB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
44
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
441
if (drvdata->cmb->trace_mode)
drivers/hwtracing/coresight/coresight-tpdm.c
446
if (tpdm_has_mcmb_dataset(drvdata)) {
drivers/hwtracing/coresight/coresight-tpdm.c
450
drvdata->cmb->mcmb.trig_lane);
drivers/hwtracing/coresight/coresight-tpdm.c
455
drvdata->cmb->mcmb.lane_select);
drivers/hwtracing/coresight/coresight-tpdm.c
460
writel_relaxed(val, drvdata->base + TPDM_CMB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
471
static void __tpdm_enable(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
473
if (coresight_is_static_tpdm(drvdata->csdev))
drivers/hwtracing/coresight/coresight-tpdm.c
476
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
478
tpdm_enable_dsb(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
479
tpdm_enable_cmb(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
481
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
488
struct tpdm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpdm.c
490
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
491
if (drvdata->enable) {
drivers/hwtracing/coresight/coresight-tpdm.c
492
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
497
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
501
__tpdm_enable(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
502
drvdata->enable = true;
drivers/hwtracing/coresight/coresight-tpdm.c
503
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
505
dev_dbg(drvdata->dev, "TPDM tracing enabled\n");
drivers/hwtracing/coresight/coresight-tpdm.c
509
static void tpdm_disable_dsb(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
513
if (!tpdm_has_dsb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
517
val = readl_relaxed(drvdata->base + TPDM_DSB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
519
writel_relaxed(val, drvdata->base + TPDM_DSB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
522
static void tpdm_disable_cmb(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
526
if (!drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
529
val = readl_relaxed(drvdata->base + TPDM_CMB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
53
drvdata->dsb->edge_ctrl[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
532
writel_relaxed(val, drvdata->base + TPDM_CMB_CR);
drivers/hwtracing/coresight/coresight-tpdm.c
536
static void __tpdm_disable(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
538
if (coresight_is_static_tpdm(drvdata->csdev))
drivers/hwtracing/coresight/coresight-tpdm.c
541
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
543
tpdm_disable_dsb(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
544
tpdm_disable_cmb(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
546
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
552
struct tpdm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpdm.c
554
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
555
if (!drvdata->enable) {
drivers/hwtracing/coresight/coresight-tpdm.c
556
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
560
__tpdm_disable(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
562
drvdata->enable = false;
drivers/hwtracing/coresight/coresight-tpdm.c
563
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
565
dev_dbg(drvdata->dev, "TPDM tracing disabled\n");
drivers/hwtracing/coresight/coresight-tpdm.c
577
static int tpdm_datasets_setup(struct tpdm_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-tpdm.c
58
drvdata->dsb->edge_ctrl_mask[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
582
pidr = readl_relaxed(drvdata->base + CORESIGHT_PERIPHIDR0);
drivers/hwtracing/coresight/coresight-tpdm.c
583
drvdata->datasets |= pidr & GENMASK(TPDM_DATASETS - 1, 0);
drivers/hwtracing/coresight/coresight-tpdm.c
585
if (tpdm_has_dsb_dataset(drvdata) && (!drvdata->dsb)) {
drivers/hwtracing/coresight/coresight-tpdm.c
586
drvdata->dsb = devm_kzalloc(drvdata->dev,
drivers/hwtracing/coresight/coresight-tpdm.c
587
sizeof(*drvdata->dsb), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpdm.c
588
if (!drvdata->dsb)
drivers/hwtracing/coresight/coresight-tpdm.c
591
if ((tpdm_has_cmb_dataset(drvdata) || tpdm_has_mcmb_dataset(drvdata))
drivers/hwtracing/coresight/coresight-tpdm.c
592
&& (!drvdata->cmb)) {
drivers/hwtracing/coresight/coresight-tpdm.c
593
drvdata->cmb = devm_kzalloc(drvdata->dev,
drivers/hwtracing/coresight/coresight-tpdm.c
594
sizeof(*drvdata->cmb), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpdm.c
595
if (!drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
599
tpdm_reset_datasets(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
604
static int static_tpdm_datasets_setup(struct tpdm_drvdata *drvdata, struct device *dev)
drivers/hwtracing/coresight/coresight-tpdm.c
608
(!drvdata->dsb)) {
drivers/hwtracing/coresight/coresight-tpdm.c
609
drvdata->dsb = devm_kzalloc(drvdata->dev,
drivers/hwtracing/coresight/coresight-tpdm.c
610
sizeof(*drvdata->dsb), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpdm.c
612
if (!drvdata->dsb)
drivers/hwtracing/coresight/coresight-tpdm.c
617
(!drvdata->cmb)) {
drivers/hwtracing/coresight/coresight-tpdm.c
618
drvdata->cmb = devm_kzalloc(drvdata->dev,
drivers/hwtracing/coresight/coresight-tpdm.c
619
sizeof(*drvdata->cmb), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpdm.c
621
if (!drvdata->cmb)
drivers/hwtracing/coresight/coresight-tpdm.c
63
drvdata->dsb->trig_patt[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
635
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
641
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
642
tpdm_reset_datasets(drvdata);
drivers/hwtracing/coresight/coresight-tpdm.c
643
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
660
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
669
if (!drvdata->enable)
drivers/hwtracing/coresight/coresight-tpdm.c
676
CS_UNLOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
677
writel_relaxed(0x1, drvdata->base + TPDM_ITCNTRL);
drivers/hwtracing/coresight/coresight-tpdm.c
68
drvdata->dsb->trig_patt_mask[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
680
writel_relaxed(val, drvdata->base + TPDM_ITATBCNTRL);
drivers/hwtracing/coresight/coresight-tpdm.c
682
writel_relaxed(0, drvdata->base + TPDM_ITCNTRL);
drivers/hwtracing/coresight/coresight-tpdm.c
683
CS_LOCK(drvdata->base);
drivers/hwtracing/coresight/coresight-tpdm.c
702
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
704
return sysfs_emit(buf, "%x\n", drvdata->dsb->mode);
drivers/hwtracing/coresight/coresight-tpdm.c
712
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
718
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
719
drvdata->dsb->mode = val & TPDM_DSB_MODE_MASK;
drivers/hwtracing/coresight/coresight-tpdm.c
720
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
729
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
73
drvdata->dsb->patt_val[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
732
(unsigned int)drvdata->dsb->edge_ctrl_idx);
drivers/hwtracing/coresight/coresight-tpdm.c
747
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
753
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
754
drvdata->dsb->edge_ctrl_idx = val;
drivers/hwtracing/coresight/coresight-tpdm.c
755
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
774
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
78
drvdata->dsb->patt_mask[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
781
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
786
reg = EDCR_TO_WORD_IDX(drvdata->dsb->edge_ctrl_idx);
drivers/hwtracing/coresight/coresight-tpdm.c
787
val = drvdata->dsb->edge_ctrl[reg];
drivers/hwtracing/coresight/coresight-tpdm.c
788
val &= ~EDCR_TO_WORD_MASK(drvdata->dsb->edge_ctrl_idx);
drivers/hwtracing/coresight/coresight-tpdm.c
789
val |= EDCR_TO_WORD_VAL(edge_ctrl, drvdata->dsb->edge_ctrl_idx);
drivers/hwtracing/coresight/coresight-tpdm.c
790
drvdata->dsb->edge_ctrl[reg] = val;
drivers/hwtracing/coresight/coresight-tpdm.c
791
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
80
if (tpdm_attr->idx >= drvdata->dsb_msr_num)
drivers/hwtracing/coresight/coresight-tpdm.c
802
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
810
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
815
reg = EDCMR_TO_WORD_IDX(drvdata->dsb->edge_ctrl_idx);
drivers/hwtracing/coresight/coresight-tpdm.c
816
set = drvdata->dsb->edge_ctrl_mask[reg];
drivers/hwtracing/coresight/coresight-tpdm.c
818
set |= BIT(EDCMR_TO_WORD_SHIFT(drvdata->dsb->edge_ctrl_idx));
drivers/hwtracing/coresight/coresight-tpdm.c
820
set &= ~BIT(EDCMR_TO_WORD_SHIFT(drvdata->dsb->edge_ctrl_idx));
drivers/hwtracing/coresight/coresight-tpdm.c
821
drvdata->dsb->edge_ctrl_mask[reg] = set;
drivers/hwtracing/coresight/coresight-tpdm.c
822
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
83
drvdata->dsb->msr[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
832
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
839
(unsigned int)drvdata->dsb->patt_ts);
drivers/hwtracing/coresight/coresight-tpdm.c
842
(unsigned int)drvdata->cmb->patt_ts);
drivers/hwtracing/coresight/coresight-tpdm.c
855
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
863
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
865
drvdata->dsb->patt_ts = !!val;
drivers/hwtracing/coresight/coresight-tpdm.c
867
drvdata->cmb->patt_ts = !!val;
drivers/hwtracing/coresight/coresight-tpdm.c
878
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
88
drvdata->cmb->trig_patt[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
881
(unsigned int)drvdata->dsb->patt_type);
drivers/hwtracing/coresight/coresight-tpdm.c
891
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
897
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
898
drvdata->dsb->patt_type = val;
drivers/hwtracing/coresight/coresight-tpdm.c
899
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
907
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
910
(unsigned int)drvdata->dsb->trig_type);
drivers/hwtracing/coresight/coresight-tpdm.c
923
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
929
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
93
drvdata->cmb->trig_patt_mask[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
931
drvdata->dsb->trig_type = true;
drivers/hwtracing/coresight/coresight-tpdm.c
933
drvdata->dsb->trig_type = false;
drivers/hwtracing/coresight/coresight-tpdm.c
934
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
943
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
946
(unsigned int)drvdata->dsb->trig_ts);
drivers/hwtracing/coresight/coresight-tpdm.c
959
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
965
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
967
drvdata->dsb->trig_ts = true;
drivers/hwtracing/coresight/coresight-tpdm.c
969
drvdata->dsb->trig_ts = false;
drivers/hwtracing/coresight/coresight-tpdm.c
970
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
979
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
98
drvdata->cmb->patt_val[tpdm_attr->idx]);
drivers/hwtracing/coresight/coresight-tpdm.c
981
return sysfs_emit(buf, "%x\n", drvdata->cmb->trace_mode);
drivers/hwtracing/coresight/coresight-tpdm.c
990
struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/coresight-tpdm.c
996
spin_lock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpdm.c
997
drvdata->cmb->trace_mode = trace_mode;
drivers/hwtracing/coresight/coresight-tpdm.c
998
spin_unlock(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpiu.c
107
struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpiu.c
109
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpiu.c
133
struct tpiu_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-tpiu.c
141
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tpiu.c
142
if (!drvdata)
drivers/hwtracing/coresight/coresight-tpiu.c
145
spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-tpiu.c
147
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
drivers/hwtracing/coresight/coresight-tpiu.c
151
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-tpiu.c
158
drvdata->base = base;
drivers/hwtracing/coresight/coresight-tpiu.c
174
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/coresight-tpiu.c
176
if (!IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/coresight-tpiu.c
179
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpiu.c
194
struct tpiu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tpiu.c
196
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/coresight-tpiu.c
207
struct tpiu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tpiu.c
209
clk_disable_unprepare(drvdata->atclk);
drivers/hwtracing/coresight/coresight-tpiu.c
210
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tpiu.c
217
struct tpiu_drvdata *drvdata = dev_get_drvdata(dev);
drivers/hwtracing/coresight/coresight-tpiu.c
220
ret = clk_prepare_enable(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tpiu.c
224
ret = clk_prepare_enable(drvdata->atclk);
drivers/hwtracing/coresight/coresight-tpiu.c
226
clk_disable_unprepare(drvdata->pclk);
drivers/hwtracing/coresight/coresight-tpiu.c
285
struct tpiu_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
drivers/hwtracing/coresight/coresight-tpiu.c
287
if (WARN_ON(!drvdata))
drivers/hwtracing/coresight/coresight-tpiu.c
80
struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-tpiu.c
82
guard(spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/coresight-trbe.c
1007
*this_cpu_ptr(buf->cpudata->drvdata->handle) = handle;
drivers/hwtracing/coresight/coresight-trbe.c
1018
struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-trbe.c
1024
WARN_ON(cpudata->drvdata != drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1037
struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-trbe.c
1043
WARN_ON(cpudata->drvdata != drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1089
*this_cpu_ptr(buf->cpudata->drvdata->handle) = NULL;
drivers/hwtracing/coresight/coresight-trbe.c
1100
struct trbe_drvdata *drvdata = cpudata->drvdata;
drivers/hwtracing/coresight/coresight-trbe.c
1112
if (!cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1237
struct trbe_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-trbe.c
1238
struct trbe_cpudata *cpudata = this_cpu_ptr(drvdata->cpudata);
drivers/hwtracing/coresight/coresight-trbe.c
1241
enable_percpu_irq(drvdata->irq, IRQ_TYPE_NONE);
drivers/hwtracing/coresight/coresight-trbe.c
1246
struct trbe_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-trbe.c
1247
struct trbe_cpudata *cpudata = this_cpu_ptr(drvdata->cpudata);
drivers/hwtracing/coresight/coresight-trbe.c
1249
disable_percpu_irq(drvdata->irq);
drivers/hwtracing/coresight/coresight-trbe.c
1254
static void arm_trbe_register_coresight_cpu(struct trbe_drvdata *drvdata, int cpu)
drivers/hwtracing/coresight/coresight-trbe.c
1256
struct trbe_cpudata *cpudata = per_cpu_ptr(drvdata->cpudata, cpu);
drivers/hwtracing/coresight/coresight-trbe.c
1265
if (WARN_ON(!cpudata->drvdata))
drivers/hwtracing/coresight/coresight-trbe.c
1268
dev = &cpudata->drvdata->pdev->dev;
drivers/hwtracing/coresight/coresight-trbe.c
1300
cpumask_clear_cpu(cpu, &drvdata->supported_cpus);
drivers/hwtracing/coresight/coresight-trbe.c
1308
struct trbe_drvdata *drvdata = info;
drivers/hwtracing/coresight/coresight-trbe.c
1310
struct trbe_cpudata *cpudata = per_cpu_ptr(drvdata->cpudata, cpu);
drivers/hwtracing/coresight/coresight-trbe.c
136
struct trbe_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-trbe.c
1362
cpudata->drvdata = drvdata;
drivers/hwtracing/coresight/coresight-trbe.c
1365
cpumask_clear_cpu(cpu, &drvdata->supported_cpus);
drivers/hwtracing/coresight/coresight-trbe.c
1368
static void arm_trbe_remove_coresight_cpu(struct trbe_drvdata *drvdata, int cpu)
drivers/hwtracing/coresight/coresight-trbe.c
1378
static int arm_trbe_probe_coresight(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1382
drvdata->cpudata = alloc_percpu(typeof(*drvdata->cpudata));
drivers/hwtracing/coresight/coresight-trbe.c
1383
if (!drvdata->cpudata)
drivers/hwtracing/coresight/coresight-trbe.c
1386
for_each_cpu(cpu, &drvdata->supported_cpus) {
drivers/hwtracing/coresight/coresight-trbe.c
1388
if (smp_call_function_single(cpu, arm_trbe_probe_cpu, drvdata, 1))
drivers/hwtracing/coresight/coresight-trbe.c
1390
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1391
arm_trbe_register_coresight_cpu(drvdata, cpu);
drivers/hwtracing/coresight/coresight-trbe.c
1392
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1393
smp_call_function_single(cpu, arm_trbe_enable_cpu, drvdata, 1);
drivers/hwtracing/coresight/coresight-trbe.c
1398
static int arm_trbe_remove_coresight(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1402
for_each_cpu(cpu, &drvdata->supported_cpus) {
drivers/hwtracing/coresight/coresight-trbe.c
1403
smp_call_function_single(cpu, arm_trbe_disable_cpu, drvdata, 1);
drivers/hwtracing/coresight/coresight-trbe.c
1404
arm_trbe_remove_coresight_cpu(drvdata, cpu);
drivers/hwtracing/coresight/coresight-trbe.c
1406
free_percpu(drvdata->cpudata);
drivers/hwtracing/coresight/coresight-trbe.c
1410
static void arm_trbe_probe_hotplugged_cpu(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1413
arm_trbe_probe_cpu(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1419
struct trbe_drvdata *drvdata = hlist_entry_safe(node, struct trbe_drvdata, hotplug_node);
drivers/hwtracing/coresight/coresight-trbe.c
1421
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus)) {
drivers/hwtracing/coresight/coresight-trbe.c
1428
arm_trbe_probe_hotplugged_cpu(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1429
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1430
arm_trbe_register_coresight_cpu(drvdata, cpu);
drivers/hwtracing/coresight/coresight-trbe.c
1431
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1432
arm_trbe_enable_cpu(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1434
arm_trbe_enable_cpu(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1442
struct trbe_drvdata *drvdata = hlist_entry_safe(node, struct trbe_drvdata, hotplug_node);
drivers/hwtracing/coresight/coresight-trbe.c
1444
if (cpumask_test_cpu(cpu, &drvdata->supported_cpus))
drivers/hwtracing/coresight/coresight-trbe.c
1445
arm_trbe_disable_cpu(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1449
static int arm_trbe_probe_cpuhp(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1459
ret = cpuhp_state_add_instance(trbe_online, &drvdata->hotplug_node);
drivers/hwtracing/coresight/coresight-trbe.c
1464
drvdata->trbe_online = trbe_online;
drivers/hwtracing/coresight/coresight-trbe.c
1468
static void arm_trbe_remove_cpuhp(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1470
cpuhp_state_remove_instance(drvdata->trbe_online, &drvdata->hotplug_node);
drivers/hwtracing/coresight/coresight-trbe.c
1471
cpuhp_remove_multi_state(drvdata->trbe_online);
drivers/hwtracing/coresight/coresight-trbe.c
1475
struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1480
drvdata->irq = platform_get_irq_affinity(pdev, 0, &affinity);
drivers/hwtracing/coresight/coresight-trbe.c
1481
if (drvdata->irq < 0) {
drivers/hwtracing/coresight/coresight-trbe.c
1483
return drvdata->irq;
drivers/hwtracing/coresight/coresight-trbe.c
1486
if (!irq_is_percpu(drvdata->irq)) {
drivers/hwtracing/coresight/coresight-trbe.c
1491
cpumask_copy(&drvdata->supported_cpus, affinity);
drivers/hwtracing/coresight/coresight-trbe.c
1493
drvdata->handle = alloc_percpu(struct perf_output_handle *);
drivers/hwtracing/coresight/coresight-trbe.c
1494
if (!drvdata->handle)
drivers/hwtracing/coresight/coresight-trbe.c
1497
ret = request_percpu_irq_affinity(drvdata->irq, arm_trbe_irq_handler, DRVNAME,
drivers/hwtracing/coresight/coresight-trbe.c
1498
affinity, drvdata->handle);
drivers/hwtracing/coresight/coresight-trbe.c
1500
free_percpu(drvdata->handle);
drivers/hwtracing/coresight/coresight-trbe.c
1506
static void arm_trbe_remove_irq(struct trbe_drvdata *drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1508
free_percpu_irq(drvdata->irq, drvdata->handle);
drivers/hwtracing/coresight/coresight-trbe.c
1509
free_percpu(drvdata->handle);
drivers/hwtracing/coresight/coresight-trbe.c
1514
struct trbe_drvdata *drvdata;
drivers/hwtracing/coresight/coresight-trbe.c
1524
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/coresight-trbe.c
1525
if (!drvdata)
drivers/hwtracing/coresight/coresight-trbe.c
1528
dev_set_drvdata(dev, drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1529
drvdata->pdev = pdev;
drivers/hwtracing/coresight/coresight-trbe.c
1530
ret = arm_trbe_probe_irq(pdev, drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1534
ret = arm_trbe_probe_coresight(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1538
ret = arm_trbe_probe_cpuhp(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1544
arm_trbe_remove_coresight(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1546
arm_trbe_remove_irq(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1552
struct trbe_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/coresight-trbe.c
1554
arm_trbe_remove_cpuhp(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1555
arm_trbe_remove_coresight(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
1556
arm_trbe_remove_irq(drvdata);
drivers/hwtracing/coresight/coresight-trbe.c
301
*this_cpu_ptr(buf->cpudata->drvdata->handle) = NULL;
drivers/hwtracing/coresight/coresight-trbe.c
790
struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/coresight-trbe.c
800
WARN_ON(cpudata->drvdata != drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
101
guard(raw_spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
103
if (drvdata->reading)
drivers/hwtracing/coresight/ultrasoc-smb.c
106
if (drvdata->csdev->refcnt)
drivers/hwtracing/coresight/ultrasoc-smb.c
109
smb_update_data_size(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
110
drvdata->reading = true;
drivers/hwtracing/coresight/ultrasoc-smb.c
118
struct smb_drv_data *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/ultrasoc-smb.c
120
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
121
struct device *dev = &drvdata->csdev->dev;
drivers/hwtracing/coresight/ultrasoc-smb.c
142
smb_update_read_ptr(drvdata, to_copy);
drivers/hwtracing/coresight/ultrasoc-smb.c
144
smb_reset_buffer(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
152
struct smb_drv_data *drvdata = container_of(file->private_data,
drivers/hwtracing/coresight/ultrasoc-smb.c
155
guard(raw_spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
156
drvdata->reading = false;
drivers/hwtracing/coresight/ultrasoc-smb.c
171
struct smb_drv_data *drvdata = dev_get_drvdata(dev->parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
173
return sysfs_emit(buf, "0x%lx\n", drvdata->sdb.buf_size);
drivers/hwtracing/coresight/ultrasoc-smb.c
195
static void smb_enable_hw(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
197
writel(SMB_GLB_EN_HW_ENABLE, drvdata->base + SMB_GLB_EN_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
200
static void smb_disable_hw(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
202
writel(0x0, drvdata->base + SMB_GLB_EN_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
207
struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
212
smb_enable_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
219
struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
231
if (drvdata->pid != -1 && drvdata->pid != pid)
drivers/hwtracing/coresight/ultrasoc-smb.c
234
if (drvdata->pid == -1) {
drivers/hwtracing/coresight/ultrasoc-smb.c
235
smb_enable_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
236
drvdata->pid = pid;
drivers/hwtracing/coresight/ultrasoc-smb.c
24
static bool smb_buffer_not_empty(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
246
struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
249
guard(raw_spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
252
if (drvdata->reading)
drivers/hwtracing/coresight/ultrasoc-smb.c
26
u32 buf_status = readl(drvdata->base + SMB_LB_INT_STS_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
282
struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
284
guard(raw_spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
286
if (drvdata->reading)
drivers/hwtracing/coresight/ultrasoc-smb.c
296
smb_disable_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
299
drvdata->pid = -1;
drivers/hwtracing/coresight/ultrasoc-smb.c
31
static void smb_update_data_size(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
33
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
333
static void smb_sync_perf_buffer(struct smb_drv_data *drvdata,
drivers/hwtracing/coresight/ultrasoc-smb.c
337
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
36
buf_wrptr = readl(drvdata->base + SMB_LB_WR_ADDR_REG) -
drivers/hwtracing/coresight/ultrasoc-smb.c
363
smb_update_read_ptr(drvdata, to_copy);
drivers/hwtracing/coresight/ultrasoc-smb.c
366
smb_reset_buffer(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
373
struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent);
drivers/hwtracing/coresight/ultrasoc-smb.c
374
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
382
guard(raw_spinlock)(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
388
smb_disable_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
389
smb_update_data_size(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
397
smb_update_read_ptr(drvdata, sdb->data_size - handle->size);
drivers/hwtracing/coresight/ultrasoc-smb.c
40
if (buf_wrptr == sdb->buf_rdptr && smb_buffer_not_empty(drvdata)) {
drivers/hwtracing/coresight/ultrasoc-smb.c
402
smb_sync_perf_buffer(drvdata, buf, handle->head);
drivers/hwtracing/coresight/ultrasoc-smb.c
453
static void smb_init_hw(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
455
smb_disable_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
457
writel(SMB_LB_CFG_LO_DEFAULT, drvdata->base + SMB_LB_CFG_LO_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
458
writel(SMB_LB_CFG_HI_DEFAULT, drvdata->base + SMB_LB_CFG_HI_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
459
writel(SMB_GLB_CFG_DEFAULT, drvdata->base + SMB_GLB_CFG_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
460
writel(SMB_GLB_INT_CFG, drvdata->base + SMB_GLB_INT_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
461
writel(SMB_LB_INT_CTRL_CFG, drvdata->base + SMB_LB_INT_CTRL_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
465
struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
486
desc.access = CSDEV_ACCESS_IOMEM(drvdata->base);
drivers/hwtracing/coresight/ultrasoc-smb.c
488
drvdata->csdev = coresight_register(&desc);
drivers/hwtracing/coresight/ultrasoc-smb.c
489
if (IS_ERR(drvdata->csdev))
drivers/hwtracing/coresight/ultrasoc-smb.c
490
return PTR_ERR(drvdata->csdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
492
drvdata->miscdev.name = desc.name;
drivers/hwtracing/coresight/ultrasoc-smb.c
493
drvdata->miscdev.minor = MISC_DYNAMIC_MINOR;
drivers/hwtracing/coresight/ultrasoc-smb.c
494
drvdata->miscdev.fops = &smb_fops;
drivers/hwtracing/coresight/ultrasoc-smb.c
495
ret = misc_register(&drvdata->miscdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
497
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
504
static void smb_unregister_sink(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
506
misc_deregister(&drvdata->miscdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
507
coresight_unregister(drvdata->csdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
540
struct smb_drv_data *drvdata;
drivers/hwtracing/coresight/ultrasoc-smb.c
543
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/hwtracing/coresight/ultrasoc-smb.c
544
if (!drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
547
drvdata->base = devm_platform_ioremap_resource(pdev, SMB_REG_ADDR_RES);
drivers/hwtracing/coresight/ultrasoc-smb.c
548
if (IS_ERR(drvdata->base)) {
drivers/hwtracing/coresight/ultrasoc-smb.c
55
static void smb_update_read_ptr(struct smb_drv_data *drvdata, u32 nbytes)
drivers/hwtracing/coresight/ultrasoc-smb.c
550
return PTR_ERR(drvdata->base);
drivers/hwtracing/coresight/ultrasoc-smb.c
553
smb_init_hw(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
555
ret = smb_init_data_buffer(pdev, &drvdata->sdb);
drivers/hwtracing/coresight/ultrasoc-smb.c
565
smb_reset_buffer(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
566
platform_set_drvdata(pdev, drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
567
raw_spin_lock_init(&drvdata->spinlock);
drivers/hwtracing/coresight/ultrasoc-smb.c
568
drvdata->pid = -1;
drivers/hwtracing/coresight/ultrasoc-smb.c
57
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
570
ret = smb_register_sink(pdev, drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
582
struct smb_drv_data *drvdata = platform_get_drvdata(pdev);
drivers/hwtracing/coresight/ultrasoc-smb.c
584
smb_unregister_sink(drvdata);
drivers/hwtracing/coresight/ultrasoc-smb.c
62
drvdata->base + SMB_LB_RD_ADDR_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
67
static void smb_reset_buffer(struct smb_drv_data *drvdata)
drivers/hwtracing/coresight/ultrasoc-smb.c
69
struct smb_data_buffer *sdb = &drvdata->sdb;
drivers/hwtracing/coresight/ultrasoc-smb.c
77
writel(SMB_LB_PURGE_PURGED, drvdata->base + SMB_LB_PURGE_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
80
writel(SMB_LB_INT_STS_RESET, drvdata->base + SMB_LB_INT_STS_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
82
write_ptr = readl(drvdata->base + SMB_LB_WR_ADDR_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
92
writel(write_ptr, drvdata->base + SMB_LB_RD_ADDR_REG);
drivers/hwtracing/coresight/ultrasoc-smb.c
98
struct smb_drv_data *drvdata = container_of(file->private_data,
drivers/hwtracing/intel_th/core.c
629
thdev->drvdata = th->drvdata;
drivers/hwtracing/intel_th/core.c
888
intel_th_alloc(struct device *dev, const struct intel_th_drvdata *drvdata,
drivers/hwtracing/intel_th/core.c
912
th->drvdata = drvdata;
drivers/hwtracing/intel_th/intel_th.h
230
intel_th_alloc(struct device *dev, const struct intel_th_drvdata *drvdata,
drivers/hwtracing/intel_th/intel_th.h
278
const struct intel_th_drvdata *drvdata;
drivers/hwtracing/intel_th/intel_th.h
61
#define INTEL_TH_CAP(_th, _cap) ((_th)->drvdata ? (_th)->drvdata->_cap : 0)
drivers/hwtracing/intel_th/intel_th.h
77
const struct intel_th_drvdata *drvdata;
drivers/hwtracing/intel_th/pci.c
108
th = intel_th_alloc(&pdev->dev, drvdata, resource, r);
drivers/hwtracing/intel_th/pci.c
74
const struct intel_th_drvdata *drvdata = (void *)id->driver_data;
drivers/i2c/busses/i2c-gxp.c
100
drvdata->buf = drvdata->curr_msg->buf;
drivers/i2c/busses/i2c-gxp.c
101
drvdata->buf_remaining = drvdata->curr_msg->len;
drivers/i2c/busses/i2c-gxp.c
104
value = drvdata->curr_msg->addr << 9;
drivers/i2c/busses/i2c-gxp.c
107
value |= drvdata->curr_msg->flags & I2C_M_RD ? RW_CMD | START_CMD : START_CMD;
drivers/i2c/busses/i2c-gxp.c
109
drvdata->state = GXP_I2C_ADDR_PHASE;
drivers/i2c/busses/i2c-gxp.c
110
writew(value, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
117
struct gxp_i2c_drvdata *drvdata = i2c_get_adapdata(adapter);
drivers/i2c/busses/i2c-gxp.c
120
drvdata->msgs_remaining = num;
drivers/i2c/busses/i2c-gxp.c
121
drvdata->curr_msg = msgs;
drivers/i2c/busses/i2c-gxp.c
122
drvdata->msgs_num = num;
drivers/i2c/busses/i2c-gxp.c
123
reinit_completion(&drvdata->completion);
drivers/i2c/busses/i2c-gxp.c
125
gxp_i2c_start(drvdata);
drivers/i2c/busses/i2c-gxp.c
127
time_left = wait_for_completion_timeout(&drvdata->completion,
drivers/i2c/busses/i2c-gxp.c
129
ret = num - drvdata->msgs_remaining;
drivers/i2c/busses/i2c-gxp.c
133
if (drvdata->state == GXP_I2C_ADDR_NACK)
drivers/i2c/busses/i2c-gxp.c
136
if (drvdata->state == GXP_I2C_DATA_NACK)
drivers/i2c/busses/i2c-gxp.c
153
struct gxp_i2c_drvdata *drvdata = i2c_get_adapdata(slave->adapter);
drivers/i2c/busses/i2c-gxp.c
155
if (drvdata->slave)
drivers/i2c/busses/i2c-gxp.c
161
drvdata->slave = slave;
drivers/i2c/busses/i2c-gxp.c
163
writeb(slave->addr << 1, drvdata->base + GXP_I2COWNADR);
drivers/i2c/busses/i2c-gxp.c
165
SLAVE_EVT_STALL, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
172
struct gxp_i2c_drvdata *drvdata = i2c_get_adapdata(slave->adapter);
drivers/i2c/busses/i2c-gxp.c
174
WARN_ON(!drvdata->slave);
drivers/i2c/busses/i2c-gxp.c
176
writeb(0x00, drvdata->base + GXP_I2COWNADR);
drivers/i2c/busses/i2c-gxp.c
178
SLAVE_EVT_MASK, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
180
drvdata->slave = NULL;
drivers/i2c/busses/i2c-gxp.c
195
static void gxp_i2c_stop(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
198
writeb(MASTER_EVT_CLR | STOP_CMD, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
200
complete(&drvdata->completion);
drivers/i2c/busses/i2c-gxp.c
203
static void gxp_i2c_restart(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
207
drvdata->buf = drvdata->curr_msg->buf;
drivers/i2c/busses/i2c-gxp.c
208
drvdata->buf_remaining = drvdata->curr_msg->len;
drivers/i2c/busses/i2c-gxp.c
210
value = drvdata->curr_msg->addr << 9;
drivers/i2c/busses/i2c-gxp.c
212
if (drvdata->curr_msg->flags & I2C_M_RD) {
drivers/i2c/busses/i2c-gxp.c
220
drvdata->state = GXP_I2C_ADDR_PHASE;
drivers/i2c/busses/i2c-gxp.c
222
writew(value, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
225
static void gxp_i2c_chk_addr_ack(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
229
value = readb(drvdata->base + GXP_I2CSTAT);
drivers/i2c/busses/i2c-gxp.c
232
drvdata->state = GXP_I2C_ADDR_NACK;
drivers/i2c/busses/i2c-gxp.c
233
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
237
if (drvdata->curr_msg->flags & I2C_M_RD) {
drivers/i2c/busses/i2c-gxp.c
239
if (drvdata->buf_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
241
drvdata->msgs_remaining--;
drivers/i2c/busses/i2c-gxp.c
242
drvdata->state = GXP_I2C_COMP;
drivers/i2c/busses/i2c-gxp.c
243
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
246
drvdata->state = GXP_I2C_RDATA_PHASE;
drivers/i2c/busses/i2c-gxp.c
248
if (drvdata->buf_remaining == 1) {
drivers/i2c/busses/i2c-gxp.c
251
drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
255
RW_CMD, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
259
if (drvdata->buf_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
261
drvdata->msgs_remaining--;
drivers/i2c/busses/i2c-gxp.c
262
drvdata->state = GXP_I2C_COMP;
drivers/i2c/busses/i2c-gxp.c
263
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
266
value = *drvdata->buf;
drivers/i2c/busses/i2c-gxp.c
270
drvdata->buf++;
drivers/i2c/busses/i2c-gxp.c
271
drvdata->buf_remaining--;
drivers/i2c/busses/i2c-gxp.c
272
drvdata->state = GXP_I2C_WDATA_PHASE;
drivers/i2c/busses/i2c-gxp.c
273
writew(value, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
277
static void gxp_i2c_ack_data(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
282
value = readb(drvdata->base + GXP_I2CSNPDAT);
drivers/i2c/busses/i2c-gxp.c
283
*drvdata->buf = value;
drivers/i2c/busses/i2c-gxp.c
284
drvdata->buf++;
drivers/i2c/busses/i2c-gxp.c
285
drvdata->buf_remaining--;
drivers/i2c/busses/i2c-gxp.c
287
if (drvdata->buf_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
289
drvdata->msgs_remaining--;
drivers/i2c/busses/i2c-gxp.c
291
if (drvdata->msgs_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
293
drvdata->state = GXP_I2C_COMP;
drivers/i2c/busses/i2c-gxp.c
294
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
298
drvdata->curr_msg++;
drivers/i2c/busses/i2c-gxp.c
299
gxp_i2c_restart(drvdata);
drivers/i2c/busses/i2c-gxp.c
304
drvdata->state = GXP_I2C_RDATA_PHASE;
drivers/i2c/busses/i2c-gxp.c
305
if (drvdata->buf_remaining == 1) {
drivers/i2c/busses/i2c-gxp.c
308
drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
312
RW_CMD, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
316
static void gxp_i2c_chk_data_ack(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
320
value = readb(drvdata->base + GXP_I2CSTAT);
drivers/i2c/busses/i2c-gxp.c
323
drvdata->state = GXP_I2C_DATA_NACK;
drivers/i2c/busses/i2c-gxp.c
324
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
329
if (drvdata->buf_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
331
drvdata->msgs_remaining--;
drivers/i2c/busses/i2c-gxp.c
333
if (drvdata->msgs_remaining == 0) {
drivers/i2c/busses/i2c-gxp.c
335
drvdata->state = GXP_I2C_COMP;
drivers/i2c/busses/i2c-gxp.c
336
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
340
drvdata->curr_msg++;
drivers/i2c/busses/i2c-gxp.c
341
gxp_i2c_restart(drvdata);
drivers/i2c/busses/i2c-gxp.c
346
value = *drvdata->buf;
drivers/i2c/busses/i2c-gxp.c
351
drvdata->buf++;
drivers/i2c/busses/i2c-gxp.c
352
drvdata->buf_remaining--;
drivers/i2c/busses/i2c-gxp.c
353
drvdata->state = GXP_I2C_WDATA_PHASE;
drivers/i2c/busses/i2c-gxp.c
354
writew(value, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
357
static bool gxp_i2c_slave_irq_handler(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
363
value = readb(drvdata->base + GXP_I2CEVTERR);
drivers/i2c/busses/i2c-gxp.c
367
value = readb(drvdata->base + GXP_I2CSTAT);
drivers/i2c/busses/i2c-gxp.c
370
if (drvdata->stopped == 0)
drivers/i2c/busses/i2c-gxp.c
371
i2c_slave_event(drvdata->slave, I2C_SLAVE_STOP, &buf);
drivers/i2c/busses/i2c-gxp.c
373
SLAVE_ACK_ENAB | SLAVE_EVT_STALL, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
374
drvdata->stopped = 1;
drivers/i2c/busses/i2c-gxp.c
377
drvdata->stopped = 0;
drivers/i2c/busses/i2c-gxp.c
379
i2c_slave_event(drvdata->slave,
drivers/i2c/busses/i2c-gxp.c
383
writew(value, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
386
ret = i2c_slave_event(drvdata->slave,
drivers/i2c/busses/i2c-gxp.c
392
drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
396
SLAVE_EVT_STALL, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
401
value = readb(drvdata->base + GXP_I2CSTAT);
drivers/i2c/busses/i2c-gxp.c
406
i2c_slave_event(drvdata->slave,
drivers/i2c/busses/i2c-gxp.c
410
writew(value, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
415
drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
419
value = readb(drvdata->base + GXP_I2CSNPDAT);
drivers/i2c/busses/i2c-gxp.c
421
ret = i2c_slave_event(drvdata->slave,
drivers/i2c/busses/i2c-gxp.c
427
drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
431
SLAVE_EVT_STALL, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
443
struct gxp_i2c_drvdata *drvdata = (struct gxp_i2c_drvdata *)_drvdata;
drivers/i2c/busses/i2c-gxp.c
448
if (!(value & BIT(drvdata->engine)))
drivers/i2c/busses/i2c-gxp.c
451
value = readb(drvdata->base + GXP_I2CEVTERR);
drivers/i2c/busses/i2c-gxp.c
457
writeb(0x00, drvdata->base + GXP_I2CEVTERR);
drivers/i2c/busses/i2c-gxp.c
458
drvdata->state = GXP_I2C_ERROR;
drivers/i2c/busses/i2c-gxp.c
459
gxp_i2c_stop(drvdata);
drivers/i2c/busses/i2c-gxp.c
466
if (gxp_i2c_slave_irq_handler(drvdata))
drivers/i2c/busses/i2c-gxp.c
473
switch (drvdata->state) {
drivers/i2c/busses/i2c-gxp.c
475
gxp_i2c_chk_addr_ack(drvdata);
drivers/i2c/busses/i2c-gxp.c
479
gxp_i2c_ack_data(drvdata);
drivers/i2c/busses/i2c-gxp.c
483
gxp_i2c_chk_data_ack(drvdata);
drivers/i2c/busses/i2c-gxp.c
490
static void gxp_i2c_init(struct gxp_i2c_drvdata *drvdata)
drivers/i2c/busses/i2c-gxp.c
492
drvdata->state = GXP_I2C_IDLE;
drivers/i2c/busses/i2c-gxp.c
493
writeb(2000000 / drvdata->t.bus_freq_hz,
drivers/i2c/busses/i2c-gxp.c
494
drvdata->base + GXP_I2CFREQDIV);
drivers/i2c/busses/i2c-gxp.c
496
drvdata->base + GXP_I2CFLTFAIR);
drivers/i2c/busses/i2c-gxp.c
497
writeb(GXP_DATA_EDGE_RST_CTRL, drvdata->base + GXP_I2CTMOEDG);
drivers/i2c/busses/i2c-gxp.c
498
writeb(0x00, drvdata->base + GXP_I2CCYCTIM);
drivers/i2c/busses/i2c-gxp.c
499
writeb(0x00, drvdata->base + GXP_I2CSNPAA);
drivers/i2c/busses/i2c-gxp.c
500
writeb(0x00, drvdata->base + GXP_I2CADVFEAT);
drivers/i2c/busses/i2c-gxp.c
502
SLAVE_EVT_MASK, drvdata->base + GXP_I2CSCMD);
drivers/i2c/busses/i2c-gxp.c
503
writeb(MASTER_EVT_CLR, drvdata->base + GXP_I2CMCMD);
drivers/i2c/busses/i2c-gxp.c
504
writeb(0x00, drvdata->base + GXP_I2CEVTERR);
drivers/i2c/busses/i2c-gxp.c
505
writeb(0x00, drvdata->base + GXP_I2COWNADR);
drivers/i2c/busses/i2c-gxp.c
510
struct gxp_i2c_drvdata *drvdata;
drivers/i2c/busses/i2c-gxp.c
526
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata),
drivers/i2c/busses/i2c-gxp.c
528
if (!drvdata)
drivers/i2c/busses/i2c-gxp.c
531
platform_set_drvdata(pdev, drvdata);
drivers/i2c/busses/i2c-gxp.c
532
drvdata->dev = &pdev->dev;
drivers/i2c/busses/i2c-gxp.c
533
init_completion(&drvdata->completion);
drivers/i2c/busses/i2c-gxp.c
535
drvdata->base = devm_platform_ioremap_resource(pdev, 0);
drivers/i2c/busses/i2c-gxp.c
536
if (IS_ERR(drvdata->base))
drivers/i2c/busses/i2c-gxp.c
537
return PTR_ERR(drvdata->base);
drivers/i2c/busses/i2c-gxp.c
540
drvdata->engine = ((size_t)drvdata->base & 0xf00) >> 8;
drivers/i2c/busses/i2c-gxp.c
542
if (drvdata->engine >= GXP_MAX_I2C_ENGINE) {
drivers/i2c/busses/i2c-gxp.c
544
drvdata->engine);
drivers/i2c/busses/i2c-gxp.c
551
drvdata->irq = rc;
drivers/i2c/busses/i2c-gxp.c
552
rc = devm_request_irq(&pdev->dev, drvdata->irq, gxp_i2c_irq_handler,
drivers/i2c/busses/i2c-gxp.c
553
IRQF_SHARED, gxp_i2c_name[drvdata->engine], drvdata);
drivers/i2c/busses/i2c-gxp.c
557
i2c_parse_fw_timings(&pdev->dev, &drvdata->t, true);
drivers/i2c/busses/i2c-gxp.c
559
gxp_i2c_init(drvdata);
drivers/i2c/busses/i2c-gxp.c
562
regmap_update_bits(i2cg_map, GXP_I2CINTEN, BIT(drvdata->engine),
drivers/i2c/busses/i2c-gxp.c
563
BIT(drvdata->engine));
drivers/i2c/busses/i2c-gxp.c
565
adapter = &drvdata->adapter;
drivers/i2c/busses/i2c-gxp.c
566
i2c_set_adapdata(adapter, drvdata);
drivers/i2c/busses/i2c-gxp.c
583
struct gxp_i2c_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/i2c/busses/i2c-gxp.c
586
regmap_update_bits(i2cg_map, GXP_I2CINTEN, BIT(drvdata->engine), 0);
drivers/i2c/busses/i2c-gxp.c
587
i2c_del_adapter(&drvdata->adapter);
drivers/i2c/busses/i2c-gxp.c
96
static void gxp_i2c_start(struct gxp_i2c_drvdata *drvdata)
drivers/i3c/master/dw-i3c-master.c
1589
const struct dw_i3c_drvdata *drvdata;
drivers/i3c/master/dw-i3c-master.c
1651
drvdata = device_get_match_data(&pdev->dev);
drivers/i3c/master/dw-i3c-master.c
1652
if (drvdata)
drivers/i3c/master/dw-i3c-master.c
1653
quirks = drvdata->flags;
drivers/i3c/master/svc-i3c-master.c
1991
master->drvdata = of_device_get_match_data(dev);
drivers/i3c/master/svc-i3c-master.c
1992
if (!master->drvdata)
drivers/i3c/master/svc-i3c-master.c
257
const struct svc_i3c_drvdata *drvdata;
drivers/i3c/master/svc-i3c-master.c
276
return (master->drvdata->quirks & quirk);
drivers/i3c/master/svc-i3c-master.c
281
return ((master->drvdata->quirks & SVC_I3C_QUIRK_DAA_CORRUPT) &&
drivers/iio/addac/stx104.c
499
.drvdata = dio_map,
drivers/input/rmi4/rmi_bus.c
178
struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev);
drivers/input/rmi4/rmi_bus.c
184
fn->irq[i] = irq_create_mapping(drvdata->irqdomain,
drivers/input/rmi4/rmi_driver.c
170
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_driver.c
174
if (!drvdata->enabled)
drivers/input/rmi4/rmi_driver.c
185
kfifo_put(&drvdata->attn_fifo, attn_data);
drivers/input/rmi4/rmi_driver.c
192
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_driver.c
196
count = kfifo_get(&drvdata->attn_fifo, &attn_data);
drivers/input/rmi4/rmi_driver.c
198
*(drvdata->irq_status) = attn_data.irq_status;
drivers/input/rmi4/rmi_driver.c
199
drvdata->attn_data = attn_data;
drivers/input/rmi4/rmi_driver.c
209
drvdata->attn_data.data = NULL;
drivers/input/rmi4/rmi_driver.c
212
if (!kfifo_is_empty(&drvdata->attn_fifo))
drivers/input/rmi4/rmi_f03.c
248
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_f03.c
259
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f03.c
261
if (drvdata->attn_data.size < ob_len) {
drivers/input/rmi4/rmi_f03.c
266
memcpy(obs, drvdata->attn_data.data, ob_len);
drivers/input/rmi4/rmi_f03.c
268
drvdata->attn_data.data += ob_len;
drivers/input/rmi4/rmi_f03.c
269
drvdata->attn_data.size -= ob_len;
drivers/input/rmi4/rmi_f11.c
1073
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_f11.c
1080
mask_size = BITS_TO_LONGS(drvdata->irq_count) * sizeof(unsigned long);
drivers/input/rmi4/rmi_f11.c
1303
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_f11.c
1309
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f11.c
1314
if (f11->sensor.attn_size > drvdata->attn_data.size)
drivers/input/rmi4/rmi_f11.c
1315
valid_bytes = drvdata->attn_data.size;
drivers/input/rmi4/rmi_f11.c
1318
memcpy(f11->sensor.data_pkt, drvdata->attn_data.data,
drivers/input/rmi4/rmi_f11.c
1320
drvdata->attn_data.data += valid_bytes;
drivers/input/rmi4/rmi_f11.c
1321
drvdata->attn_data.size -= valid_bytes;
drivers/input/rmi4/rmi_f12.c
226
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_f12.c
231
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f12.c
232
if (sensor->attn_size > drvdata->attn_data.size)
drivers/input/rmi4/rmi_f12.c
233
valid_bytes = drvdata->attn_data.size;
drivers/input/rmi4/rmi_f12.c
236
memcpy(sensor->data_pkt, drvdata->attn_data.data,
drivers/input/rmi4/rmi_f12.c
238
drvdata->attn_data.data += valid_bytes;
drivers/input/rmi4/rmi_f12.c
239
drvdata->attn_data.size -= valid_bytes;
drivers/input/rmi4/rmi_f12.c
351
struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
drivers/input/rmi4/rmi_f12.c
357
mask_size = BITS_TO_LONGS(drvdata->irq_count) * sizeof(unsigned long);
drivers/input/rmi4/rmi_f12.c
462
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
476
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
480
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
484
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
496
if (item && !drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f12.c
503
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
507
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
511
if (item && !drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f12.c
520
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
524
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
528
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
532
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
536
if (item && !drvdata->attn_data.data)
drivers/input/rmi4/rmi_f12.c
540
if (item && !drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f21.c
45
struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev);
drivers/input/rmi4/rmi_f21.c
50
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f21.c
51
if (drvdata->attn_data.size < f21->attn_data_size) {
drivers/input/rmi4/rmi_f21.c
56
pdata = drvdata->attn_data.data + f21->attn_data_button_offset;
drivers/input/rmi4/rmi_f21.c
58
drvdata->attn_data.data += f21->attn_data_size;
drivers/input/rmi4/rmi_f21.c
59
drvdata->attn_data.size -= f21->attn_data_size;
drivers/input/rmi4/rmi_f30.c
126
struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev);
drivers/input/rmi4/rmi_f30.c
131
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f30.c
132
if (drvdata->attn_data.size < f30->register_count) {
drivers/input/rmi4/rmi_f30.c
137
memcpy(f30->data_regs, drvdata->attn_data.data,
drivers/input/rmi4/rmi_f30.c
139
drvdata->attn_data.data += f30->register_count;
drivers/input/rmi4/rmi_f30.c
140
drvdata->attn_data.size -= f30->register_count;
drivers/input/rmi4/rmi_f3a.c
60
struct rmi_driver_data *drvdata = dev_get_drvdata(&fn->rmi_dev->dev);
drivers/input/rmi4/rmi_f3a.c
64
if (drvdata->attn_data.data) {
drivers/input/rmi4/rmi_f3a.c
65
if (drvdata->attn_data.size < f3a->register_count) {
drivers/input/rmi4/rmi_f3a.c
70
memcpy(f3a->data_regs, drvdata->attn_data.data,
drivers/input/rmi4/rmi_f3a.c
72
drvdata->attn_data.data += f3a->register_count;
drivers/input/rmi4/rmi_f3a.c
73
drvdata->attn_data.size -= f3a->register_count;
drivers/input/serio/ps2-gpio.c
100
drvdata->t_irq_last = 0;
drivers/input/serio/ps2-gpio.c
101
drvdata->tx.t_xfer_end = 0;
drivers/input/serio/ps2-gpio.c
103
enable_irq(drvdata->irq);
drivers/input/serio/ps2-gpio.c
109
struct ps2_gpio_data *drvdata = serio->port_data;
drivers/input/serio/ps2-gpio.c
111
flush_delayed_work(&drvdata->tx.work);
drivers/input/serio/ps2-gpio.c
112
disable_irq(drvdata->irq);
drivers/input/serio/ps2-gpio.c
117
struct ps2_gpio_data *drvdata = serio->port_data;
drivers/input/serio/ps2-gpio.c
119
disable_irq_nosync(drvdata->irq);
drivers/input/serio/ps2-gpio.c
120
gpiod_direction_output(drvdata->gpio_clk, 0);
drivers/input/serio/ps2-gpio.c
122
drvdata->mode = PS2_MODE_TX;
drivers/input/serio/ps2-gpio.c
123
drvdata->tx.byte = val;
drivers/input/serio/ps2-gpio.c
125
schedule_delayed_work(&drvdata->tx.work, usecs_to_jiffies(200));
drivers/input/serio/ps2-gpio.c
132
struct ps2_gpio_data *drvdata = serio->port_data;
drivers/input/serio/ps2-gpio.c
136
guard(mutex)(&drvdata->tx.mutex);
drivers/input/serio/ps2-gpio.c
139
if (!wait_for_completion_timeout(&drvdata->tx.complete,
drivers/input/serio/ps2-gpio.c
152
struct ps2_gpio_data *drvdata = container_of(dwork,
drivers/input/serio/ps2-gpio.c
156
drvdata->tx.t_xfer_start = ktime_get();
drivers/input/serio/ps2-gpio.c
157
enable_irq(drvdata->irq);
drivers/input/serio/ps2-gpio.c
158
gpiod_direction_output(drvdata->gpio_data, 0);
drivers/input/serio/ps2-gpio.c
159
gpiod_direction_input(drvdata->gpio_clk);
drivers/input/serio/ps2-gpio.c
162
static irqreturn_t ps2_gpio_irq_rx(struct ps2_gpio_data *drvdata)
drivers/input/serio/ps2-gpio.c
169
byte = drvdata->rx.byte;
drivers/input/serio/ps2-gpio.c
170
cnt = drvdata->rx.cnt;
drivers/input/serio/ps2-gpio.c
172
drvdata->t_irq_now = ktime_get();
drivers/input/serio/ps2-gpio.c
178
us_delta = ktime_us_delta(drvdata->t_irq_now, drvdata->tx.t_xfer_end);
drivers/input/serio/ps2-gpio.c
182
us_delta = ktime_us_delta(drvdata->t_irq_now, drvdata->t_irq_last);
drivers/input/serio/ps2-gpio.c
184
dev_err(drvdata->dev,
drivers/input/serio/ps2-gpio.c
191
drvdata->t_irq_last = drvdata->t_irq_now;
drivers/input/serio/ps2-gpio.c
193
data = gpiod_get_value(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
195
dev_err(drvdata->dev, "RX: failed to get data gpio val: %d\n",
drivers/input/serio/ps2-gpio.c
204
dev_err(drvdata->dev, "RX: start bit should be low\n");
drivers/input/serio/ps2-gpio.c
224
dev_warn(drvdata->dev, "RX: parity error\n");
drivers/input/serio/ps2-gpio.c
225
if (!drvdata->write_enable)
drivers/input/serio/ps2-gpio.c
232
dev_err(drvdata->dev, "RX: stop bit should be high\n");
drivers/input/serio/ps2-gpio.c
240
if (!drvdata->write_enable) {
drivers/input/serio/ps2-gpio.c
247
serio_interrupt(drvdata->serio, byte, rxflags);
drivers/input/serio/ps2-gpio.c
248
dev_dbg(drvdata->dev, "RX: sending byte 0x%x\n", byte);
drivers/input/serio/ps2-gpio.c
254
dev_err(drvdata->dev, "RX: got out of sync with the device\n");
drivers/input/serio/ps2-gpio.c
263
__ps2_gpio_write(drvdata->serio, PS2_CMD_RESEND);
drivers/input/serio/ps2-gpio.c
265
drvdata->rx.cnt = cnt;
drivers/input/serio/ps2-gpio.c
266
drvdata->rx.byte = byte;
drivers/input/serio/ps2-gpio.c
270
static irqreturn_t ps2_gpio_irq_tx(struct ps2_gpio_data *drvdata)
drivers/input/serio/ps2-gpio.c
276
cnt = drvdata->tx.cnt;
drivers/input/serio/ps2-gpio.c
277
byte = drvdata->tx.byte;
drivers/input/serio/ps2-gpio.c
279
drvdata->t_irq_now = ktime_get();
drivers/input/serio/ps2-gpio.c
287
us_delta = ktime_us_delta(drvdata->t_irq_now,
drivers/input/serio/ps2-gpio.c
288
drvdata->tx.t_xfer_start);
drivers/input/serio/ps2-gpio.c
292
us_delta = ktime_us_delta(drvdata->t_irq_now, drvdata->t_irq_last);
drivers/input/serio/ps2-gpio.c
294
dev_err(drvdata->dev,
drivers/input/serio/ps2-gpio.c
301
drvdata->t_irq_last = drvdata->t_irq_now;
drivers/input/serio/ps2-gpio.c
306
dev_err(drvdata->dev,
drivers/input/serio/ps2-gpio.c
318
gpiod_set_value(drvdata->gpio_data, data);
drivers/input/serio/ps2-gpio.c
323
gpiod_set_value(drvdata->gpio_data, data);
drivers/input/serio/ps2-gpio.c
327
gpiod_direction_input(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
330
data = gpiod_get_value(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
332
dev_warn(drvdata->dev, "TX: received NACK, retry\n");
drivers/input/serio/ps2-gpio.c
336
drvdata->tx.t_xfer_end = ktime_get();
drivers/input/serio/ps2-gpio.c
337
drvdata->mode = PS2_MODE_RX;
drivers/input/serio/ps2-gpio.c
338
complete(&drvdata->tx.complete);
drivers/input/serio/ps2-gpio.c
347
gpiod_direction_input(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
348
dev_err(drvdata->dev, "TX: got out of sync with the device\n");
drivers/input/serio/ps2-gpio.c
357
gpiod_direction_input(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
358
__ps2_gpio_write(drvdata->serio, drvdata->tx.byte);
drivers/input/serio/ps2-gpio.c
360
drvdata->tx.cnt = cnt;
drivers/input/serio/ps2-gpio.c
366
struct ps2_gpio_data *drvdata = dev_id;
drivers/input/serio/ps2-gpio.c
368
return drvdata->mode ? ps2_gpio_irq_tx(drvdata) :
drivers/input/serio/ps2-gpio.c
369
ps2_gpio_irq_rx(drvdata);
drivers/input/serio/ps2-gpio.c
373
struct ps2_gpio_data *drvdata)
drivers/input/serio/ps2-gpio.c
380
drvdata->gpio_data = devm_gpiod_get(dev, "data", gflags);
drivers/input/serio/ps2-gpio.c
381
if (IS_ERR(drvdata->gpio_data)) {
drivers/input/serio/ps2-gpio.c
383
PTR_ERR(drvdata->gpio_data));
drivers/input/serio/ps2-gpio.c
384
return PTR_ERR(drvdata->gpio_data);
drivers/input/serio/ps2-gpio.c
387
drvdata->gpio_clk = devm_gpiod_get(dev, "clk", gflags);
drivers/input/serio/ps2-gpio.c
388
if (IS_ERR(drvdata->gpio_clk)) {
drivers/input/serio/ps2-gpio.c
390
PTR_ERR(drvdata->gpio_clk));
drivers/input/serio/ps2-gpio.c
391
return PTR_ERR(drvdata->gpio_clk);
drivers/input/serio/ps2-gpio.c
394
drvdata->write_enable = device_property_read_bool(dev,
drivers/input/serio/ps2-gpio.c
402
struct ps2_gpio_data *drvdata;
drivers/input/serio/ps2-gpio.c
407
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/input/serio/ps2-gpio.c
409
if (!drvdata || !serio) {
drivers/input/serio/ps2-gpio.c
414
error = ps2_gpio_get_props(dev, drvdata);
drivers/input/serio/ps2-gpio.c
418
if (gpiod_cansleep(drvdata->gpio_data) ||
drivers/input/serio/ps2-gpio.c
419
gpiod_cansleep(drvdata->gpio_clk)) {
drivers/input/serio/ps2-gpio.c
425
drvdata->irq = platform_get_irq(pdev, 0);
drivers/input/serio/ps2-gpio.c
426
if (drvdata->irq < 0) {
drivers/input/serio/ps2-gpio.c
427
error = drvdata->irq;
drivers/input/serio/ps2-gpio.c
431
error = devm_request_irq(dev, drvdata->irq, ps2_gpio_irq,
drivers/input/serio/ps2-gpio.c
433
drvdata);
drivers/input/serio/ps2-gpio.c
436
drvdata->irq, error);
drivers/input/serio/ps2-gpio.c
447
serio->write = drvdata->write_enable ? ps2_gpio_write : NULL;
drivers/input/serio/ps2-gpio.c
448
serio->port_data = drvdata;
drivers/input/serio/ps2-gpio.c
453
drvdata->serio = serio;
drivers/input/serio/ps2-gpio.c
454
drvdata->dev = dev;
drivers/input/serio/ps2-gpio.c
455
drvdata->mode = PS2_MODE_RX;
drivers/input/serio/ps2-gpio.c
461
drvdata->tx.cnt = 1;
drivers/input/serio/ps2-gpio.c
463
INIT_DELAYED_WORK(&drvdata->tx.work, ps2_gpio_tx_work_fn);
drivers/input/serio/ps2-gpio.c
464
init_completion(&drvdata->tx.complete);
drivers/input/serio/ps2-gpio.c
465
mutex_init(&drvdata->tx.mutex);
drivers/input/serio/ps2-gpio.c
468
platform_set_drvdata(pdev, drvdata);
drivers/input/serio/ps2-gpio.c
479
struct ps2_gpio_data *drvdata = platform_get_drvdata(pdev);
drivers/input/serio/ps2-gpio.c
481
serio_unregister_port(drvdata->serio);
drivers/input/serio/ps2-gpio.c
98
struct ps2_gpio_data *drvdata = serio->port_data;
drivers/input/serio/sun4i-ps2.c
104
guard(spinlock)(&drvdata->lock);
drivers/input/serio/sun4i-ps2.c
107
intr_status = readl(drvdata->reg_base + PS2_REG_LSTS);
drivers/input/serio/sun4i-ps2.c
108
fifo_status = readl(drvdata->reg_base + PS2_REG_FSTS);
drivers/input/serio/sun4i-ps2.c
118
writel(rval, drvdata->reg_base + PS2_REG_LSTS);
drivers/input/serio/sun4i-ps2.c
125
writel(rval, drvdata->reg_base + PS2_REG_FSTS);
drivers/input/serio/sun4i-ps2.c
130
byte = readl(drvdata->reg_base + PS2_REG_DATA) & 0xff;
drivers/input/serio/sun4i-ps2.c
131
serio_interrupt(drvdata->serio, byte, rxflags);
drivers/input/serio/sun4i-ps2.c
134
writel(intr_status, drvdata->reg_base + PS2_REG_LSTS);
drivers/input/serio/sun4i-ps2.c
135
writel(fifo_status, drvdata->reg_base + PS2_REG_FSTS);
drivers/input/serio/sun4i-ps2.c
142
struct sun4i_ps2data *drvdata = serio->port_data;
drivers/input/serio/sun4i-ps2.c
151
writel(rval, drvdata->reg_base + PS2_REG_LCTL);
drivers/input/serio/sun4i-ps2.c
158
writel(rval, drvdata->reg_base + PS2_REG_FCTL);
drivers/input/serio/sun4i-ps2.c
160
src_clk = clk_get_rate(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
165
writel(rval, drvdata->reg_base + PS2_REG_CLKDR);
drivers/input/serio/sun4i-ps2.c
171
guard(spinlock_irqsave)(&drvdata->lock);
drivers/input/serio/sun4i-ps2.c
172
writel(rval, drvdata->reg_base + PS2_REG_GCTL);
drivers/input/serio/sun4i-ps2.c
179
struct sun4i_ps2data *drvdata = serio->port_data;
drivers/input/serio/sun4i-ps2.c
183
rval = readl(drvdata->reg_base + PS2_REG_GCTL);
drivers/input/serio/sun4i-ps2.c
184
writel(rval & ~(PS2_GCTL_INTEN), drvdata->reg_base + PS2_REG_GCTL);
drivers/input/serio/sun4i-ps2.c
186
synchronize_irq(drvdata->irq);
drivers/input/serio/sun4i-ps2.c
192
struct sun4i_ps2data *drvdata = serio->port_data;
drivers/input/serio/sun4i-ps2.c
195
if (readl(drvdata->reg_base + PS2_REG_FSTS) & PS2_FSTS_TXRDY) {
drivers/input/serio/sun4i-ps2.c
196
writel(val, drvdata->reg_base + PS2_REG_DATA);
drivers/input/serio/sun4i-ps2.c
207
struct sun4i_ps2data *drvdata;
drivers/input/serio/sun4i-ps2.c
212
drvdata = kzalloc_obj(*drvdata);
drivers/input/serio/sun4i-ps2.c
214
if (!drvdata || !serio) {
drivers/input/serio/sun4i-ps2.c
219
spin_lock_init(&drvdata->lock);
drivers/input/serio/sun4i-ps2.c
229
drvdata->reg_base = ioremap(res->start, resource_size(res));
drivers/input/serio/sun4i-ps2.c
230
if (!drvdata->reg_base) {
drivers/input/serio/sun4i-ps2.c
236
drvdata->clk = clk_get(dev, NULL);
drivers/input/serio/sun4i-ps2.c
237
if (IS_ERR(drvdata->clk)) {
drivers/input/serio/sun4i-ps2.c
238
error = PTR_ERR(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
243
error = clk_prepare_enable(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
253
serio->port_data = drvdata;
drivers/input/serio/sun4i-ps2.c
259
writel(0, drvdata->reg_base + PS2_REG_GCTL);
drivers/input/serio/sun4i-ps2.c
262
drvdata->irq = platform_get_irq(pdev, 0);
drivers/input/serio/sun4i-ps2.c
263
if (drvdata->irq < 0) {
drivers/input/serio/sun4i-ps2.c
264
error = drvdata->irq;
drivers/input/serio/sun4i-ps2.c
268
drvdata->serio = serio;
drivers/input/serio/sun4i-ps2.c
269
drvdata->dev = dev;
drivers/input/serio/sun4i-ps2.c
271
error = request_irq(drvdata->irq, sun4i_ps2_interrupt, 0,
drivers/input/serio/sun4i-ps2.c
272
DRIVER_NAME, drvdata);
drivers/input/serio/sun4i-ps2.c
274
dev_err(drvdata->dev, "failed to allocate interrupt %d: %d\n",
drivers/input/serio/sun4i-ps2.c
275
drvdata->irq, error);
drivers/input/serio/sun4i-ps2.c
280
platform_set_drvdata(pdev, drvdata);
drivers/input/serio/sun4i-ps2.c
285
clk_disable_unprepare(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
287
clk_put(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
289
iounmap(drvdata->reg_base);
drivers/input/serio/sun4i-ps2.c
292
kfree(drvdata);
drivers/input/serio/sun4i-ps2.c
298
struct sun4i_ps2data *drvdata = platform_get_drvdata(pdev);
drivers/input/serio/sun4i-ps2.c
300
serio_unregister_port(drvdata->serio);
drivers/input/serio/sun4i-ps2.c
302
free_irq(drvdata->irq, drvdata);
drivers/input/serio/sun4i-ps2.c
304
clk_disable_unprepare(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
305
clk_put(drvdata->clk);
drivers/input/serio/sun4i-ps2.c
307
iounmap(drvdata->reg_base);
drivers/input/serio/sun4i-ps2.c
309
kfree(drvdata);
drivers/input/serio/sun4i-ps2.c
97
struct sun4i_ps2data *drvdata = dev_id;
drivers/input/serio/xilinx_ps2.c
106
struct xps2data *drvdata = dev_id;
drivers/input/serio/xilinx_ps2.c
112
intr_sr = in_be32(drvdata->base_address + XPS2_IPISR_OFFSET);
drivers/input/serio/xilinx_ps2.c
113
out_be32(drvdata->base_address + XPS2_IPISR_OFFSET, intr_sr);
drivers/input/serio/xilinx_ps2.c
117
dev_warn(drvdata->dev, "receive overrun error\n");
drivers/input/serio/xilinx_ps2.c
120
drvdata->flags |= SERIO_PARITY;
drivers/input/serio/xilinx_ps2.c
123
drvdata->flags |= SERIO_TIMEOUT;
drivers/input/serio/xilinx_ps2.c
126
status = xps2_recv(drvdata, &c);
drivers/input/serio/xilinx_ps2.c
130
dev_err(drvdata->dev,
drivers/input/serio/xilinx_ps2.c
133
serio_interrupt(drvdata->serio, c, drvdata->flags);
drivers/input/serio/xilinx_ps2.c
134
drvdata->flags = 0;
drivers/input/serio/xilinx_ps2.c
157
struct xps2data *drvdata = pserio->port_data;
drivers/input/serio/xilinx_ps2.c
160
guard(spinlock_irqsave)(&drvdata->lock);
drivers/input/serio/xilinx_ps2.c
163
sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET);
drivers/input/serio/xilinx_ps2.c
167
out_be32(drvdata->base_address + XPS2_TX_DATA_OFFSET, c);
drivers/input/serio/xilinx_ps2.c
179
struct xps2data *drvdata = pserio->port_data;
drivers/input/serio/xilinx_ps2.c
183
error = request_irq(drvdata->irq, &xps2_interrupt, 0,
drivers/input/serio/xilinx_ps2.c
184
DRIVER_NAME, drvdata);
drivers/input/serio/xilinx_ps2.c
186
dev_err(drvdata->dev,
drivers/input/serio/xilinx_ps2.c
187
"Couldn't allocate interrupt %d\n", drvdata->irq);
drivers/input/serio/xilinx_ps2.c
192
out_be32(drvdata->base_address + XPS2_GIER_OFFSET, XPS2_GIER_GIE_MASK);
drivers/input/serio/xilinx_ps2.c
193
out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, XPS2_IPIXR_RX_ALL);
drivers/input/serio/xilinx_ps2.c
194
(void)xps2_recv(drvdata, &c);
drivers/input/serio/xilinx_ps2.c
207
struct xps2data *drvdata = pserio->port_data;
drivers/input/serio/xilinx_ps2.c
210
out_be32(drvdata->base_address + XPS2_GIER_OFFSET, 0x00);
drivers/input/serio/xilinx_ps2.c
211
out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0x00);
drivers/input/serio/xilinx_ps2.c
212
free_irq(drvdata->irq, drvdata);
drivers/input/serio/xilinx_ps2.c
227
struct xps2data *drvdata;
drivers/input/serio/xilinx_ps2.c
250
drvdata = kzalloc_obj(*drvdata);
drivers/input/serio/xilinx_ps2.c
252
if (!drvdata || !serio) {
drivers/input/serio/xilinx_ps2.c
257
spin_lock_init(&drvdata->lock);
drivers/input/serio/xilinx_ps2.c
258
drvdata->irq = irq;
drivers/input/serio/xilinx_ps2.c
259
drvdata->serio = serio;
drivers/input/serio/xilinx_ps2.c
260
drvdata->dev = dev;
drivers/input/serio/xilinx_ps2.c
272
drvdata->base_address = ioremap(phys_addr, remap_size);
drivers/input/serio/xilinx_ps2.c
273
if (drvdata->base_address == NULL) {
drivers/input/serio/xilinx_ps2.c
281
out_be32(drvdata->base_address + XPS2_IPIER_OFFSET, 0);
drivers/input/serio/xilinx_ps2.c
287
out_be32(drvdata->base_address + XPS2_SRST_OFFSET, XPS2_SRST_RESET);
drivers/input/serio/xilinx_ps2.c
290
(unsigned long long)phys_addr, drvdata->base_address,
drivers/input/serio/xilinx_ps2.c
291
drvdata->irq);
drivers/input/serio/xilinx_ps2.c
297
serio->port_data = drvdata;
drivers/input/serio/xilinx_ps2.c
306
platform_set_drvdata(ofdev, drvdata);
drivers/input/serio/xilinx_ps2.c
313
kfree(drvdata);
drivers/input/serio/xilinx_ps2.c
328
struct xps2data *drvdata = platform_get_drvdata(of_dev);
drivers/input/serio/xilinx_ps2.c
331
serio_unregister_port(drvdata->serio);
drivers/input/serio/xilinx_ps2.c
332
iounmap(drvdata->base_address);
drivers/input/serio/xilinx_ps2.c
336
dev_err(drvdata->dev, "invalid address\n");
drivers/input/serio/xilinx_ps2.c
340
kfree(drvdata);
drivers/input/serio/xilinx_ps2.c
86
static int xps2_recv(struct xps2data *drvdata, u8 *byte)
drivers/input/serio/xilinx_ps2.c
92
sr = in_be32(drvdata->base_address + XPS2_STATUS_OFFSET);
drivers/input/serio/xilinx_ps2.c
94
*byte = in_be32(drvdata->base_address + XPS2_RX_DATA_OFFSET);
drivers/leds/leds-lm3530.c
189
static int lm3530_led_enable(struct lm3530_data *drvdata)
drivers/leds/leds-lm3530.c
193
if (drvdata->enable)
drivers/leds/leds-lm3530.c
196
ret = regulator_enable(drvdata->regulator);
drivers/leds/leds-lm3530.c
198
dev_err(drvdata->led_dev.dev, "Failed to enable vin:%d\n", ret);
drivers/leds/leds-lm3530.c
202
drvdata->enable = true;
drivers/leds/leds-lm3530.c
206
static void lm3530_led_disable(struct lm3530_data *drvdata)
drivers/leds/leds-lm3530.c
210
if (!drvdata->enable)
drivers/leds/leds-lm3530.c
213
ret = regulator_disable(drvdata->regulator);
drivers/leds/leds-lm3530.c
215
dev_err(drvdata->led_dev.dev, "Failed to disable vin:%d\n",
drivers/leds/leds-lm3530.c
220
drvdata->enable = false;
drivers/leds/leds-lm3530.c
223
static int lm3530_init_registers(struct lm3530_data *drvdata)
drivers/leds/leds-lm3530.c
231
struct lm3530_platform_data *pdata = drvdata->pdata;
drivers/leds/leds-lm3530.c
232
struct i2c_client *client = drvdata->client;
drivers/leds/leds-lm3530.c
241
switch (drvdata->mode) {
drivers/leds/leds-lm3530.c
258
if (drvdata->brightness)
drivers/leds/leds-lm3530.c
259
brightness = drvdata->brightness;
drivers/leds/leds-lm3530.c
261
brightness = drvdata->brightness = pdata->brt_val;
drivers/leds/leds-lm3530.c
263
if (brightness > drvdata->led_dev.max_brightness)
drivers/leds/leds-lm3530.c
264
brightness = drvdata->led_dev.max_brightness;
drivers/leds/leds-lm3530.c
281
ret = lm3530_led_enable(drvdata);
drivers/leds/leds-lm3530.c
288
drvdata->mode == LM3530_BL_MODE_PWM) {
drivers/leds/leds-lm3530.c
291
drvdata->led_dev.max_brightness);
drivers/leds/leds-lm3530.c
308
struct lm3530_data *drvdata =
drivers/leds/leds-lm3530.c
310
struct lm3530_platform_data *pdata = drvdata->pdata;
drivers/leds/leds-lm3530.c
314
switch (drvdata->mode) {
drivers/leds/leds-lm3530.c
317
if (!drvdata->enable) {
drivers/leds/leds-lm3530.c
318
err = lm3530_init_registers(drvdata);
drivers/leds/leds-lm3530.c
320
dev_err(&drvdata->client->dev,
drivers/leds/leds-lm3530.c
327
err = i2c_smbus_write_byte_data(drvdata->client,
drivers/leds/leds-lm3530.c
330
dev_err(&drvdata->client->dev,
drivers/leds/leds-lm3530.c
333
drvdata->brightness = brt_val;
drivers/leds/leds-lm3530.c
336
lm3530_led_disable(drvdata);
drivers/leds/leds-lm3530.c
353
struct lm3530_data *drvdata;
drivers/leds/leds-lm3530.c
356
drvdata = container_of(led_cdev, struct lm3530_data, led_dev);
drivers/leds/leds-lm3530.c
358
if (drvdata->mode == mode_map[i].mode_val)
drivers/leds/leds-lm3530.c
372
struct lm3530_data *drvdata;
drivers/leds/leds-lm3530.c
377
drvdata = container_of(led_cdev, struct lm3530_data, led_dev);
drivers/leds/leds-lm3530.c
378
pwm = &drvdata->pdata->pwm_data;
drivers/leds/leds-lm3530.c
386
drvdata->mode = mode;
drivers/leds/leds-lm3530.c
392
err = lm3530_init_registers(drvdata);
drivers/leds/leds-lm3530.c
398
return sizeof(drvdata->mode);
drivers/leds/leds-lm3530.c
411
struct lm3530_data *drvdata;
drivers/leds/leds-lm3530.c
430
drvdata = devm_kzalloc(&client->dev, sizeof(struct lm3530_data),
drivers/leds/leds-lm3530.c
432
if (drvdata == NULL)
drivers/leds/leds-lm3530.c
435
drvdata->mode = pdata->mode;
drivers/leds/leds-lm3530.c
436
drvdata->client = client;
drivers/leds/leds-lm3530.c
437
drvdata->pdata = pdata;
drivers/leds/leds-lm3530.c
438
drvdata->brightness = LED_OFF;
drivers/leds/leds-lm3530.c
439
drvdata->enable = false;
drivers/leds/leds-lm3530.c
440
drvdata->led_dev.name = LM3530_LED_DEV;
drivers/leds/leds-lm3530.c
441
drvdata->led_dev.brightness_set = lm3530_brightness_set;
drivers/leds/leds-lm3530.c
442
drvdata->led_dev.max_brightness = MAX_BRIGHTNESS;
drivers/leds/leds-lm3530.c
443
drvdata->led_dev.groups = lm3530_groups;
drivers/leds/leds-lm3530.c
445
i2c_set_clientdata(client, drvdata);
drivers/leds/leds-lm3530.c
447
drvdata->regulator = devm_regulator_get(&client->dev, "vin");
drivers/leds/leds-lm3530.c
448
if (IS_ERR(drvdata->regulator)) {
drivers/leds/leds-lm3530.c
450
err = PTR_ERR(drvdata->regulator);
drivers/leds/leds-lm3530.c
451
drvdata->regulator = NULL;
drivers/leds/leds-lm3530.c
455
if (drvdata->pdata->brt_val) {
drivers/leds/leds-lm3530.c
456
err = lm3530_init_registers(drvdata);
drivers/leds/leds-lm3530.c
463
err = led_classdev_register(&client->dev, &drvdata->led_dev);
drivers/leds/leds-lm3530.c
474
struct lm3530_data *drvdata = i2c_get_clientdata(client);
drivers/leds/leds-lm3530.c
476
lm3530_led_disable(drvdata);
drivers/leds/leds-lm3530.c
477
led_classdev_unregister(&drvdata->led_dev);
drivers/leds/leds-lm3532.c
386
struct lm3532_data *drvdata = led->priv;
drivers/leds/leds-lm3532.c
397
if (drvdata->enable_gpio)
drivers/leds/leds-lm3532.c
398
gpiod_direction_output(drvdata->enable_gpio, 1);
drivers/leds/leds-lm3532.c
405
ret = regmap_read(drvdata->regmap, brightness_config_reg,
drivers/leds/leds-lm3532.c
412
ret = regmap_write(drvdata->regmap, brightness_config_reg,
drivers/leds/leds-lm3532.c
422
ret = regmap_write(drvdata->regmap, fs_current_reg,
drivers/leds/leds-lm3532.c
434
ret = regmap_update_bits(drvdata->regmap, LM3532_REG_OUTPUT_CFG,
drivers/leds/leds-lm3532.c
439
runtime_ramp_val = drvdata->runtime_ramp_up |
drivers/leds/leds-lm3532.c
440
(drvdata->runtime_ramp_down << LM3532_RAMP_DOWN_SHIFT);
drivers/leds/leds-lm3532.c
442
return regmap_write(drvdata->regmap, LM3532_REG_RT_RAMP,
drivers/leds/leds-lm3532.c
677
struct lm3532_data *drvdata;
drivers/leds/leds-lm3532.c
687
drvdata = devm_kzalloc(&client->dev, struct_size(drvdata, leds, count),
drivers/leds/leds-lm3532.c
689
if (drvdata == NULL)
drivers/leds/leds-lm3532.c
692
drvdata->client = client;
drivers/leds/leds-lm3532.c
693
drvdata->dev = &client->dev;
drivers/leds/leds-lm3532.c
695
drvdata->regmap = devm_regmap_init_i2c(client, &lm3532_regmap_config);
drivers/leds/leds-lm3532.c
696
if (IS_ERR(drvdata->regmap)) {
drivers/leds/leds-lm3532.c
697
ret = PTR_ERR(drvdata->regmap);
drivers/leds/leds-lm3532.c
703
ret = devm_mutex_init(&client->dev, &drvdata->lock);
drivers/leds/leds-lm3532.c
707
i2c_set_clientdata(client, drvdata);
drivers/leds/leds-lm3532.c
709
ret = lm3532_parse_node(drvdata);
drivers/leds/leds-wm831x-status.c
213
struct wm831x_status *drvdata;
drivers/leds/leds-wm831x-status.c
224
drvdata = devm_kzalloc(&pdev->dev, sizeof(struct wm831x_status),
drivers/leds/leds-wm831x-status.c
226
if (!drvdata)
drivers/leds/leds-wm831x-status.c
229
drvdata->wm831x = wm831x;
drivers/leds/leds-wm831x-status.c
230
drvdata->reg = res->start;
drivers/leds/leds-wm831x-status.c
243
mutex_init(&drvdata->mutex);
drivers/leds/leds-wm831x-status.c
244
spin_lock_init(&drvdata->value_lock);
drivers/leds/leds-wm831x-status.c
248
drvdata->reg_val = wm831x_reg_read(wm831x, drvdata->reg);
drivers/leds/leds-wm831x-status.c
250
if (drvdata->reg_val & WM831X_LED_MODE_MASK)
drivers/leds/leds-wm831x-status.c
251
drvdata->brightness = LED_FULL;
drivers/leds/leds-wm831x-status.c
253
drvdata->brightness = LED_OFF;
drivers/leds/leds-wm831x-status.c
259
drvdata->src = drvdata->reg_val;
drivers/leds/leds-wm831x-status.c
260
drvdata->src &= WM831X_LED_SRC_MASK;
drivers/leds/leds-wm831x-status.c
261
drvdata->src >>= WM831X_LED_SRC_SHIFT;
drivers/leds/leds-wm831x-status.c
263
drvdata->src = pdata.default_src - 1;
drivers/leds/leds-wm831x-status.c
266
drvdata->cdev.name = pdata.name;
drivers/leds/leds-wm831x-status.c
267
drvdata->cdev.default_trigger = pdata.default_trigger;
drivers/leds/leds-wm831x-status.c
268
drvdata->cdev.brightness_set_blocking = wm831x_status_brightness_set;
drivers/leds/leds-wm831x-status.c
269
drvdata->cdev.blink_set = wm831x_status_blink_set;
drivers/leds/leds-wm831x-status.c
270
drvdata->cdev.groups = wm831x_status_groups;
drivers/leds/leds-wm831x-status.c
272
ret = led_classdev_register(wm831x->dev, &drvdata->cdev);
drivers/leds/leds-wm831x-status.c
278
platform_set_drvdata(pdev, drvdata);
drivers/leds/leds-wm831x-status.c
285
struct wm831x_status *drvdata = platform_get_drvdata(pdev);
drivers/leds/leds-wm831x-status.c
287
led_classdev_unregister(&drvdata->cdev);
drivers/media/i2c/video-i2c.c
272
static umode_t amg88xx_is_visible(const void *drvdata,
drivers/media/pci/mantis/hopper_cards.c
147
struct mantis_pci_drvdata *drvdata;
drivers/media/pci/mantis/hopper_cards.c
158
drvdata = (void *)pci_id->driver_data;
drivers/media/pci/mantis/hopper_cards.c
162
config = drvdata->hwconfig;
drivers/media/pci/mantis/hopper_cards.c
165
mantis->rc_map_name = drvdata->rc_map_name;
drivers/media/pci/mantis/mantis_cards.c
156
struct mantis_pci_drvdata *drvdata;
drivers/media/pci/mantis/mantis_cards.c
165
drvdata = (void *)pci_id->driver_data;
drivers/media/pci/mantis/mantis_cards.c
169
config = drvdata->hwconfig;
drivers/media/pci/mantis/mantis_cards.c
172
mantis->rc_map_name = drvdata->rc_map_name;
drivers/media/platform/samsung/exynos4-is/fimc-is-param.c
246
switch (is->sensor->drvdata->id) {
drivers/media/platform/samsung/exynos4-is/fimc-is-sensor.h
45
const struct sensor_drv_data *drvdata;
drivers/media/platform/samsung/exynos4-is/fimc-is.c
171
sensor->drvdata = fimc_is_sensor_get_drvdata(node);
drivers/media/platform/samsung/exynos4-is/fimc-is.c
172
if (!sensor->drvdata) {
drivers/media/platform/samsung/exynos4-is/fimc-is.c
642
mcuctl_write(sensor->drvdata->id, is, MCUCTL_REG_ISSR(2));
drivers/media/platform/samsung/exynos4-is/fimc-is.c
649
sensor->drvdata->open_timeout);
drivers/media/platform/samsung/exynos4-is/media-dev.c
686
void *drvdata;
drivers/media/platform/samsung/exynos4-is/media-dev.c
694
drvdata = dev_get_drvdata(dev);
drivers/media/platform/samsung/exynos4-is/media-dev.c
696
if (drvdata) {
drivers/media/platform/samsung/exynos4-is/media-dev.c
699
ret = register_fimc_entity(fmd, drvdata);
drivers/media/platform/samsung/exynos4-is/media-dev.c
702
ret = register_fimc_lite_entity(fmd, drvdata);
drivers/media/platform/samsung/exynos4-is/media-dev.c
705
ret = register_csis_entity(fmd, pdev, drvdata);
drivers/media/platform/samsung/exynos4-is/media-dev.c
708
ret = register_fimc_is_entity(fmd, drvdata);
drivers/media/platform/samsung/s3c-camif/camif-core.c
402
struct s3c_camif_drvdata *drvdata;
drivers/media/platform/samsung/s3c-camif/camif-core.c
421
drvdata = (void *)platform_get_device_id(pdev)->driver_data;
drivers/media/platform/samsung/s3c-camif/camif-core.c
422
camif->variant = drvdata->variant;
drivers/misc/open-dice.c
104
return vm_iomap_memory(vma, drvdata->rmem->base, drvdata->rmem->size);
drivers/misc/open-dice.c
119
struct open_dice_drvdata *drvdata;
drivers/misc/open-dice.c
138
drvdata = devm_kmalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/misc/open-dice.c
139
if (!drvdata)
drivers/misc/open-dice.c
142
*drvdata = (struct open_dice_drvdata){
drivers/misc/open-dice.c
146
.name = drvdata->name,
drivers/misc/open-dice.c
152
mutex_init(&drvdata->lock);
drivers/misc/open-dice.c
155
snprintf(drvdata->name, sizeof(drvdata->name), DRIVER_NAME"%u", dev_idx++);
drivers/misc/open-dice.c
157
ret = misc_register(&drvdata->misc);
drivers/misc/open-dice.c
160
drvdata->name, ret);
drivers/misc/open-dice.c
164
platform_set_drvdata(pdev, drvdata);
drivers/misc/open-dice.c
170
struct open_dice_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/misc/open-dice.c
172
misc_deregister(&drvdata->misc);
drivers/misc/open-dice.c
43
static int open_dice_wipe(struct open_dice_drvdata *drvdata)
drivers/misc/open-dice.c
47
mutex_lock(&drvdata->lock);
drivers/misc/open-dice.c
48
kaddr = devm_memremap(drvdata->misc.this_device, drvdata->rmem->base,
drivers/misc/open-dice.c
49
drvdata->rmem->size, MEMREMAP_WC);
drivers/misc/open-dice.c
51
mutex_unlock(&drvdata->lock);
drivers/misc/open-dice.c
55
memset(kaddr, 0, drvdata->rmem->size);
drivers/misc/open-dice.c
56
devm_memunmap(drvdata->misc.this_device, kaddr);
drivers/misc/open-dice.c
57
mutex_unlock(&drvdata->lock);
drivers/misc/open-dice.c
91
struct open_dice_drvdata *drvdata = to_open_dice_drvdata(filp);
drivers/mmc/host/sdhci_am654.c
930
const struct sdhci_am654_driver_data *drvdata;
drivers/mmc/host/sdhci_am654.c
942
drvdata = match->data;
drivers/mmc/host/sdhci_am654.c
947
drvdata = soc->data;
drivers/mmc/host/sdhci_am654.c
949
host = sdhci_pltfm_init(pdev, drvdata->pdata, sizeof(*sdhci_am654));
drivers/mmc/host/sdhci_am654.c
955
sdhci_am654->flags = drvdata->flags;
drivers/mmc/host/sdhci_am654.c
956
sdhci_am654->quirks = drvdata->quirks;
drivers/mtd/nand/raw/txx9ndfmc.c
222
struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev);
drivers/mtd/nand/raw/txx9ndfmc.c
242
txx9ndfmc_write(dev, (drvdata->hold << 4) | drvdata->spw, TXX9_NDFSPR);
drivers/mtd/nand/raw/txx9ndfmc.c
284
struct txx9ndfmc_drvdata *drvdata;
drivers/mtd/nand/raw/txx9ndfmc.c
287
drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/mtd/nand/raw/txx9ndfmc.c
288
if (!drvdata)
drivers/mtd/nand/raw/txx9ndfmc.c
290
drvdata->base = devm_platform_ioremap_resource(dev, 0);
drivers/mtd/nand/raw/txx9ndfmc.c
291
if (IS_ERR(drvdata->base))
drivers/mtd/nand/raw/txx9ndfmc.c
292
return PTR_ERR(drvdata->base);
drivers/mtd/nand/raw/txx9ndfmc.c
303
drvdata->hold = hold;
drivers/mtd/nand/raw/txx9ndfmc.c
305
drvdata->spw = spw;
drivers/mtd/nand/raw/txx9ndfmc.c
309
nand_controller_init(&drvdata->controller);
drivers/mtd/nand/raw/txx9ndfmc.c
310
drvdata->controller.ops = &txx9ndfmc_controller_ops;
drivers/mtd/nand/raw/txx9ndfmc.c
312
platform_set_drvdata(dev, drvdata);
drivers/mtd/nand/raw/txx9ndfmc.c
335
chip->controller = &drvdata->controller;
drivers/mtd/nand/raw/txx9ndfmc.c
365
drvdata->mtds[i] = mtd;
drivers/mtd/nand/raw/txx9ndfmc.c
373
struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev);
drivers/mtd/nand/raw/txx9ndfmc.c
377
struct mtd_info *mtd = drvdata->mtds[i];
drivers/mtd/nand/raw/txx9ndfmc.c
84
struct txx9ndfmc_drvdata *drvdata = platform_get_drvdata(dev);
drivers/mtd/nand/raw/txx9ndfmc.c
87
return drvdata->base + (reg << plat->shift);
drivers/net/can/c_can/c_can_platform.c
265
const struct c_can_driver_data *drvdata;
drivers/net/can/c_can/c_can_platform.c
268
drvdata = device_get_match_data(&pdev->dev);
drivers/net/can/c_can/c_can_platform.c
285
dev = alloc_c_can_dev(drvdata->msg_obj_num);
drivers/net/can/c_can/c_can_platform.c
290
switch (drvdata->id) {
drivers/net/can/c_can/c_can_platform.c
336
if (id >= drvdata->raminit_num) {
drivers/net/can/c_can/c_can_platform.c
342
raminit->bits = drvdata->raminit_bits[id];
drivers/net/can/c_can/c_can_platform.c
343
raminit->needs_pulse = drvdata->raminit_pulse;
drivers/net/can/c_can/c_can_platform.c
359
priv->type = drvdata->id;
drivers/net/ethernet/freescale/enetc/enetc.c
34
enetc_port_wr(&si->hw, reg + si->drvdata->pmac_offset, val);
drivers/net/ethernet/freescale/enetc/enetc.c
3780
si->drvdata = enetc_info[i].data;
drivers/net/ethernet/freescale/enetc/enetc.h
325
const struct enetc_drvdata *drvdata;
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
1424
ndev->ethtool_ops = priv->si->drvdata->eth_ops;
drivers/net/ethernet/freescale/enetc/enetc_pf_common.c
103
priv->sysclk_freq = si->drvdata->sysclk_freq;
drivers/net/ethernet/freescale/enetc/enetc_pf_common.c
104
priv->max_frags = si->drvdata->max_frags;
drivers/net/ethernet/freescale/enetc/enetc_pf_common.c
125
if (si->drvdata->tx_csum)
drivers/net/ethernet/freescale/enetc/enetc_vf.c
140
priv->sysclk_freq = si->drvdata->sysclk_freq;
drivers/net/ethernet/freescale/enetc/enetc_vf.c
141
priv->max_frags = si->drvdata->max_frags;
drivers/net/ethernet/ibm/emac/core.c
2325
void *drvdata;
drivers/net/ethernet/ibm/emac/core.c
2367
if (deps[i].drvdata == NULL)
drivers/net/ethernet/ibm/emac/core.c
2368
deps[i].drvdata = platform_get_drvdata(deps[i].ofdev);
drivers/net/ethernet/ibm/emac/core.c
2369
if (deps[i].drvdata != NULL)
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
19
static umode_t fbnic_hwmon_is_visible(const void *drvdata,
drivers/net/ethernet/xilinx/xilinx_emaclite.c
151
static void xemaclite_enable_interrupts(struct net_local *drvdata)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
156
reg_data = xemaclite_readl(drvdata->base_addr + XEL_TSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
158
drvdata->base_addr + XEL_TSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
161
xemaclite_writel(XEL_RSR_RECV_IE_MASK, drvdata->base_addr + XEL_RSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
164
xemaclite_writel(XEL_GIER_GIE_MASK, drvdata->base_addr + XEL_GIER_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
174
static void xemaclite_disable_interrupts(struct net_local *drvdata)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
179
xemaclite_writel(XEL_GIER_GIE_MASK, drvdata->base_addr + XEL_GIER_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
182
reg_data = xemaclite_readl(drvdata->base_addr + XEL_TSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
184
drvdata->base_addr + XEL_TSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
187
reg_data = xemaclite_readl(drvdata->base_addr + XEL_RSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
189
drvdata->base_addr + XEL_RSR_OFFSET);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
308
static int xemaclite_send_data(struct net_local *drvdata, u8 *data,
drivers/net/ethernet/xilinx/xilinx_emaclite.c
315
addr = drvdata->base_addr + drvdata->next_tx_buf_to_use;
drivers/net/ethernet/xilinx/xilinx_emaclite.c
326
if (drvdata->tx_ping_pong != 0)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
327
drvdata->next_tx_buf_to_use ^= XEL_BUFFER_OFFSET;
drivers/net/ethernet/xilinx/xilinx_emaclite.c
328
} else if (drvdata->tx_ping_pong != 0) {
drivers/net/ethernet/xilinx/xilinx_emaclite.c
373
static u16 xemaclite_recv_data(struct net_local *drvdata, u8 *data, int maxlen)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
380
addr = (drvdata->base_addr + drvdata->next_rx_buf_to_use);
drivers/net/ethernet/xilinx/xilinx_emaclite.c
386
if (drvdata->rx_ping_pong != 0)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
387
drvdata->next_rx_buf_to_use ^= XEL_BUFFER_OFFSET;
drivers/net/ethernet/xilinx/xilinx_emaclite.c
394
if (drvdata->rx_ping_pong != 0)
drivers/net/ethernet/xilinx/xilinx_emaclite.c
466
static void xemaclite_update_address(struct net_local *drvdata,
drivers/net/ethernet/xilinx/xilinx_emaclite.c
473
addr = drvdata->base_addr + drvdata->next_tx_buf_to_use;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
2416
static const struct brcmf_pcie_drvdata drvdata[] = {
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
2518
bus->fwvid = drvdata[id->driver_data].vendor;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
2519
devinfo->fwseed = drvdata[id->driver_data].fw_seed;
drivers/net/wwan/wwan_core.c
626
void *drvdata)
drivers/net/wwan/wwan_core.c
659
dev_set_drvdata(&port->dev, drvdata);
drivers/nvme/target/nvmet.h
256
void *drvdata;
drivers/nvme/target/pci-epf.c
1260
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1269
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1350
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1369
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1421
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1441
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
1484
struct nvmet_pci_epf_ctrl *ctrl = tctrl->drvdata;
drivers/nvme/target/pci-epf.c
2069
ctrl->tctrl->drvdata = ctrl;
drivers/nvmem/imx-iim.c
102
const struct imx_iim_drvdata *drvdata = NULL;
drivers/nvmem/imx-iim.c
112
drvdata = of_device_get_match_data(&pdev->dev);
drivers/nvmem/imx-iim.c
124
cfg.size = drvdata->nregs;
drivers/nvmem/meson-mx-efuse.c
193
const struct meson_mx_efuse_platform_data *drvdata;
drivers/nvmem/meson-mx-efuse.c
197
drvdata = of_device_get_match_data(&pdev->dev);
drivers/nvmem/meson-mx-efuse.c
198
if (!drvdata)
drivers/nvmem/meson-mx-efuse.c
209
efuse->config.name = drvdata->name;
drivers/nvmem/meson-mx-efuse.c
214
efuse->config.stride = drvdata->word_size;
drivers/nvmem/meson-mx-efuse.c
215
efuse->config.word_size = drvdata->word_size;
drivers/pci/controller/dwc/pci-imx6.c
1102
if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE)
drivers/pci/controller/dwc/pci-imx6.c
121
#define imx_check_flag(pci, val) (pci->drvdata->flags & val)
drivers/pci/controller/dwc/pci-imx6.c
1259
if (imx_pcie->drvdata->init_phy)
drivers/pci/controller/dwc/pci-imx6.c
1260
imx_pcie->drvdata->init_phy(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1278
imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE ?
drivers/pci/controller/dwc/pci-imx6.c
1301
if (imx_pcie->drvdata->wait_pll_lock) {
drivers/pci/controller/dwc/pci-imx6.c
1302
ret = imx_pcie->drvdata->wait_pll_lock(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1345
if (imx_pcie->drvdata->flags & IMX_PCIE_FLAG_8GT_ECN_ERR051586) {
drivers/pci/controller/dwc/pci-imx6.c
1366
if (imx_pcie->drvdata->clr_clkreq_override)
drivers/pci/controller/dwc/pci-imx6.c
1367
imx_pcie->drvdata->clr_clkreq_override(imx_pcie);
drivers/pci/controller/dwc/pci-imx6.c
1477
return imx_pcie->drvdata->epc_features;
drivers/pci/controller/dwc/pci-imx6.c
1502
ep->page_size = imx_pcie->drvdata->epc_features->align;
drivers/pci/controller/dwc/pci-imx6.c
1583
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_SUPPORTS_SUSPEND))
drivers/pci/controller/dwc/pci-imx6.c
1596
imx_pcie->drvdata->enable_ref_clk(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
1609
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_SUPPORTS_SUSPEND))
drivers/pci/controller/dwc/pci-imx6.c
1613
ret = imx_pcie->drvdata->enable_ref_clk(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
1667
imx_pcie->drvdata = of_device_get_match_data(dev);
drivers/pci/controller/dwc/pci-imx6.c
1671
if (imx_pcie->drvdata->ops)
drivers/pci/controller/dwc/pci-imx6.c
1672
pci->pp.ops = imx_pcie->drvdata->ops;
drivers/pci/controller/dwc/pci-imx6.c
1728
switch (imx_pcie->drvdata->variant) {
drivers/pci/controller/dwc/pci-imx6.c
1741
if (imx_pcie->drvdata->gpr) {
drivers/pci/controller/dwc/pci-imx6.c
1744
syscon_regmap_lookup_by_compatible(imx_pcie->drvdata->gpr);
drivers/pci/controller/dwc/pci-imx6.c
179
const struct imx_pcie_drvdata *drvdata;
drivers/pci/controller/dwc/pci-imx6.c
1820
if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) {
drivers/pci/controller/dwc/pci-imx6.c
1858
static const struct imx_pcie_drvdata drvdata[] = {
drivers/pci/controller/dwc/pci-imx6.c
2038
{ .compatible = "fsl,imx6q-pcie", .data = &drvdata[IMX6Q], },
drivers/pci/controller/dwc/pci-imx6.c
2039
{ .compatible = "fsl,imx6sx-pcie", .data = &drvdata[IMX6SX], },
drivers/pci/controller/dwc/pci-imx6.c
2040
{ .compatible = "fsl,imx6qp-pcie", .data = &drvdata[IMX6QP], },
drivers/pci/controller/dwc/pci-imx6.c
2041
{ .compatible = "fsl,imx7d-pcie", .data = &drvdata[IMX7D], },
drivers/pci/controller/dwc/pci-imx6.c
2042
{ .compatible = "fsl,imx8mq-pcie", .data = &drvdata[IMX8MQ], },
drivers/pci/controller/dwc/pci-imx6.c
2043
{ .compatible = "fsl,imx8mm-pcie", .data = &drvdata[IMX8MM], },
drivers/pci/controller/dwc/pci-imx6.c
2044
{ .compatible = "fsl,imx8mp-pcie", .data = &drvdata[IMX8MP], },
drivers/pci/controller/dwc/pci-imx6.c
2045
{ .compatible = "fsl,imx8q-pcie", .data = &drvdata[IMX8Q], },
drivers/pci/controller/dwc/pci-imx6.c
2046
{ .compatible = "fsl,imx95-pcie", .data = &drvdata[IMX95], },
drivers/pci/controller/dwc/pci-imx6.c
2047
{ .compatible = "fsl,imx8mq-pcie-ep", .data = &drvdata[IMX8MQ_EP], },
drivers/pci/controller/dwc/pci-imx6.c
2048
{ .compatible = "fsl,imx8mm-pcie-ep", .data = &drvdata[IMX8MM_EP], },
drivers/pci/controller/dwc/pci-imx6.c
2049
{ .compatible = "fsl,imx8mp-pcie-ep", .data = &drvdata[IMX8MP_EP], },
drivers/pci/controller/dwc/pci-imx6.c
2050
{ .compatible = "fsl,imx8q-pcie-ep", .data = &drvdata[IMX8Q_EP], },
drivers/pci/controller/dwc/pci-imx6.c
2051
{ .compatible = "fsl,imx95-pcie-ep", .data = &drvdata[IMX95_EP], },
drivers/pci/controller/dwc/pci-imx6.c
2088
if (imx_pcie->drvdata->dbi_length) {
drivers/pci/controller/dwc/pci-imx6.c
2089
dev->cfg_size = imx_pcie->drvdata->dbi_length;
drivers/pci/controller/dwc/pci-imx6.c
239
WARN_ON(imx_pcie->drvdata->variant != IMX8MQ &&
drivers/pci/controller/dwc/pci-imx6.c
240
imx_pcie->drvdata->variant != IMX8MQ_EP &&
drivers/pci/controller/dwc/pci-imx6.c
241
imx_pcie->drvdata->variant != IMX8MM &&
drivers/pci/controller/dwc/pci-imx6.c
242
imx_pcie->drvdata->variant != IMX8MM_EP &&
drivers/pci/controller/dwc/pci-imx6.c
243
imx_pcie->drvdata->variant != IMX8MP &&
drivers/pci/controller/dwc/pci-imx6.c
244
imx_pcie->drvdata->variant != IMX8MP_EP);
drivers/pci/controller/dwc/pci-imx6.c
282
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
285
if (drvdata->mode == DW_PCIE_EP_TYPE)
drivers/pci/controller/dwc/pci-imx6.c
293
if (!drvdata->mode_mask[0])
drivers/pci/controller/dwc/pci-imx6.c
297
if (!drvdata->mode_mask[id])
drivers/pci/controller/dwc/pci-imx6.c
300
mask = drvdata->mode_mask[id];
drivers/pci/controller/dwc/pci-imx6.c
303
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->mode_off[id], mask, val);
drivers/pci/controller/dwc/pci-imx6.c
525
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_IMX_PHY))
drivers/pci/controller/dwc/pci-imx6.c
574
if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_IMX_PHY))
drivers/pci/controller/dwc/pci-imx6.c
757
if (imx_pcie->drvdata->enable_ref_clk) {
drivers/pci/controller/dwc/pci-imx6.c
758
ret = imx_pcie->drvdata->enable_ref_clk(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
777
if (imx_pcie->drvdata->enable_ref_clk)
drivers/pci/controller/dwc/pci-imx6.c
778
imx_pcie->drvdata->enable_ref_clk(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
902
if (imx_pcie->drvdata->core_reset)
drivers/pci/controller/dwc/pci-imx6.c
903
imx_pcie->drvdata->core_reset(imx_pcie, true);
drivers/pci/controller/dwc/pci-imx6.c
913
if (imx_pcie->drvdata->core_reset)
drivers/pci/controller/dwc/pci-imx6.c
914
imx_pcie->drvdata->core_reset(imx_pcie, false);
drivers/pci/controller/dwc/pci-imx6.c
949
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
955
if (drvdata->ltssm_mask)
drivers/pci/controller/dwc/pci-imx6.c
956
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off, drvdata->ltssm_mask,
drivers/pci/controller/dwc/pci-imx6.c
957
drvdata->ltssm_mask);
drivers/pci/controller/dwc/pci-imx6.c
965
const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata;
drivers/pci/controller/dwc/pci-imx6.c
968
if (drvdata->ltssm_mask)
drivers/pci/controller/dwc/pci-imx6.c
969
regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off,
drivers/pci/controller/dwc/pci-imx6.c
970
drvdata->ltssm_mask, 0);
drivers/pci/controller/dwc/pci-imx6.c
983
if (!(imx_pcie->drvdata->flags &
drivers/pci/controller/dwc/pci-layerscape-ep.c
192
WARN_ON(func_no && !pcie->drvdata->func_offset);
drivers/pci/controller/dwc/pci-layerscape-ep.c
193
return pcie->drvdata->func_offset * func_no;
drivers/pci/controller/dwc/pci-layerscape-ep.c
248
pcie->drvdata = of_device_get_match_data(dev);
drivers/pci/controller/dwc/pci-layerscape-ep.c
251
pci->ops = pcie->drvdata->dw_pcie_ops;
drivers/pci/controller/dwc/pci-layerscape-ep.c
46
const struct ls_pcie_ep_drvdata *drvdata;
drivers/pci/controller/dwc/pci-layerscape.c
341
pcie->drvdata = of_device_get_match_data(dev);
drivers/pci/controller/dwc/pci-layerscape.c
345
pci->pp.ops = pcie->drvdata->ops;
drivers/pci/controller/dwc/pci-layerscape.c
354
pcie->pf_lut_base = pci->dbi_base + pcie->drvdata->pf_lut_off;
drivers/pci/controller/dwc/pci-layerscape.c
356
if (pcie->drvdata->scfg_support) {
drivers/pci/controller/dwc/pci-layerscape.c
381
if (!pcie->drvdata->pm_support)
drivers/pci/controller/dwc/pci-layerscape.c
392
if (!pcie->drvdata->pm_support)
drivers/pci/controller/dwc/pci-layerscape.c
395
ret = pcie->drvdata->exit_from_l2(&pcie->pci->pp);
drivers/pci/controller/dwc/pci-layerscape.c
65
const struct ls_pcie_drvdata *drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
595
static int dw_pcie_ptm_check_capability(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
597
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
604
static int dw_pcie_ptm_context_update_write(void *drvdata, u8 mode)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
606
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
625
static int dw_pcie_ptm_context_update_read(void *drvdata, u8 *mode)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
627
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
644
static int dw_pcie_ptm_context_valid_write(void *drvdata, bool valid)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
646
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
662
static int dw_pcie_ptm_context_valid_read(void *drvdata, bool *valid)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
664
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
673
static int dw_pcie_ptm_local_clock_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
675
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
688
static int dw_pcie_ptm_master_clock_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
690
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
703
static int dw_pcie_ptm_t1_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
705
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
718
static int dw_pcie_ptm_t2_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
720
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
733
static int dw_pcie_ptm_t3_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
735
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
748
static int dw_pcie_ptm_t4_read(void *drvdata, u64 *clock)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
750
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
763
static bool dw_pcie_ptm_context_update_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
765
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
770
static bool dw_pcie_ptm_context_valid_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
772
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
777
static bool dw_pcie_ptm_local_clock_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
783
static bool dw_pcie_ptm_master_clock_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
785
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
790
static bool dw_pcie_ptm_t1_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
792
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
797
static bool dw_pcie_ptm_t2_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
799
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
804
static bool dw_pcie_ptm_t3_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
806
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-designware-debugfs.c
811
static bool dw_pcie_ptm_t4_visible(void *drvdata)
drivers/pci/controller/dwc/pcie-designware-debugfs.c
813
struct dw_pcie *pci = drvdata;
drivers/pci/controller/dwc/pcie-rcar-gen4.c
137
if (rcar->drvdata->ltssm_control) {
drivers/pci/controller/dwc/pcie-rcar-gen4.c
138
ret = rcar->drvdata->ltssm_control(rcar, true);
drivers/pci/controller/dwc/pcie-rcar-gen4.c
153
if (changes && rcar->drvdata->mode == DW_PCIE_RC_TYPE)
drivers/pci/controller/dwc/pcie-rcar-gen4.c
169
if (rcar->drvdata->ltssm_control)
drivers/pci/controller/dwc/pcie-rcar-gen4.c
170
rcar->drvdata->ltssm_control(rcar, false);
drivers/pci/controller/dwc/pcie-rcar-gen4.c
198
if (rcar->drvdata->mode == DW_PCIE_RC_TYPE) {
drivers/pci/controller/dwc/pcie-rcar-gen4.c
200
} else if (rcar->drvdata->mode == DW_PCIE_EP_TYPE) {
drivers/pci/controller/dwc/pcie-rcar-gen4.c
229
if (rcar->drvdata->additional_common_init)
drivers/pci/controller/dwc/pcie-rcar-gen4.c
230
rcar->drvdata->additional_common_init(rcar);
drivers/pci/controller/dwc/pcie-rcar-gen4.c
497
rcar->drvdata = of_device_get_match_data(&rcar->pdev->dev);
drivers/pci/controller/dwc/pcie-rcar-gen4.c
498
if (!rcar->drvdata)
drivers/pci/controller/dwc/pcie-rcar-gen4.c
501
switch (rcar->drvdata->mode) {
drivers/pci/controller/dwc/pcie-rcar-gen4.c
542
switch (rcar->drvdata->mode) {
drivers/pci/controller/dwc/pcie-rcar-gen4.c
85
const struct rcar_gen4_pcie_drvdata *drvdata;
drivers/phy/apple/atc.c
2072
.drvdata = atcphy,
drivers/phy/apple/atc.c
2152
.drvdata = atcphy,
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
114
if (imx8_phy->drvdata->variant != IMX8MM) {
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
222
imx8_phy->drvdata = of_device_get_match_data(dev);
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
248
syscon_regmap_lookup_by_compatible(imx8_phy->drvdata->gpr);
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
258
if (imx8_phy->drvdata->variant == IMX8MP) {
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
70
const struct imx8_pcie_phy_drvdata *drvdata;
drivers/phy/freescale/phy-fsl-imx8m-pcie.c
80
switch (imx8_phy->drvdata->variant) {
drivers/phy/freescale/phy-fsl-imx8mq-usb.c
161
sw_desc.drvdata = imx_phy;
drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
525
if (idx < 0 || idx >= priv->drvdata->lane_num)
drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
547
priv->drvdata = of_device_get_match_data(dev);
drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
582
for (i = 0; i < priv->drvdata->lane_num; i++) {
drivers/phy/freescale/phy-fsl-imx8qm-hsio.c
95
const struct imx_hsio_drvdata *drvdata;
drivers/phy/phy-can-transceiver.c
164
const struct can_transceiver_data *drvdata;
drivers/phy/phy-can-transceiver.c
175
drvdata = match->data;
drivers/phy/phy-can-transceiver.c
176
if (drvdata->flags & CAN_TRANSCEIVER_DUAL_CH)
drivers/phy/phy-can-transceiver.c
211
if (drvdata->flags & CAN_TRANSCEIVER_STB_PRESENT) {
drivers/phy/phy-can-transceiver.c
219
if (drvdata->flags & CAN_TRANSCEIVER_EN_PRESENT) {
drivers/phy/phy-can-transceiver.c
227
if (drvdata->flags & CAN_TRANSCEIVER_SILENT_PRESENT) {
drivers/phy/phy-google-usb.c
257
sw_desc.drvdata = gphy;
drivers/phy/qualcomm/phy-qcom-qmp-combo.c
4556
sw_desc.drvdata = qmp;
drivers/phy/qualcomm/phy-qcom-qmp-combo.c
4569
mux_desc.drvdata = qmp;
drivers/phy/qualcomm/phy-qcom-qmp-usbc.c
1740
sw_desc.drvdata = qmp;
drivers/phy/rockchip/phy-rockchip-usbdp.c
1414
mux_desc.drvdata = udphy;
drivers/phy/rockchip/phy-rockchip-usbdp.c
689
sw_desc.drvdata = udphy;
drivers/phy/samsung/phy-exynos-dp-video.c
26
const struct exynos_dp_video_phy_drvdata *drvdata;
drivers/phy/samsung/phy-exynos-dp-video.c
34
return regmap_update_bits(state->regs, state->drvdata->phy_ctrl_offset,
drivers/phy/samsung/phy-exynos-dp-video.c
43
return regmap_update_bits(state->regs, state->drvdata->phy_ctrl_offset,
drivers/phy/samsung/phy-exynos-dp-video.c
94
state->drvdata = of_device_get_match_data(dev);
drivers/phy/samsung/phy-exynos5-usbdrd.c
1901
sw_desc.drvdata = phy_drd;
drivers/phy/samsung/phy-samsung-ufs.c
102
ufs_phy->drvdata->wait_for_cal) {
drivers/phy/samsung/phy-samsung-ufs.c
103
err = ufs_phy->drvdata->wait_for_cal(phy, i);
drivers/phy/samsung/phy-samsung-ufs.c
109
ufs_phy->drvdata->wait_for_cdr) {
drivers/phy/samsung/phy-samsung-ufs.c
110
err = ufs_phy->drvdata->wait_for_cdr(phy, i);
drivers/phy/samsung/phy-samsung-ufs.c
150
const struct samsung_ufs_phy_drvdata *drvdata = phy->drvdata;
drivers/phy/samsung/phy-samsung-ufs.c
151
int num_clks = drvdata->num_clks;
drivers/phy/samsung/phy-samsung-ufs.c
159
phy->clks[i].id = drvdata->clk_list[i];
drivers/phy/samsung/phy-samsung-ufs.c
181
ret = clk_bulk_prepare_enable(ss_phy->drvdata->num_clks, ss_phy->clks);
drivers/phy/samsung/phy-samsung-ufs.c
200
clk_bulk_disable_unprepare(ss_phy->drvdata->num_clks, ss_phy->clks);
drivers/phy/samsung/phy-samsung-ufs.c
245
if (ufs_phy->drvdata->wait_for_cdr) {
drivers/phy/samsung/phy-samsung-ufs.c
246
err = ufs_phy->drvdata->wait_for_cdr(phy, i);
drivers/phy/samsung/phy-samsung-ufs.c
287
const struct samsung_ufs_phy_drvdata *drvdata;
drivers/phy/samsung/phy-samsung-ufs.c
325
drvdata = match->data;
drivers/phy/samsung/phy-samsung-ufs.c
327
phy->drvdata = drvdata;
drivers/phy/samsung/phy-samsung-ufs.c
328
phy->cfgs = drvdata->cfgs;
drivers/phy/samsung/phy-samsung-ufs.c
329
phy->cfgs_hibern8 = drvdata->cfgs_hibern8;
drivers/phy/samsung/phy-samsung-ufs.c
330
memcpy(&phy->isol, &drvdata->isol, sizeof(phy->isol));
drivers/phy/samsung/phy-samsung-ufs.c
67
PHY_APB_ADDR(ufs_phy->drvdata->cdr_lock_status_offset),
drivers/phy/samsung/phy-samsung-ufs.h
131
const struct samsung_ufs_phy_drvdata *drvdata;
drivers/pinctrl/pinctrl-equilibrium.c
217
static int gpiolib_reg(struct eqbr_pinctrl_drv_data *drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
220
struct device *dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
226
for (i = 0; i < drvdata->nr_gpio_ctrls; i++) {
drivers/pinctrl/pinctrl-equilibrium.c
227
gctrl = drvdata->gpio_ctrls + i;
drivers/pinctrl/pinctrl-equilibrium.c
660
static int eqbr_build_functions(struct eqbr_pinctrl_drv_data *drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
662
struct device *dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
703
ret = pinmux_generic_add_pinfunction(drvdata->pctl_dev,
drivers/pinctrl/pinctrl-equilibrium.c
704
&funcs[i], drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
715
static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
717
struct device *dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
752
if (pin_id >= drvdata->pctl_desc.npins) {
drivers/pinctrl/pinctrl-equilibrium.c
766
err = pinctrl_generic_add_group(drvdata->pctl_dev,
drivers/pinctrl/pinctrl-equilibrium.c
780
static int pinctrl_reg(struct eqbr_pinctrl_drv_data *drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
789
dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
790
pctl_desc = &drvdata->pctl_desc;
drivers/pinctrl/pinctrl-equilibrium.c
796
raw_spin_lock_init(&drvdata->lock);
drivers/pinctrl/pinctrl-equilibrium.c
798
for (i = 0, nr_pins = 0; i < drvdata->nr_banks; i++)
drivers/pinctrl/pinctrl-equilibrium.c
799
nr_pins += drvdata->pin_banks[i].nr_pins;
drivers/pinctrl/pinctrl-equilibrium.c
818
ret = devm_pinctrl_register_and_init(dev, pctl_desc, drvdata,
drivers/pinctrl/pinctrl-equilibrium.c
819
&drvdata->pctl_dev);
drivers/pinctrl/pinctrl-equilibrium.c
823
ret = eqbr_build_groups(drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
829
ret = eqbr_build_functions(drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
835
return pinctrl_enable(drvdata->pctl_dev);
drivers/pinctrl/pinctrl-equilibrium.c
839
struct eqbr_pinctrl_drv_data *drvdata,
drivers/pinctrl/pinctrl-equilibrium.c
842
struct device *dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
846
bank->membase = drvdata->membase + id * PAD_REG_OFF;
drivers/pinctrl/pinctrl-equilibrium.c
868
static int pinbank_probe(struct eqbr_pinctrl_drv_data *drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
870
struct device *dev = drvdata->dev;
drivers/pinctrl/pinctrl-equilibrium.c
905
pinbank_init(np_gpio, drvdata, banks + i, i);
drivers/pinctrl/pinctrl-equilibrium.c
912
drvdata->pin_banks = banks;
drivers/pinctrl/pinctrl-equilibrium.c
913
drvdata->nr_banks = nr_gpio;
drivers/pinctrl/pinctrl-equilibrium.c
914
drvdata->gpio_ctrls = gctrls;
drivers/pinctrl/pinctrl-equilibrium.c
915
drvdata->nr_gpio_ctrls = nr_gpio;
drivers/pinctrl/pinctrl-equilibrium.c
922
struct eqbr_pinctrl_drv_data *drvdata;
drivers/pinctrl/pinctrl-equilibrium.c
926
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/pinctrl/pinctrl-equilibrium.c
927
if (!drvdata)
drivers/pinctrl/pinctrl-equilibrium.c
930
drvdata->dev = dev;
drivers/pinctrl/pinctrl-equilibrium.c
932
drvdata->membase = devm_platform_ioremap_resource(pdev, 0);
drivers/pinctrl/pinctrl-equilibrium.c
933
if (IS_ERR(drvdata->membase))
drivers/pinctrl/pinctrl-equilibrium.c
934
return PTR_ERR(drvdata->membase);
drivers/pinctrl/pinctrl-equilibrium.c
936
ret = pinbank_probe(drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
940
ret = pinctrl_reg(drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
944
ret = gpiolib_reg(drvdata);
drivers/pinctrl/pinctrl-equilibrium.c
948
platform_set_drvdata(pdev, drvdata);
drivers/pinctrl/pinctrl-rockchip.c
1125
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1149
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1239
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1276
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1413
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1445
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1478
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1508
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1539
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1572
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1602
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1639
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1678
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1712
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1732
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1750
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1772
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1809
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1845
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1877
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1896
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1915
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1934
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1954
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
1987
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2021
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2053
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2085
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2170
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2256
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2340
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2376
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2413
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2449
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2497
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2546
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2592
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2625
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2663
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2708
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2754
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2896
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2921
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2947
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
2976
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3055
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3212
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3273
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3362
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3385
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3405
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
3439
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.c
4040
bank->drvdata = d;
drivers/pinctrl/pinctrl-rockchip.c
778
struct rockchip_pinctrl *info = bank->drvdata;
drivers/pinctrl/pinctrl-rockchip.h
338
struct rockchip_pinctrl *drvdata;
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
47
static void s5pv210_pud_value_init(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
49
unsigned int *pud_val = drvdata->pud_val;
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
56
static void s5pv210_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
58
void __iomem *clk_base = (void __iomem *)drvdata->retention_ctrl->priv;
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
68
s5pv210_retention_init(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
75
ctrl = devm_kzalloc(drvdata->dev, sizeof(*ctrl), GFP_KERNEL);
drivers/pinctrl/samsung/pinctrl-exynos.c
101
if (clk_enable(bank->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
1057
static void exynos_retention_enable(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-exynos.c
1059
if (drvdata->retention_ctrl->refcnt)
drivers/pinctrl/samsung/pinctrl-exynos.c
1060
atomic_inc(drvdata->retention_ctrl->refcnt);
drivers/pinctrl/samsung/pinctrl-exynos.c
1063
static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-exynos.c
1065
struct samsung_retention_ctrl *ctrl = drvdata->retention_ctrl;
drivers/pinctrl/samsung/pinctrl-exynos.c
1077
exynos_retention_init(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos.c
1084
ctrl = devm_kzalloc(drvdata->dev, sizeof(*ctrl), GFP_KERNEL);
drivers/pinctrl/samsung/pinctrl-exynos.c
109
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
137
if (clk_enable(bank->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
151
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
195
ret = clk_enable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
207
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
216
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-exynos.c
245
ret = clk_enable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
262
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
278
if (clk_enable(bank->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
294
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
345
if (clk_enable(bank->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
356
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
402
void __iomem *reg = bank->drvdata->virt_base + off;
drivers/pinctrl/samsung/pinctrl-exynos.c
45
void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos.c
480
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-exynos.c
499
gs101_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos.c
504
if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
drivers/pinctrl/samsung/pinctrl-exynos.c
505
dev_warn(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-exynos.c
510
pmu_regs = drvdata->retention_ctrl->priv;
drivers/pinctrl/samsung/pinctrl-exynos.c
512
dev_dbg(drvdata->dev, "Setting external wakeup interrupt mask:\n");
drivers/pinctrl/samsung/pinctrl-exynos.c
515
dev_dbg(drvdata->dev, "\tWAKEUP_MASK%d[0x%X] value[0x%X]\n",
drivers/pinctrl/samsung/pinctrl-exynos.c
540
exynos_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos.c
545
if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
drivers/pinctrl/samsung/pinctrl-exynos.c
546
dev_warn(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-exynos.c
551
pmu_regs = drvdata->retention_ctrl->priv;
drivers/pinctrl/samsung/pinctrl-exynos.c
552
dev_info(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-exynos.c
561
s5pv210_pinctrl_set_eint_wakeup_mask(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-exynos.c
567
if (!drvdata->retention_ctrl || !drvdata->retention_ctrl->priv) {
drivers/pinctrl/samsung/pinctrl-exynos.c
568
dev_warn(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-exynos.c
574
clk_base = (void __iomem *) drvdata->retention_ctrl->priv;
drivers/pinctrl/samsung/pinctrl-exynos.c
72
if (clk_enable(bank->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
739
if (clk_enable(b->drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-exynos.c
756
clk_disable(eintd->banks[0]->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
86
clk_disable(bank->drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-exynos.c
877
irq_chip->set_eint_wakeup_mask(bank->drvdata, irq_chip);
drivers/pinctrl/samsung/pinctrl-exynos.h
280
exynos_retention_init(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
206
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
227
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
262
static void s3c64xx_pud_value_init(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
264
unsigned int *pud_val = drvdata->pud_val;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
319
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
345
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
355
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
422
struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
432
svc = readl(drvdata->virt_base + SERVICE_REG);
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
501
data->drvdata = d;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
525
struct samsung_pinctrl_drv_data *d = ddata->bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
550
struct samsung_pinctrl_drv_data *d = ddata->bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
561
struct samsung_pinctrl_drv_data *d = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
609
struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
614
pend = readl(drvdata->virt_base + EINT0PEND_REG);
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
615
mask = readl(drvdata->virt_base + EINT0MASK_REG);
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
721
data->drvdata = d;
drivers/pinctrl/samsung/pinctrl-samsung.c
1033
struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
1040
value = drvdata->pud_val[PUD_PULL_DISABLE];
drivers/pinctrl/samsung/pinctrl-samsung.c
1043
value = drvdata->pud_val[PUD_PULL_DOWN];
drivers/pinctrl/samsung/pinctrl-samsung.c
1046
value = drvdata->pud_val[PUD_PULL_UP];
drivers/pinctrl/samsung/pinctrl-samsung.c
1052
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1054
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
1062
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1082
struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
1084
struct samsung_pin_bank *bank = drvdata->pin_banks;
drivers/pinctrl/samsung/pinctrl-samsung.c
1089
for (i = 0; i < drvdata->nr_banks; ++i, ++bank) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1242
bank->drvdata = d;
drivers/pinctrl/samsung/pinctrl-samsung.c
1263
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
1268
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/pinctrl/samsung/pinctrl-samsung.c
1269
if (!drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
1272
ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev);
drivers/pinctrl/samsung/pinctrl-samsung.c
1277
drvdata->dev = dev;
drivers/pinctrl/samsung/pinctrl-samsung.c
1283
drvdata->irq = ret;
drivers/pinctrl/samsung/pinctrl-samsung.c
1286
drvdata->retention_ctrl = ctrl->retention_data->init(drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
1288
if (IS_ERR(drvdata->retention_ctrl)) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1289
ret = PTR_ERR(drvdata->retention_ctrl);
drivers/pinctrl/samsung/pinctrl-samsung.c
1294
drvdata->pclk = devm_clk_get_optional_prepared(dev, "pclk");
drivers/pinctrl/samsung/pinctrl-samsung.c
1295
if (IS_ERR(drvdata->pclk)) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1296
ret = PTR_ERR(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1300
ret = samsung_pinctrl_register(pdev, drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1305
ctrl->eint_gpio_init(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1307
ctrl->eint_wkup_init(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1310
ctrl->pud_value_init(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1312
samsung_pud_value_init(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1314
ret = samsung_gpiolib_register(pdev, drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1318
ret = pinctrl_enable(drvdata->pctl_dev);
drivers/pinctrl/samsung/pinctrl-samsung.c
1322
platform_set_drvdata(pdev, drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1327
samsung_pinctrl_unregister(pdev, drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1329
samsung_banks_node_put(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1340
struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev);
drivers/pinctrl/samsung/pinctrl-samsung.c
1344
i = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1346
dev_err(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-samsung.c
1351
for (i = 0; i < drvdata->nr_banks; i++) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1352
bank = &drvdata->pin_banks[i];
drivers/pinctrl/samsung/pinctrl-samsung.c
1380
for (i = 0; i < drvdata->nr_banks; i++) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1381
bank = &drvdata->pin_banks[i];
drivers/pinctrl/samsung/pinctrl-samsung.c
1382
if (drvdata->suspend)
drivers/pinctrl/samsung/pinctrl-samsung.c
1383
drvdata->suspend(bank);
drivers/pinctrl/samsung/pinctrl-samsung.c
1386
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1388
if (drvdata->retention_ctrl && drvdata->retention_ctrl->enable)
drivers/pinctrl/samsung/pinctrl-samsung.c
1389
drvdata->retention_ctrl->enable(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
1404
struct samsung_pinctrl_drv_data *drvdata = dev_get_drvdata(dev);
drivers/pinctrl/samsung/pinctrl-samsung.c
1413
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1415
dev_err(drvdata->dev,
drivers/pinctrl/samsung/pinctrl-samsung.c
1420
for (i = 0; i < drvdata->nr_banks; i++) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1421
bank = &drvdata->pin_banks[i];
drivers/pinctrl/samsung/pinctrl-samsung.c
1422
if (drvdata->resume)
drivers/pinctrl/samsung/pinctrl-samsung.c
1423
drvdata->resume(bank);
drivers/pinctrl/samsung/pinctrl-samsung.c
1426
for (i = 0; i < drvdata->nr_banks; i++) {
drivers/pinctrl/samsung/pinctrl-samsung.c
1427
bank = &drvdata->pin_banks[i];
drivers/pinctrl/samsung/pinctrl-samsung.c
1457
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
1459
if (drvdata->retention_ctrl && drvdata->retention_ctrl->disable)
drivers/pinctrl/samsung/pinctrl-samsung.c
1460
drvdata->retention_ctrl->disable(drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
172
static int samsung_dt_subnode_to_map(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
252
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
256
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
263
return samsung_dt_subnode_to_map(drvdata, pctldev->dev,
drivers/pinctrl/samsung/pinctrl-samsung.c
269
ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map,
drivers/pinctrl/samsung/pinctrl-samsung.c
321
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
323
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
324
return drvdata->nr_functions;
drivers/pinctrl/samsung/pinctrl-samsung.c
331
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
333
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
334
return drvdata->pmx_functions[selector].name;
drivers/pinctrl/samsung/pinctrl-samsung.c
342
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
344
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
345
*groups = drvdata->pmx_functions[selector].groups;
drivers/pinctrl/samsung/pinctrl-samsung.c
346
*num_groups = drvdata->pmx_functions[selector].num_groups;
drivers/pinctrl/samsung/pinctrl-samsung.c
354
static void pin_to_reg_bank(struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
360
b = drvdata->pin_banks;
drivers/pinctrl/samsung/pinctrl-samsung.c
376
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
386
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
387
func = &drvdata->pmx_functions[selector];
drivers/pinctrl/samsung/pinctrl-samsung.c
388
grp = &drvdata->pin_groups[group];
drivers/pinctrl/samsung/pinctrl-samsung.c
390
pin_to_reg_bank(drvdata, grp->pins[0], &reg, &pin_offset, &bank);
drivers/pinctrl/samsung/pinctrl-samsung.c
400
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
415
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
440
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
450
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
451
pin_to_reg_bank(drvdata, pin, &reg_base, &pin_offset, &bank);
drivers/pinctrl/samsung/pinctrl-samsung.c
460
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
462
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
485
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
517
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
521
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
522
pins = drvdata->pin_groups[group].pins;
drivers/pinctrl/samsung/pinctrl-samsung.c
524
for (cnt = 0; cnt < drvdata->pin_groups[group].num_pins; cnt++)
drivers/pinctrl/samsung/pinctrl-samsung.c
534
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
537
drvdata = pinctrl_dev_get_drvdata(pctldev);
drivers/pinctrl/samsung/pinctrl-samsung.c
538
pins = drvdata->pin_groups[group].pins;
drivers/pinctrl/samsung/pinctrl-samsung.c
577
struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
581
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
583
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
591
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
603
struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
608
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
610
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
618
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
664
struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
668
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
670
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
678
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
688
struct samsung_pinctrl_drv_data *drvdata = bank->drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.c
692
ret = clk_enable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
694
dev_err(drvdata->dev, "failed to enable clock\n");
drivers/pinctrl/samsung/pinctrl-samsung.c
703
clk_disable(drvdata->pclk);
drivers/pinctrl/samsung/pinctrl-samsung.c
735
pinctrl_add_gpio_range(bank->drvdata->pctl_dev, &bank->grange);
drivers/pinctrl/samsung/pinctrl-samsung.c
742
struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
745
struct pinctrl_desc *ctrldesc = &drvdata->pctl;
drivers/pinctrl/samsung/pinctrl-samsung.c
768
struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
812
struct samsung_pinctrl_drv_data *drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
857
ret = samsung_pinctrl_create_function(dev, drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
869
ret = samsung_pinctrl_create_function(dev, drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
891
struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
898
groups = samsung_pinctrl_create_groups(dev, drvdata, &grp_cnt);
drivers/pinctrl/samsung/pinctrl-samsung.c
904
functions = samsung_pinctrl_create_functions(dev, drvdata, &func_cnt);
drivers/pinctrl/samsung/pinctrl-samsung.c
910
drvdata->pin_groups = groups;
drivers/pinctrl/samsung/pinctrl-samsung.c
911
drvdata->nr_groups = grp_cnt;
drivers/pinctrl/samsung/pinctrl-samsung.c
912
drvdata->pmx_functions = functions;
drivers/pinctrl/samsung/pinctrl-samsung.c
913
drvdata->nr_functions = func_cnt;
drivers/pinctrl/samsung/pinctrl-samsung.c
920
struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
922
struct pinctrl_desc *ctrldesc = &drvdata->pctl;
drivers/pinctrl/samsung/pinctrl-samsung.c
935
drvdata->nr_pins, sizeof(*pindesc),
drivers/pinctrl/samsung/pinctrl-samsung.c
940
ctrldesc->npins = drvdata->nr_pins;
drivers/pinctrl/samsung/pinctrl-samsung.c
952
drvdata->nr_pins),
drivers/pinctrl/samsung/pinctrl-samsung.c
958
for (bank = 0; bank < drvdata->nr_banks; bank++) {
drivers/pinctrl/samsung/pinctrl-samsung.c
959
pin_bank = &drvdata->pin_banks[bank];
drivers/pinctrl/samsung/pinctrl-samsung.c
969
ret = samsung_pinctrl_parse_dt(pdev, drvdata);
drivers/pinctrl/samsung/pinctrl-samsung.c
973
ret = devm_pinctrl_register_and_init(&pdev->dev, ctrldesc, drvdata,
drivers/pinctrl/samsung/pinctrl-samsung.c
974
&drvdata->pctl_dev);
drivers/pinctrl/samsung/pinctrl-samsung.c
985
struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
987
struct samsung_pin_bank *bank = drvdata->pin_banks;
drivers/pinctrl/samsung/pinctrl-samsung.c
990
for (i = 0; i < drvdata->nr_banks; ++i, ++bank)
drivers/pinctrl/samsung/pinctrl-samsung.c
991
pinctrl_remove_gpio_range(drvdata->pctl_dev, &bank->grange);
drivers/pinctrl/samsung/pinctrl-samsung.c
996
static void samsung_pud_value_init(struct samsung_pinctrl_drv_data *drvdata)
drivers/pinctrl/samsung/pinctrl-samsung.c
998
unsigned int *pud_val = drvdata->pud_val;
drivers/pinctrl/samsung/pinctrl-samsung.h
218
struct samsung_pinctrl_drv_data *drvdata;
drivers/pinctrl/samsung/pinctrl-samsung.h
291
void (*pud_value_init)(struct samsung_pinctrl_drv_data *drvdata);
drivers/platform/chrome/cros_kbd_led_backlight.c
194
const struct keyboard_led_drvdata *drvdata;
drivers/platform/chrome/cros_kbd_led_backlight.c
199
drvdata = &keyboard_led_drvdata_ec_pwm_mfd;
drivers/platform/chrome/cros_kbd_led_backlight.c
201
drvdata = device_get_match_data(&pdev->dev);
drivers/platform/chrome/cros_kbd_led_backlight.c
202
if (!drvdata)
drivers/platform/chrome/cros_kbd_led_backlight.c
210
if (drvdata->init) {
drivers/platform/chrome/cros_kbd_led_backlight.c
211
err = drvdata->init(pdev);
drivers/platform/chrome/cros_kbd_led_backlight.c
218
keyboard_led->cdev.max_brightness = drvdata->max_brightness;
drivers/platform/chrome/cros_kbd_led_backlight.c
219
keyboard_led->cdev.brightness_set = drvdata->brightness_set;
drivers/platform/chrome/cros_kbd_led_backlight.c
220
keyboard_led->cdev.brightness_set_blocking = drvdata->brightness_set_blocking;
drivers/platform/chrome/cros_kbd_led_backlight.c
221
keyboard_led->cdev.brightness_get = drvdata->brightness_get;
drivers/platform/chrome/cros_typec_switch.c
185
.drvdata = port,
drivers/platform/chrome/cros_typec_switch.c
199
.drvdata = port,
drivers/platform/surface/surface_platform_profile.c
204
static int ssam_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/acer-wmi.c
2173
acer_predator_v4_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/amd/pmf/sps.c
396
static int amd_pmf_hidden_choices(void *drvdata, unsigned long *choices)
drivers/platform/x86/amd/pmf/sps.c
404
static int amd_pmf_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/asus-wmi.c
4156
static int asus_wmi_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/ayaneo-ec.c
146
static umode_t ayaneo_ec_hwmon_is_visible(const void *drvdata,
drivers/platform/x86/dasharo-acpi.c
182
static umode_t dasharo_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/dasharo-acpi.c
185
const struct dasharo_data *data = drvdata;
drivers/platform/x86/dell/alienware-wmi-wmax.c
1296
static int awcc_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/dell/alienware-wmi-wmax.c
1299
struct awcc_priv *priv = drvdata;
drivers/platform/x86/dell/alienware-wmi-wmax.c
821
static umode_t awcc_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/dell/alienware-wmi-wmax.c
824
const struct awcc_priv *priv = drvdata;
drivers/platform/x86/dell/dell-pc.c
229
static int thermal_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/dell/dell-wmi-ddv.c
311
static umode_t dell_wmi_ddv_is_visible(const void *drvdata, enum hwmon_sensor_types type, u32 attr,
drivers/platform/x86/dell/dell-wmi-ddv.c
887
void *drvdata, enum power_supply_property psp,
drivers/platform/x86/dell/dell-wmi-ddv.c
890
struct dell_wmi_ddv_data *data = drvdata;
drivers/platform/x86/hp/hp-wmi.c
1964
static int hp_wmi_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/inspur_platform_profile.c
167
static int inspur_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/lenovo/ideapad-laptop.c
1087
static int dytc_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/lenovo/thinkpad_acpi.c
10603
static int dytc_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/lenovo/wmi-gamezone.c
326
static int lwmi_gz_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/lenovo/wmi-gamezone.c
328
struct lwmi_gz_priv *priv = drvdata;
drivers/platform/x86/lenovo/wmi-other.c
207
static umode_t lwmi_om_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/lenovo/wmi-other.c
210
struct lwmi_om_priv *priv = (struct lwmi_om_priv *)drvdata;
drivers/platform/x86/msi-wmi-platform.c
179
static umode_t msi_wmi_platform_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/msi-wmi-platform.c
295
static void msi_wmi_platform_debugfs_add(struct msi_wmi_platform_data *drvdata, struct dentry *dir,
drivers/platform/x86/msi-wmi-platform.c
301
data = devm_kzalloc(&drvdata->wdev->dev, sizeof(*data), GFP_KERNEL);
drivers/platform/x86/msi-wmi-platform.c
305
data->data = drvdata;
drivers/platform/x86/msi-wmi-platform.c
316
devm_kfree(&drvdata->wdev->dev, data);
drivers/platform/x86/oxpec.c
692
static umode_t oxp_ec_hwmon_is_visible(const void *drvdata,
drivers/platform/x86/portwell-ec.c
272
static umode_t pwec_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/portwell-ec.c
275
const struct pwec_board_info *info = drvdata;
drivers/platform/x86/portwell-ec.c
360
void *drvdata = dev_get_platdata(&pdev->dev);
drivers/platform/x86/portwell-ec.c
381
"portwell_ec", drvdata, &pwec_chip_info, NULL);
drivers/platform/x86/samsung-galaxybook.c
648
static int galaxybook_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/platform/x86/samsung-galaxybook.c
650
struct samsung_galaxybook *galaxybook = drvdata;
drivers/platform/x86/system76_acpi.c
497
static umode_t thermal_is_visible(const void *drvdata, enum hwmon_sensor_types type,
drivers/platform/x86/system76_acpi.c
500
const struct system76_data *data = drvdata;
drivers/platform/x86/toshiba_acpi.c
3017
static umode_t toshiba_acpi_hwmon_is_visible(const void *drvdata,
drivers/platform/x86/uniwill/uniwill-acpi.c
1197
void *drvdata, enum power_supply_property psp,
drivers/platform/x86/uniwill/uniwill-acpi.c
1200
struct uniwill_data *data = drvdata;
drivers/platform/x86/uniwill/uniwill-acpi.c
1250
void *drvdata, enum power_supply_property psp,
drivers/platform/x86/uniwill/uniwill-acpi.c
1253
struct uniwill_data *data = drvdata;
drivers/platform/x86/uniwill/uniwill-acpi.c
1268
const struct power_supply_ext *ext, void *drvdata,
drivers/power/sequencing/core.c
491
dev_set_drvdata(&pwrseq->dev, config->drvdata);
drivers/power/sequencing/pwrseq-pcie-m2.c
136
config.drvdata = ctx;
drivers/power/sequencing/pwrseq-qcom-wcn.c
535
config.drvdata = ctx;
drivers/power/sequencing/pwrseq-thead-gpu.c
201
config.drvdata = ctx;
drivers/regulator/cros-ec-regulator.c
161
struct cros_ec_regulator_data *drvdata;
drivers/regulator/cros-ec-regulator.c
167
drvdata = devm_kzalloc(
drivers/regulator/cros-ec-regulator.c
169
if (!drvdata)
drivers/regulator/cros-ec-regulator.c
172
drvdata->ec_dev = dev_get_drvdata(dev->parent);
drivers/regulator/cros-ec-regulator.c
173
desc = &drvdata->desc;
drivers/regulator/cros-ec-regulator.c
179
ret = of_property_read_u32(np, "reg", &drvdata->index);
drivers/regulator/cros-ec-regulator.c
187
ret = cros_ec_regulator_init_info(dev, drvdata);
drivers/regulator/cros-ec-regulator.c
193
cfg.driver_data = drvdata;
drivers/regulator/cros-ec-regulator.c
196
drvdata->dev = devm_regulator_register(dev, &drvdata->desc, &cfg);
drivers/regulator/cros-ec-regulator.c
197
if (IS_ERR(drvdata->dev)) {
drivers/regulator/cros-ec-regulator.c
198
ret = PTR_ERR(drvdata->dev);
drivers/regulator/cros-ec-regulator.c
203
platform_set_drvdata(pdev, drvdata);
drivers/regulator/fixed.c
226
struct fixed_voltage_data *drvdata;
drivers/regulator/fixed.c
232
drvdata = devm_kzalloc(&pdev->dev, sizeof(struct fixed_voltage_data),
drivers/regulator/fixed.c
234
if (!drvdata)
drivers/regulator/fixed.c
239
&drvdata->desc);
drivers/regulator/fixed.c
249
drvdata->desc.name = devm_kstrdup(&pdev->dev,
drivers/regulator/fixed.c
252
if (drvdata->desc.name == NULL) {
drivers/regulator/fixed.c
256
drvdata->desc.type = REGULATOR_VOLTAGE;
drivers/regulator/fixed.c
257
drvdata->desc.owner = THIS_MODULE;
drivers/regulator/fixed.c
260
drvdata->desc.ops = &fixed_voltage_clkenabled_ops;
drivers/regulator/fixed.c
262
drvdata->enable_clock = devm_clk_get(dev, NULL);
drivers/regulator/fixed.c
263
if (IS_ERR(drvdata->enable_clock)) {
drivers/regulator/fixed.c
265
return PTR_ERR(drvdata->enable_clock);
drivers/regulator/fixed.c
268
drvdata->desc.ops = &fixed_voltage_domain_ops;
drivers/regulator/fixed.c
270
drvdata->performance_state = of_get_required_opp_performance_state(dev->of_node, 0);
drivers/regulator/fixed.c
271
if (drvdata->performance_state < 0) {
drivers/regulator/fixed.c
273
return drvdata->performance_state;
drivers/regulator/fixed.c
276
drvdata->desc.ops = &fixed_voltage_ops;
drivers/regulator/fixed.c
279
drvdata->desc.enable_time = config->startup_delay;
drivers/regulator/fixed.c
280
drvdata->desc.off_on_delay = config->off_on_delay;
drivers/regulator/fixed.c
283
drvdata->desc.supply_name = devm_kstrdup(&pdev->dev,
drivers/regulator/fixed.c
286
if (!drvdata->desc.supply_name)
drivers/regulator/fixed.c
291
drvdata->desc.n_voltages = 1;
drivers/regulator/fixed.c
293
drvdata->desc.fixed_uV = config->microvolts;
drivers/regulator/fixed.c
328
cfg.driver_data = drvdata;
drivers/regulator/fixed.c
331
drvdata->dev = devm_regulator_register(&pdev->dev, &drvdata->desc,
drivers/regulator/fixed.c
333
if (IS_ERR(drvdata->dev))
drivers/regulator/fixed.c
334
return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->dev),
drivers/regulator/fixed.c
336
PTR_ERR(drvdata->dev));
drivers/regulator/fixed.c
338
platform_set_drvdata(pdev, drvdata);
drivers/regulator/fixed.c
340
dev_dbg(&pdev->dev, "%s supplying %duV\n", drvdata->desc.name,
drivers/regulator/fixed.c
341
drvdata->desc.fixed_uV);
drivers/regulator/fixed.c
343
ret = reg_fixed_get_irqs(dev, drvdata);
drivers/regulator/gpio-regulator.c
239
struct gpio_regulator_data *drvdata;
drivers/regulator/gpio-regulator.c
245
drvdata = devm_kzalloc(dev, sizeof(struct gpio_regulator_data),
drivers/regulator/gpio-regulator.c
247
if (drvdata == NULL)
drivers/regulator/gpio-regulator.c
252
&drvdata->desc);
drivers/regulator/gpio-regulator.c
257
drvdata->desc.name = devm_kstrdup(dev, config->supply_name, GFP_KERNEL);
drivers/regulator/gpio-regulator.c
258
if (drvdata->desc.name == NULL) {
drivers/regulator/gpio-regulator.c
263
drvdata->gpiods = devm_kcalloc(dev, config->ngpios,
drivers/regulator/gpio-regulator.c
265
if (!drvdata->gpiods)
drivers/regulator/gpio-regulator.c
269
drvdata->desc.supply_name = devm_kstrdup(&pdev->dev,
drivers/regulator/gpio-regulator.c
272
if (!drvdata->desc.supply_name) {
drivers/regulator/gpio-regulator.c
280
drvdata->gpiods[i] = devm_gpiod_get_index(dev,
drivers/regulator/gpio-regulator.c
284
if (IS_ERR(drvdata->gpiods[i]))
drivers/regulator/gpio-regulator.c
285
return PTR_ERR(drvdata->gpiods[i]);
drivers/regulator/gpio-regulator.c
287
gpiod_set_consumer_name(drvdata->gpiods[i], drvdata->desc.name);
drivers/regulator/gpio-regulator.c
289
drvdata->nr_gpios = config->ngpios;
drivers/regulator/gpio-regulator.c
291
drvdata->states = devm_kmemdup(dev,
drivers/regulator/gpio-regulator.c
296
if (drvdata->states == NULL) {
drivers/regulator/gpio-regulator.c
300
drvdata->nr_states = config->nr_states;
drivers/regulator/gpio-regulator.c
302
drvdata->desc.owner = THIS_MODULE;
drivers/regulator/gpio-regulator.c
303
drvdata->desc.enable_time = config->startup_delay;
drivers/regulator/gpio-regulator.c
308
drvdata->desc.type = REGULATOR_VOLTAGE;
drivers/regulator/gpio-regulator.c
309
drvdata->desc.ops = &gpio_regulator_voltage_ops;
drivers/regulator/gpio-regulator.c
310
drvdata->desc.n_voltages = config->nr_states;
drivers/regulator/gpio-regulator.c
313
drvdata->desc.type = REGULATOR_CURRENT;
drivers/regulator/gpio-regulator.c
314
drvdata->desc.ops = &gpio_regulator_current_ops;
drivers/regulator/gpio-regulator.c
323
for (ptr = 0; ptr < drvdata->nr_gpios; ptr++) {
drivers/regulator/gpio-regulator.c
327
drvdata->state = state;
drivers/regulator/gpio-regulator.c
331
cfg.driver_data = drvdata;
drivers/regulator/gpio-regulator.c
347
rdev = devm_regulator_register(dev, &drvdata->desc, &cfg);
drivers/regulator/gpio-regulator.c
352
platform_set_drvdata(pdev, drvdata);
drivers/regulator/pf0900-regulator.c
262
const struct pf0900_drvdata *drvdata;
drivers/regulator/pf0900-regulator.c
830
const struct pf0900_drvdata *drvdata = NULL;
drivers/regulator/pf0900-regulator.c
844
drvdata = device_get_match_data(&i2c->dev);
drivers/regulator/pf0900-regulator.c
845
if (!drvdata)
drivers/regulator/pf0900-regulator.c
848
regulator_desc = drvdata->desc;
drivers/regulator/pf0900-regulator.c
849
pf0900->drvdata = drvdata;
drivers/regulator/pf0900-regulator.c
875
for (i = 0; i < drvdata->rcnt; i++) {
drivers/regulator/pwm-regulator.c
107
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
112
return drvdata->duty_cycle_table[selector].uV;
drivers/regulator/pwm-regulator.c
117
struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev);
drivers/regulator/pwm-regulator.c
119
gpiod_set_value_cansleep(drvdata->enb_gpio, 1);
drivers/regulator/pwm-regulator.c
121
return pwm_enable(drvdata->pwm);
drivers/regulator/pwm-regulator.c
126
struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev);
drivers/regulator/pwm-regulator.c
128
pwm_disable(drvdata->pwm);
drivers/regulator/pwm-regulator.c
130
gpiod_set_value_cansleep(drvdata->enb_gpio, 0);
drivers/regulator/pwm-regulator.c
137
struct pwm_regulator_data *drvdata = rdev_get_drvdata(dev);
drivers/regulator/pwm-regulator.c
139
if (drvdata->enb_gpio && !gpiod_get_value_cansleep(drvdata->enb_gpio))
drivers/regulator/pwm-regulator.c
142
return pwm_is_enabled(drvdata->pwm);
drivers/regulator/pwm-regulator.c
147
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
148
unsigned int min_uV_duty = drvdata->continuous.min_uV_dutycycle;
drivers/regulator/pwm-regulator.c
149
unsigned int max_uV_duty = drvdata->continuous.max_uV_dutycycle;
drivers/regulator/pwm-regulator.c
150
unsigned int duty_unit = drvdata->continuous.dutycycle_unit;
drivers/regulator/pwm-regulator.c
158
pwm_get_state(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
194
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
195
unsigned int min_uV_duty = drvdata->continuous.min_uV_dutycycle;
drivers/regulator/pwm-regulator.c
196
unsigned int max_uV_duty = drvdata->continuous.max_uV_dutycycle;
drivers/regulator/pwm-regulator.c
197
unsigned int duty_unit = drvdata->continuous.dutycycle_unit;
drivers/regulator/pwm-regulator.c
206
pwm_init_state(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
229
ret = pwm_apply_might_sleep(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
264
struct pwm_regulator_data *drvdata)
drivers/regulator/pwm-regulator.c
290
drvdata->state = -ENOTRECOVERABLE;
drivers/regulator/pwm-regulator.c
291
drvdata->duty_cycle_table = duty_cycle_table;
drivers/regulator/pwm-regulator.c
292
drvdata->desc.ops = &pwm_regulator_voltage_table_ops;
drivers/regulator/pwm-regulator.c
293
drvdata->desc.n_voltages = length / sizeof(*duty_cycle_table);
drivers/regulator/pwm-regulator.c
299
struct pwm_regulator_data *drvdata)
drivers/regulator/pwm-regulator.c
304
drvdata->desc.ops = &pwm_regulator_voltage_continuous_ops;
drivers/regulator/pwm-regulator.c
305
drvdata->desc.continuous_voltage_range = true;
drivers/regulator/pwm-regulator.c
317
drvdata->continuous.dutycycle_unit = dutycycle_unit;
drivers/regulator/pwm-regulator.c
318
drvdata->continuous.min_uV_dutycycle = dutycycle_range[0];
drivers/regulator/pwm-regulator.c
319
drvdata->continuous.max_uV_dutycycle = dutycycle_range[1];
drivers/regulator/pwm-regulator.c
325
struct pwm_regulator_data *drvdata,
drivers/regulator/pwm-regulator.c
330
if (!init_data->constraints.boot_on || drvdata->enb_gpio)
drivers/regulator/pwm-regulator.c
333
pwm_get_state(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
347
return pwm_apply_might_sleep(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
353
struct pwm_regulator_data *drvdata;
drivers/regulator/pwm-regulator.c
364
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/regulator/pwm-regulator.c
365
if (!drvdata)
drivers/regulator/pwm-regulator.c
368
memcpy(&drvdata->desc, &pwm_regulator_desc, sizeof(drvdata->desc));
drivers/regulator/pwm-regulator.c
371
ret = pwm_regulator_init_table(pdev, drvdata);
drivers/regulator/pwm-regulator.c
373
ret = pwm_regulator_init_continuous(pdev, drvdata);
drivers/regulator/pwm-regulator.c
378
&drvdata->desc);
drivers/regulator/pwm-regulator.c
384
config.driver_data = drvdata;
drivers/regulator/pwm-regulator.c
387
drvdata->pwm = devm_pwm_get(&pdev->dev, NULL);
drivers/regulator/pwm-regulator.c
388
if (IS_ERR(drvdata->pwm))
drivers/regulator/pwm-regulator.c
389
return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->pwm),
drivers/regulator/pwm-regulator.c
396
drvdata->enb_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
drivers/regulator/pwm-regulator.c
398
if (IS_ERR(drvdata->enb_gpio)) {
drivers/regulator/pwm-regulator.c
399
ret = PTR_ERR(drvdata->enb_gpio);
drivers/regulator/pwm-regulator.c
403
ret = pwm_adjust_config(drvdata->pwm);
drivers/regulator/pwm-regulator.c
407
ret = pwm_regulator_init_boot_on(pdev, drvdata, init_data);
drivers/regulator/pwm-regulator.c
413
&drvdata->desc, &config);
drivers/regulator/pwm-regulator.c
418
drvdata->desc.name);
drivers/regulator/pwm-regulator.c
56
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
61
pwm_get_state(drvdata->pwm, &pwm_state);
drivers/regulator/pwm-regulator.c
65
if (dutycycle == drvdata->duty_cycle_table[i].dutycycle) {
drivers/regulator/pwm-regulator.c
66
drvdata->state = i;
drivers/regulator/pwm-regulator.c
74
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
76
if (drvdata->state < 0)
drivers/regulator/pwm-regulator.c
79
return drvdata->state;
drivers/regulator/pwm-regulator.c
85
struct pwm_regulator_data *drvdata = rdev_get_drvdata(rdev);
drivers/regulator/pwm-regulator.c
89
pwm_init_state(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
91
drvdata->duty_cycle_table[selector].dutycycle, 100);
drivers/regulator/pwm-regulator.c
93
ret = pwm_apply_might_sleep(drvdata->pwm, &pstate);
drivers/regulator/pwm-regulator.c
99
drvdata->state = selector;
drivers/regulator/userspace-consumer.c
122
struct userspace_consumer_data *drvdata;
drivers/regulator/userspace-consumer.c
146
drvdata = devm_kzalloc(&pdev->dev,
drivers/regulator/userspace-consumer.c
149
if (drvdata == NULL)
drivers/regulator/userspace-consumer.c
152
drvdata->name = pdata->name;
drivers/regulator/userspace-consumer.c
153
drvdata->num_supplies = pdata->num_supplies;
drivers/regulator/userspace-consumer.c
154
drvdata->supplies = pdata->supplies;
drivers/regulator/userspace-consumer.c
155
drvdata->no_autoswitch = pdata->no_autoswitch;
drivers/regulator/userspace-consumer.c
157
mutex_init(&drvdata->lock);
drivers/regulator/userspace-consumer.c
159
ret = devm_regulator_bulk_get_exclusive(&pdev->dev, drvdata->num_supplies,
drivers/regulator/userspace-consumer.c
160
drvdata->supplies);
drivers/regulator/userspace-consumer.c
164
platform_set_drvdata(pdev, drvdata);
drivers/regulator/userspace-consumer.c
171
ret = regulator_bulk_enable(drvdata->num_supplies,
drivers/regulator/userspace-consumer.c
172
drvdata->supplies);
drivers/regulator/userspace-consumer.c
185
drvdata->enabled = !!ret;
drivers/regulator/virtual.c
296
struct virtual_consumer_data *drvdata;
drivers/regulator/virtual.c
312
drvdata = devm_kzalloc(&pdev->dev, sizeof(struct virtual_consumer_data),
drivers/regulator/virtual.c
314
if (drvdata == NULL)
drivers/regulator/virtual.c
325
mutex_init(&drvdata->lock);
drivers/regulator/virtual.c
327
drvdata->regulator = devm_regulator_get(&pdev->dev, reg_id);
drivers/regulator/virtual.c
328
if (IS_ERR(drvdata->regulator))
drivers/regulator/virtual.c
329
return dev_err_probe(&pdev->dev, PTR_ERR(drvdata->regulator),
drivers/regulator/virtual.c
341
drvdata->mode = regulator_get_mode(drvdata->regulator);
drivers/regulator/virtual.c
343
platform_set_drvdata(pdev, drvdata);
drivers/regulator/virtual.c
350
struct virtual_consumer_data *drvdata = platform_get_drvdata(pdev);
drivers/regulator/virtual.c
354
if (drvdata->enabled)
drivers/regulator/virtual.c
355
regulator_disable(drvdata->regulator);
drivers/rpmsg/qcom_smd.c
226
void *drvdata;
drivers/rtc/rtc-rx8025.c
133
struct rx8025_data *drvdata = dev_get_drvdata(dev);
drivers/rtc/rtc-rx8025.c
149
xstp = rx8025_is_osc_stopped(drvdata->model, ctrl2);
drivers/rtc/rtc-rx8025.c
160
struct rx8025_data *drvdata = i2c_get_clientdata(client);
drivers/rtc/rtc-rx8025.c
168
if (drvdata->model == model_rx_8025)
drivers/soc/imx/soc-imx8m.c
135
struct imx8_soc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/soc/imx/soc-imx8m.c
141
drvdata->ocotp_base = of_iomap(np, 0);
drivers/soc/imx/soc-imx8m.c
142
if (!drvdata->ocotp_base)
drivers/soc/imx/soc-imx8m.c
145
drvdata->clk = of_clk_get_by_name(np, NULL);
drivers/soc/imx/soc-imx8m.c
146
if (IS_ERR(drvdata->clk)) {
drivers/soc/imx/soc-imx8m.c
147
ret = PTR_ERR(drvdata->clk);
drivers/soc/imx/soc-imx8m.c
151
ret = clk_prepare_enable(drvdata->clk);
drivers/soc/imx/soc-imx8m.c
158
iounmap(drvdata->ocotp_base);
drivers/soc/imx/soc-imx8m.c
164
struct imx8_soc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/soc/imx/soc-imx8m.c
166
clk_disable_unprepare(drvdata->clk);
drivers/soc/imx/soc-imx8m.c
167
clk_put(drvdata->clk);
drivers/soc/imx/soc-imx8m.c
168
iounmap(drvdata->ocotp_base);
drivers/soc/imx/soc-imx8m.c
227
struct imx8_soc_drvdata *drvdata;
drivers/soc/imx/soc-imx8m.c
239
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/soc/imx/soc-imx8m.c
240
if (!drvdata)
drivers/soc/imx/soc-imx8m.c
243
platform_set_drvdata(pdev, drvdata);
drivers/soc/imx/soc-imx8m.c
62
struct imx8_soc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/soc/imx/soc-imx8m.c
63
void __iomem *ocotp_base = drvdata->ocotp_base;
drivers/soc/imx/soc-imx8m.c
74
struct imx8_soc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/soc/imx/soc-imx8m.c
75
void __iomem *ocotp_base = drvdata->ocotp_base;
drivers/soc/imx/soc-imx8m.c
97
struct imx8_soc_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/soc/imx/soc-imx8m.c
98
void __iomem *ocotp_base = drvdata->ocotp_base;
drivers/thermal/armada_thermal.c
826
struct armada_drvdata *drvdata;
drivers/thermal/armada_thermal.c
840
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/thermal/armada_thermal.c
841
if (!drvdata)
drivers/thermal/armada_thermal.c
889
drvdata->type = LEGACY;
drivers/thermal/armada_thermal.c
890
drvdata->data.tz = tz;
drivers/thermal/armada_thermal.c
891
platform_set_drvdata(pdev, drvdata);
drivers/thermal/armada_thermal.c
902
drvdata->type = SYSCON;
drivers/thermal/armada_thermal.c
903
drvdata->data.priv = priv;
drivers/thermal/armada_thermal.c
904
platform_set_drvdata(pdev, drvdata);
drivers/thermal/armada_thermal.c
965
struct armada_drvdata *drvdata = platform_get_drvdata(pdev);
drivers/thermal/armada_thermal.c
967
if (drvdata->type == LEGACY)
drivers/thermal/armada_thermal.c
968
thermal_zone_device_unregister(drvdata->data.tz);
drivers/thermal/intel/int340x_thermal/processor_thermal_soc_slider.c
246
static int power_slider_platform_profile_probe(void *drvdata, unsigned long *choices)
drivers/tty/tty_io.c
3227
void *drvdata,
drivers/tty/tty_io.c
3257
dev_set_drvdata(dev, drvdata);
drivers/tty/tty_port.c
156
struct device *device, void *drvdata,
drivers/tty/tty_port.c
160
return tty_register_device_attr(driver, index, device, drvdata,
drivers/tty/tty_port.c
180
struct device *host, struct device *parent, void *drvdata,
drivers/tty/tty_port.c
193
return tty_register_device_attr(driver, index, parent, drvdata,
drivers/ufs/host/ufs-qcom.c
1120
const struct ufs_qcom_drvdata *drvdata = of_device_get_match_data(hba->dev);
drivers/ufs/host/ufs-qcom.c
1129
if (drvdata && drvdata->quirks)
drivers/ufs/host/ufs-qcom.c
1130
hba->quirks |= drvdata->quirks;
drivers/ufs/host/ufs-qcom.c
1372
const struct ufs_qcom_drvdata *drvdata = of_device_get_match_data(hba->dev);
drivers/ufs/host/ufs-qcom.c
1453
if (drvdata && drvdata->no_phy_retention)
drivers/ufs/host/ufs-qcom.c
2385
const struct ufs_qcom_drvdata *drvdata = device_get_match_data(dev);
drivers/ufs/host/ufs-qcom.c
2387
if (drvdata && drvdata->vops)
drivers/ufs/host/ufs-qcom.c
2388
vops = drvdata->vops;
drivers/usb/dwc3/dwc3-meson-g12a.c
263
const struct dwc3_meson_g12a_drvdata *drvdata;
drivers/usb/dwc3/dwc3-meson-g12a.c
276
return priv->drvdata->set_phy_mode(priv, i,
drivers/usb/dwc3/dwc3-meson-g12a.c
309
ret = priv->drvdata->set_phy_mode(priv, i, mode);
drivers/usb/dwc3/dwc3-meson-g12a.c
311
ret = priv->drvdata->set_phy_mode(priv, i,
drivers/usb/dwc3/dwc3-meson-g12a.c
328
for (i = 0; i < priv->drvdata->num_phys; ++i) {
drivers/usb/dwc3/dwc3-meson-g12a.c
332
if (!strstr(priv->drvdata->phy_names[i], "usb2"))
drivers/usb/dwc3/dwc3-meson-g12a.c
335
ret = priv->drvdata->usb2_init_phy(priv, i, mode);
drivers/usb/dwc3/dwc3-meson-g12a.c
377
priv->drvdata->otg_phy_host_port_disable)
drivers/usb/dwc3/dwc3-meson-g12a.c
392
priv->drvdata->otg_phy_host_port_disable) {
drivers/usb/dwc3/dwc3-meson-g12a.c
449
for (i = 0 ; i < priv->drvdata->num_phys ; ++i) {
drivers/usb/dwc3/dwc3-meson-g12a.c
450
phy_name = priv->drvdata->phy_names[i];
drivers/usb/dwc3/dwc3-meson-g12a.c
506
ret = priv->drvdata->set_phy_mode(priv, USB2_OTG_PHY, mode);
drivers/usb/dwc3/dwc3-meson-g12a.c
530
if (priv->drvdata->otg_phy_host_port_disable)
drivers/usb/dwc3/dwc3-meson-g12a.c
647
for (i = 0; i < priv->drvdata->num_phys; i++) {
drivers/usb/dwc3/dwc3-meson-g12a.c
655
if (!strstr(priv->drvdata->phy_names[i], "usb2"))
drivers/usb/dwc3/dwc3-meson-g12a.c
687
ret = priv->drvdata->set_phy_mode(priv, USB2_OTG_PHY,
drivers/usb/dwc3/dwc3-meson-g12a.c
713
priv->drvdata = of_device_get_match_data(&pdev->dev);
drivers/usb/dwc3/dwc3-meson-g12a.c
724
priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
725
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
729
ret = clk_bulk_prepare_enable(priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
730
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
751
ret = priv->drvdata->setup_regmaps(priv, base);
drivers/usb/dwc3/dwc3-meson-g12a.c
769
ret = priv->drvdata->usb_init(priv);
drivers/usb/dwc3/dwc3-meson-g12a.c
787
if (priv->drvdata->usb_post_init) {
drivers/usb/dwc3/dwc3-meson-g12a.c
788
ret = priv->drvdata->usb_post_init(priv);
drivers/usb/dwc3/dwc3-meson-g12a.c
826
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
827
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
856
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
857
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
864
clk_bulk_disable_unprepare(priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
865
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
874
return clk_bulk_prepare_enable(priv->drvdata->num_clks,
drivers/usb/dwc3/dwc3-meson-g12a.c
875
priv->drvdata->clks);
drivers/usb/dwc3/dwc3-meson-g12a.c
908
ret = priv->drvdata->usb_init(priv);
drivers/usb/dwc3/dwc3-meson-g12a.c
932
if (priv->drvdata->usb_post_init) {
drivers/usb/dwc3/dwc3-meson-g12a.c
933
ret = priv->drvdata->usb_post_init(priv);
drivers/usb/typec/anx7411.c
1066
sw_desc.drvdata = ctx;
drivers/usb/typec/anx7411.c
1086
mux_desc.drvdata = ctx;
drivers/usb/typec/class.c
2611
const struct typec_altmode_ops *ops, void *drvdata,
drivers/usb/typec/class.c
2660
typec_altmode_set_drvdata(alt, drvdata);
drivers/usb/typec/mux.c
185
sw_dev->dev.driver_data = desc->drvdata;
drivers/usb/typec/mux.c
429
mux_dev->dev.driver_data = desc->drvdata;
drivers/usb/typec/mux/fsa4480.c
308
sw_desc.drvdata = fsa;
drivers/usb/typec/mux/fsa4480.c
316
mux_desc.drvdata = fsa;
drivers/usb/typec/mux/gpio-sbu-mux.c
119
sw_desc.drvdata = sbu_mux;
drivers/usb/typec/mux/gpio-sbu-mux.c
128
mux_desc.drvdata = sbu_mux;
drivers/usb/typec/mux/intel_pmc_mux.c
602
sw_desc.drvdata = port;
drivers/usb/typec/mux/intel_pmc_mux.c
611
mux_desc.drvdata = port;
drivers/usb/typec/mux/it5205.c
222
sw_desc.drvdata = it;
drivers/usb/typec/mux/it5205.c
231
mux_desc.drvdata = it;
drivers/usb/typec/mux/nb7vpq904m.c
446
sw_desc.drvdata = nb7;
drivers/usb/typec/mux/nb7vpq904m.c
457
retimer_desc.drvdata = nb7;
drivers/usb/typec/mux/pi3usb30532.c
136
sw_desc.drvdata = pi;
drivers/usb/typec/mux/pi3usb30532.c
147
mux_desc.drvdata = pi;
drivers/usb/typec/mux/ps883x.c
425
sw_desc.drvdata = retimer;
drivers/usb/typec/mux/ps883x.c
436
rtmr_desc.drvdata = retimer;
drivers/usb/typec/mux/ptn36502.c
354
sw_desc.drvdata = ptn;
drivers/usb/typec/mux/ptn36502.c
365
retimer_desc.drvdata = ptn;
drivers/usb/typec/mux/tusb1046.c
138
sw_desc.drvdata = priv;
drivers/usb/typec/mux/tusb1046.c
148
mux_desc.drvdata = priv;
drivers/usb/typec/mux/wcd939x-usbss.c
703
sw_desc.drvdata = usbss;
drivers/usb/typec/mux/wcd939x-usbss.c
713
mux_desc.drvdata = usbss;
drivers/usb/typec/retimer.c
124
retimer->dev.driver_data = desc->drvdata;
drivers/video/fbdev/xilinxfb.c
166
static void xilinx_fb_out32(struct xilinxfb_drvdata *drvdata, u32 offset,
drivers/video/fbdev/xilinxfb.c
169
if (drvdata->flags & BUS_ACCESS_FLAG) {
drivers/video/fbdev/xilinxfb.c
170
if (drvdata->flags & LITTLE_ENDIAN_ACCESS)
drivers/video/fbdev/xilinxfb.c
171
iowrite32(val, drvdata->regs + (offset << 2));
drivers/video/fbdev/xilinxfb.c
173
iowrite32be(val, drvdata->regs + (offset << 2));
drivers/video/fbdev/xilinxfb.c
177
dcr_write(drvdata->dcr_host, offset, val);
drivers/video/fbdev/xilinxfb.c
181
static u32 xilinx_fb_in32(struct xilinxfb_drvdata *drvdata, u32 offset)
drivers/video/fbdev/xilinxfb.c
183
if (drvdata->flags & BUS_ACCESS_FLAG) {
drivers/video/fbdev/xilinxfb.c
184
if (drvdata->flags & LITTLE_ENDIAN_ACCESS)
drivers/video/fbdev/xilinxfb.c
185
return ioread32(drvdata->regs + (offset << 2));
drivers/video/fbdev/xilinxfb.c
187
return ioread32be(drvdata->regs + (offset << 2));
drivers/video/fbdev/xilinxfb.c
191
return dcr_read(drvdata->dcr_host, offset);
drivers/video/fbdev/xilinxfb.c
229
struct xilinxfb_drvdata *drvdata = to_xilinxfb_drvdata(fbi);
drivers/video/fbdev/xilinxfb.c
234
xilinx_fb_out32(drvdata, REG_CTRL, drvdata->reg_ctrl_default);
drivers/video/fbdev/xilinxfb.c
242
xilinx_fb_out32(drvdata, REG_CTRL, 0);
drivers/video/fbdev/xilinxfb.c
263
struct xilinxfb_drvdata *drvdata,
drivers/video/fbdev/xilinxfb.c
270
if (drvdata->flags & BUS_ACCESS_FLAG) {
drivers/video/fbdev/xilinxfb.c
273
drvdata->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
drivers/video/fbdev/xilinxfb.c
274
if (IS_ERR(drvdata->regs))
drivers/video/fbdev/xilinxfb.c
275
return PTR_ERR(drvdata->regs);
drivers/video/fbdev/xilinxfb.c
277
drvdata->regs_phys = res->start;
drivers/video/fbdev/xilinxfb.c
282
drvdata->fb_phys = pdata->fb_phys;
drivers/video/fbdev/xilinxfb.c
283
drvdata->fb_virt = ioremap(pdata->fb_phys, fbsize);
drivers/video/fbdev/xilinxfb.c
285
drvdata->fb_alloced = 1;
drivers/video/fbdev/xilinxfb.c
286
drvdata->fb_virt = dma_alloc_coherent(dev, PAGE_ALIGN(fbsize),
drivers/video/fbdev/xilinxfb.c
287
&drvdata->fb_phys,
drivers/video/fbdev/xilinxfb.c
291
if (!drvdata->fb_virt) {
drivers/video/fbdev/xilinxfb.c
297
memset_io((void __iomem *)drvdata->fb_virt, 0, fbsize);
drivers/video/fbdev/xilinxfb.c
300
xilinx_fb_out32(drvdata, REG_FB_ADDR, drvdata->fb_phys);
drivers/video/fbdev/xilinxfb.c
301
rc = xilinx_fb_in32(drvdata, REG_FB_ADDR);
drivers/video/fbdev/xilinxfb.c
303
if (rc != drvdata->fb_phys) {
drivers/video/fbdev/xilinxfb.c
304
drvdata->flags |= LITTLE_ENDIAN_ACCESS;
drivers/video/fbdev/xilinxfb.c
305
xilinx_fb_out32(drvdata, REG_FB_ADDR, drvdata->fb_phys);
drivers/video/fbdev/xilinxfb.c
309
drvdata->reg_ctrl_default = REG_CTRL_ENABLE;
drivers/video/fbdev/xilinxfb.c
311
drvdata->reg_ctrl_default |= REG_CTRL_ROTATE;
drivers/video/fbdev/xilinxfb.c
312
xilinx_fb_out32(drvdata, REG_CTRL, drvdata->reg_ctrl_default);
drivers/video/fbdev/xilinxfb.c
315
drvdata->info.device = dev;
drivers/video/fbdev/xilinxfb.c
316
drvdata->info.screen_base = (void __iomem *)drvdata->fb_virt;
drivers/video/fbdev/xilinxfb.c
317
drvdata->info.fbops = &xilinxfb_ops;
drivers/video/fbdev/xilinxfb.c
318
drvdata->info.fix = xilinx_fb_fix;
drivers/video/fbdev/xilinxfb.c
319
drvdata->info.fix.smem_start = drvdata->fb_phys;
drivers/video/fbdev/xilinxfb.c
320
drvdata->info.fix.smem_len = fbsize;
drivers/video/fbdev/xilinxfb.c
321
drvdata->info.fix.line_length = pdata->xvirt * BYTES_PER_PIXEL;
drivers/video/fbdev/xilinxfb.c
323
drvdata->info.pseudo_palette = drvdata->pseudo_palette;
drivers/video/fbdev/xilinxfb.c
324
drvdata->info.var = xilinx_fb_var;
drivers/video/fbdev/xilinxfb.c
325
drvdata->info.var.height = pdata->screen_height_mm;
drivers/video/fbdev/xilinxfb.c
326
drvdata->info.var.width = pdata->screen_width_mm;
drivers/video/fbdev/xilinxfb.c
327
drvdata->info.var.xres = pdata->xres;
drivers/video/fbdev/xilinxfb.c
328
drvdata->info.var.yres = pdata->yres;
drivers/video/fbdev/xilinxfb.c
329
drvdata->info.var.xres_virtual = pdata->xvirt;
drivers/video/fbdev/xilinxfb.c
330
drvdata->info.var.yres_virtual = pdata->yvirt;
drivers/video/fbdev/xilinxfb.c
333
rc = fb_alloc_cmap(&drvdata->info.cmap, PALETTE_ENTRIES_NO, 0);
drivers/video/fbdev/xilinxfb.c
341
rc = register_framebuffer(&drvdata->info);
drivers/video/fbdev/xilinxfb.c
347
if (drvdata->flags & BUS_ACCESS_FLAG) {
drivers/video/fbdev/xilinxfb.c
350
&drvdata->regs_phys, drvdata->regs);
drivers/video/fbdev/xilinxfb.c
354
(unsigned long long)drvdata->fb_phys, drvdata->fb_virt, fbsize);
drivers/video/fbdev/xilinxfb.c
359
fb_dealloc_cmap(&drvdata->info.cmap);
drivers/video/fbdev/xilinxfb.c
362
if (drvdata->fb_alloced)
drivers/video/fbdev/xilinxfb.c
363
dma_free_coherent(dev, PAGE_ALIGN(fbsize), drvdata->fb_virt,
drivers/video/fbdev/xilinxfb.c
364
drvdata->fb_phys);
drivers/video/fbdev/xilinxfb.c
366
iounmap(drvdata->fb_virt);
drivers/video/fbdev/xilinxfb.c
369
xilinx_fb_out32(drvdata, REG_CTRL, 0);
drivers/video/fbdev/xilinxfb.c
376
struct xilinxfb_drvdata *drvdata = dev_get_drvdata(dev);
drivers/video/fbdev/xilinxfb.c
379
xilinx_fb_blank(VESA_POWERDOWN, &drvdata->info);
drivers/video/fbdev/xilinxfb.c
382
unregister_framebuffer(&drvdata->info);
drivers/video/fbdev/xilinxfb.c
384
fb_dealloc_cmap(&drvdata->info.cmap);
drivers/video/fbdev/xilinxfb.c
386
if (drvdata->fb_alloced)
drivers/video/fbdev/xilinxfb.c
387
dma_free_coherent(dev, PAGE_ALIGN(drvdata->info.fix.smem_len),
drivers/video/fbdev/xilinxfb.c
388
drvdata->fb_virt, drvdata->fb_phys);
drivers/video/fbdev/xilinxfb.c
390
iounmap(drvdata->fb_virt);
drivers/video/fbdev/xilinxfb.c
393
xilinx_fb_out32(drvdata, REG_CTRL, 0);
drivers/video/fbdev/xilinxfb.c
397
if (!(drvdata->flags & BUS_ACCESS_FLAG))
drivers/video/fbdev/xilinxfb.c
398
dcr_unmap(drvdata->dcr_host, drvdata->dcr_len);
drivers/video/fbdev/xilinxfb.c
412
struct xilinxfb_drvdata *drvdata;
drivers/video/fbdev/xilinxfb.c
418
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
drivers/video/fbdev/xilinxfb.c
419
if (!drvdata)
drivers/video/fbdev/xilinxfb.c
434
drvdata->flags |= BUS_ACCESS_FLAG;
drivers/video/fbdev/xilinxfb.c
440
drvdata->dcr_len = dcr_resource_len(pdev->dev.of_node, 0);
drivers/video/fbdev/xilinxfb.c
441
drvdata->dcr_host = dcr_map(pdev->dev.of_node, start, drvdata->dcr_len);
drivers/video/fbdev/xilinxfb.c
442
if (!DCR_MAP_OK(drvdata->dcr_host)) {
drivers/video/fbdev/xilinxfb.c
469
platform_set_drvdata(pdev, drvdata);
drivers/video/fbdev/xilinxfb.c
470
return xilinxfb_assign(pdev, drvdata, &pdata);
drivers/watchdog/gxp-wdt.c
116
struct gxp_wdt *drvdata;
drivers/watchdog/gxp-wdt.c
120
drvdata = devm_kzalloc(dev, sizeof(struct gxp_wdt), GFP_KERNEL);
drivers/watchdog/gxp-wdt.c
121
if (!drvdata)
drivers/watchdog/gxp-wdt.c
134
drvdata->base = (void __iomem *)dev->platform_data;
drivers/watchdog/gxp-wdt.c
136
drvdata->wdd.info = &gxp_wdt_info;
drivers/watchdog/gxp-wdt.c
137
drvdata->wdd.ops = &gxp_wdt_ops;
drivers/watchdog/gxp-wdt.c
138
drvdata->wdd.max_hw_heartbeat_ms = WDT_MAX_TIMEOUT_MS;
drivers/watchdog/gxp-wdt.c
139
drvdata->wdd.parent = dev;
drivers/watchdog/gxp-wdt.c
140
drvdata->wdd.timeout = WDT_DEFAULT_TIMEOUT;
drivers/watchdog/gxp-wdt.c
142
watchdog_set_drvdata(&drvdata->wdd, drvdata);
drivers/watchdog/gxp-wdt.c
143
watchdog_set_nowayout(&drvdata->wdd, WATCHDOG_NOWAYOUT);
drivers/watchdog/gxp-wdt.c
145
val = readb(drvdata->base + GXP_WDT_CTRL_OFS);
drivers/watchdog/gxp-wdt.c
148
set_bit(WDOG_HW_RUNNING, &drvdata->wdd.status);
drivers/watchdog/gxp-wdt.c
150
watchdog_set_restart_priority(&drvdata->wdd, 128);
drivers/watchdog/gxp-wdt.c
152
watchdog_stop_on_reboot(&drvdata->wdd);
drivers/watchdog/gxp-wdt.c
153
err = devm_watchdog_register_device(dev, &drvdata->wdd);
drivers/watchdog/gxp-wdt.c
29
static void gxp_wdt_enable_reload(struct gxp_wdt *drvdata)
drivers/watchdog/gxp-wdt.c
33
val = readb(drvdata->base + GXP_WDT_CTRL_OFS);
drivers/watchdog/gxp-wdt.c
35
writeb(val, drvdata->base + GXP_WDT_CTRL_OFS);
drivers/watchdog/gxp-wdt.c
40
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
42
writew(SECS_TO_WDOG_TICKS(wdd->timeout), drvdata->base + GXP_WDT_CNT_OFS);
drivers/watchdog/gxp-wdt.c
43
gxp_wdt_enable_reload(drvdata);
drivers/watchdog/gxp-wdt.c
49
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
52
val = readb_relaxed(drvdata->base + GXP_WDT_CTRL_OFS);
drivers/watchdog/gxp-wdt.c
54
writeb(val, drvdata->base + GXP_WDT_CTRL_OFS);
drivers/watchdog/gxp-wdt.c
61
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
66
writew(actual, drvdata->base + GXP_WDT_CNT_OFS);
drivers/watchdog/gxp-wdt.c
73
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
74
u32 val = readw(drvdata->base + GXP_WDT_CNT_OFS);
drivers/watchdog/gxp-wdt.c
81
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
83
gxp_wdt_enable_reload(drvdata);
drivers/watchdog/gxp-wdt.c
90
struct gxp_wdt *drvdata = watchdog_get_drvdata(wdd);
drivers/watchdog/gxp-wdt.c
92
writew(1, drvdata->base + GXP_WDT_CNT_OFS);
drivers/watchdog/gxp-wdt.c
93
gxp_wdt_enable_reload(drvdata);
drivers/watchdog/jz4740_wdt.c
100
regmap_write(drvdata->map, TCU_REG_WDT_TCER, 0);
drivers/watchdog/jz4740_wdt.c
101
clk_disable_unprepare(drvdata->clk);
drivers/watchdog/jz4740_wdt.c
140
struct jz4740_wdt_drvdata *drvdata;
drivers/watchdog/jz4740_wdt.c
145
drvdata = devm_kzalloc(dev, sizeof(struct jz4740_wdt_drvdata),
drivers/watchdog/jz4740_wdt.c
147
if (!drvdata)
drivers/watchdog/jz4740_wdt.c
150
drvdata->clk = devm_clk_get(&pdev->dev, "wdt");
drivers/watchdog/jz4740_wdt.c
151
if (IS_ERR(drvdata->clk)) {
drivers/watchdog/jz4740_wdt.c
153
return PTR_ERR(drvdata->clk);
drivers/watchdog/jz4740_wdt.c
157
rate = clk_round_rate(drvdata->clk, 1);
drivers/watchdog/jz4740_wdt.c
161
ret = clk_set_rate(drvdata->clk, rate);
drivers/watchdog/jz4740_wdt.c
165
drvdata->clk_rate = rate;
drivers/watchdog/jz4740_wdt.c
166
jz4740_wdt = &drvdata->wdt;
drivers/watchdog/jz4740_wdt.c
176
watchdog_set_drvdata(jz4740_wdt, drvdata);
drivers/watchdog/jz4740_wdt.c
178
drvdata->map = device_node_to_regmap(dev->parent->of_node);
drivers/watchdog/jz4740_wdt.c
179
if (IS_ERR(drvdata->map)) {
drivers/watchdog/jz4740_wdt.c
181
return PTR_ERR(drvdata->map);
drivers/watchdog/jz4740_wdt.c
184
return devm_watchdog_register_device(dev, &drvdata->wdt);
drivers/watchdog/jz4740_wdt.c
48
struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/jz4740_wdt.c
50
regmap_write(drvdata->map, TCU_REG_WDT_TCNT, 0);
drivers/watchdog/jz4740_wdt.c
58
struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/jz4740_wdt.c
59
u16 timeout_value = (u16)(drvdata->clk_rate * new_timeout);
drivers/watchdog/jz4740_wdt.c
62
regmap_read(drvdata->map, TCU_REG_WDT_TCER, &tcer);
drivers/watchdog/jz4740_wdt.c
63
regmap_write(drvdata->map, TCU_REG_WDT_TCER, 0);
drivers/watchdog/jz4740_wdt.c
65
regmap_write(drvdata->map, TCU_REG_WDT_TDR, timeout_value);
drivers/watchdog/jz4740_wdt.c
66
regmap_write(drvdata->map, TCU_REG_WDT_TCNT, 0);
drivers/watchdog/jz4740_wdt.c
69
regmap_write(drvdata->map, TCU_REG_WDT_TCER, TCU_WDT_TCER_TCEN);
drivers/watchdog/jz4740_wdt.c
77
struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/jz4740_wdt.c
81
ret = clk_prepare_enable(drvdata->clk);
drivers/watchdog/jz4740_wdt.c
85
regmap_read(drvdata->map, TCU_REG_WDT_TCER, &tcer);
drivers/watchdog/jz4740_wdt.c
91
regmap_write(drvdata->map, TCU_REG_WDT_TCER, TCU_WDT_TCER_TCEN);
drivers/watchdog/jz4740_wdt.c
98
struct jz4740_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
102
struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
104
writel(drvdata->pdata->wdt_en_bit, drvdata->base + WDT_EN);
drivers/watchdog/loongson1_wdt.c
105
writel(0x1, drvdata->base + drvdata->pdata->timer_offset);
drivers/watchdog/loongson1_wdt.c
106
writel(0x1, drvdata->base + drvdata->pdata->set_offset);
drivers/watchdog/loongson1_wdt.c
128
struct ls1x_wdt_drvdata *drvdata;
drivers/watchdog/loongson1_wdt.c
132
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/watchdog/loongson1_wdt.c
133
if (!drvdata)
drivers/watchdog/loongson1_wdt.c
135
platform_set_drvdata(pdev, drvdata);
drivers/watchdog/loongson1_wdt.c
137
drvdata->pdata = of_device_get_match_data(dev);
drivers/watchdog/loongson1_wdt.c
139
drvdata->base = devm_platform_ioremap_resource(pdev, 0);
drivers/watchdog/loongson1_wdt.c
140
if (IS_ERR(drvdata->base))
drivers/watchdog/loongson1_wdt.c
141
return PTR_ERR(drvdata->base);
drivers/watchdog/loongson1_wdt.c
143
drvdata->clk = devm_clk_get_enabled(dev, NULL);
drivers/watchdog/loongson1_wdt.c
144
if (IS_ERR(drvdata->clk))
drivers/watchdog/loongson1_wdt.c
145
return PTR_ERR(drvdata->clk);
drivers/watchdog/loongson1_wdt.c
147
clk_rate = clk_get_rate(drvdata->clk);
drivers/watchdog/loongson1_wdt.c
150
drvdata->clk_rate = clk_rate;
drivers/watchdog/loongson1_wdt.c
152
ls1x_wdt = &drvdata->wdt;
drivers/watchdog/loongson1_wdt.c
162
watchdog_set_drvdata(ls1x_wdt, drvdata);
drivers/watchdog/loongson1_wdt.c
164
return devm_watchdog_register_device(dev, &drvdata->wdt);
drivers/watchdog/loongson1_wdt.c
57
struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
59
writel(0x1, drvdata->base + drvdata->pdata->set_offset);
drivers/watchdog/loongson1_wdt.c
67
struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
73
counts = drvdata->clk_rate * min(timeout, max_hw_heartbeat);
drivers/watchdog/loongson1_wdt.c
74
writel(counts, drvdata->base + drvdata->pdata->timer_offset);
drivers/watchdog/loongson1_wdt.c
81
struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
83
writel(drvdata->pdata->wdt_en_bit, drvdata->base + WDT_EN);
drivers/watchdog/loongson1_wdt.c
90
struct ls1x_wdt_drvdata *drvdata = watchdog_get_drvdata(wdt_dev);
drivers/watchdog/loongson1_wdt.c
91
u32 val = readl(drvdata->base + WDT_EN);
drivers/watchdog/loongson1_wdt.c
93
val &= ~(drvdata->pdata->wdt_en_bit);
drivers/watchdog/loongson1_wdt.c
94
writel(val, drvdata->base + WDT_EN);
drivers/watchdog/mt7621_wdt.c
101
t = rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL);
drivers/watchdog/mt7621_wdt.c
103
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, t);
drivers/watchdog/mt7621_wdt.c
121
struct mt7621_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/mt7621_wdt.c
123
return !!(rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL) & TMR1CTL_ENABLE);
drivers/watchdog/mt7621_wdt.c
144
struct mt7621_wdt_data *drvdata;
drivers/watchdog/mt7621_wdt.c
147
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/watchdog/mt7621_wdt.c
148
if (!drvdata)
drivers/watchdog/mt7621_wdt.c
151
drvdata->sysc = syscon_regmap_lookup_by_phandle(np, "mediatek,sysctl");
drivers/watchdog/mt7621_wdt.c
152
if (IS_ERR(drvdata->sysc)) {
drivers/watchdog/mt7621_wdt.c
153
drvdata->sysc = syscon_regmap_lookup_by_compatible("mediatek,mt7621-sysc");
drivers/watchdog/mt7621_wdt.c
154
if (IS_ERR(drvdata->sysc))
drivers/watchdog/mt7621_wdt.c
155
return PTR_ERR(drvdata->sysc);
drivers/watchdog/mt7621_wdt.c
158
drvdata->base = devm_platform_ioremap_resource(pdev, 0);
drivers/watchdog/mt7621_wdt.c
159
if (IS_ERR(drvdata->base))
drivers/watchdog/mt7621_wdt.c
160
return PTR_ERR(drvdata->base);
drivers/watchdog/mt7621_wdt.c
162
drvdata->rst = devm_reset_control_get_exclusive(dev, NULL);
drivers/watchdog/mt7621_wdt.c
163
if (!IS_ERR(drvdata->rst))
drivers/watchdog/mt7621_wdt.c
164
reset_control_deassert(drvdata->rst);
drivers/watchdog/mt7621_wdt.c
166
mt7621_wdt = &drvdata->wdt;
drivers/watchdog/mt7621_wdt.c
173
mt7621_wdt->bootstatus = mt7621_wdt_bootcause(drvdata);
drivers/watchdog/mt7621_wdt.c
177
watchdog_set_drvdata(mt7621_wdt, drvdata);
drivers/watchdog/mt7621_wdt.c
194
err = devm_watchdog_register_device(dev, &drvdata->wdt);
drivers/watchdog/mt7621_wdt.c
198
platform_set_drvdata(pdev, drvdata);
drivers/watchdog/mt7621_wdt.c
205
struct mt7621_wdt_data *drvdata = platform_get_drvdata(pdev);
drivers/watchdog/mt7621_wdt.c
207
mt7621_wdt_stop(&drvdata->wdt);
drivers/watchdog/mt7621_wdt.c
59
struct mt7621_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/mt7621_wdt.c
61
rt_wdt_w32(drvdata->base, TIMER_REG_TMRSTAT, TMR1CTL_RESTART);
drivers/watchdog/mt7621_wdt.c
68
struct mt7621_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/mt7621_wdt.c
71
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1LOAD, t * 1000);
drivers/watchdog/mt7621_wdt.c
79
struct mt7621_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/mt7621_wdt.c
83
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, 1000 << TMR1CTL_PRESCALE_SHIFT);
drivers/watchdog/mt7621_wdt.c
87
t = rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL);
drivers/watchdog/mt7621_wdt.c
89
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, t);
drivers/watchdog/mt7621_wdt.c
96
struct mt7621_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/rt2880_wdt.c
104
t = rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL);
drivers/watchdog/rt2880_wdt.c
106
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, t);
drivers/watchdog/rt2880_wdt.c
144
struct rt2880_wdt_data *drvdata;
drivers/watchdog/rt2880_wdt.c
147
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
drivers/watchdog/rt2880_wdt.c
148
if (!drvdata)
drivers/watchdog/rt2880_wdt.c
151
drvdata->base = devm_platform_ioremap_resource(pdev, 0);
drivers/watchdog/rt2880_wdt.c
152
if (IS_ERR(drvdata->base))
drivers/watchdog/rt2880_wdt.c
153
return PTR_ERR(drvdata->base);
drivers/watchdog/rt2880_wdt.c
155
drvdata->clk = devm_clk_get(dev, NULL);
drivers/watchdog/rt2880_wdt.c
156
if (IS_ERR(drvdata->clk))
drivers/watchdog/rt2880_wdt.c
157
return PTR_ERR(drvdata->clk);
drivers/watchdog/rt2880_wdt.c
159
drvdata->rst = devm_reset_control_get_exclusive(dev, NULL);
drivers/watchdog/rt2880_wdt.c
160
if (!IS_ERR(drvdata->rst))
drivers/watchdog/rt2880_wdt.c
161
reset_control_deassert(drvdata->rst);
drivers/watchdog/rt2880_wdt.c
163
drvdata->freq = clk_get_rate(drvdata->clk) / RALINK_WDT_PRESCALE;
drivers/watchdog/rt2880_wdt.c
165
wdt = &drvdata->wdt;
drivers/watchdog/rt2880_wdt.c
169
wdt->max_timeout = (0xfffful / drvdata->freq);
drivers/watchdog/rt2880_wdt.c
175
watchdog_set_drvdata(wdt, drvdata);
drivers/watchdog/rt2880_wdt.c
178
ret = devm_watchdog_register_device(dev, &drvdata->wdt);
drivers/watchdog/rt2880_wdt.c
69
struct rt2880_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/rt2880_wdt.c
71
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1LOAD, w->timeout * drvdata->freq);
drivers/watchdog/rt2880_wdt.c
78
struct rt2880_wdt_data *drvdata = watchdog_get_drvdata(w);
drivers/watchdog/rt2880_wdt.c
81
t = rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL);
drivers/watchdog/rt2880_wdt.c
86
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, t);
drivers/watchdog/rt2880_wdt.c
90
t = rt_wdt_r32(drvdata->base, TIMER_REG_TMR1CTL);
drivers/watchdog/rt2880_wdt.c
92
rt_wdt_w32(drvdata->base, TIMER_REG_TMR1CTL, t);
drivers/watchdog/rt2880_wdt.c
99
struct rt2880_wdt_data *drvdata = watchdog_get_drvdata(w);
include/drm/drm_privacy_screen_driver.h
79
void *drvdata;
include/drm/drm_privacy_screen_driver.h
85
return priv->drvdata;
include/linux/bcma/bcma.h
287
void *drvdata;
include/linux/bcma/bcma.h
293
return core->drvdata;
include/linux/bcma/bcma.h
295
static inline void bcma_set_drvdata(struct bcma_device *core, void *drvdata)
include/linux/bcma/bcma.h
297
core->drvdata = drvdata;
include/linux/cpu.h
89
struct device *cpu_device_create(struct device *parent, void *drvdata,
include/linux/device.h
1180
void *drvdata, const char *fmt, ...);
include/linux/device.h
1183
void *drvdata, const struct attribute_group **groups,
include/linux/gpio/regmap.h
108
void *drvdata;
include/linux/hwmon.h
419
umode_t (*is_visible)(const void *drvdata, enum hwmon_sensor_types type,
include/linux/hwmon.h
467
void *drvdata,
include/linux/hwmon.h
471
void *drvdata,
include/linux/hwmon.h
475
const char *name, void *drvdata,
include/linux/hwmon.h
480
void *drvdata);
include/linux/hwmon.h
483
const char *name, void *drvdata,
include/linux/pci.h
1948
int (*check_capability)(void *drvdata);
include/linux/pci.h
1949
int (*context_update_write)(void *drvdata, u8 mode);
include/linux/pci.h
1950
int (*context_update_read)(void *drvdata, u8 *mode);
include/linux/pci.h
1951
int (*context_valid_write)(void *drvdata, bool valid);
include/linux/pci.h
1952
int (*context_valid_read)(void *drvdata, bool *valid);
include/linux/pci.h
1953
int (*local_clock_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1954
int (*master_clock_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1955
int (*t1_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1956
int (*t2_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1957
int (*t3_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1958
int (*t4_read)(void *drvdata, u64 *clock);
include/linux/pci.h
1960
bool (*context_update_visible)(void *drvdata);
include/linux/pci.h
1961
bool (*context_valid_visible)(void *drvdata);
include/linux/pci.h
1962
bool (*local_clock_visible)(void *drvdata);
include/linux/pci.h
1963
bool (*master_clock_visible)(void *drvdata);
include/linux/pci.h
1964
bool (*t1_visible)(void *drvdata);
include/linux/pci.h
1965
bool (*t2_visible)(void *drvdata);
include/linux/pci.h
1966
bool (*t3_visible)(void *drvdata);
include/linux/pci.h
1967
bool (*t4_visible)(void *drvdata);
include/linux/platform_profile.h
45
int (*probe)(void *drvdata, unsigned long *choices);
include/linux/platform_profile.h
46
int (*hidden_choices)(void *drvdata, unsigned long *choices);
include/linux/platform_profile.h
52
void *drvdata,
include/linux/platform_profile.h
56
void *drvdata,
include/linux/pwrseq/provider.h
64
void *drvdata;
include/linux/ssb/ssb.h
282
void *drvdata; /* Per-device data */
include/linux/ssb/ssb.h
299
dev->drvdata = data;
include/linux/ssb/ssb.h
304
return dev->drvdata;
include/linux/tty_driver.h
594
unsigned index, struct device *device, void *drvdata,
include/linux/tty_port.h
148
struct device *device, void *drvdata,
include/linux/tty_port.h
152
struct device *host, struct device *parent, void *drvdata,
include/linux/usb/typec.h
175
const struct typec_altmode_ops *ops, void *drvdata,
include/linux/usb/typec_mux.h
25
void *drvdata;
include/linux/usb/typec_mux.h
94
void *drvdata;
include/linux/usb/typec_retimer.h
27
void *drvdata;
include/linux/wwan.h
108
void *drvdata);
include/sound/soc-card.h
103
card->drvdata = data;
include/sound/soc-card.h
108
return card->drvdata;
include/sound/soc.h
1098
void *drvdata;
sound/drivers/serial-generic.c
100
struct snd_serial_generic *drvdata = serdev_device_get_drvdata(serdev);
sound/drivers/serial-generic.c
102
snd_serial_generic_tx_wakeup(drvdata);
sound/drivers/serial-generic.c
109
struct snd_serial_generic *drvdata = serdev_device_get_drvdata(serdev);
sound/drivers/serial-generic.c
111
if (!test_bit(SERIAL_MODE_INPUT_OPEN, &drvdata->filemode))
sound/drivers/serial-generic.c
114
ret = snd_rawmidi_receive(drvdata->midi_input, buf, count);
sound/drivers/serial-generic.c
123
static int snd_serial_generic_ensure_serdev_open(struct snd_serial_generic *drvdata)
sound/drivers/serial-generic.c
128
if (drvdata->filemode)
sound/drivers/serial-generic.c
131
dev_dbg(drvdata->card->dev, "Opening serial port for card %s\n",
sound/drivers/serial-generic.c
132
drvdata->card->shortname);
sound/drivers/serial-generic.c
133
err = serdev_device_open(drvdata->serdev);
sound/drivers/serial-generic.c
137
actual_baud = serdev_device_set_baudrate(drvdata->serdev,
sound/drivers/serial-generic.c
138
drvdata->baudrate);
sound/drivers/serial-generic.c
139
if (actual_baud != drvdata->baudrate) {
sound/drivers/serial-generic.c
140
dev_warn(drvdata->card->dev, "requested %d baud for card %s but it was actually set to %d\n",
sound/drivers/serial-generic.c
141
drvdata->baudrate, drvdata->card->shortname, actual_baud);
sound/drivers/serial-generic.c
150
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
152
dev_dbg(drvdata->card->dev, "Opening input for card %s\n",
sound/drivers/serial-generic.c
153
drvdata->card->shortname);
sound/drivers/serial-generic.c
155
err = snd_serial_generic_ensure_serdev_open(drvdata);
sound/drivers/serial-generic.c
159
set_bit(SERIAL_MODE_INPUT_OPEN, &drvdata->filemode);
sound/drivers/serial-generic.c
160
drvdata->midi_input = substream;
sound/drivers/serial-generic.c
166
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
168
dev_dbg(drvdata->card->dev, "Closing input for card %s\n",
sound/drivers/serial-generic.c
169
drvdata->card->shortname);
sound/drivers/serial-generic.c
171
clear_bit(SERIAL_MODE_INPUT_OPEN, &drvdata->filemode);
sound/drivers/serial-generic.c
172
clear_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
174
drvdata->midi_input = NULL;
sound/drivers/serial-generic.c
176
if (!drvdata->filemode)
sound/drivers/serial-generic.c
177
serdev_device_close(drvdata->serdev);
sound/drivers/serial-generic.c
184
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
187
set_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
189
clear_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
194
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
197
dev_dbg(drvdata->card->dev, "Opening output for card %s\n",
sound/drivers/serial-generic.c
198
drvdata->card->shortname);
sound/drivers/serial-generic.c
200
err = snd_serial_generic_ensure_serdev_open(drvdata);
sound/drivers/serial-generic.c
204
set_bit(SERIAL_MODE_OUTPUT_OPEN, &drvdata->filemode);
sound/drivers/serial-generic.c
206
drvdata->midi_output = substream;
sound/drivers/serial-generic.c
212
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
214
dev_dbg(drvdata->card->dev, "Closing output for card %s\n",
sound/drivers/serial-generic.c
215
drvdata->card->shortname);
sound/drivers/serial-generic.c
217
clear_bit(SERIAL_MODE_OUTPUT_OPEN, &drvdata->filemode);
sound/drivers/serial-generic.c
218
clear_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
220
if (!drvdata->filemode)
sound/drivers/serial-generic.c
221
serdev_device_close(drvdata->serdev);
sound/drivers/serial-generic.c
223
drvdata->midi_output = NULL;
sound/drivers/serial-generic.c
231
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
234
set_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
236
clear_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode);
sound/drivers/serial-generic.c
239
snd_serial_generic_tx_wakeup(drvdata);
sound/drivers/serial-generic.c
244
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
sound/drivers/serial-generic.c
247
serdev_device_write_flush(drvdata->serdev);
sound/drivers/serial-generic.c
248
cancel_work_sync(&drvdata->tx_work);
sound/drivers/serial-generic.c
265
struct snd_serial_generic *drvdata)
sound/drivers/serial-generic.c
270
&drvdata->baudrate);
sound/drivers/serial-generic.c
272
dev_dbg(drvdata->card->dev,
sound/drivers/serial-generic.c
275
drvdata->baudrate = 38400;
sound/drivers/serial-generic.c
289
static int snd_serial_generic_rmidi(struct snd_serial_generic *drvdata,
sound/drivers/serial-generic.c
295
err = snd_rawmidi_new(drvdata->card, drvdata->card->driver, 0,
sound/drivers/serial-generic.c
305
strscpy(rrawmidi->name, drvdata->card->shortname);
sound/drivers/serial-generic.c
308
drvdata->serdev->ctrl->nr);
sound/drivers/serial-generic.c
310
drvdata->serdev->ctrl->nr);
sound/drivers/serial-generic.c
324
struct snd_serial_generic *drvdata;
sound/drivers/serial-generic.c
338
drvdata = card->private_data;
sound/drivers/serial-generic.c
340
drvdata->serdev = serdev;
sound/drivers/serial-generic.c
341
drvdata->card = card;
sound/drivers/serial-generic.c
343
snd_serial_generic_parse_dt(serdev, drvdata);
sound/drivers/serial-generic.c
345
INIT_WORK(&drvdata->tx_work, snd_serial_generic_tx_work);
sound/drivers/serial-generic.c
347
err = snd_serial_generic_rmidi(drvdata, 1, 1, &drvdata->rmidi);
sound/drivers/serial-generic.c
352
serdev_device_set_drvdata(drvdata->serdev, drvdata);
sound/drivers/serial-generic.c
59
static void snd_serial_generic_tx_wakeup(struct snd_serial_generic *drvdata)
sound/drivers/serial-generic.c
61
if (test_and_set_bit(SERIAL_TX_STATE_ACTIVE, &drvdata->tx_state))
sound/drivers/serial-generic.c
62
set_bit(SERIAL_TX_STATE_WAKEUP, &drvdata->tx_state);
sound/drivers/serial-generic.c
64
schedule_work(&drvdata->tx_work);
sound/drivers/serial-generic.c
70
struct snd_serial_generic *drvdata = container_of(work, struct snd_serial_generic,
sound/drivers/serial-generic.c
72
struct snd_rawmidi_substream *substream = drvdata->midi_output;
sound/drivers/serial-generic.c
74
clear_bit(SERIAL_TX_STATE_WAKEUP, &drvdata->tx_state);
sound/drivers/serial-generic.c
78
if (!test_bit(SERIAL_MODE_OUTPUT_OPEN, &drvdata->filemode))
sound/drivers/serial-generic.c
81
num_bytes = snd_rawmidi_transmit_peek(substream, drvdata->tx_buf,
sound/drivers/serial-generic.c
83
num_bytes = serdev_device_write_buf(drvdata->serdev, drvdata->tx_buf,
sound/drivers/serial-generic.c
91
if (!test_bit(SERIAL_TX_STATE_WAKEUP, &drvdata->tx_state))
sound/drivers/serial-generic.c
95
clear_bit(SERIAL_TX_STATE_ACTIVE, &drvdata->tx_state);
sound/soc/amd/acp/acp-legacy-mach.c
142
card->drvdata = (struct acp_card_drvdata *)pdev->id_entry->driver_data;
sound/soc/amd/acp/acp-legacy-mach.c
143
acp_card_drvdata = card->drvdata;
sound/soc/amd/acp/acp-legacy-mach.c
149
acp_asoc_init_ops(card->drvdata);
sound/soc/amd/acp/acp-mach-common.c
1040
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
1058
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
1063
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
1080
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
120
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
1264
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
1269
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
127
if (drvdata->hs_codec_id != RT5682)
sound/soc/amd/acp/acp-mach-common.c
130
drvdata->wclk = devm_clk_get(component->dev, "rt5682-dai-wclk");
sound/soc/amd/acp/acp-mach-common.c
131
if (IS_ERR(drvdata->wclk))
sound/soc/amd/acp/acp-mach-common.c
132
return PTR_ERR(drvdata->wclk);
sound/soc/amd/acp/acp-mach-common.c
134
drvdata->bclk = devm_clk_get(component->dev, "rt5682-dai-bclk");
sound/soc/amd/acp/acp-mach-common.c
135
if (IS_ERR(drvdata->bclk))
sound/soc/amd/acp/acp-mach-common.c
136
return PTR_ERR(drvdata->bclk);
sound/soc/amd/acp/acp-mach-common.c
1360
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
1381
ret = clk_prepare_enable(drvdata->bclk);
sound/soc/amd/acp/acp-mach-common.c
1389
clk_disable_unprepare(drvdata->bclk);
sound/soc/amd/acp/acp-mach-common.c
1403
struct acp_card_drvdata *drv_data = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
1604
struct acp_card_drvdata *drv_data = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
183
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
188
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
193
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
217
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
219
if (!drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
220
clk_disable_unprepare(drvdata->wclk);
sound/soc/amd/acp/acp-mach-common.c
228
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
238
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
243
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
260
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
291
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
314
if (!drvdata->soc_mclk) {
sound/soc/amd/acp/acp-mach-common.c
315
ret = acp_clk_enable(drvdata, srate, ch * format);
sound/soc/amd/acp/acp-mach-common.c
367
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
374
if (drvdata->hs_codec_id != RT5682S)
sound/soc/amd/acp/acp-mach-common.c
377
if (!drvdata->soc_mclk) {
sound/soc/amd/acp/acp-mach-common.c
378
drvdata->wclk = devm_clk_get(component->dev, "rt5682-dai-wclk");
sound/soc/amd/acp/acp-mach-common.c
379
if (IS_ERR(drvdata->wclk))
sound/soc/amd/acp/acp-mach-common.c
380
return PTR_ERR(drvdata->wclk);
sound/soc/amd/acp/acp-mach-common.c
382
drvdata->bclk = devm_clk_get(component->dev, "rt5682-dai-bclk");
sound/soc/amd/acp/acp-mach-common.c
383
if (IS_ERR(drvdata->bclk))
sound/soc/amd/acp/acp-mach-common.c
384
return PTR_ERR(drvdata->bclk);
sound/soc/amd/acp/acp-mach-common.c
432
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
442
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
447
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
464
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
495
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
518
clk_set_rate(drvdata->wclk, srate);
sound/soc/amd/acp/acp-mach-common.c
519
clk_set_rate(drvdata->bclk, srate * ch * format);
sound/soc/amd/acp/acp-mach-common.c
520
if (!drvdata->soc_mclk) {
sound/soc/amd/acp/acp-mach-common.c
521
ret = acp_clk_enable(drvdata, srate, ch * format);
sound/soc/amd/acp/acp-mach-common.c
597
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
600
if (drvdata->amp_codec_id != RT1019)
sound/soc/amd/acp/acp-mach-common.c
626
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
636
if (drvdata->amp_codec_id != RT1019)
sound/soc/amd/acp/acp-mach-common.c
639
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
644
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
655
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
670
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
685
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
713
if (!drvdata->soc_mclk) {
sound/soc/amd/acp/acp-mach-common.c
714
ret = acp_clk_enable(drvdata, srate, ch * format);
sound/soc/amd/acp/acp-mach-common.c
74
static int acp_clk_enable(struct acp_card_drvdata *drvdata,
sound/soc/amd/acp/acp-mach-common.c
763
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
766
if (drvdata->amp_codec_id != MAX98360A)
sound/soc/amd/acp/acp-mach-common.c
77
clk_set_rate(drvdata->wclk, srate);
sound/soc/amd/acp/acp-mach-common.c
78
clk_set_rate(drvdata->bclk, srate * bclk_ratio);
sound/soc/amd/acp/acp-mach-common.c
792
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
80
return clk_prepare_enable(drvdata->wclk);
sound/soc/amd/acp/acp-mach-common.c
801
if (drvdata->tdm_mode)
sound/soc/amd/acp/acp-mach-common.c
806
if (drvdata->soc_mclk)
sound/soc/amd/acp/acp-mach-common.c
817
if (drvdata->tdm_mode) {
sound/soc/amd/acp/acp-mach-common.c
828
if (!drvdata->soc_mclk) {
sound/soc/amd/acp/acp-mach-common.c
829
ret = acp_clk_enable(drvdata, srate, ch * format);
sound/soc/amd/acp/acp-mach-common.c
900
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
903
if (drvdata->amp_codec_id != MAX98388)
sound/soc/amd/acp/acp-mach-common.c
985
struct acp_card_drvdata *drvdata = card->drvdata;
sound/soc/amd/acp/acp-mach-common.c
992
if (drvdata->hs_codec_id != NAU8825)
sound/soc/amd/acp/acp-mach.h
27
#define acp_get_drvdata(card) ((struct acp_card_drvdata *)(card)->drvdata)
sound/soc/amd/acp/acp-sof-mach.c
108
card->drvdata = (struct acp_card_drvdata *)pdev->id_entry->driver_data;
sound/soc/amd/acp/acp-sof-mach.c
111
acp_card_drvdata = card->drvdata;
sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c
414
acp_drvdata = (struct acp_card_drvdata *)card->drvdata;
sound/soc/atmel/sam9x5_wm8731.c
182
struct sam9x5_drvdata *priv = card->drvdata;
sound/soc/codecs/ab8500-codec.c
1079
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/ab8500-codec.c
1095
drvdata->anc_fir_values[par]);
sound/soc/codecs/ab8500-codec.c
1103
drvdata->anc_iir_values[par]);
sound/soc/codecs/ab8500-codec.c
1118
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/ab8500-codec.c
1120
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1121
ucontrol->value.enumerated.item[0] = drvdata->sid_status;
sound/soc/codecs/ab8500-codec.c
1122
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1132
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/ab8500-codec.c
1145
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1162
val = snd_soc_component_read(component, drvdata->sid_fir_values[param]);
sound/soc/codecs/ab8500-codec.c
1173
drvdata->sid_status = SID_FIR_CONFIGURED;
sound/soc/codecs/ab8500-codec.c
1176
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1187
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/ab8500-codec.c
1189
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1190
ucontrol->value.enumerated.item[0] = drvdata->anc_status;
sound/soc/codecs/ab8500-codec.c
1191
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1201
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/ab8500-codec.c
1209
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1238
if (drvdata->anc_status == ANC_IIR_CONFIGURED)
sound/soc/codecs/ab8500-codec.c
1239
drvdata->anc_status = ANC_FIR_IIR_CONFIGURED;
sound/soc/codecs/ab8500-codec.c
1240
else if (drvdata->anc_status != ANC_FIR_IIR_CONFIGURED)
sound/soc/codecs/ab8500-codec.c
1241
drvdata->anc_status = ANC_FIR_CONFIGURED;
sound/soc/codecs/ab8500-codec.c
1244
if (drvdata->anc_status == ANC_FIR_CONFIGURED)
sound/soc/codecs/ab8500-codec.c
1245
drvdata->anc_status = ANC_FIR_IIR_CONFIGURED;
sound/soc/codecs/ab8500-codec.c
1246
else if (drvdata->anc_status != ANC_FIR_IIR_CONFIGURED)
sound/soc/codecs/ab8500-codec.c
1247
drvdata->anc_status = ANC_IIR_CONFIGURED;
sound/soc/codecs/ab8500-codec.c
1254
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1283
struct ab8500_codec_drvdata *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/codecs/ab8500-codec.c
1288
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1291
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1300
struct ab8500_codec_drvdata *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/codecs/ab8500-codec.c
1305
mutex_lock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
1308
mutex_unlock(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
2455
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(dev);
sound/soc/codecs/ab8500-codec.c
2500
drvdata->anc_fir_values = (long *)fc->value;
sound/soc/codecs/ab8500-codec.c
2503
drvdata->anc_iir_values = (long *)fc->value;
sound/soc/codecs/ab8500-codec.c
2506
drvdata->sid_fir_values = (long *)fc->value;
sound/soc/codecs/ab8500-codec.c
2510
mutex_init(&drvdata->ctrl_lock);
sound/soc/codecs/ab8500-codec.c
2531
struct ab8500_codec_drvdata *drvdata;
sound/soc/codecs/ab8500-codec.c
2536
drvdata = devm_kzalloc(&pdev->dev, sizeof(struct ab8500_codec_drvdata),
sound/soc/codecs/ab8500-codec.c
2538
if (!drvdata)
sound/soc/codecs/ab8500-codec.c
2540
drvdata->sid_status = SID_UNCONFIGURED;
sound/soc/codecs/ab8500-codec.c
2541
drvdata->anc_status = ANC_UNCONFIGURED;
sound/soc/codecs/ab8500-codec.c
2542
dev_set_drvdata(&pdev->dev, drvdata);
sound/soc/codecs/ab8500-codec.c
2544
drvdata->regmap = devm_regmap_init(&pdev->dev, NULL, &pdev->dev,
sound/soc/codecs/ab8500-codec.c
2546
if (IS_ERR(drvdata->regmap)) {
sound/soc/codecs/ab8500-codec.c
2547
status = PTR_ERR(drvdata->regmap);
sound/soc/codecs/ak4375.c
500
const struct ak4375_drvdata *drvdata;
sound/soc/codecs/ak4375.c
515
drvdata = of_device_get_match_data(&i2c->dev);
sound/soc/codecs/ak4375.c
572
ret = devm_snd_soc_register_component(ak4375->dev, drvdata->comp_drv,
sound/soc/codecs/ak4375.c
573
drvdata->dai_drv, 1);
sound/soc/codecs/ak4458.c
381
if (ak4458->drvdata->type == AK4497) {
sound/soc/codecs/ak4458.c
45
const struct ak4458_drvdata *drvdata;
sound/soc/codecs/ak4458.c
450
if (ak4458->drvdata->type == AK4497) {
sound/soc/codecs/ak4458.c
752
ak4458->drvdata = of_device_get_match_data(&i2c->dev);
sound/soc/codecs/ak4458.c
777
ak4458->drvdata->comp_drv,
sound/soc/codecs/ak4458.c
778
ak4458->drvdata->dai_drv, 1);
sound/soc/codecs/ak4642.c
144
const struct ak4642_drvdata *drvdata;
sound/soc/codecs/ak4642.c
378
if (extended_freq && !priv->drvdata->extended_frequencies)
sound/soc/codecs/ak4642.c
634
const struct ak4642_drvdata *drvdata;
sound/soc/codecs/ak4642.c
645
drvdata = i2c_get_match_data(i2c);
sound/soc/codecs/ak4642.c
646
if (!drvdata)
sound/soc/codecs/ak4642.c
653
priv->drvdata = drvdata;
sound/soc/codecs/ak4642.c
658
regmap = devm_regmap_init_i2c(i2c, drvdata->regmap_config);
sound/soc/codecs/cs42xx8-i2c.c
24
struct cs42xx8_driver_data *drvdata;
sound/soc/codecs/cs42xx8-i2c.c
26
drvdata = (struct cs42xx8_driver_data *)i2c_get_match_data(i2c);
sound/soc/codecs/cs42xx8-i2c.c
27
if (!drvdata)
sound/soc/codecs/cs42xx8-i2c.c
32
devm_regmap_init_i2c(i2c, &cs42xx8_regmap_config), drvdata);
sound/soc/codecs/cs42xx8.c
41
const struct cs42xx8_driver_data *drvdata;
sound/soc/codecs/cs42xx8.c
470
switch (cs42xx8->drvdata->num_adcs) {
sound/soc/codecs/cs42xx8.c
513
int cs42xx8_probe(struct device *dev, struct regmap *regmap, struct cs42xx8_driver_data *drvdata)
sound/soc/codecs/cs42xx8.c
532
cs42xx8->drvdata = drvdata;
sound/soc/codecs/cs42xx8.c
588
cs42xx8_dai.name = cs42xx8->drvdata->name;
sound/soc/codecs/cs42xx8.c
591
cs42xx8_dai.capture.channels_max = cs42xx8->drvdata->num_adcs * 2;
sound/soc/codecs/cs42xx8.h
25
int cs42xx8_probe(struct device *dev, struct regmap *regmap, struct cs42xx8_driver_data *drvdata);
sound/soc/codecs/sti-sas.c
254
struct sti_sas_data *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/sti-sas.c
264
drvdata->spdif.mclk = freq;
sound/soc/codecs/sti-sas.c
268
drvdata->dac.mclk = freq;
sound/soc/codecs/sti-sas.c
279
struct sti_sas_data *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/sti-sas.c
284
if ((drvdata->spdif.mclk / runtime->rate) != 128) {
sound/soc/codecs/sti-sas.c
290
if ((drvdata->dac.mclk / runtime->rate) != 256) {
sound/soc/codecs/sti-sas.c
366
struct sti_sas_data *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/sti-sas.c
368
return sti_sas_init_sas_registers(component, drvdata);
sound/soc/codecs/sti-sas.c
376
struct sti_sas_data *drvdata = dev_get_drvdata(component->dev);
sound/soc/codecs/sti-sas.c
378
return sti_sas_init_sas_registers(component, drvdata);
sound/soc/codecs/sti-sas.c
405
struct sti_sas_data *drvdata;
sound/soc/codecs/sti-sas.c
409
drvdata = devm_kzalloc(&pdev->dev, sizeof(struct sti_sas_data),
sound/soc/codecs/sti-sas.c
411
if (!drvdata)
sound/soc/codecs/sti-sas.c
421
drvdata->dev_data = (struct sti_sas_dev_data *)of_id->data;
sound/soc/codecs/sti-sas.c
424
drvdata->dev = &pdev->dev;
sound/soc/codecs/sti-sas.c
427
drvdata->dac.virt_regmap = devm_regmap_init(&pdev->dev, NULL, drvdata,
sound/soc/codecs/sti-sas.c
428
drvdata->dev_data->regmap);
sound/soc/codecs/sti-sas.c
429
if (IS_ERR(drvdata->dac.virt_regmap)) {
sound/soc/codecs/sti-sas.c
431
return PTR_ERR(drvdata->dac.virt_regmap);
sound/soc/codecs/sti-sas.c
435
drvdata->dac.regmap =
sound/soc/codecs/sti-sas.c
437
if (IS_ERR(drvdata->dac.regmap)) {
sound/soc/codecs/sti-sas.c
439
return PTR_ERR(drvdata->dac.regmap);
sound/soc/codecs/sti-sas.c
441
drvdata->spdif.regmap = drvdata->dac.regmap;
sound/soc/codecs/sti-sas.c
443
sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops;
sound/soc/codecs/sti-sas.c
446
dev_set_drvdata(&pdev->dev, drvdata);
sound/soc/codecs/sti-sas.c
80
struct sti_sas_data *drvdata = context;
sound/soc/codecs/sti-sas.c
84
status = regmap_read(drvdata->dac.regmap, reg, &val);
sound/soc/codecs/sti-sas.c
94
struct sti_sas_data *drvdata = context;
sound/soc/codecs/sti-sas.c
96
return regmap_write(drvdata->dac.regmap, reg, value);
sound/soc/codecs/wcd939x.c
3476
.drvdata = wcd939x,
sound/soc/codecs/wcd939x.c
3481
.drvdata = wcd939x,
sound/soc/codecs/wm8580.c
1019
wm8580->drvdata = i2c_get_match_data(i2c);
sound/soc/codecs/wm8580.c
1020
if (!wm8580->drvdata)
sound/soc/codecs/wm8580.c
250
const struct wm8580_driver_data *drvdata;
sound/soc/codecs/wm8580.c
858
SNDRV_PCM_HW_PARAM_CHANNELS, 1, wm8580->drvdata->num_dacs * 2);
sound/soc/codecs/wm8580.c
915
switch (wm8580->drvdata->num_dacs) {
sound/soc/qcom/lpass-apq8016.c
123
static int apq8016_lpass_alloc_dma_channel(struct lpass_data *drvdata,
sound/soc/qcom/lpass-apq8016.c
126
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-apq8016.c
130
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-apq8016.c
136
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-apq8016.c
145
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-apq8016.c
150
static int apq8016_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-apq8016.c
152
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-apq8016.c
159
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-apq8016.c
160
const struct lpass_variant *variant = drvdata->variant;
sound/soc/qcom/lpass-apq8016.c
165
drvdata->clks = devm_kcalloc(dev, variant->num_clks,
sound/soc/qcom/lpass-apq8016.c
166
sizeof(*drvdata->clks), GFP_KERNEL);
sound/soc/qcom/lpass-apq8016.c
167
if (!drvdata->clks)
sound/soc/qcom/lpass-apq8016.c
169
drvdata->num_clks = variant->num_clks;
sound/soc/qcom/lpass-apq8016.c
171
for (i = 0; i < drvdata->num_clks; i++)
sound/soc/qcom/lpass-apq8016.c
172
drvdata->clks[i].id = variant->clk_name[i];
sound/soc/qcom/lpass-apq8016.c
174
ret = devm_clk_bulk_get(dev, drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-apq8016.c
180
ret = clk_bulk_prepare_enable(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-apq8016.c
186
drvdata->ahbix_clk = devm_clk_get(dev, "ahbix-clk");
sound/soc/qcom/lpass-apq8016.c
187
if (IS_ERR(drvdata->ahbix_clk)) {
sound/soc/qcom/lpass-apq8016.c
189
PTR_ERR(drvdata->ahbix_clk));
sound/soc/qcom/lpass-apq8016.c
190
ret = PTR_ERR(drvdata->ahbix_clk);
sound/soc/qcom/lpass-apq8016.c
194
ret = clk_set_rate(drvdata->ahbix_clk, LPASS_AHBIX_CLOCK_FREQUENCY);
sound/soc/qcom/lpass-apq8016.c
200
clk_get_rate(drvdata->ahbix_clk));
sound/soc/qcom/lpass-apq8016.c
202
ret = clk_prepare_enable(drvdata->ahbix_clk);
sound/soc/qcom/lpass-apq8016.c
211
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-apq8016.c
217
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-apq8016.c
219
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-apq8016.c
220
clk_disable_unprepare(drvdata->ahbix_clk);
sound/soc/qcom/lpass-cdc-dma.c
174
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cdc-dma.c
180
clk_set_rate(drvdata->codec_mem0, CODEC_MEM_HZ_NORMAL);
sound/soc/qcom/lpass-cdc-dma.c
181
clk_prepare_enable(drvdata->codec_mem0);
sound/soc/qcom/lpass-cdc-dma.c
184
clk_set_rate(drvdata->va_mem0, CODEC_MEM_HZ_NORMAL);
sound/soc/qcom/lpass-cdc-dma.c
185
clk_prepare_enable(drvdata->va_mem0);
sound/soc/qcom/lpass-cdc-dma.c
197
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cdc-dma.c
203
clk_disable_unprepare(drvdata->codec_mem0);
sound/soc/qcom/lpass-cdc-dma.c
206
clk_disable_unprepare(drvdata->va_mem0);
sound/soc/qcom/lpass-cdc-dma.c
38
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cdc-dma.c
41
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cdc-dma.c
46
*dmactl = drvdata->rxtx_rd_dmactl;
sound/soc/qcom/lpass-cdc-dma.c
50
*dmactl = drvdata->rxtx_wr_dmactl;
sound/soc/qcom/lpass-cdc-dma.c
54
*dmactl = drvdata->va_wr_dmactl;
sound/soc/qcom/lpass-cpu.c
106
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
107
struct lpaif_i2sctl *i2sctl = drvdata->i2sctl;
sound/soc/qcom/lpass-cpu.c
110
clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
1104
struct lpass_data *drvdata;
sound/soc/qcom/lpass-cpu.c
1118
drvdata = devm_kzalloc(dev, sizeof(struct lpass_data), GFP_KERNEL);
sound/soc/qcom/lpass-cpu.c
1119
if (!drvdata)
sound/soc/qcom/lpass-cpu.c
1121
platform_set_drvdata(pdev, drvdata);
sound/soc/qcom/lpass-cpu.c
1130
drvdata->variant = variant;
sound/soc/qcom/lpass-cpu.c
1132
of_lpass_cpu_parse_dai_data(dev, drvdata);
sound/soc/qcom/lpass-cpu.c
1134
if (drvdata->codec_dma_enable) {
sound/soc/qcom/lpass-cpu.c
1135
drvdata->rxtx_lpaif =
sound/soc/qcom/lpass-cpu.c
1137
if (IS_ERR(drvdata->rxtx_lpaif))
sound/soc/qcom/lpass-cpu.c
1138
return PTR_ERR(drvdata->rxtx_lpaif);
sound/soc/qcom/lpass-cpu.c
1140
drvdata->va_lpaif = devm_platform_ioremap_resource_byname(pdev, "lpass-va-lpaif");
sound/soc/qcom/lpass-cpu.c
1141
if (IS_ERR(drvdata->va_lpaif))
sound/soc/qcom/lpass-cpu.c
1142
return PTR_ERR(drvdata->va_lpaif);
sound/soc/qcom/lpass-cpu.c
1148
drvdata->rxtx_lpaif_map = devm_regmap_init_mmio(dev, drvdata->rxtx_lpaif,
sound/soc/qcom/lpass-cpu.c
1150
if (IS_ERR(drvdata->rxtx_lpaif_map))
sound/soc/qcom/lpass-cpu.c
1151
return PTR_ERR(drvdata->rxtx_lpaif_map);
sound/soc/qcom/lpass-cpu.c
1157
drvdata->va_lpaif_map = devm_regmap_init_mmio(dev, drvdata->va_lpaif,
sound/soc/qcom/lpass-cpu.c
1159
if (IS_ERR(drvdata->va_lpaif_map))
sound/soc/qcom/lpass-cpu.c
1160
return PTR_ERR(drvdata->va_lpaif_map);
sound/soc/qcom/lpass-cpu.c
1162
ret = of_lpass_cdc_dma_clks_parse(dev, drvdata);
sound/soc/qcom/lpass-cpu.c
1171
drvdata->rxtx_cdc_dma_lpm_buf = res->start;
sound/soc/qcom/lpass-cpu.c
1176
drvdata->va_cdc_dma_lpm_buf = res->start;
sound/soc/qcom/lpass-cpu.c
1179
drvdata->lpaif = devm_platform_ioremap_resource_byname(pdev, "lpass-lpaif");
sound/soc/qcom/lpass-cpu.c
1180
if (IS_ERR(drvdata->lpaif))
sound/soc/qcom/lpass-cpu.c
1181
return PTR_ERR(drvdata->lpaif);
sound/soc/qcom/lpass-cpu.c
1187
drvdata->lpaif_map = devm_regmap_init_mmio(dev, drvdata->lpaif,
sound/soc/qcom/lpass-cpu.c
1189
if (IS_ERR(drvdata->lpaif_map)) {
sound/soc/qcom/lpass-cpu.c
1191
PTR_ERR(drvdata->lpaif_map));
sound/soc/qcom/lpass-cpu.c
1192
return PTR_ERR(drvdata->lpaif_map);
sound/soc/qcom/lpass-cpu.c
1195
if (drvdata->hdmi_port_enable) {
sound/soc/qcom/lpass-cpu.c
1196
drvdata->hdmiif = devm_platform_ioremap_resource_byname(pdev, "lpass-hdmiif");
sound/soc/qcom/lpass-cpu.c
1197
if (IS_ERR(drvdata->hdmiif))
sound/soc/qcom/lpass-cpu.c
1198
return PTR_ERR(drvdata->hdmiif);
sound/soc/qcom/lpass-cpu.c
1202
drvdata->hdmiif_map = devm_regmap_init_mmio(dev, drvdata->hdmiif,
sound/soc/qcom/lpass-cpu.c
1204
if (IS_ERR(drvdata->hdmiif_map)) {
sound/soc/qcom/lpass-cpu.c
1206
PTR_ERR(drvdata->hdmiif_map));
sound/soc/qcom/lpass-cpu.c
1207
return PTR_ERR(drvdata->hdmiif_map);
sound/soc/qcom/lpass-cpu.c
1224
drvdata->mi2s_osr_clk[dai_id] = devm_clk_get_optional(dev,
sound/soc/qcom/lpass-cpu.c
1226
drvdata->mi2s_bit_clk[dai_id] = devm_clk_get(dev,
sound/soc/qcom/lpass-cpu.c
1228
if (IS_ERR(drvdata->mi2s_bit_clk[dai_id])) {
sound/soc/qcom/lpass-cpu.c
1232
PTR_ERR(drvdata->mi2s_bit_clk[dai_id]));
sound/soc/qcom/lpass-cpu.c
1233
return PTR_ERR(drvdata->mi2s_bit_clk[dai_id]);
sound/soc/qcom/lpass-cpu.c
1235
if (drvdata->mi2s_playback_sd_mode[dai_id] ==
sound/soc/qcom/lpass-cpu.c
1243
drvdata->i2sctl = devm_kzalloc(&pdev->dev, sizeof(struct lpaif_i2sctl),
sound/soc/qcom/lpass-cpu.c
1245
if (!drvdata->i2sctl)
sound/soc/qcom/lpass-cpu.c
1249
ret = lpass_cpu_init_i2sctl_bitfields(dev, drvdata->i2sctl,
sound/soc/qcom/lpass-cpu.c
1250
drvdata->lpaif_map);
sound/soc/qcom/lpass-cpu.c
1256
if (drvdata->hdmi_port_enable) {
sound/soc/qcom/lpass-cpu.c
1257
ret = lpass_hdmi_init_bitfields(dev, drvdata->hdmiif_map);
sound/soc/qcom/lpass-cpu.c
126
if (drvdata->mi2s_was_prepared[dai->driver->id]) {
sound/soc/qcom/lpass-cpu.c
127
drvdata->mi2s_was_prepared[dai->driver->id] = false;
sound/soc/qcom/lpass-cpu.c
128
clk_disable(drvdata->mi2s_bit_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
1285
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-cpu.c
1287
if (drvdata->variant->exit)
sound/soc/qcom/lpass-cpu.c
1288
drvdata->variant->exit(pdev);
sound/soc/qcom/lpass-cpu.c
1294
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-cpu.c
1296
if (drvdata->variant->exit)
sound/soc/qcom/lpass-cpu.c
1297
drvdata->variant->exit(pdev);
sound/soc/qcom/lpass-cpu.c
131
clk_unprepare(drvdata->mi2s_bit_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
137
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
138
struct lpaif_i2sctl *i2sctl = drvdata->i2sctl;
sound/soc/qcom/lpass-cpu.c
189
mode = drvdata->mi2s_playback_sd_mode[id];
sound/soc/qcom/lpass-cpu.c
191
mode = drvdata->mi2s_capture_sd_mode[id];
sound/soc/qcom/lpass-cpu.c
288
ret = clk_set_rate(drvdata->mi2s_bit_clk[id],
sound/soc/qcom/lpass-cpu.c
302
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
303
struct lpaif_i2sctl *i2sctl = drvdata->i2sctl;
sound/soc/qcom/lpass-cpu.c
334
ret = clk_enable(drvdata->mi2s_bit_clk[id]);
sound/soc/qcom/lpass-cpu.c
337
clk_disable(drvdata->mi2s_osr_clk[id]);
sound/soc/qcom/lpass-cpu.c
359
clk_disable(drvdata->mi2s_bit_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
370
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
371
struct lpaif_i2sctl *i2sctl = drvdata->i2sctl;
sound/soc/qcom/lpass-cpu.c
396
if (!drvdata->mi2s_was_prepared[dai->driver->id]) {
sound/soc/qcom/lpass-cpu.c
397
ret = clk_enable(drvdata->mi2s_bit_clk[id]);
sound/soc/qcom/lpass-cpu.c
402
drvdata->mi2s_was_prepared[dai->driver->id] = true;
sound/soc/qcom/lpass-cpu.c
411
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
413
if (drvdata->mi2s_playback_sd_mode[dai->id] == LPAIF_I2SCTL_MODE_QUAD01) {
sound/soc/qcom/lpass-cpu.c
426
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
430
ret = regmap_write(drvdata->lpaif_map,
sound/soc/qcom/lpass-cpu.c
431
LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), 0);
sound/soc/qcom/lpass-cpu.c
46
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
465
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-cpu.c
466
const struct lpass_variant *variant = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
47
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
490
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
491
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
532
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
533
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
580
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
581
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
615
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
616
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
635
drvdata->tx_ctl = tx_ctl;
sound/soc/qcom/lpass-cpu.c
638
drvdata->hdmitx_legacy_en = legacy_en;
sound/soc/qcom/lpass-cpu.c
646
drvdata->vbit_ctl = vbit_ctl;
sound/soc/qcom/lpass-cpu.c
650
drvdata->hdmitx_parity_calc_en = tx_parity;
sound/soc/qcom/lpass-cpu.c
659
drvdata->meta_ctl = meta_ctl;
sound/soc/qcom/lpass-cpu.c
669
drvdata->sstream_ctl = sstream_ctl;
sound/soc/qcom/lpass-cpu.c
673
drvdata->hdmitx_ch_msb[i] = ch_msb;
sound/soc/qcom/lpass-cpu.c
676
drvdata->hdmitx_ch_lsb[i] = ch_lsb;
sound/soc/qcom/lpass-cpu.c
686
drvdata->hdmi_tx_dmactl[i] = tx_dmactl;
sound/soc/qcom/lpass-cpu.c
693
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
694
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
72
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
738
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
739
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
75
ret = clk_set_rate(drvdata->mi2s_osr_clk[dai->driver->id], freq);
sound/soc/qcom/lpass-cpu.c
787
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
788
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
826
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
827
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
86
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-cpu.c
89
ret = clk_prepare_enable(drvdata->mi2s_osr_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
892
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
893
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
917
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
918
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
94
ret = clk_prepare(drvdata->mi2s_bit_clk[dai->driver->id]);
sound/soc/qcom/lpass-cpu.c
967
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-cpu.c
968
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-cpu.c
97
clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]);
sound/soc/qcom/lpass-hdmi.c
101
ret = regmap_field_write(drvdata->hdmitx_ch_msb[0], ch_sts_buf1);
sound/soc/qcom/lpass-hdmi.c
105
ret = regmap_field_write(drvdata->hdmitx_ch_lsb[0], ch_sts_buf0);
sound/soc/qcom/lpass-hdmi.c
109
ret = regmap_field_write(drvdata->hdmi_tx_dmactl[0]->use_hw_chs, HW_MODE);
sound/soc/qcom/lpass-hdmi.c
113
ret = regmap_field_write(drvdata->hdmi_tx_dmactl[0]->hw_chs_sel, SW_MODE);
sound/soc/qcom/lpass-hdmi.c
117
ret = regmap_field_write(drvdata->hdmi_tx_dmactl[0]->use_hw_usr, HW_MODE);
sound/soc/qcom/lpass-hdmi.c
121
ret = regmap_field_write(drvdata->hdmi_tx_dmactl[0]->hw_usr_sel, SW_MODE);
sound/soc/qcom/lpass-hdmi.c
194
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-hdmi.c
196
ret = regmap_field_write(drvdata->sstream_ctl->sstream_en, LPASS_SSTREAM_ENABLE);
sound/soc/qcom/lpass-hdmi.c
200
ret = regmap_field_write(drvdata->meta_ctl->mute, LPASS_MUTE_DISABLE);
sound/soc/qcom/lpass-hdmi.c
208
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-hdmi.c
209
struct lpass_dp_metadata_ctl *meta_ctl = drvdata->meta_ctl;
sound/soc/qcom/lpass-hdmi.c
210
struct lpass_sstream_ctl *sstream_ctl = drvdata->sstream_ctl;
sound/soc/qcom/lpass-hdmi.c
22
struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
sound/soc/qcom/lpass-hdmi.c
33
struct lpass_dp_metadata_ctl *meta_ctl = drvdata->meta_ctl;
sound/soc/qcom/lpass-hdmi.c
34
struct lpass_sstream_ctl *sstream_ctl = drvdata->sstream_ctl;
sound/soc/qcom/lpass-hdmi.c
77
ret = regmap_field_write(drvdata->tx_ctl->soft_reset, LPASS_TX_CTL_RESET);
sound/soc/qcom/lpass-hdmi.c
81
ret = regmap_field_write(drvdata->tx_ctl->soft_reset, LPASS_TX_CTL_CLEAR);
sound/soc/qcom/lpass-hdmi.c
85
ret = regmap_field_write(drvdata->hdmitx_legacy_en, LPASS_HDMITX_LEGACY_DISABLE);
sound/soc/qcom/lpass-hdmi.c
89
ret = regmap_field_write(drvdata->hdmitx_parity_calc_en, HDMITX_PARITY_CALC_EN);
sound/soc/qcom/lpass-hdmi.c
93
ret = regmap_field_write(drvdata->vbit_ctl->replace_vbit, REPLACE_VBIT);
sound/soc/qcom/lpass-hdmi.c
97
ret = regmap_field_write(drvdata->vbit_ctl->vbit_stream, LINEAR_PCM_DATA);
sound/soc/qcom/lpass-ipq806x.c
106
static int ipq806x_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-ipq806x.c
59
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-ipq806x.c
63
drvdata->ahbix_clk = devm_clk_get(dev, "ahbix-clk");
sound/soc/qcom/lpass-ipq806x.c
64
if (IS_ERR(drvdata->ahbix_clk)) {
sound/soc/qcom/lpass-ipq806x.c
66
PTR_ERR(drvdata->ahbix_clk));
sound/soc/qcom/lpass-ipq806x.c
67
ret = PTR_ERR(drvdata->ahbix_clk);
sound/soc/qcom/lpass-ipq806x.c
71
ret = clk_set_rate(drvdata->ahbix_clk, LPASS_AHBIX_CLOCK_FREQUENCY);
sound/soc/qcom/lpass-ipq806x.c
77
clk_get_rate(drvdata->ahbix_clk));
sound/soc/qcom/lpass-ipq806x.c
79
ret = clk_prepare_enable(drvdata->ahbix_clk);
sound/soc/qcom/lpass-ipq806x.c
91
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-ipq806x.c
93
clk_disable_unprepare(drvdata->ahbix_clk);
sound/soc/qcom/lpass-ipq806x.c
98
static int ipq806x_lpass_alloc_dma_channel(struct lpass_data *drvdata, int dir, unsigned int dai_id)
sound/soc/qcom/lpass-platform.c
1022
struct lpass_data *drvdata = data;
sound/soc/qcom/lpass-platform.c
1023
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1027
rv = regmap_read(drvdata->lpaif_map,
sound/soc/qcom/lpass-platform.c
103
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-platform.c
1036
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->substream[chan]) {
sound/soc/qcom/lpass-platform.c
1038
drvdata->substream[chan],
sound/soc/qcom/lpass-platform.c
1039
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
104
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1050
struct lpass_data *drvdata = data;
sound/soc/qcom/lpass-platform.c
1051
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1055
rv = regmap_read(drvdata->hdmiif_map,
sound/soc/qcom/lpass-platform.c
1067
&& drvdata->hdmi_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1069
drvdata->hdmi_substream[chan],
sound/soc/qcom/lpass-platform.c
1070
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1080
struct lpass_data *drvdata = data;
sound/soc/qcom/lpass-platform.c
1081
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1086
rv = regmap_read(drvdata->rxtx_lpaif_map,
sound/soc/qcom/lpass-platform.c
1091
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->rxtx_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1093
drvdata->rxtx_substream[chan],
sound/soc/qcom/lpass-platform.c
1094
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1105
struct lpass_data *drvdata = data;
sound/soc/qcom/lpass-platform.c
1106
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1111
rv = regmap_read(drvdata->va_lpaif_map,
sound/soc/qcom/lpass-platform.c
1116
if (irqs & LPAIF_IRQ_ALL(chan) && drvdata->va_substream[chan]) {
sound/soc/qcom/lpass-platform.c
1118
drvdata->va_substream[chan],
sound/soc/qcom/lpass-platform.c
1119
drvdata, chan, irqs);
sound/soc/qcom/lpass-platform.c
1130
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
1149
buf->addr = drvdata->rxtx_cdc_dma_lpm_buf;
sound/soc/qcom/lpass-platform.c
1153
buf->addr = drvdata->rxtx_cdc_dma_lpm_buf + LPASS_RXTX_CDC_DMA_LPM_BUFF_SIZE;
sound/soc/qcom/lpass-platform.c
1157
buf->addr = drvdata->va_cdc_dma_lpm_buf;
sound/soc/qcom/lpass-platform.c
116
drvdata->rxtx_rd_dmactl = rd_dmactl;
sound/soc/qcom/lpass-platform.c
117
drvdata->rxtx_wr_dmactl = wr_dmactl;
sound/soc/qcom/lpass-platform.c
1190
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
1193
if (drvdata->hdmi_port_enable) {
sound/soc/qcom/lpass-platform.c
1194
map = drvdata->hdmiif_map;
sound/soc/qcom/lpass-platform.c
1199
map = drvdata->lpaif_map;
sound/soc/qcom/lpass-platform.c
1208
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
1212
if (drvdata->hdmi_port_enable) {
sound/soc/qcom/lpass-platform.c
1213
map = drvdata->hdmiif_map;
sound/soc/qcom/lpass-platform.c
1220
map = drvdata->lpaif_map;
sound/soc/qcom/lpass-platform.c
1280
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-platform.c
1281
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1284
drvdata->lpaif_irq = platform_get_irq_byname(pdev, "lpass-irq-lpaif");
sound/soc/qcom/lpass-platform.c
1285
if (drvdata->lpaif_irq < 0)
sound/soc/qcom/lpass-platform.c
1289
ret = regmap_write(drvdata->lpaif_map,
sound/soc/qcom/lpass-platform.c
1296
ret = devm_request_irq(&pdev->dev, drvdata->lpaif_irq,
sound/soc/qcom/lpass-platform.c
1298
"lpass-irq-lpaif", drvdata);
sound/soc/qcom/lpass-platform.c
1305
drvdata->lpaif_map);
sound/soc/qcom/lpass-platform.c
131
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-platform.c
1312
if (drvdata->codec_dma_enable) {
sound/soc/qcom/lpass-platform.c
1313
ret = regmap_write(drvdata->rxtx_lpaif_map,
sound/soc/qcom/lpass-platform.c
1319
ret = regmap_write(drvdata->va_lpaif_map,
sound/soc/qcom/lpass-platform.c
132
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
1325
drvdata->rxtxif_irq = platform_get_irq_byname(pdev, "lpass-irq-rxtxif");
sound/soc/qcom/lpass-platform.c
1326
if (drvdata->rxtxif_irq < 0)
sound/soc/qcom/lpass-platform.c
1329
ret = devm_request_irq(&pdev->dev, drvdata->rxtxif_irq,
sound/soc/qcom/lpass-platform.c
1330
lpass_platform_rxtxif_irq, 0, "lpass-irq-rxtxif", drvdata);
sound/soc/qcom/lpass-platform.c
1337
drvdata->rxtx_lpaif_map);
sound/soc/qcom/lpass-platform.c
1344
drvdata->vaif_irq = platform_get_irq_byname(pdev, "lpass-irq-vaif");
sound/soc/qcom/lpass-platform.c
1345
if (drvdata->vaif_irq < 0)
sound/soc/qcom/lpass-platform.c
1348
ret = devm_request_irq(&pdev->dev, drvdata->vaif_irq,
sound/soc/qcom/lpass-platform.c
1349
lpass_platform_vaif_irq, 0, "lpass-irq-vaif", drvdata);
sound/soc/qcom/lpass-platform.c
1356
drvdata->va_lpaif_map);
sound/soc/qcom/lpass-platform.c
1364
if (drvdata->hdmi_port_enable) {
sound/soc/qcom/lpass-platform.c
1365
drvdata->hdmiif_irq = platform_get_irq_byname(pdev, "lpass-irq-hdmi");
sound/soc/qcom/lpass-platform.c
1366
if (drvdata->hdmiif_irq < 0)
sound/soc/qcom/lpass-platform.c
1369
ret = devm_request_irq(&pdev->dev, drvdata->hdmiif_irq,
sound/soc/qcom/lpass-platform.c
1370
lpass_platform_hdmiif_irq, 0, "lpass-irq-hdmi", drvdata);
sound/soc/qcom/lpass-platform.c
1375
ret = regmap_write(drvdata->hdmiif_map,
sound/soc/qcom/lpass-platform.c
1383
drvdata->hdmiif_map);
sound/soc/qcom/lpass-platform.c
139
drvdata->va_wr_dmactl = wr_dmactl;
sound/soc/qcom/lpass-platform.c
148
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-platform.c
149
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
153
drvdata->rd_dmactl = devm_kzalloc(dev, sizeof(struct lpaif_dmactl),
sound/soc/qcom/lpass-platform.c
155
if (drvdata->rd_dmactl == NULL)
sound/soc/qcom/lpass-platform.c
158
drvdata->wr_dmactl = devm_kzalloc(dev, sizeof(struct lpaif_dmactl),
sound/soc/qcom/lpass-platform.c
160
if (drvdata->wr_dmactl == NULL)
sound/soc/qcom/lpass-platform.c
163
rd_dmactl = drvdata->rd_dmactl;
sound/soc/qcom/lpass-platform.c
164
wr_dmactl = drvdata->wr_dmactl;
sound/soc/qcom/lpass-platform.c
178
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-platform.c
179
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
186
drvdata->hdmi_rd_dmactl = rd_dmactl;
sound/soc/qcom/lpass-platform.c
198
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
199
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
213
dma_ch = v->alloc_dma_channel(drvdata, dir, dai_id);
sound/soc/qcom/lpass-platform.c
224
map = drvdata->lpaif_map;
sound/soc/qcom/lpass-platform.c
225
drvdata->substream[dma_ch] = substream;
sound/soc/qcom/lpass-platform.c
228
map = drvdata->hdmiif_map;
sound/soc/qcom/lpass-platform.c
229
drvdata->hdmi_substream[dma_ch] = substream;
sound/soc/qcom/lpass-platform.c
233
map = drvdata->rxtx_lpaif_map;
sound/soc/qcom/lpass-platform.c
234
drvdata->rxtx_substream[dma_ch] = substream;
sound/soc/qcom/lpass-platform.c
237
map = drvdata->va_lpaif_map;
sound/soc/qcom/lpass-platform.c
238
drvdata->va_substream[dma_ch] = substream;
sound/soc/qcom/lpass-platform.c
289
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
290
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
298
drvdata->substream[data->dma_ch] = NULL;
sound/soc/qcom/lpass-platform.c
301
drvdata->hdmi_substream[data->dma_ch] = NULL;
sound/soc/qcom/lpass-platform.c
305
drvdata->rxtx_substream[data->dma_ch] = NULL;
sound/soc/qcom/lpass-platform.c
308
drvdata->va_substream[data->dma_ch] = NULL;
sound/soc/qcom/lpass-platform.c
315
v->free_dma_channel(drvdata, data->dma_ch, dai_id);
sound/soc/qcom/lpass-platform.c
326
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
332
dmactl = drvdata->rd_dmactl;
sound/soc/qcom/lpass-platform.c
334
dmactl = drvdata->wr_dmactl;
sound/soc/qcom/lpass-platform.c
337
dmactl = drvdata->hdmi_rd_dmactl;
sound/soc/qcom/lpass-platform.c
340
dmactl = drvdata->rxtx_rd_dmactl;
sound/soc/qcom/lpass-platform.c
343
dmactl = drvdata->rxtx_wr_dmactl;
sound/soc/qcom/lpass-platform.c
346
dmactl = drvdata->va_wr_dmactl;
sound/soc/qcom/lpass-platform.c
358
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
361
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
393
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
398
map = drvdata->lpaif_map;
sound/soc/qcom/lpass-platform.c
401
map = drvdata->hdmiif_map;
sound/soc/qcom/lpass-platform.c
405
map = drvdata->rxtx_lpaif_map;
sound/soc/qcom/lpass-platform.c
408
map = drvdata->va_lpaif_map;
sound/soc/qcom/lpass-platform.c
421
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
424
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
574
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
577
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
602
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
605
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
665
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
668
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
864
struct lpass_data *drvdata = snd_soc_component_get_drvdata(component);
sound/soc/qcom/lpass-platform.c
867
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
926
struct lpass_data *drvdata,
sound/soc/qcom/lpass-platform.c
931
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-platform.c
941
map = drvdata->hdmiif_map;
sound/soc/qcom/lpass-platform.c
952
map = drvdata->lpaif_map;
sound/soc/qcom/lpass-platform.c
958
map = drvdata->rxtx_lpaif_map;
sound/soc/qcom/lpass-platform.c
963
map = drvdata->va_lpaif_map;
sound/soc/qcom/lpass-sc7180.c
108
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
113
static int sc7180_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-sc7180.c
116
clear_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
118
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
125
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-sc7180.c
126
const struct lpass_variant *variant = drvdata->variant;
sound/soc/qcom/lpass-sc7180.c
130
drvdata->clks = devm_kcalloc(dev, variant->num_clks,
sound/soc/qcom/lpass-sc7180.c
131
sizeof(*drvdata->clks), GFP_KERNEL);
sound/soc/qcom/lpass-sc7180.c
132
if (!drvdata->clks)
sound/soc/qcom/lpass-sc7180.c
135
drvdata->num_clks = variant->num_clks;
sound/soc/qcom/lpass-sc7180.c
137
for (i = 0; i < drvdata->num_clks; i++)
sound/soc/qcom/lpass-sc7180.c
138
drvdata->clks[i].id = variant->clk_name[i];
sound/soc/qcom/lpass-sc7180.c
140
ret = devm_clk_bulk_get(dev, drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7180.c
146
ret = clk_bulk_prepare_enable(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7180.c
157
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-sc7180.c
159
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7180.c
165
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-sc7180.c
167
return clk_bulk_prepare_enable(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7180.c
172
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-sc7180.c
174
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7180.c
76
static int sc7180_lpass_alloc_dma_channel(struct lpass_data *drvdata,
sound/soc/qcom/lpass-sc7180.c
79
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-sc7180.c
84
chan = find_first_zero_bit(&drvdata->hdmi_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7180.c
90
set_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7180.c
93
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7180.c
99
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
110
static int sc7280_lpass_alloc_dma_channel(struct lpass_data *drvdata,
sound/soc/qcom/lpass-sc7280.c
113
const struct lpass_variant *v = drvdata->variant;
sound/soc/qcom/lpass-sc7280.c
119
chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
125
chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
133
set_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
136
chan = find_first_zero_bit(&drvdata->hdmi_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
140
set_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
143
chan = find_first_zero_bit(&drvdata->rxtx_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
149
chan = find_next_zero_bit(&drvdata->rxtx_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
155
set_bit(chan, &drvdata->rxtx_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
158
chan = find_next_zero_bit(&drvdata->va_dma_ch_bit_map,
sound/soc/qcom/lpass-sc7280.c
164
set_bit(chan, &drvdata->va_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
173
static int sc7280_lpass_free_dma_channel(struct lpass_data *drvdata, int chan, unsigned int dai_id)
sound/soc/qcom/lpass-sc7280.c
177
clear_bit(chan, &drvdata->dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
180
clear_bit(chan, &drvdata->hdmi_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
184
clear_bit(chan, &drvdata->rxtx_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
187
clear_bit(chan, &drvdata->va_dma_ch_bit_map);
sound/soc/qcom/lpass-sc7280.c
198
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-sc7280.c
199
const struct lpass_variant *variant = drvdata->variant;
sound/soc/qcom/lpass-sc7280.c
203
drvdata->clks = devm_kcalloc(dev, variant->num_clks,
sound/soc/qcom/lpass-sc7280.c
204
sizeof(*drvdata->clks), GFP_KERNEL);
sound/soc/qcom/lpass-sc7280.c
205
if (!drvdata->clks)
sound/soc/qcom/lpass-sc7280.c
208
drvdata->num_clks = variant->num_clks;
sound/soc/qcom/lpass-sc7280.c
210
for (i = 0; i < drvdata->num_clks; i++)
sound/soc/qcom/lpass-sc7280.c
211
drvdata->clks[i].id = variant->clk_name[i];
sound/soc/qcom/lpass-sc7280.c
213
ret = devm_clk_bulk_get(dev, drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7280.c
219
ret = clk_bulk_prepare_enable(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7280.c
230
struct lpass_data *drvdata = platform_get_drvdata(pdev);
sound/soc/qcom/lpass-sc7280.c
232
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7280.c
238
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-sc7280.c
240
return clk_bulk_prepare_enable(drvdata->num_clks, drvdata->clks);
sound/soc/qcom/lpass-sc7280.c
245
struct lpass_data *drvdata = dev_get_drvdata(dev);
sound/soc/qcom/lpass-sc7280.c
247
clk_bulk_disable_unprepare(drvdata->num_clks, drvdata->clks);
sound/soc/samsung/bells.c
104
struct bells_drvdata *bells = card->drvdata;
sound/soc/samsung/bells.c
141
struct bells_drvdata *bells = card->drvdata;
sound/soc/samsung/bells.c
425
.drvdata = &wm2200_drvdata,
sound/soc/samsung/bells.c
445
.drvdata = &wm5102_drvdata,
sound/soc/samsung/bells.c
465
.drvdata = &wm5110_drvdata,
sound/soc/samsung/bells.c
58
struct bells_drvdata *bells = card->drvdata;
sound/soc/ti/davinci-evm.c
180
struct snd_soc_card_drvdata_davinci *drvdata = NULL;
sound/soc/ti/davinci-evm.c
218
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
sound/soc/ti/davinci-evm.c
219
if (!drvdata) {
sound/soc/ti/davinci-evm.c
224
drvdata->mclk = mclk;
sound/soc/ti/davinci-evm.c
226
ret = of_property_read_u32(np, "ti,codec-clock-rate", &drvdata->sysclk);
sound/soc/ti/davinci-evm.c
229
if (!drvdata->mclk) {
sound/soc/ti/davinci-evm.c
235
drvdata->sysclk = clk_get_rate(drvdata->mclk);
sound/soc/ti/davinci-evm.c
236
} else if (drvdata->mclk) {
sound/soc/ti/davinci-evm.c
237
unsigned int requestd_rate = drvdata->sysclk;
sound/soc/ti/davinci-evm.c
238
clk_set_rate(drvdata->mclk, drvdata->sysclk);
sound/soc/ti/davinci-evm.c
239
drvdata->sysclk = clk_get_rate(drvdata->mclk);
sound/soc/ti/davinci-evm.c
240
if (drvdata->sysclk != requestd_rate)
sound/soc/ti/davinci-evm.c
243
requestd_rate, drvdata->sysclk);
sound/soc/ti/davinci-evm.c
246
snd_soc_card_set_drvdata(&evm_soc_card, drvdata);
sound/soc/ti/davinci-evm.c
33
struct snd_soc_card_drvdata_davinci *drvdata =
sound/soc/ti/davinci-evm.c
36
if (drvdata->mclk)
sound/soc/ti/davinci-evm.c
37
return clk_prepare_enable(drvdata->mclk);
sound/soc/ti/davinci-evm.c
46
struct snd_soc_card_drvdata_davinci *drvdata =
sound/soc/ti/davinci-evm.c
49
clk_disable_unprepare(drvdata->mclk);
sound/soc/ux500/mop500_ab8500.c
107
get_mclk_str(drvdata->mclk_sel));
sound/soc/ux500/mop500_ab8500.c
111
status = clk_set_parent(drvdata->clk_ptr_intclk, clk_ptr);
sound/soc/ux500/mop500_ab8500.c
115
__func__, get_mclk_str(drvdata->mclk_sel), status);
sound/soc/ux500/mop500_ab8500.c
119
__func__, get_mclk_str(drvdata->mclk_sel));
sound/soc/ux500/mop500_ab8500.c
132
struct mop500_ab8500_drvdata *drvdata =
sound/soc/ux500/mop500_ab8500.c
135
ucontrol->value.enumerated.item[0] = drvdata->mclk_sel;
sound/soc/ux500/mop500_ab8500.c
144
struct mop500_ab8500_drvdata *drvdata =
sound/soc/ux500/mop500_ab8500.c
150
if (drvdata->mclk_sel == val)
sound/soc/ux500/mop500_ab8500.c
153
drvdata->mclk_sel = val;
sound/soc/ux500/mop500_ab8500.c
362
struct mop500_ab8500_drvdata *drvdata;
sound/soc/ux500/mop500_ab8500.c
368
drvdata = devm_kzalloc(dev, sizeof(struct mop500_ab8500_drvdata),
sound/soc/ux500/mop500_ab8500.c
371
if (!drvdata)
sound/soc/ux500/mop500_ab8500.c
374
snd_soc_card_set_drvdata(rtd->card, drvdata);
sound/soc/ux500/mop500_ab8500.c
378
drvdata->clk_ptr_sysclk = clk_get(dev, "sysclk");
sound/soc/ux500/mop500_ab8500.c
379
if (IS_ERR(drvdata->clk_ptr_sysclk))
sound/soc/ux500/mop500_ab8500.c
382
drvdata->clk_ptr_ulpclk = clk_get(dev, "ulpclk");
sound/soc/ux500/mop500_ab8500.c
383
if (IS_ERR(drvdata->clk_ptr_ulpclk))
sound/soc/ux500/mop500_ab8500.c
386
drvdata->clk_ptr_intclk = clk_get(dev, "intclk");
sound/soc/ux500/mop500_ab8500.c
387
if (IS_ERR(drvdata->clk_ptr_intclk))
sound/soc/ux500/mop500_ab8500.c
392
drvdata->mclk_sel = MCLK_ULPCLK;
sound/soc/ux500/mop500_ab8500.c
393
ret = mop500_ab8500_set_mclk(dev, drvdata);
sound/soc/ux500/mop500_ab8500.c
398
drvdata->mclk_sel = MCLK_ULPCLK;
sound/soc/ux500/mop500_ab8500.c
432
struct mop500_ab8500_drvdata *drvdata = snd_soc_card_get_drvdata(card);
sound/soc/ux500/mop500_ab8500.c
434
clk_put(drvdata->clk_ptr_sysclk);
sound/soc/ux500/mop500_ab8500.c
435
clk_put(drvdata->clk_ptr_ulpclk);
sound/soc/ux500/mop500_ab8500.c
436
clk_put(drvdata->clk_ptr_intclk);
sound/soc/ux500/mop500_ab8500.c
438
snd_soc_card_set_drvdata(card, drvdata);
sound/soc/ux500/mop500_ab8500.c
83
struct mop500_ab8500_drvdata *drvdata)
sound/soc/ux500/mop500_ab8500.c
88
if (IS_ERR(drvdata->clk_ptr_intclk)) {
sound/soc/ux500/mop500_ab8500.c
94
switch (drvdata->mclk_sel) {
sound/soc/ux500/mop500_ab8500.c
96
clk_ptr = drvdata->clk_ptr_sysclk;
sound/soc/ux500/mop500_ab8500.c
99
clk_ptr = drvdata->clk_ptr_ulpclk;
sound/soc/ux500/ux500_msp_dai.c
110
__func__, drvdata->slots);
sound/soc/ux500/ux500_msp_dai.c
127
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
133
switch (drvdata->slots) {
sound/soc/ux500/ux500_msp_dai.c
152
__func__, drvdata->slots);
sound/soc/ux500/ux500_msp_dai.c
30
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
302
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
305
unsigned int fmt = drvdata->fmt;
sound/soc/ux500/ux500_msp_dai.c
310
msp_config->f_inputclk = drvdata->master_clk;
sound/soc/ux500/ux500_msp_dai.c
34
if (drvdata->slots > 1) {
sound/soc/ux500/ux500_msp_dai.c
384
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
390
ret = regulator_enable(drvdata->reg_vape);
sound/soc/ux500/ux500_msp_dai.c
392
dev_err(drvdata->msp->dev,
sound/soc/ux500/ux500_msp_dai.c
399
ret = clk_prepare_enable(drvdata->pclk);
sound/soc/ux500/ux500_msp_dai.c
401
dev_err(drvdata->msp->dev,
sound/soc/ux500/ux500_msp_dai.c
406
ret = clk_prepare_enable(drvdata->clk);
sound/soc/ux500/ux500_msp_dai.c
408
dev_err(drvdata->msp->dev,
sound/soc/ux500/ux500_msp_dai.c
41
multi->tx_channel_0_enable = drvdata->tx_mask;
sound/soc/ux500/ux500_msp_dai.c
415
clk_disable_unprepare(drvdata->pclk);
sound/soc/ux500/ux500_msp_dai.c
417
regulator_disable(drvdata->reg_vape);
sound/soc/ux500/ux500_msp_dai.c
425
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
431
if (drvdata->vape_opp_constraint == 1) {
sound/soc/ux500/ux500_msp_dai.c
434
drvdata->vape_opp_constraint = 0;
sound/soc/ux500/ux500_msp_dai.c
437
if (ux500_msp_i2s_close(drvdata->msp,
sound/soc/ux500/ux500_msp_dai.c
445
clk_disable_unprepare(drvdata->clk);
sound/soc/ux500/ux500_msp_dai.c
446
clk_disable_unprepare(drvdata->pclk);
sound/soc/ux500/ux500_msp_dai.c
449
ret = regulator_disable(drvdata->reg_vape);
sound/soc/ux500/ux500_msp_dai.c
46
multi->rx_channel_0_enable = drvdata->rx_mask;
sound/soc/ux500/ux500_msp_dai.c
460
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
469
ret = ux500_msp_i2s_open(drvdata->msp, &msp_config);
sound/soc/ux500/ux500_msp_dai.c
477
if ((drvdata->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) &&
sound/soc/ux500/ux500_msp_dai.c
478
(drvdata->msp->f_bitclk > 19200000)) {
sound/soc/ux500/ux500_msp_dai.c
484
drvdata->vape_opp_constraint = 1;
sound/soc/ux500/ux500_msp_dai.c
488
drvdata->vape_opp_constraint = 0;
sound/soc/ux500/ux500_msp_dai.c
500
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
505
switch (drvdata->fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
sound/soc/ux500/ux500_msp_dai.c
515
drvdata->tx_mask :
sound/soc/ux500/ux500_msp_dai.c
516
drvdata->rx_mask;
sound/soc/ux500/ux500_msp_dai.c
529
__func__, drvdata->fmt);
sound/soc/ux500/ux500_msp_dai.c
53
__func__, drvdata->slots, multi->tx_channel_0_enable,
sound/soc/ux500/ux500_msp_dai.c
539
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
556
__func__, drvdata->fmt);
sound/soc/ux500/ux500_msp_dai.c
569
__func__, drvdata->fmt);
sound/soc/ux500/ux500_msp_dai.c
573
drvdata->fmt = fmt;
sound/soc/ux500/ux500_msp_dai.c
582
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
603
drvdata->slots = slots;
sound/soc/ux500/ux500_msp_dai.c
610
drvdata->slot_width = slot_width;
sound/soc/ux500/ux500_msp_dai.c
612
drvdata->tx_mask = tx_mask & cap;
sound/soc/ux500/ux500_msp_dai.c
613
drvdata->rx_mask = rx_mask & cap;
sound/soc/ux500/ux500_msp_dai.c
621
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
628
drvdata->master_clk = freq;
sound/soc/ux500/ux500_msp_dai.c
63
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
644
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
648
(int)drvdata->msp->id, cmd);
sound/soc/ux500/ux500_msp_dai.c
65
switch (drvdata->slots) {
sound/soc/ux500/ux500_msp_dai.c
650
ret = ux500_msp_i2s_trigger(drvdata->msp, cmd, substream->stream);
sound/soc/ux500/ux500_msp_dai.c
657
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(dai->dev);
sound/soc/ux500/ux500_msp_dai.c
673
playback_dma_data->addr = drvdata->msp->tx_rx_addr;
sound/soc/ux500/ux500_msp_dai.c
674
capture_dma_data->addr = drvdata->msp->tx_rx_addr;
sound/soc/ux500/ux500_msp_dai.c
718
struct ux500_msp_i2s_drvdata *drvdata;
sound/soc/ux500/ux500_msp_dai.c
721
drvdata = devm_kzalloc(&pdev->dev,
sound/soc/ux500/ux500_msp_dai.c
724
if (!drvdata)
sound/soc/ux500/ux500_msp_dai.c
727
drvdata->fmt = 0;
sound/soc/ux500/ux500_msp_dai.c
728
drvdata->slots = 1;
sound/soc/ux500/ux500_msp_dai.c
729
drvdata->tx_mask = 0x01;
sound/soc/ux500/ux500_msp_dai.c
730
drvdata->rx_mask = 0x01;
sound/soc/ux500/ux500_msp_dai.c
731
drvdata->slot_width = 16;
sound/soc/ux500/ux500_msp_dai.c
732
drvdata->master_clk = MSP_INPUT_FREQ_APB;
sound/soc/ux500/ux500_msp_dai.c
734
drvdata->reg_vape = devm_regulator_get(&pdev->dev, "v-ape");
sound/soc/ux500/ux500_msp_dai.c
735
if (IS_ERR(drvdata->reg_vape)) {
sound/soc/ux500/ux500_msp_dai.c
736
ret = PTR_ERR(drvdata->reg_vape);
sound/soc/ux500/ux500_msp_dai.c
744
drvdata->pclk = devm_clk_get(&pdev->dev, "apb_pclk");
sound/soc/ux500/ux500_msp_dai.c
745
if (IS_ERR(drvdata->pclk)) {
sound/soc/ux500/ux500_msp_dai.c
746
ret = PTR_ERR(drvdata->pclk);
sound/soc/ux500/ux500_msp_dai.c
753
drvdata->clk = devm_clk_get(&pdev->dev, NULL);
sound/soc/ux500/ux500_msp_dai.c
754
if (IS_ERR(drvdata->clk)) {
sound/soc/ux500/ux500_msp_dai.c
755
ret = PTR_ERR(drvdata->clk);
sound/soc/ux500/ux500_msp_dai.c
762
ret = ux500_msp_i2s_init_msp(pdev, &drvdata->msp);
sound/soc/ux500/ux500_msp_dai.c
763
if (!drvdata->msp) {
sound/soc/ux500/ux500_msp_dai.c
769
dev_set_drvdata(&pdev->dev, drvdata);
sound/soc/ux500/ux500_msp_dai.c
775
__func__, drvdata->msp->id);
sound/soc/ux500/ux500_msp_dai.c
796
struct ux500_msp_i2s_drvdata *drvdata = dev_get_drvdata(&pdev->dev);
sound/soc/ux500/ux500_msp_dai.c
804
ux500_msp_i2s_cleanup_msp(pdev, drvdata->msp);