Loading arch/arm64/boot/dts/qcom/kona.dtsi +8 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,14 @@ qcom,msm-id = <356 0x10000>; interrupt-parent = <&intc>; mem-offline { compatible = "qcom,mem-offline"; offline-sizes = <0x1 0x40000000 0x0 0x40000000>, <0x1 0xc0000000 0x0 0x80000000>; granule = <512>; mboxes = <&qmp_aop 0>; }; aliases { ufshc1 = &ufshc_mem; /* Embedded UFS slot */ sdhc2 = &sdhc_2; /* SDC2 SD card slot */ Loading arch/arm64/configs/vendor/kona-perf_defconfig +7 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_PROFILING=y # CONFIG_ZONE_DMA32 is not set CONFIG_HOTPLUG_SIZE_BITS=29 CONFIG_ARCH_QCOM=y CONFIG_ARCH_KONA=y CONFIG_PCI=y Loading Loading @@ -97,6 +98,10 @@ CONFIG_MODULE_SIG_SHA512=y CONFIG_PARTITION_ADVANCED=y CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG_MOVABLE_NODE=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_CMA=y CONFIG_CMA_AREAS=16 CONFIG_ZSMALLOC=y Loading Loading @@ -499,6 +504,8 @@ CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_QCOM_GLINK_SMEM=y CONFIG_RPMSG_QCOM_GLINK_SPSS=y CONFIG_QCOM_COMMAND_DB=y CONFIG_QCOM_MEM_OFFLINE=y CONFIG_OVERRIDE_MEMORY_LIMIT=y CONFIG_QCOM_CPUSS_DUMP=y CONFIG_QCOM_RUN_QUEUE_STATS=y CONFIG_QCOM_IPCC=y Loading arch/arm64/configs/vendor/kona_defconfig +7 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_PROFILING=y # CONFIG_ZONE_DMA32 is not set CONFIG_HOTPLUG_SIZE_BITS=29 CONFIG_ARCH_QCOM=y CONFIG_ARCH_KONA=y CONFIG_PCI=y Loading Loading @@ -100,6 +101,10 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_IOSCHED_DEADLINE is not set CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG_MOVABLE_NODE=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_CLEANCACHE=y CONFIG_CMA=y CONFIG_CMA_AREAS=16 Loading Loading @@ -513,6 +518,8 @@ CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_QCOM_GLINK_SMEM=y CONFIG_RPMSG_QCOM_GLINK_SPSS=y CONFIG_QCOM_COMMAND_DB=y CONFIG_QCOM_MEM_OFFLINE=y CONFIG_OVERRIDE_MEMORY_LIMIT=y CONFIG_QCOM_CPUSS_DUMP=y CONFIG_QCOM_RUN_QUEUE_STATS=y CONFIG_QCOM_IPCC=y Loading drivers/soc/qcom/mem-offline.c +8 −6 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #include <linux/memory.h> Loading Loading @@ -92,7 +92,7 @@ static int aop_send_msg(unsigned long addr, bool online) pkt.size = MAX_LEN; pkt.data = mbox_msg; return mbox_send_message(mailbox.mbox, &pkt); return (mbox_send_message(mailbox.mbox, &pkt) < 0); } static int mem_event_callback(struct notifier_block *self, Loading Loading @@ -346,6 +346,7 @@ static int mem_parse_dt(struct platform_device *pdev) mailbox.mbox = mbox_request_channel(&mailbox.cl, 0); if (IS_ERR(mailbox.mbox)) { if (PTR_ERR(mailbox.mbox) != -EPROBE_DEFER) pr_err("mem-offline: failed to get mailbox channel %pK %d\n", mailbox.mbox, PTR_ERR(mailbox.mbox)); return PTR_ERR(mailbox.mbox); Loading @@ -363,8 +364,9 @@ static int mem_offline_driver_probe(struct platform_device *pdev) { int ret; if (mem_parse_dt(pdev)) return -ENODEV; ret = mem_parse_dt(pdev); if (ret) return ret; ret = mem_online_remaining_blocks(); if (ret < 0) Loading Loading
arch/arm64/boot/dts/qcom/kona.dtsi +8 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,14 @@ qcom,msm-id = <356 0x10000>; interrupt-parent = <&intc>; mem-offline { compatible = "qcom,mem-offline"; offline-sizes = <0x1 0x40000000 0x0 0x40000000>, <0x1 0xc0000000 0x0 0x80000000>; granule = <512>; mboxes = <&qmp_aop 0>; }; aliases { ufshc1 = &ufshc_mem; /* Embedded UFS slot */ sdhc2 = &sdhc_2; /* SDC2 SD card slot */ Loading
arch/arm64/configs/vendor/kona-perf_defconfig +7 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_PROFILING=y # CONFIG_ZONE_DMA32 is not set CONFIG_HOTPLUG_SIZE_BITS=29 CONFIG_ARCH_QCOM=y CONFIG_ARCH_KONA=y CONFIG_PCI=y Loading Loading @@ -97,6 +98,10 @@ CONFIG_MODULE_SIG_SHA512=y CONFIG_PARTITION_ADVANCED=y CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG_MOVABLE_NODE=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_CMA=y CONFIG_CMA_AREAS=16 CONFIG_ZSMALLOC=y Loading Loading @@ -499,6 +504,8 @@ CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_QCOM_GLINK_SMEM=y CONFIG_RPMSG_QCOM_GLINK_SPSS=y CONFIG_QCOM_COMMAND_DB=y CONFIG_QCOM_MEM_OFFLINE=y CONFIG_OVERRIDE_MEMORY_LIMIT=y CONFIG_QCOM_CPUSS_DUMP=y CONFIG_QCOM_RUN_QUEUE_STATS=y CONFIG_QCOM_IPCC=y Loading
arch/arm64/configs/vendor/kona_defconfig +7 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_PROFILING=y # CONFIG_ZONE_DMA32 is not set CONFIG_HOTPLUG_SIZE_BITS=29 CONFIG_ARCH_QCOM=y CONFIG_ARCH_KONA=y CONFIG_PCI=y Loading Loading @@ -100,6 +101,10 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_IOSCHED_DEADLINE is not set CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTPLUG_MOVABLE_NODE=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_CLEANCACHE=y CONFIG_CMA=y CONFIG_CMA_AREAS=16 Loading Loading @@ -513,6 +518,8 @@ CONFIG_RPMSG_CHAR=y CONFIG_RPMSG_QCOM_GLINK_SMEM=y CONFIG_RPMSG_QCOM_GLINK_SPSS=y CONFIG_QCOM_COMMAND_DB=y CONFIG_QCOM_MEM_OFFLINE=y CONFIG_OVERRIDE_MEMORY_LIMIT=y CONFIG_QCOM_CPUSS_DUMP=y CONFIG_QCOM_RUN_QUEUE_STATS=y CONFIG_QCOM_IPCC=y Loading
drivers/soc/qcom/mem-offline.c +8 −6 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. */ #include <linux/memory.h> Loading Loading @@ -92,7 +92,7 @@ static int aop_send_msg(unsigned long addr, bool online) pkt.size = MAX_LEN; pkt.data = mbox_msg; return mbox_send_message(mailbox.mbox, &pkt); return (mbox_send_message(mailbox.mbox, &pkt) < 0); } static int mem_event_callback(struct notifier_block *self, Loading Loading @@ -346,6 +346,7 @@ static int mem_parse_dt(struct platform_device *pdev) mailbox.mbox = mbox_request_channel(&mailbox.cl, 0); if (IS_ERR(mailbox.mbox)) { if (PTR_ERR(mailbox.mbox) != -EPROBE_DEFER) pr_err("mem-offline: failed to get mailbox channel %pK %d\n", mailbox.mbox, PTR_ERR(mailbox.mbox)); return PTR_ERR(mailbox.mbox); Loading @@ -363,8 +364,9 @@ static int mem_offline_driver_probe(struct platform_device *pdev) { int ret; if (mem_parse_dt(pdev)) return -ENODEV; ret = mem_parse_dt(pdev); if (ret) return ret; ret = mem_online_remaining_blocks(); if (ret < 0) Loading