1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2021-2022 Digiteq Automotive
4 * author: Martin Tuma <martin.tuma@digiteqautomotive.com>
5 */
6
7#include <linux/ioport.h>
8#include "mgb4_regs.h"
9
10int mgb4_regs_map(struct resource *res, struct mgb4_regs *regs)
11{
12 regs->mapbase = res->start;
13 regs->mapsize = res->end - res->start;
14
15 if (!request_mem_region(regs->mapbase, regs->mapsize, res->name))
16 return -EINVAL;
17 regs->membase = ioremap(offset: regs->mapbase, size: regs->mapsize);
18 if (!regs->membase) {
19 release_mem_region(regs->mapbase, regs->mapsize);
20 return -EINVAL;
21 }
22
23 return 0;
24}
25
26void mgb4_regs_free(struct mgb4_regs *regs)
27{
28 iounmap(addr: regs->membase);
29 release_mem_region(regs->mapbase, regs->mapsize);
30}
31

source code of linux/drivers/media/pci/mgb4/mgb4_regs.c