Lines Matching refs:drv_data

3844 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;  variable
3859 if (IS_ERR(drv_data)) in llcc_slice_getd()
3860 return ERR_CAST(drv_data); in llcc_slice_getd()
3862 cfg = drv_data->cfg; in llcc_slice_getd()
3863 sz = drv_data->cfg_size; in llcc_slice_getd()
3904 if (IS_ERR(drv_data)) in llcc_update_act_ctrl()
3905 return PTR_ERR(drv_data); in llcc_update_act_ctrl()
3913 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
3920 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
3925 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in llcc_update_act_ctrl()
3926 regmap = drv_data->bcast_and_regmap ?: drv_data->bcast_regmap; in llcc_update_act_ctrl()
3934 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, in llcc_update_act_ctrl()
3940 if (drv_data->version >= LLCC_VERSION_4_1_0_0) in llcc_update_act_ctrl()
3941 ret = regmap_write(drv_data->bcast_regmap, act_clear_reg, in llcc_update_act_ctrl()
3959 if (IS_ERR(drv_data)) in llcc_slice_activate()
3960 return PTR_ERR(drv_data); in llcc_slice_activate()
3965 mutex_lock(&drv_data->lock); in llcc_slice_activate()
3966 if (test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_activate()
3967 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
3976 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
3980 __set_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_activate()
3981 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
3999 if (IS_ERR(drv_data)) in llcc_slice_deactivate()
4000 return PTR_ERR(drv_data); in llcc_slice_deactivate()
4005 mutex_lock(&drv_data->lock); in llcc_slice_deactivate()
4006 if (!test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_deactivate()
4007 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
4015 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
4019 __clear_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_deactivate()
4020 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
4079 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks; in _qcom_llcc_cfg_program()
4088 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg, attr1_val); in _qcom_llcc_cfg_program()
4092 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
4103 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg, attr0_val); in _qcom_llcc_cfg_program()
4107 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
4108 ret = regmap_write(drv_data->bcast_regmap, attr2_cfg, attr2_val); in _qcom_llcc_cfg_program()
4118 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_SCID_DIS_CAP_ALLOC, in _qcom_llcc_cfg_program()
4123 if (drv_data->version < LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
4125 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_PCB_ACT, in _qcom_llcc_cfg_program()
4132 if (drv_data->version >= LLCC_VERSION_2_0_0_0) { in _qcom_llcc_cfg_program()
4136 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_EN, in _qcom_llcc_cfg_program()
4142 if (drv_data->version >= LLCC_VERSION_2_1_0_0) { in _qcom_llcc_cfg_program()
4146 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_CACHEABLE_EN, in _qcom_llcc_cfg_program()
4152 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
4163 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG1, in _qcom_llcc_cfg_program()
4169 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG2, in _qcom_llcc_cfg_program()
4175 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG3, in _qcom_llcc_cfg_program()
4181 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG4, in _qcom_llcc_cfg_program()
4187 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG5, in _qcom_llcc_cfg_program()
4193 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG6, in _qcom_llcc_cfg_program()
4199 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG7, in _qcom_llcc_cfg_program()
4205 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG8, in _qcom_llcc_cfg_program()
4249 attr3_val /= drv_data->num_banks; in _qcom_llcc_cfg_program_v6()
4252 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg, attr0_val); in _qcom_llcc_cfg_program_v6()
4256 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg, attr1_val); in _qcom_llcc_cfg_program_v6()
4260 ret = regmap_write(drv_data->bcast_regmap, attr2_cfg, attr2_val); in _qcom_llcc_cfg_program_v6()
4264 ret = regmap_write(drv_data->bcast_regmap, attr3_cfg, attr3_val); in _qcom_llcc_cfg_program_v6()
4272 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4279 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4286 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4293 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4300 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4307 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4314 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4321 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4328 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4335 ret = regmap_update_bits(drv_data->bcast_regmap, in _qcom_llcc_cfg_program_v6()
4360 sz = drv_data->cfg_size; in qcom_llcc_cfg_program()
4361 llcc_table = drv_data->cfg; in qcom_llcc_cfg_program()
4363 if (drv_data->version >= LLCC_VERSION_6_0_0_0) { in qcom_llcc_cfg_program()
4401 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_remove()
4437 if (!IS_ERR(drv_data)) in qcom_llcc_probe()
4440 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); in qcom_llcc_probe()
4441 if (!drv_data) { in qcom_llcc_probe()
4474 drv_data->num_banks = num_banks; in qcom_llcc_probe()
4476 drv_data->regmaps = devm_kcalloc(dev, num_banks, sizeof(*drv_data->regmaps), GFP_KERNEL); in qcom_llcc_probe()
4477 if (!drv_data->regmaps) { in qcom_llcc_probe()
4482 drv_data->regmaps[0] = regmap; in qcom_llcc_probe()
4488 drv_data->regmaps[i] = qcom_llcc_init_mmio(pdev, i, base); in qcom_llcc_probe()
4489 if (IS_ERR(drv_data->regmaps[i])) { in qcom_llcc_probe()
4490 ret = PTR_ERR(drv_data->regmaps[i]); in qcom_llcc_probe()
4495 drv_data->bcast_regmap = qcom_llcc_init_mmio(pdev, i, "llcc_broadcast_base"); in qcom_llcc_probe()
4496 if (IS_ERR(drv_data->bcast_regmap)) { in qcom_llcc_probe()
4498 drv_data->bcast_regmap = regmap; in qcom_llcc_probe()
4500 ret = PTR_ERR(drv_data->bcast_regmap); in qcom_llcc_probe()
4506 ret = regmap_read(drv_data->bcast_regmap, cfg->reg_offset[LLCC_COMMON_HW_INFO], in qcom_llcc_probe()
4511 drv_data->version = version; in qcom_llcc_probe()
4514 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in qcom_llcc_probe()
4515 drv_data->bcast_and_regmap = qcom_llcc_init_mmio(pdev, i + 1, "llcc_broadcast_and_base"); in qcom_llcc_probe()
4516 if (IS_ERR(drv_data->bcast_and_regmap)) { in qcom_llcc_probe()
4517 ret = PTR_ERR(drv_data->bcast_and_regmap); in qcom_llcc_probe()
4519 drv_data->bcast_and_regmap = NULL; in qcom_llcc_probe()
4529 if (llcc_cfg[i].slice_id > drv_data->max_slices) in qcom_llcc_probe()
4530 drv_data->max_slices = llcc_cfg[i].slice_id; in qcom_llcc_probe()
4532 drv_data->bitmap = devm_bitmap_zalloc(dev, drv_data->max_slices, in qcom_llcc_probe()
4534 if (!drv_data->bitmap) { in qcom_llcc_probe()
4539 drv_data->cfg = llcc_cfg; in qcom_llcc_probe()
4540 drv_data->cfg_size = sz; in qcom_llcc_probe()
4541 drv_data->edac_reg_offset = cfg->edac_reg_offset; in qcom_llcc_probe()
4542 drv_data->ecc_irq_configured = cfg->irq_configured; in qcom_llcc_probe()
4543 mutex_init(&drv_data->lock); in qcom_llcc_probe()
4544 platform_set_drvdata(pdev, drv_data); in qcom_llcc_probe()
4550 drv_data->ecc_irq = platform_get_irq_optional(pdev, 0); in qcom_llcc_probe()
4560 "qcom_llcc_edac", -1, drv_data, in qcom_llcc_probe()
4561 sizeof(*drv_data)); in qcom_llcc_probe()
4568 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_probe()