Loading drivers/soc/qcom/llcc-slice.c +16 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ static int qcom_llcc_cfg_program(struct platform_device *pdev) u32 attr0_val; u32 max_cap_cacheline; u32 sz; int ret; int ret = 0; const struct llcc_slice_config *llcc_table; struct llcc_slice_desc desc; Loading Loading @@ -296,6 +296,7 @@ int qcom_llcc_probe(struct platform_device *pdev, struct resource *banks_res, *bcast_res; void __iomem *banks_base, *bcast_base; int ret, i; struct platform_device *llcc_edac; drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); if (!drv_data) Loading Loading @@ -355,7 +356,20 @@ int qcom_llcc_probe(struct platform_device *pdev, mutex_init(&drv_data->lock); platform_set_drvdata(pdev, drv_data); return qcom_llcc_cfg_program(pdev); ret = qcom_llcc_cfg_program(pdev); if (ret) return ret; drv_data->ecc_irq = platform_get_irq(pdev, 0); if (drv_data->ecc_irq >= 0) { llcc_edac = platform_device_register_data(&pdev->dev, "qcom_llcc_edac", -1, drv_data, sizeof(*drv_data)); if (IS_ERR(llcc_edac)) dev_err(dev, "Failed to register llcc edac driver\n"); } return ret; } EXPORT_SYMBOL_GPL(qcom_llcc_probe); Loading include/linux/soc/qcom/llcc-qcom.h +2 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ struct llcc_slice_config { * @num_banks: Number of llcc banks * @bitmap: Bit map to track the active slice ids * @offsets: Pointer to the bank offsets array * @ecc_irq: interrupt for llcc cache error detection and reporting */ struct llcc_drv_data { struct regmap *regmap; Loading @@ -100,6 +101,7 @@ struct llcc_drv_data { u32 num_banks; unsigned long *bitmap; u32 *offsets; int ecc_irq; }; #if IS_ENABLED(CONFIG_QCOM_LLCC) Loading Loading
drivers/soc/qcom/llcc-slice.c +16 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ static int qcom_llcc_cfg_program(struct platform_device *pdev) u32 attr0_val; u32 max_cap_cacheline; u32 sz; int ret; int ret = 0; const struct llcc_slice_config *llcc_table; struct llcc_slice_desc desc; Loading Loading @@ -296,6 +296,7 @@ int qcom_llcc_probe(struct platform_device *pdev, struct resource *banks_res, *bcast_res; void __iomem *banks_base, *bcast_base; int ret, i; struct platform_device *llcc_edac; drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); if (!drv_data) Loading Loading @@ -355,7 +356,20 @@ int qcom_llcc_probe(struct platform_device *pdev, mutex_init(&drv_data->lock); platform_set_drvdata(pdev, drv_data); return qcom_llcc_cfg_program(pdev); ret = qcom_llcc_cfg_program(pdev); if (ret) return ret; drv_data->ecc_irq = platform_get_irq(pdev, 0); if (drv_data->ecc_irq >= 0) { llcc_edac = platform_device_register_data(&pdev->dev, "qcom_llcc_edac", -1, drv_data, sizeof(*drv_data)); if (IS_ERR(llcc_edac)) dev_err(dev, "Failed to register llcc edac driver\n"); } return ret; } EXPORT_SYMBOL_GPL(qcom_llcc_probe); Loading
include/linux/soc/qcom/llcc-qcom.h +2 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ struct llcc_slice_config { * @num_banks: Number of llcc banks * @bitmap: Bit map to track the active slice ids * @offsets: Pointer to the bank offsets array * @ecc_irq: interrupt for llcc cache error detection and reporting */ struct llcc_drv_data { struct regmap *regmap; Loading @@ -100,6 +101,7 @@ struct llcc_drv_data { u32 num_banks; unsigned long *bitmap; u32 *offsets; int ecc_irq; }; #if IS_ENABLED(CONFIG_QCOM_LLCC) Loading