Commit 0b45921c authored by Steven Price's avatar Steven Price Committed by Boris Brezillon

drm/panthor: Don't use virt_to_pfn()

virt_to_pfn() isn't available on x86 (except to xen) so breaks
COMPILE_TEST builds. Avoid its use completely by instead storing the
struct page pointer allocated in panthor_device_init() and using
page_to_pfn() instead.
Signed-off-by: default avatarSteven Price <steven.price@arm.com>
Reviewed-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240318145119.368582-1-steven.price@arm.com
parent 0cd8363e
......@@ -151,11 +151,12 @@ static bool panthor_device_is_initialized(struct panthor_device *ptdev)
static void panthor_device_free_page(struct drm_device *ddev, void *data)
{
free_page((unsigned long)data);
__free_page(data);
}
int panthor_device_init(struct panthor_device *ptdev)
{
u32 *dummy_page_virt;
struct resource *res;
struct page *p;
int ret;
......@@ -176,7 +177,8 @@ int panthor_device_init(struct panthor_device *ptdev)
if (!p)
return -ENOMEM;
ptdev->pm.dummy_latest_flush = page_address(p);
ptdev->pm.dummy_latest_flush = p;
dummy_page_virt = page_address(p);
ret = drmm_add_action_or_reset(&ptdev->base, panthor_device_free_page,
ptdev->pm.dummy_latest_flush);
if (ret)
......@@ -188,7 +190,7 @@ int panthor_device_init(struct panthor_device *ptdev)
* happens while the dummy page is mapped. Zero cannot be used because
* that means 'always flush'.
*/
*ptdev->pm.dummy_latest_flush = 1;
*dummy_page_virt = 1;
INIT_WORK(&ptdev->reset.work, panthor_device_reset_work);
ptdev->reset.wq = alloc_ordered_workqueue("panthor-reset-wq", 0);
......@@ -364,7 +366,7 @@ static vm_fault_t panthor_mmio_vm_fault(struct vm_fault *vmf)
if (active)
pfn = __phys_to_pfn(ptdev->phys_addr + CSF_GPU_LATEST_FLUSH_ID);
else
pfn = virt_to_pfn(ptdev->pm.dummy_latest_flush);
pfn = page_to_pfn(ptdev->pm.dummy_latest_flush);
break;
default:
......
......@@ -160,7 +160,7 @@ struct panthor_device {
* Used to replace the real LATEST_FLUSH page when the GPU
* is suspended.
*/
u32 *dummy_latest_flush;
struct page *dummy_latest_flush;
} pm;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment