Lines Matching defs:drv_data

132 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;
147 if (IS_ERR(drv_data))
148 return ERR_CAST(drv_data);
150 cfg = drv_data->cfg;
151 sz = drv_data->cfg_size;
190 if (IS_ERR(drv_data))
191 return PTR_ERR(drv_data);
198 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg,
205 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg,
210 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg,
228 if (IS_ERR(drv_data))
229 return PTR_ERR(drv_data);
234 mutex_lock(&drv_data->lock);
235 if (test_bit(desc->slice_id, drv_data->bitmap)) {
236 mutex_unlock(&drv_data->lock);
245 mutex_unlock(&drv_data->lock);
249 __set_bit(desc->slice_id, drv_data->bitmap);
250 mutex_unlock(&drv_data->lock);
268 if (IS_ERR(drv_data))
269 return PTR_ERR(drv_data);
274 mutex_lock(&drv_data->lock);
275 if (!test_bit(desc->slice_id, drv_data->bitmap)) {
276 mutex_unlock(&drv_data->lock);
284 mutex_unlock(&drv_data->lock);
288 __clear_bit(desc->slice_id, drv_data->bitmap);
289 mutex_unlock(&drv_data->lock);
334 sz = drv_data->cfg_size;
335 llcc_table = drv_data->cfg;
357 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks;
364 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg,
368 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg,
383 drv_data = ERR_PTR(-ENODEV);
416 if (!IS_ERR(drv_data))
419 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL);
420 if (!drv_data) {
425 drv_data->regmap = qcom_llcc_init_mmio(pdev, "llcc_base");
426 if (IS_ERR(drv_data->regmap)) {
427 ret = PTR_ERR(drv_data->regmap);
431 drv_data->bcast_regmap =
433 if (IS_ERR(drv_data->bcast_regmap)) {
434 ret = PTR_ERR(drv_data->bcast_regmap);
438 ret = regmap_read(drv_data->regmap, LLCC_COMMON_STATUS0,
445 drv_data->num_banks = num_banks;
452 if (llcc_cfg[i].slice_id > drv_data->max_slices)
453 drv_data->max_slices = llcc_cfg[i].slice_id;
455 drv_data->offsets = devm_kcalloc(dev, num_banks, sizeof(u32),
457 if (!drv_data->offsets) {
463 drv_data->offsets[i] = i * BANK_OFFSET_STRIDE;
465 drv_data->bitmap = devm_kcalloc(dev,
466 BITS_TO_LONGS(drv_data->max_slices), sizeof(unsigned long),
468 if (!drv_data->bitmap) {
473 drv_data->cfg = llcc_cfg;
474 drv_data->cfg_size = sz;
475 mutex_init(&drv_data->lock);
476 platform_set_drvdata(pdev, drv_data);
482 drv_data->ecc_irq = platform_get_irq_optional(pdev, 0);
483 if (drv_data->ecc_irq >= 0) {
485 "qcom_llcc_edac", -1, drv_data,
486 sizeof(*drv_data));
493 drv_data = ERR_PTR(-ENODEV);