Unloading and reloading the modules fails, as platform_device_put() does not release resources fully. root@OpenWrt:/# insmod i2c-gpio-custom bus0=0,18,0,5 [ 196.860620] Custom GPIO-based I2C driver version 0.1.1 [ 196.871162] ------------[ cut here ]------------ [ 196.880517] WARNING: CPU: 0 PID: 1365 at fs/sysfs/dir.c:31 0x80112158 [ 196.893431] sysfs: cannot create duplicate filename '/devices/platform/i2c-gpio.0' ... [ 197.513200] kobject_add_internal failed for i2c-gpio.0 with -EEXIST, don't try to register things with the same name in the same directory. This patch fixes it by replacing platform_device_put() to platform_device_unregister(). Fixes:da77408537("i2c-gpio-custom: minor bugfix") Fixes:3bc81edc70("package: fix w1-gpio-custom package (closes #6770)") Signed-off-by: Sungbo Eo <mans0n@gorani.run> (cherry picked from commita22b7a60d9)
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# Copyright (C) 2008 OpenWrt.org
 | 
						|
#
 | 
						|
# This is free software, licensed under the GNU General Public License v2.
 | 
						|
# See /LICENSE for more information.
 | 
						|
#
 | 
						|
 | 
						|
include $(TOPDIR)/rules.mk
 | 
						|
include $(INCLUDE_DIR)/kernel.mk
 | 
						|
 | 
						|
PKG_NAME:=i2c-gpio-custom
 | 
						|
PKG_RELEASE:=3
 | 
						|
 | 
						|
include $(INCLUDE_DIR)/package.mk
 | 
						|
 | 
						|
define KernelPackage/i2c-gpio-custom
 | 
						|
  SUBMENU:=I2C support
 | 
						|
  TITLE:=Custom GPIO-based I2C device
 | 
						|
  DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-i2c-gpio @!LINUX_4_19
 | 
						|
  FILES:=$(PKG_BUILD_DIR)/i2c-gpio-custom.ko
 | 
						|
  KCONFIG:=
 | 
						|
endef
 | 
						|
 | 
						|
define KernelPackage/i2c-gpio-custom/description
 | 
						|
 Kernel module for register a custom i2c-gpio platform device.
 | 
						|
endef
 | 
						|
 | 
						|
EXTRA_KCONFIG:= \
 | 
						|
	CONFIG_I2C_GPIO_CUSTOM=m
 | 
						|
 | 
						|
EXTRA_CFLAGS:= \
 | 
						|
	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
 | 
						|
	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
 | 
						|
 | 
						|
MAKE_OPTS:= \
 | 
						|
	$(KERNEL_MAKE_FLAGS) \
 | 
						|
	SUBDIRS="$(PKG_BUILD_DIR)" \
 | 
						|
	EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
 | 
						|
	$(EXTRA_KCONFIG)
 | 
						|
 | 
						|
define Build/Compile
 | 
						|
	$(MAKE) -C "$(LINUX_DIR)" \
 | 
						|
		$(MAKE_OPTS) \
 | 
						|
		modules
 | 
						|
endef
 | 
						|
 | 
						|
$(eval $(call KernelPackage,i2c-gpio-custom))
 |