Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
From bf6e52b5a3e670ee683bed778be657b98e0c83af Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.com>
|
||||
Date: Thu, 21 Dec 2023 15:13:37 +0000
|
||||
Subject: [PATCH 0802/1085] bcm2835-virtgpio: Update for Linux 6.6
|
||||
|
||||
The gpio subsystem is happier if the gpiochip is given a parent, and
|
||||
if it doesn't have a fixed base gpio number. While we're in here,
|
||||
use the fact that the firmware node is the parent to locate it,
|
||||
and use the devm_ version of rpi_firmware_get.
|
||||
|
||||
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
---
|
||||
drivers/gpio/gpio-bcm-virt.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/gpio/gpio-bcm-virt.c
|
||||
+++ b/drivers/gpio/gpio-bcm-virt.c
|
||||
@@ -85,13 +85,14 @@ static int brcmvirt_gpio_probe(struct pl
|
||||
struct brcmvirt_gpio *ucb;
|
||||
u32 gpiovirtbuf;
|
||||
|
||||
- fw_node = of_parse_phandle(np, "firmware", 0);
|
||||
+ fw_node = of_get_parent(np);
|
||||
if (!fw_node) {
|
||||
dev_err(dev, "Missing firmware node\n");
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
- fw = rpi_firmware_get(fw_node);
|
||||
+ fw = devm_rpi_firmware_get(&pdev->dev, fw_node);
|
||||
+ of_node_put(fw_node);
|
||||
if (!fw)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
@@ -145,10 +146,10 @@ static int brcmvirt_gpio_probe(struct pl
|
||||
}
|
||||
ucb->bus_addr = 0;
|
||||
}
|
||||
+ ucb->gc.parent = dev;
|
||||
ucb->gc.label = MODULE_NAME;
|
||||
ucb->gc.owner = THIS_MODULE;
|
||||
- //ucb->gc.dev = dev;
|
||||
- ucb->gc.base = 100;
|
||||
+ ucb->gc.base = -1;
|
||||
ucb->gc.ngpio = NUM_GPIO;
|
||||
|
||||
ucb->gc.direction_input = brcmvirt_gpio_dir_in;
|
||||
Reference in New Issue
Block a user