mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
generic: fix loogarch64 kernel modules build
This commit is contained in:
parent
eadf20fda4
commit
4fb7370e09
@ -39,7 +39,8 @@ define KernelPackage/crypto-aead
|
||||
TITLE:=CryptoAPI AEAD support
|
||||
KCONFIG:= \
|
||||
CONFIG_CRYPTO_AEAD \
|
||||
CONFIG_CRYPTO_AEAD2
|
||||
CONFIG_CRYPTO_AEAD2 \
|
||||
CONFIG_CRYPTO_GENIV
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/crypto/aead.ko \
|
||||
$(LINUX_DIR)/crypto/geniv.ko@ge5.10
|
||||
|
@ -142,7 +142,7 @@ $(eval $(call KernelPackage,mii))
|
||||
define KernelPackage/mdio-devres
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Supports MDIO device registration
|
||||
DEPENDS:=@!LINUX_5_4 +kmod-libphy +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio
|
||||
DEPENDS:=@!LINUX_5_4 +kmod-libphy +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_loongarch64||TARGET_malta||TARGET_tegra):kmod-of-mdio
|
||||
KCONFIG:=CONFIG_MDIO_DEVRES
|
||||
HIDDEN:=1
|
||||
FILES:=$(LINUX_DIR)/drivers/net/phy/mdio_devres.ko
|
||||
|
@ -907,11 +907,25 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,sched-ipset))
|
||||
|
||||
define KernelPackage/sched-mqprio-common
|
||||
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||
TITLE:=mqprio queue common dependencies support
|
||||
DEPENDS:=@LINUX_6_6
|
||||
HIDDEN:=1
|
||||
KCONFIG:=CONFIG_NET_SCH_MQPRIO_LIB
|
||||
FILES:=$(LINUX_DIR)/net/sched/sch_mqprio_lib.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/sched-mqprio-common/description
|
||||
Common library for manipulating mqprio queue configurations
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,sched-mqprio-common))
|
||||
|
||||
define KernelPackage/sched-mqprio
|
||||
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||
TITLE:=Multi-queue priority scheduler (MQPRIO)
|
||||
DEPENDS:=+kmod-sched-core
|
||||
DEPENDS:=+kmod-sched-core +LINUX_6_6:kmod-sched-mqprio-common
|
||||
KCONFIG:=CONFIG_NET_SCH_MQPRIO
|
||||
FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
|
||||
AUTOLOAD:=$(call AutoProbe, sch_mqprio)
|
||||
@ -982,7 +996,7 @@ endef
|
||||
$(eval $(call KernelPackage,bpf-test))
|
||||
|
||||
|
||||
SCHED_MODULES_EXTRA = sch_codel sch_dsmark sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_csum em_cmp em_nbyte em_meta em_text
|
||||
SCHED_MODULES_EXTRA = sch_codel sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_skbmod act_csum em_cmp em_nbyte em_meta em_text
|
||||
SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
|
||||
|
||||
define KernelPackage/sched
|
||||
@ -991,7 +1005,7 @@ define KernelPackage/sched
|
||||
DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
|
||||
KCONFIG:= \
|
||||
CONFIG_NET_SCH_CODEL \
|
||||
CONFIG_NET_SCH_DSMARK \
|
||||
CONFIG_NET_SCH_DSMARK@lt6.2 \
|
||||
CONFIG_NET_SCH_GRED \
|
||||
CONFIG_NET_SCH_MULTIQ \
|
||||
CONFIG_NET_SCH_SFQ \
|
||||
@ -1005,7 +1019,8 @@ define KernelPackage/sched
|
||||
CONFIG_NET_EMATCH_META \
|
||||
CONFIG_NET_EMATCH_TEXT
|
||||
FILES:=$(SCHED_FILES_EXTRA)
|
||||
AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
|
||||
FILES+=$(LINUX_DIR)/net/sched/sch_dsmark.ko@lt6.2
|
||||
AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA) sch_dsmark@lt6.2)
|
||||
endef
|
||||
|
||||
define KernelPackage/sched/description
|
||||
|
@ -308,12 +308,16 @@ $(eval $(call KernelPackage,drm))
|
||||
define KernelPackage/drm-buddy
|
||||
SUBMENU:=$(VIDEO_MENU)
|
||||
TITLE:=A page based buddy allocator
|
||||
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-drm @LINUX_6_1||LINUX_6_6
|
||||
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_1||LINUX_6_6
|
||||
KCONFIG:=CONFIG_DRM_BUDDY
|
||||
FILES:= $(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko
|
||||
AUTOLOAD:=$(call AutoProbe,drm_buddy)
|
||||
endef
|
||||
|
||||
define KernelPackage/drm-buddy/description
|
||||
A page based buddy allocator
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,drm-buddy))
|
||||
|
||||
define KernelPackage/drm-ttm
|
||||
@ -367,7 +371,7 @@ $(eval $(call KernelPackage,drm-kms-helper))
|
||||
define KernelPackage/drm-display-helper
|
||||
SUBMENU:=$(VIDEO_MENU)
|
||||
TITLE:=DRM helpers for display adapters drivers
|
||||
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm +TARGET_x86:kmod-drm-buddy @LINUX_6_1||LINUX_6_6
|
||||
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm +(TARGET_x86||TARGET_loongarch64):kmod-drm-buddy @LINUX_6_1||LINUX_6_6
|
||||
KCONFIG:=CONFIG_DRM_DISPLAY_HELPER
|
||||
FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko
|
||||
AUTOLOAD:=$(call AutoProbe,drm_display_helper)
|
||||
@ -383,8 +387,8 @@ define KernelPackage/drm-amdgpu
|
||||
SUBMENU:=$(VIDEO_MENU)
|
||||
TITLE:=AMDGPU DRM support
|
||||
DEPENDS:=@TARGET_x86||TARGET_loongarch64 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
|
||||
+kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware \
|
||||
+LINUX_6_1:kmod-drm-display-helper +LINUX_6_1:kmod-acpi-video
|
||||
+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware \
|
||||
+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video
|
||||
KCONFIG:=CONFIG_DRM_AMDGPU \
|
||||
CONFIG_DRM_AMDGPU_SI=y \
|
||||
CONFIG_DRM_AMDGPU_CIK=y \
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
#include "gpiolib.h"
|
||||
#include "gpiolib-of.h"
|
||||
@@ -1107,3 +1109,72 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
@@ -1111,3 +1113,74 @@ void of_gpiochip_remove(struct gpio_chip
|
||||
{
|
||||
of_node_put(dev_of_node(&chip->gpiodev->dev));
|
||||
}
|
||||
@ -44,17 +44,19 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+ of_property_read_string(cnp, "gpio-export,name", &name);
|
||||
+
|
||||
+ if (!name)
|
||||
+ // max_gpio = of_gpio_count(cnp);
|
||||
+ max_gpio = of_gpio_named_count(cnp, "gpios");
|
||||
+
|
||||
+ for (i = 0; i < max_gpio; i++) {
|
||||
+ struct gpio_desc *desc;
|
||||
+ unsigned flags = 0;
|
||||
+ enum of_gpio_flags of_flags;
|
||||
+
|
||||
+ gpio = of_get_named_gpio(cnp, i, &of_flags);
|
||||
+ if (!gpio_is_valid(gpio))
|
||||
+ return gpio;
|
||||
+ desc = of_get_named_gpiod_flags(cnp, "gpios", i, &of_flags);
|
||||
+ if (IS_ERR(desc))
|
||||
+ return PTR_ERR(desc);
|
||||
+ gpio = desc_to_gpio(desc);
|
||||
+
|
||||
+ if (of_flags == OF_GPIO_ACTIVE_LOW)
|
||||
+ if (of_flags & OF_GPIO_ACTIVE_LOW)
|
||||
+ flags |= GPIOF_ACTIVE_LOW;
|
||||
+
|
||||
+ if (!of_property_read_u32(cnp, "gpio-export,output", &val))
|
||||
@ -66,7 +68,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+ continue;
|
||||
+
|
||||
+ dmc = of_property_read_bool(cnp, "gpio-export,direction_may_change");
|
||||
+ gpio_export_with_name(gpio, dmc, name);
|
||||
+ gpio_export_with_name(gpio_to_desc(gpio), dmc, name);
|
||||
+ nb++;
|
||||
+ }
|
||||
+ }
|
||||
@ -88,22 +90,24 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+module_platform_driver(gpio_export_driver);
|
||||
+
|
||||
+#endif
|
||||
\ No newline at end of file
|
||||
--- a/include/linux/gpio/consumer.h
|
||||
+++ b/include/linux/gpio/consumer.h
|
||||
@@ -644,6 +644,7 @@ static inline struct gpio_desc *acpi_get
|
||||
@@ -644,7 +644,10 @@ static inline struct gpio_desc *acpi_get
|
||||
|
||||
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
|
||||
|
||||
+int _gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name);
|
||||
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name);
|
||||
int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
|
||||
+int gpio_export_with_name(struct gpio_desc *desc, bool direction_may_change,
|
||||
+ const char *name);
|
||||
int gpiod_export_link(struct device *dev, const char *name,
|
||||
struct gpio_desc *desc);
|
||||
@@ -653,6 +654,13 @@ void gpiod_unexport(struct gpio_desc *de
|
||||
void gpiod_unexport(struct gpio_desc *desc);
|
||||
@@ -653,11 +656,25 @@ void gpiod_unexport(struct gpio_desc *de
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
+static inline int _gpiod_export(struct gpio_desc *desc,
|
||||
+static inline int __gpiod_export(struct gpio_desc *desc,
|
||||
+ bool direction_may_change,
|
||||
+ const char *name)
|
||||
+{
|
||||
@ -113,9 +117,21 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
static inline int gpiod_export(struct gpio_desc *desc,
|
||||
bool direction_may_change)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
+
|
||||
+static inline int gpio_export_with_name(struct gpio_desc *desc,
|
||||
+ bool direction_may_change,
|
||||
+ const char *name)
|
||||
+{
|
||||
+ return -ENOSYS;
|
||||
+}
|
||||
|
||||
static inline int gpiod_export_link(struct device *dev, const char *name,
|
||||
struct gpio_desc *desc)
|
||||
--- a/drivers/gpio/gpiolib-sysfs.c
|
||||
+++ b/drivers/gpio/gpiolib-sysfs.c
|
||||
@@ -554,7 +554,7 @@ static struct class gpio_class = {
|
||||
@@ -557,7 +557,7 @@ static struct class gpio_class = {
|
||||
*
|
||||
* Returns zero on success, else an error.
|
||||
*/
|
||||
@ -124,7 +140,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct gpio_device *gdev;
|
||||
@@ -616,6 +616,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
@@ -619,6 +619,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
offset = gpio_chip_hwgpio(desc);
|
||||
if (chip->names && chip->names[offset])
|
||||
ioname = chip->names[offset];
|
||||
@ -133,7 +149,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
dev = device_create_with_groups(&gpio_class, &gdev->dev,
|
||||
MKDEV(0, 0), data, gpio_groups,
|
||||
@@ -637,6 +639,12 @@ err_unlock:
|
||||
@@ -640,8 +642,21 @@ err_unlock:
|
||||
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||
return status;
|
||||
}
|
||||
@ -145,4 +161,13 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+}
|
||||
EXPORT_SYMBOL_GPL(gpiod_export);
|
||||
|
||||
+int gpio_export_with_name(struct gpio_desc *desc, bool direction_may_change,
|
||||
+ const char *name)
|
||||
+{
|
||||
+ return __gpiod_export(desc, direction_may_change, name);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(gpio_export_with_name);
|
||||
+
|
||||
static int match_export(struct device *dev, const void *desc)
|
||||
{
|
||||
struct gpiod_data *data = dev_get_drvdata(dev);
|
||||
|
Loading…
Reference in New Issue
Block a user