Lines Matching refs:drv_data

522 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;  variable
537 if (IS_ERR(drv_data)) in llcc_slice_getd()
538 return ERR_CAST(drv_data); in llcc_slice_getd()
540 cfg = drv_data->cfg; in llcc_slice_getd()
541 sz = drv_data->cfg_size; in llcc_slice_getd()
581 if (IS_ERR(drv_data)) in llcc_update_act_ctrl()
582 return PTR_ERR(drv_data); in llcc_update_act_ctrl()
590 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
597 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg, in llcc_update_act_ctrl()
602 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in llcc_update_act_ctrl()
603 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, in llcc_update_act_ctrl()
610 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, in llcc_update_act_ctrl()
614 if (drv_data->version >= LLCC_VERSION_4_1_0_0) in llcc_update_act_ctrl()
615 ret = regmap_write(drv_data->bcast_regmap, act_clear_reg, in llcc_update_act_ctrl()
633 if (IS_ERR(drv_data)) in llcc_slice_activate()
634 return PTR_ERR(drv_data); in llcc_slice_activate()
639 mutex_lock(&drv_data->lock); in llcc_slice_activate()
640 if (test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_activate()
641 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
650 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
654 __set_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_activate()
655 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
673 if (IS_ERR(drv_data)) in llcc_slice_deactivate()
674 return PTR_ERR(drv_data); in llcc_slice_deactivate()
679 mutex_lock(&drv_data->lock); in llcc_slice_deactivate()
680 if (!test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_deactivate()
681 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
689 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
693 __clear_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_deactivate()
694 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
753 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks; in _qcom_llcc_cfg_program()
759 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg, attr1_val); in _qcom_llcc_cfg_program()
763 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
774 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg, attr0_val); in _qcom_llcc_cfg_program()
778 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
779 ret = regmap_write(drv_data->bcast_regmap, attr2_cfg, attr2_val); in _qcom_llcc_cfg_program()
788 ret = regmap_write(drv_data->bcast_regmap, in _qcom_llcc_cfg_program()
793 if (drv_data->version < LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
795 ret = regmap_write(drv_data->bcast_regmap, in _qcom_llcc_cfg_program()
802 if (drv_data->version >= LLCC_VERSION_2_0_0_0) { in _qcom_llcc_cfg_program()
806 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_EN, in _qcom_llcc_cfg_program()
812 if (drv_data->version >= LLCC_VERSION_2_1_0_0) { in _qcom_llcc_cfg_program()
816 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_CACHEABLE_EN, in _qcom_llcc_cfg_program()
822 if (drv_data->version >= LLCC_VERSION_4_1_0_0) { in _qcom_llcc_cfg_program()
833 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG1, in _qcom_llcc_cfg_program()
839 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG2, in _qcom_llcc_cfg_program()
845 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG3, in _qcom_llcc_cfg_program()
851 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG4, in _qcom_llcc_cfg_program()
857 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG5, in _qcom_llcc_cfg_program()
863 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG6, in _qcom_llcc_cfg_program()
869 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG7, in _qcom_llcc_cfg_program()
875 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG8, in _qcom_llcc_cfg_program()
897 sz = drv_data->cfg_size; in qcom_llcc_cfg_program()
898 llcc_table = drv_data->cfg; in qcom_llcc_cfg_program()
912 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_remove()
947 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); in qcom_llcc_probe()
948 if (!drv_data) { in qcom_llcc_probe()
968 drv_data->num_banks = num_banks; in qcom_llcc_probe()
970 drv_data->regmaps = devm_kcalloc(dev, num_banks, sizeof(*drv_data->regmaps), GFP_KERNEL); in qcom_llcc_probe()
971 if (!drv_data->regmaps) { in qcom_llcc_probe()
976 drv_data->regmaps[0] = regmap; in qcom_llcc_probe()
982 drv_data->regmaps[i] = qcom_llcc_init_mmio(pdev, i, base); in qcom_llcc_probe()
983 if (IS_ERR(drv_data->regmaps[i])) { in qcom_llcc_probe()
984 ret = PTR_ERR(drv_data->regmaps[i]); in qcom_llcc_probe()
992 drv_data->bcast_regmap = qcom_llcc_init_mmio(pdev, i, "llcc_broadcast_base"); in qcom_llcc_probe()
993 if (IS_ERR(drv_data->bcast_regmap)) { in qcom_llcc_probe()
994 ret = PTR_ERR(drv_data->bcast_regmap); in qcom_llcc_probe()
999 ret = regmap_read(drv_data->bcast_regmap, cfg->reg_offset[LLCC_COMMON_HW_INFO], in qcom_llcc_probe()
1004 drv_data->version = version; in qcom_llcc_probe()
1010 if (llcc_cfg[i].slice_id > drv_data->max_slices) in qcom_llcc_probe()
1011 drv_data->max_slices = llcc_cfg[i].slice_id; in qcom_llcc_probe()
1013 drv_data->bitmap = devm_bitmap_zalloc(dev, drv_data->max_slices, in qcom_llcc_probe()
1015 if (!drv_data->bitmap) { in qcom_llcc_probe()
1020 drv_data->cfg = llcc_cfg; in qcom_llcc_probe()
1021 drv_data->cfg_size = sz; in qcom_llcc_probe()
1022 drv_data->edac_reg_offset = cfg->edac_reg_offset; in qcom_llcc_probe()
1023 mutex_init(&drv_data->lock); in qcom_llcc_probe()
1024 platform_set_drvdata(pdev, drv_data); in qcom_llcc_probe()
1030 drv_data->ecc_irq = platform_get_irq_optional(pdev, 0); in qcom_llcc_probe()
1040 "qcom_llcc_edac", -1, drv_data, in qcom_llcc_probe()
1041 sizeof(*drv_data)); in qcom_llcc_probe()
1048 drv_data = ERR_PTR(-ENODEV); in qcom_llcc_probe()