Lines Matching refs:drv_data

507 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;  variable
522 if (IS_ERR(drv_data)) in llcc_slice_getd()
523 return ERR_CAST(drv_data); in llcc_slice_getd()
525 cfg = drv_data->cfg; in llcc_slice_getd()
526 sz = drv_data->cfg_size; in llcc_slice_getd()
566 if (IS_ERR(drv_data)) in llcc_update_act_ctrl()
567 return PTR_ERR(drv_data); in llcc_update_act_ctrl()
575 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
582 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
587 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in llcc_update_act_ctrl()
588 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, in llcc_update_act_ctrl()
595 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, in llcc_update_act_ctrl()
599 if (drv_data->version >= LLCC_VERSION_4_1_0_0) in llcc_update_act_ctrl()
600 ret = regmap_write(drv_data->bcast_regmap, act_clear_reg, in llcc_update_act_ctrl()
618 if (IS_ERR(drv_data)) in llcc_slice_activate()
619 return PTR_ERR(drv_data); in llcc_slice_activate()
624 mutex_lock(&drv_data->lock); in llcc_slice_activate()
625 if (test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_activate()
626 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
635 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
639 __set_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_activate()
640 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
658 if (IS_ERR(drv_data)) in llcc_slice_deactivate()
659 return PTR_ERR(drv_data); in llcc_slice_deactivate()
664 mutex_lock(&drv_data->lock); in llcc_slice_deactivate()
665 if (!test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_deactivate()
666 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
674 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
678 __clear_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_deactivate()
679 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
738 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks; in _qcom_llcc_cfg_program()
744 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg, attr1_val); in _qcom_llcc_cfg_program()
748 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
759 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg, attr0_val); in _qcom_llcc_cfg_program()
763 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
764 ret = regmap_write(drv_data->bcast_regmap, attr2_cfg, attr2_val); in _qcom_llcc_cfg_program()
773 ret = regmap_write(drv_data->bcast_regmap, in _qcom_llcc_cfg_program()
778 if (drv_data->version < LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
780 ret = regmap_write(drv_data->bcast_regmap, in _qcom_llcc_cfg_program()
787 if (drv_data->version >= LLCC_VERSION_2_0_0_0) { in _qcom_llcc_cfg_program()
791 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_EN, in _qcom_llcc_cfg_program()
797 if (drv_data->version >= LLCC_VERSION_2_1_0_0) { in _qcom_llcc_cfg_program()
801 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_CACHEABLE_EN, in _qcom_llcc_cfg_program()
807 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
818 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG1, in _qcom_llcc_cfg_program()
824 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG2, in _qcom_llcc_cfg_program()
830 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG3, in _qcom_llcc_cfg_program()
836 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG4, in _qcom_llcc_cfg_program()
842 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG5, in _qcom_llcc_cfg_program()
848 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG6, in _qcom_llcc_cfg_program()
854 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG7, in _qcom_llcc_cfg_program()
860 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG8, in _qcom_llcc_cfg_program()
882 sz = drv_data->cfg_size; in qcom_llcc_cfg_program()
883 llcc_table = drv_data->cfg; in qcom_llcc_cfg_program()
897 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_remove()
931 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); in qcom_llcc_probe()
932 if (!drv_data) { in qcom_llcc_probe()
937 drv_data->regmap = qcom_llcc_init_mmio(pdev, "llcc_base"); in qcom_llcc_probe()
938 if (IS_ERR(drv_data->regmap)) { in qcom_llcc_probe()
939 ret = PTR_ERR(drv_data->regmap); in qcom_llcc_probe()
943 drv_data->bcast_regmap = in qcom_llcc_probe()
945 if (IS_ERR(drv_data->bcast_regmap)) { in qcom_llcc_probe()
946 ret = PTR_ERR(drv_data->bcast_regmap); in qcom_llcc_probe()
953 ret = regmap_read(drv_data->bcast_regmap, cfg->reg_offset[LLCC_COMMON_HW_INFO], in qcom_llcc_probe()
958 drv_data->version = version; in qcom_llcc_probe()
960 ret = regmap_read(drv_data->regmap, cfg->reg_offset[LLCC_COMMON_STATUS0], in qcom_llcc_probe()
967 drv_data->num_banks = num_banks; in qcom_llcc_probe()
973 if (llcc_cfg[i].slice_id > drv_data->max_slices) in qcom_llcc_probe()
974 drv_data->max_slices = llcc_cfg[i].slice_id; in qcom_llcc_probe()
976 drv_data->offsets = devm_kcalloc(dev, num_banks, sizeof(u32), in qcom_llcc_probe()
978 if (!drv_data->offsets) { in qcom_llcc_probe()
984 drv_data->offsets[i] = i * BANK_OFFSET_STRIDE; in qcom_llcc_probe()
986 drv_data->bitmap = devm_bitmap_zalloc(dev, drv_data->max_slices, in qcom_llcc_probe()
988 if (!drv_data->bitmap) { in qcom_llcc_probe()
993 drv_data->cfg = llcc_cfg; in qcom_llcc_probe()
994 drv_data->cfg_size = sz; in qcom_llcc_probe()
995 drv_data->edac_reg_offset = cfg->edac_reg_offset; in qcom_llcc_probe()
996 mutex_init(&drv_data->lock); in qcom_llcc_probe()
997 platform_set_drvdata(pdev, drv_data); in qcom_llcc_probe()
1003 drv_data->ecc_irq = platform_get_irq_optional(pdev, 0); in qcom_llcc_probe()
1004 if (drv_data->ecc_irq >= 0) { in qcom_llcc_probe()
1006 "qcom_llcc_edac", -1, drv_data, in qcom_llcc_probe()
1007 sizeof(*drv_data)); in qcom_llcc_probe()
1014 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_probe()