From 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 22 Oct 2024 10:36:11 +0000 Subject: [PATCH] 修改4g拨号为QMI,需要在系统里后台执行quectel-CM --- kernel/include/linux/memory_group_manager.h | 48 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 37 insertions(+), 11 deletions(-) diff --git a/kernel/include/linux/memory_group_manager.h b/kernel/include/linux/memory_group_manager.h index c0e808b..786e3b9 100644 --- a/kernel/include/linux/memory_group_manager.h +++ b/kernel/include/linux/memory_group_manager.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* * - * (C) COPYRIGHT 2019-2021 ARM Limited. All rights reserved. + * (C) COPYRIGHT 2019-2022 ARM Limited. All rights reserved. * * This program is free software and is provided to you under the terms of the * GNU General Public License version 2 as published by the Free Software @@ -43,10 +43,12 @@ * @mgm_free_page: Callback to free physical memory in a group * @mgm_get_import_memory_id: Callback to get the group ID for imported memory * @mgm_update_gpu_pte: Callback to modify a GPU page table entry + * @mgm_pte_to_original_pte: Callback to get the original PTE entry as given + * to mgm_update_gpu_pte * @mgm_vmf_insert_pfn_prot: Callback to map a physical memory page for the CPU */ struct memory_group_manager_ops { - /** + /* * mgm_alloc_page - Allocate a physical memory page in a group * * @mgm_dev: The memory group manager through which the request is @@ -65,7 +67,7 @@ struct memory_group_manager_device *mgm_dev, int group_id, gfp_t gfp_mask, unsigned int order); - /** + /* * mgm_free_page - Free a physical memory page in a group * * @mgm_dev: The memory group manager through which the request @@ -84,7 +86,7 @@ struct memory_group_manager_device *mgm_dev, int group_id, struct page *page, unsigned int order); - /** + /* * mgm_get_import_memory_id - Get the physical memory group ID for the * imported memory * @@ -103,7 +105,7 @@ struct memory_group_manager_device *mgm_dev, struct memory_group_manager_import_data *import_data); - /** + /* * mgm_update_gpu_pte - Modify a GPU page table entry for a memory group * * @mgm_dev: The memory group manager through which the request @@ -120,14 +122,36 @@ * This function allows the memory group manager to modify a GPU page * table entry before it is stored by the kbase module (controller * driver). It may set certain bits in the page table entry attributes - * or in the physical address, based on the physical memory group ID. + * or modify the physical address, based on the physical memory group ID + * and/or additional data in struct memory_group_manager_device. * * Return: A modified GPU page table entry to be stored in a page table. */ u64 (*mgm_update_gpu_pte)(struct memory_group_manager_device *mgm_dev, int group_id, int mmu_level, u64 pte); - /** + /* + * mgm_pte_to_original_pte - Undo any modification done during mgm_update_gpu_pte() + * + * @mgm_dev: The memory group manager through which the request + * is being made. + * @group_id: A physical memory group ID. The meaning of this is + * defined by the systems integrator. Its valid range is + * 0 .. MEMORY_GROUP_MANAGER_NR_GROUPS-1. + * @mmu_level: The level of the page table entry in @ate. + * @pte: The page table entry to restore the original representation for, + * in LPAE or AArch64 format (depending on the driver's configuration). + * + * Undo any modifications done during mgm_update_gpu_pte(). + * This function allows getting back the original PTE entry as given + * to mgm_update_gpu_pte(). + * + * Return: PTE entry as originally specified to mgm_update_gpu_pte() + */ + u64 (*mgm_pte_to_original_pte)(struct memory_group_manager_device *mgm_dev, int group_id, + int mmu_level, u64 pte); + + /* * mgm_vmf_insert_pfn_prot - Map a physical page in a group for the CPU * * @mgm_dev: The memory group manager through which the request @@ -158,8 +182,9 @@ * struct memory_group_manager_device - Device structure for a memory group * manager * - * @ops - Callbacks associated with this device - * @data - Pointer to device private data + * @ops: Callbacks associated with this device + * @data: Pointer to device private data + * @owner: pointer to owning module * * In order for a systems integrator to provide custom behaviors for memory * operations performed by the kbase module (controller driver), they must @@ -183,8 +208,9 @@ * struct memory_group_manager_import_data - Structure describing the imported * memory * - * @type - type of imported memory - * @u - Union describing the imported memory + * @type: type of imported memory + * @u: Union describing the imported memory + * @u.dma_buf: imported memory * */ struct memory_group_manager_import_data { -- Gitblit v1.6.2