Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b86df24 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drivers: soc: Add support to register LLCC EDAC driver"

parents a36e65e7 25dd3c5b
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -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;

@@ -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)
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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)