From: Eugen Hristev <[email protected]> Minidump can collect various memory snippets using Qualcomm boot firmware support. To determine which snippets should be collected, each snippet must be registered by the kernel into a shared memory table managed by the Qualcomm SMEM driver. To instantiate the minidump platform driver, register its data using platform_device_register_data(). The minidump driver will later probe the device and retrieve the required memory snippets from the memory inspection table (meminspect).
Signed-off-by: Eugen Hristev <[email protected]> Signed-off-by: Mukesh Ojha <[email protected]> --- drivers/soc/qcom/smem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c index d5c94b47f431..65d7b4d99677 100644 --- a/drivers/soc/qcom/smem.c +++ b/drivers/soc/qcom/smem.c @@ -270,6 +270,7 @@ struct smem_region { * @partitions: list of partitions of current processor/host * @item_count: max accepted item number * @socinfo: platform device pointer + * @mdinfo: minidump device pointer * @num_regions: number of @regions * @regions: list of the memory regions defining the shared memory */ @@ -280,6 +281,7 @@ struct qcom_smem { u32 item_count; struct platform_device *socinfo; + struct platform_device *mdinfo; struct smem_ptable *ptable; struct smem_partition global_partition; struct smem_partition partitions[SMEM_HOST_COUNT]; @@ -1242,12 +1244,20 @@ static int qcom_smem_probe(struct platform_device *pdev) if (IS_ERR(smem->socinfo)) dev_dbg(&pdev->dev, "failed to register socinfo device\n"); + smem->mdinfo = platform_device_register_data(&pdev->dev, "qcom-minidump", + PLATFORM_DEVID_AUTO, NULL, + 0); + if (IS_ERR(smem->mdinfo)) + dev_err(&pdev->dev, "failed to register platform md device\n"); + return 0; } static void qcom_smem_remove(struct platform_device *pdev) { platform_device_unregister(__smem->socinfo); + if (!IS_ERR(__smem->mdinfo)) + platform_device_unregister(__smem->mdinfo); /* Set to -EPROBE_DEFER to signal unprobed state */ __smem = ERR_PTR(-EPROBE_DEFER); -- 2.50.1

