Lines Matching refs:drv_data

48 static struct llcc_drv_data *drv_data;  variable
70 cfg = drv_data->cfg; in llcc_slice_getd()
71 sz = drv_data->cfg_size; in llcc_slice_getd()
109 act_ctrl_reg = drv_data->bcast_off + LLCC_TRP_ACT_CTRLn(sid); in llcc_update_act_ctrl()
110 status_reg = drv_data->bcast_off + LLCC_TRP_STATUSn(sid); in llcc_update_act_ctrl()
114 ret = regmap_write(drv_data->regmap, act_ctrl_reg, act_ctrl_reg_val); in llcc_update_act_ctrl()
120 ret = regmap_write(drv_data->regmap, act_ctrl_reg, act_ctrl_reg_val); in llcc_update_act_ctrl()
124 ret = regmap_read_poll_timeout(drv_data->regmap, status_reg, in llcc_update_act_ctrl()
142 mutex_lock(&drv_data->lock); in llcc_slice_activate()
143 if (test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_activate()
144 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
153 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
157 __set_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_activate()
158 mutex_unlock(&drv_data->lock); in llcc_slice_activate()
176 mutex_lock(&drv_data->lock); in llcc_slice_deactivate()
177 if (!test_bit(desc->slice_id, drv_data->bitmap)) { in llcc_slice_deactivate()
178 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
186 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
190 __clear_bit(desc->slice_id, drv_data->bitmap); in llcc_slice_deactivate()
191 mutex_unlock(&drv_data->lock); in llcc_slice_deactivate()
229 u32 bcast_off = drv_data->bcast_off; in qcom_llcc_cfg_program()
231 sz = drv_data->cfg_size; in qcom_llcc_cfg_program()
232 llcc_table = drv_data->cfg; in qcom_llcc_cfg_program()
256 max_cap_cacheline = max_cap_cacheline / drv_data->num_banks; in qcom_llcc_cfg_program()
263 ret = regmap_write(drv_data->regmap, attr1_cfg, attr1_val); in qcom_llcc_cfg_program()
266 ret = regmap_write(drv_data->regmap, attr0_cfg, attr0_val); in qcom_llcc_cfg_program()
286 drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); in qcom_llcc_probe()
287 if (!drv_data) in qcom_llcc_probe()
295 drv_data->regmap = devm_regmap_init_mmio(dev, base, in qcom_llcc_probe()
297 if (IS_ERR(drv_data->regmap)) in qcom_llcc_probe()
298 return PTR_ERR(drv_data->regmap); in qcom_llcc_probe()
300 ret = regmap_read(drv_data->regmap, LLCC_COMMON_STATUS0, in qcom_llcc_probe()
307 drv_data->num_banks = num_banks; in qcom_llcc_probe()
310 if (llcc_cfg[i].slice_id > drv_data->max_slices) in qcom_llcc_probe()
311 drv_data->max_slices = llcc_cfg[i].slice_id; in qcom_llcc_probe()
313 drv_data->offsets = devm_kcalloc(dev, num_banks, sizeof(u32), in qcom_llcc_probe()
315 if (!drv_data->offsets) in qcom_llcc_probe()
319 drv_data->offsets[i] = i * BANK_OFFSET_STRIDE; in qcom_llcc_probe()
321 drv_data->bcast_off = num_banks * BANK_OFFSET_STRIDE; in qcom_llcc_probe()
323 drv_data->bitmap = devm_kcalloc(dev, in qcom_llcc_probe()
324 BITS_TO_LONGS(drv_data->max_slices), sizeof(unsigned long), in qcom_llcc_probe()
326 if (!drv_data->bitmap) in qcom_llcc_probe()
329 drv_data->cfg = llcc_cfg; in qcom_llcc_probe()
330 drv_data->cfg_size = sz; in qcom_llcc_probe()
331 mutex_init(&drv_data->lock); in qcom_llcc_probe()
332 platform_set_drvdata(pdev, drv_data); in qcom_llcc_probe()