Skip to contentSkip to conversation

scx200_gpio: use 1 cdev for N minors, not N for N

PATCH New Jim Cromie 1 participant 1 message Jul 11, 2006

lore
Share & tools
lore

Jim Cromie

author
#0 lore raw

cover scx200_gpio: use 1 cdev for N minors, not N for N

this pair of patches switches the driver to share 1 cdev across N pins, thus decreasing memory usage, and simplifying code ( no kzalloc, or its undo ).

Q: For some reason I havent figured, the cdev_put below breaks:

static void __exit scx200_gpio_cleanup(void)
{
cdev_del(&scx200_gpio_cdev);
cdev_put(&scx200_gpio_cdev); <<<<<<<< HERE

unregister_chrdev_region(MKDEV(major, 0), MAX_PINS); platform_device_unregister(pdev);
}

CC [M] drivers/char/scx200_gpio.o
Kernel: arch/i386/boot/bzImage is ready (#6)
Building modules, stage 2.
MODPOST
WARNING: "cdev_put" [drivers/char/scx200_gpio.ko] undefined!
LD [M] drivers/char/scx200_gpio.ko

It seems odd that it isnt available, esp since cdev_init() is also used wo errors ( in -mm1 currently ), and its defined in same
source-file: fs/char_dev.c

At any rate, I commented out the call in the 2nd patch and it works. I left it to mark the question.

thanks
Jim Cromie