Lines Matching refs:drv_data

771 static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER;
786 if (IS_ERR(drv_data))
787 return ERR_CAST(drv_data);
789 cfg = drv_data->cfg;
790 sz = drv_data->cfg_size;
830 if (IS_ERR(drv_data))
831 return PTR_ERR(drv_data);
839 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg,
846 ret = regmap_write(drv_data->bcast_regmap, act_ctrl_reg,
851 if (drv_data->version >= LLCC_VERSION_4_1_0_0) {
852 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg,
859 ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg,
865 if (drv_data->version >= LLCC_VERSION_4_1_0_0)
866 ret = regmap_write(drv_data->bcast_regmap, act_clear_reg,
884 if (IS_ERR(drv_data))
885 return PTR_ERR(drv_data);
890 mutex_lock(&drv_data->lock);
891 if (test_bit(desc->slice_id, drv_data->bitmap)) {
892 mutex_unlock(&drv_data->lock);
901 mutex_unlock(&drv_data->lock);
905 __set_bit(desc->slice_id, drv_data->bitmap);
906 mutex_unlock(&drv_data->lock);
924 if (IS_ERR(drv_data))
925 return PTR_ERR(drv_data);
930 mutex_lock(&drv_data->lock);
931 if (!test_bit(desc->slice_id, drv_data->bitmap)) {
932 mutex_unlock(&drv_data->lock);
940 mutex_unlock(&drv_data->lock);
944 __clear_bit(desc->slice_id, drv_data->bitmap);
945 mutex_unlock(&drv_data->lock);
1004 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks;
1010 ret = regmap_write(drv_data->bcast_regmap, attr1_cfg, attr1_val);
1014 if (drv_data->version >= LLCC_VERSION_4_1_0_0) {
1025 ret = regmap_write(drv_data->bcast_regmap, attr0_cfg, attr0_val);
1029 if (drv_data->version >= LLCC_VERSION_4_1_0_0) {
1030 ret = regmap_write(drv_data->bcast_regmap, attr2_cfg, attr2_val);
1039 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_SCID_DIS_CAP_ALLOC,
1044 if (drv_data->version < LLCC_VERSION_4_1_0_0) {
1046 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_PCB_ACT,
1053 if (drv_data->version >= LLCC_VERSION_2_0_0_0) {
1057 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_EN,
1063 if (drv_data->version >= LLCC_VERSION_2_1_0_0) {
1067 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_WRSC_CACHEABLE_EN,
1073 if (drv_data->version >= LLCC_VERSION_4_1_0_0) {
1084 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG1,
1090 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG2,
1096 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG3,
1102 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG4,
1108 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG5,
1114 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG6,
1120 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG7,
1126 ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_ALGO_CFG8,
1148 sz = drv_data->cfg_size;
1149 llcc_table = drv_data->cfg;
1181 drv_data = ERR_PTR(-ENODEV);
1217 if (!IS_ERR(drv_data))
1220 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL);
1221 if (!drv_data) {
1249 drv_data->num_banks = num_banks;
1251 drv_data->regmaps = devm_kcalloc(dev, num_banks, sizeof(*drv_data->regmaps), GFP_KERNEL);
1252 if (!drv_data->regmaps) {
1257 drv_data->regmaps[0] = regmap;
1263 drv_data->regmaps[i] = qcom_llcc_init_mmio(pdev, i, base);
1264 if (IS_ERR(drv_data->regmaps[i])) {
1265 ret = PTR_ERR(drv_data->regmaps[i]);
1273 drv_data->bcast_regmap = qcom_llcc_init_mmio(pdev, i, "llcc_broadcast_base");
1274 if (IS_ERR(drv_data->bcast_regmap)) {
1275 ret = PTR_ERR(drv_data->bcast_regmap);
1280 ret = regmap_read(drv_data->bcast_regmap, cfg->reg_offset[LLCC_COMMON_HW_INFO],
1285 drv_data->version = version;
1291 if (llcc_cfg[i].slice_id > drv_data->max_slices)
1292 drv_data->max_slices = llcc_cfg[i].slice_id;
1294 drv_data->bitmap = devm_bitmap_zalloc(dev, drv_data->max_slices,
1296 if (!drv_data->bitmap) {
1301 drv_data->cfg = llcc_cfg;
1302 drv_data->cfg_size = sz;
1303 drv_data->edac_reg_offset = cfg->edac_reg_offset;
1304 mutex_init(&drv_data->lock);
1305 platform_set_drvdata(pdev, drv_data);
1311 drv_data->ecc_irq = platform_get_irq_optional(pdev, 0);
1321 "qcom_llcc_edac", -1, drv_data,
1322 sizeof(*drv_data));
1329 drv_data = ERR_PTR(-ENODEV);