From 2ddf4cfd3fd6689ba8d93913d4eb3f4c9c4a26f1 Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 14:13:26 +0900 Subject: [PATCH 1/6] =?UTF-8?q?rtcntl=5F*=E3=81=A8rtcntr=5F*=E3=82=92?= =?UTF-8?q?=E4=B8=80=E3=81=A4=E3=81=AE=E9=96=A2=E6=95=B0=E3=81=AB=E3=81=BE?= =?UTF-8?q?=E3=81=A8=E3=82=81=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse_i2c.c | 97 +++++++-------------------------------- 1 file changed, 17 insertions(+), 80 deletions(-) diff --git a/src/drivers/rtmouse_i2c.c b/src/drivers/rtmouse_i2c.c index a63acee..ac3a80a 100644 --- a/src/drivers/rtmouse_i2c.c +++ b/src/drivers/rtmouse_i2c.c @@ -68,77 +68,8 @@ static struct i2c_driver i2c_counter_driver = { /* -- Device Addition -- */ MODULE_DEVICE_TABLE(i2c, i2c_counter_id); -static int rtcntr_i2c_create_cdev(struct rtcnt_device_info *dev_info) -{ - int minor; - int alloc_ret = 0; - int cdev_err = 0; - dev_t dev; - - /* 空いているメジャー番号を確保する */ - alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], - DEVNAME_CNTR); - if (alloc_ret != 0) { - printk(KERN_ERR "alloc_chrdev_region = %d\n", alloc_ret); - return -1; - } - - /* 取得したdev( = メジャー番号 + マイナー番号) - * からメジャー番号を取得して保持しておく */ - dev_info->device_major = MAJOR(dev); - dev = MKDEV(dev_info->device_major, DEV_MINOR); - - /* cdev構造体の初期化とシステムコールハンドラテーブルの登録 */ - cdev_init(&dev_info->cdev, &dev_fops[ID_DEV_CNT]); - dev_info->cdev.owner = THIS_MODULE; - - /* このデバイスドライバ(cdev)をカーネルに登録する */ - cdev_err = cdev_add(&dev_info->cdev, dev, NUM_DEV[ID_DEV_CNT]); - if (cdev_err != 0) { - printk(KERN_ERR "cdev_add = %d\n", alloc_ret); - unregister_chrdev_region(dev, NUM_DEV[ID_DEV_CNT]); - return -1; - } - - /* このデバイスのクラス登録をする(/sys/class/mydevice/ を作る) */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) - dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTR); -#else - dev_info->device_class = class_create(DEVNAME_CNTR); -#endif - - if (IS_ERR(dev_info->device_class)) { - printk(KERN_ERR "class_create\n"); - cdev_del(&dev_info->cdev); - unregister_chrdev_region(dev, NUM_DEV[ID_DEV_CNT]); - return -1; - } - - for (minor = DEV_MINOR; minor < DEV_MINOR + NUM_DEV[ID_DEV_CNT]; - minor++) { - - struct device *dev_ret; - dev_ret = device_create(dev_info->device_class, NULL, - MKDEV(dev_info->device_major, minor), - NULL, "rtcounter_r%d", minor); - - /* デバイスファイル作成の可否を判定 */ - if (IS_ERR(dev_ret)) { - /* デバイスファイルの作成に失敗した */ - printk(KERN_ERR "device_create failed minor = %d\n", - minor); - /* リソースリークを避けるために登録された状態cdevを削除する - */ - cdev_del(&(cdev_array[cdev_index])); - return PTR_ERR(dev_ret); - } - } - - return 0; -} - // called by rtcnt_i2c_probe() -static int rtcntl_i2c_create_cdev(struct rtcnt_device_info *dev_info) +static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const char *devname_cnt) { int minor; int alloc_ret = 0; @@ -147,7 +78,7 @@ static int rtcntl_i2c_create_cdev(struct rtcnt_device_info *dev_info) /* 空いているメジャー番号を確保する */ alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], - DEVNAME_CNTL); + devname_cnt); if (alloc_ret != 0) { printk(KERN_ERR "alloc_chrdev_region = %d\n", alloc_ret); return -1; @@ -172,9 +103,9 @@ static int rtcntl_i2c_create_cdev(struct rtcnt_device_info *dev_info) /* このデバイスのクラス登録をする(/sys/class/mydevice/ を作る) */ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) - dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTL); + dev_info->device_class = class_create(THIS_MODULE, devname_cnt); #else - dev_info->device_class = class_create(DEVNAME_CNTL); + dev_info->device_class = class_create(devname_cnt); #endif if (IS_ERR(dev_info->device_class)) { @@ -189,9 +120,15 @@ static int rtcntl_i2c_create_cdev(struct rtcnt_device_info *dev_info) minor++) { struct device *dev_ret; - dev_ret = device_create(dev_info->device_class, NULL, - MKDEV(dev_info->device_major, minor), - NULL, "rtcounter_l%d", minor); + if (devname_cnt == DEVNAME_CNTL) { + dev_ret = device_create(dev_info->device_class, NULL, + MKDEV(dev_info->device_major, minor), + NULL, "rtcounter_l%d", minor); + } else if (devname_cnt == DEVNAME_CNTR) { + dev_ret = device_create(dev_info->device_class, NULL, + MKDEV(dev_info->device_major, minor), + NULL, "rtcounter_r%d", minor); + } /* デバイスファイル作成の可否を判定 */ if (IS_ERR(dev_ret)) { @@ -260,10 +197,10 @@ static int rtcnt_i2c_probe(struct i2c_client *client, /* create character device */ if ((int)(id->driver_data) == 0) { - if (rtcntl_i2c_create_cdev(dev_info)) + if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTL)) return -ENOMEM; } else if ((int)(id->driver_data) == 1) { - if (rtcntr_i2c_create_cdev(dev_info)) + if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTR)) return -ENOMEM; } @@ -301,10 +238,10 @@ static int rtcnt_i2c_probe(struct i2c_client *client) /* create character device */ if ((int)(id->driver_data) == 0) { - if (rtcntl_i2c_create_cdev(dev_info)) + if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTL)) return -ENOMEM; } else if ((int)(id->driver_data) == 1) { - if (rtcntr_i2c_create_cdev(dev_info)) + if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTR)) return -ENOMEM; } From c482fcfe105a471fb7ef385b69cbb49cb8d5b975 Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 15:12:51 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=E5=AE=9A=E6=95=B0DEV=5FLEFT=E3=81=A8DEV=5F?= =?UTF-8?q?RIGHT=E3=82=92=E5=AE=9A=E7=BE=A9=E3=81=97=E3=81=A6=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E5=88=86=E5=B2=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse.h | 3 +++ src/drivers/rtmouse_i2c.c | 27 ++++++++++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/drivers/rtmouse.h b/src/drivers/rtmouse.h index a11c390..b2cef95 100644 --- a/src/drivers/rtmouse.h +++ b/src/drivers/rtmouse.h @@ -54,6 +54,9 @@ // Raspberry Pi 4 B : 4 #define RASPBERRYPI 2 +#define DEV_RIGHT 0 +#define DEV_LEFT 1 + /* --- Device ID --- */ #define ID_DEV_LED 0 #define ID_DEV_SWITCH 1 diff --git a/src/drivers/rtmouse_i2c.c b/src/drivers/rtmouse_i2c.c index ac3a80a..676030e 100644 --- a/src/drivers/rtmouse_i2c.c +++ b/src/drivers/rtmouse_i2c.c @@ -69,7 +69,7 @@ static struct i2c_driver i2c_counter_driver = { MODULE_DEVICE_TABLE(i2c, i2c_counter_id); // called by rtcnt_i2c_probe() -static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const char *devname_cnt) +static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const int dev_side) { int minor; int alloc_ret = 0; @@ -77,8 +77,13 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const char dev_t dev; /* 空いているメジャー番号を確保する */ - alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], - devname_cnt); + if (dev_side == DEV_LEFT) { + alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], + DEVNAME_CNTL); + } else if (dev_side == DEV_RIGHT) { + alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], + DEVNAME_CNTR); + } if (alloc_ret != 0) { printk(KERN_ERR "alloc_chrdev_region = %d\n", alloc_ret); return -1; @@ -103,9 +108,17 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const char /* このデバイスのクラス登録をする(/sys/class/mydevice/ を作る) */ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) - dev_info->device_class = class_create(THIS_MODULE, devname_cnt); + if (dev_side == DEV_LEFT) { + dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTL); + } else if (dev_side == DEV_RIGHT) { + dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTR); + } #else - dev_info->device_class = class_create(devname_cnt); + if (dev_side == DEV_LEFT) { + dev_info->device_class = class_create(DEVNAME_CNTL); + } else if (dev_side == DEV_RIGHT) { + dev_info->device_class = class_create(DEVNAME_CNTR); + } #endif if (IS_ERR(dev_info->device_class)) { @@ -120,11 +133,11 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const char minor++) { struct device *dev_ret; - if (devname_cnt == DEVNAME_CNTL) { + if (dev_side == DEV_LEFT) { dev_ret = device_create(dev_info->device_class, NULL, MKDEV(dev_info->device_major, minor), NULL, "rtcounter_l%d", minor); - } else if (devname_cnt == DEVNAME_CNTR) { + } else if (dev_side == DEV_RIGHT) { dev_ret = device_create(dev_info->device_class, NULL, MKDEV(dev_info->device_major, minor), NULL, "rtcounter_r%d", minor); From 07a15d3a9461ca9dde8422ffe40841e825eaeba8 Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 15:27:09 +0900 Subject: [PATCH 3/6] =?UTF-8?q?set=5Fmotor=5Fl=5F*=E3=81=A8set=5Fmotor=5Fr?= =?UTF-8?q?=5F*=E3=82=92=E4=B8=80=E3=81=A4=E3=81=AE=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E3=81=AB=E3=81=BE=E3=81=A8=E3=82=81=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse_dev.c | 94 ++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/src/drivers/rtmouse_dev.c b/src/drivers/rtmouse_dev.c index d124d64..bb056f5 100644 --- a/src/drivers/rtmouse_dev.c +++ b/src/drivers/rtmouse_dev.c @@ -229,10 +229,10 @@ static int getPWMCount(int freq) } /* - * left motor function + * motor function * called by parseMotorCmd() and rawmotor_l_write() */ -static void set_motor_l_freq(int freq) +static void set_motor_freq(int freq, const int dev_side) { int dat; @@ -244,65 +244,49 @@ static void set_motor_l_freq(int freq) } if (freq == 0) { - rpi_gpio_function_set(MOTCLK_L_BASE, RPI_GPF_OUTPUT); + if (dev_side == DEV_LEFT) { + rpi_gpio_function_set(MOTCLK_L_BASE, RPI_GPF_OUTPUT); + } else if (dev_side == DEV_RIGHT) { + rpi_gpio_function_set(MOTCLK_R_BASE, RPI_GPF_OUTPUT); + } return; } else { - rpi_gpio_function_set(MOTCLK_L_BASE, RPI_GPF_ALT0); + if (dev_side == DEV_LEFT) { + rpi_gpio_function_set(MOTCLK_L_BASE, RPI_GPF_ALT0); + } else if (dev_side == DEV_RIGHT) { + rpi_gpio_function_set(MOTCLK_R_BASE, RPI_GPF_ALT0); + } } if (freq > 0) { - motor_l_freq_is_positive = 1; - rpi_gpio_clear32(RPI_GPIO_P2MASK, 1 << MOTDIR_L_BASE); + if (dev_side == DEV_LEFT) { + motor_l_freq_is_positive = 1; + rpi_gpio_clear32(RPI_GPIO_P2MASK, 1 << MOTDIR_L_BASE); + } else if (dev_side == DEV_RIGHT) { + motor_r_freq_is_positive = 1; + rpi_gpio_clear32(RPI_GPIO_P2MASK, 1 << MOTDIR_R_BASE); + } } else { - motor_l_freq_is_positive = 0; - rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_L_BASE); - freq = -freq; + if (dev_side == DEV_LEFT) { + motor_l_freq_is_positive = 0; + rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_L_BASE); + } else if (dev_side == DEV_RIGHT) { + motor_r_freq_is_positive = 0; + rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_R_BASE); + freq = -freq; + } } dat = getPWMCount(freq); - rpi_pwm_write32(RPI_PWM_RNG1, dat); - rpi_pwm_write32(RPI_PWM_DAT1, dat >> 1); - - return; -} - -/* - * right motor function - * called by parseMotorCmd() and rawmotor_r_write() - */ -static void set_motor_r_freq(int freq) -{ - int dat; - - rpi_gpio_function_set(BUZZER_BASE, RPI_GPF_OUTPUT); - - // Reset uncontrollable frequency to zero. - if (abs(freq) < MOTOR_UNCONTROLLABLE_FREQ) { - freq = 0; - } - - if (freq == 0) { - rpi_gpio_function_set(MOTCLK_R_BASE, RPI_GPF_OUTPUT); - return; - } else { - rpi_gpio_function_set(MOTCLK_R_BASE, RPI_GPF_ALT0); - } - - if (freq > 0) { - motor_r_freq_is_positive = 1; - rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_R_BASE); - } else { - motor_r_freq_is_positive = 0; - rpi_gpio_clear32(RPI_GPIO_P2MASK, 1 << MOTDIR_R_BASE); - freq = -freq; + if (dev_side == DEV_LEFT) { + rpi_pwm_write32(RPI_PWM_RNG1, dat); + rpi_pwm_write32(RPI_PWM_DAT1, dat >> 1); + } else if (dev_side == DEV_RIGHT) { + rpi_pwm_write32(RPI_PWM_RNG2, dat); + rpi_pwm_write32(RPI_PWM_DAT2, dat >> 1); } - dat = getPWMCount(freq); - - rpi_pwm_write32(RPI_PWM_RNG2, dat); - rpi_pwm_write32(RPI_PWM_DAT2, dat >> 1); - return; } @@ -326,13 +310,13 @@ static int parseMotorCmd(const char __user *buf, size_t count, int *ret) mutex_lock(&lock); - set_motor_l_freq(l_motor_val); - set_motor_r_freq(r_motor_val); + set_motor_freq(l_motor_val, DEV_LEFT); + set_motor_freq(r_motor_val, DEV_RIGHT); msleep_interruptible(time_val); - set_motor_l_freq(0); - set_motor_r_freq(0); + set_motor_freq(0, DEV_LEFT); + set_motor_freq(0, DEV_RIGHT); mutex_unlock(&lock); @@ -751,7 +735,7 @@ static ssize_t rawmotor_l_write(struct file *filep, const char __user *buf, DRIVER_NAME, __func__); return ret; } - set_motor_l_freq(freq); + set_motor_freq(freq, DEV_LEFT); return count; } @@ -772,7 +756,7 @@ static ssize_t rawmotor_r_write(struct file *filep, const char __user *buf, return ret; } - set_motor_r_freq(freq); + set_motor_freq(freq, DEV_RIGHT); return count; } From f5c71394bae1d89ca530605ae5a654c8284c003b Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 15:45:17 +0900 Subject: [PATCH 4/6] =?UTF-8?q?lint=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=81=97?= =?UTF-8?q?=E3=81=A6=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse_i2c.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/drivers/rtmouse_i2c.c b/src/drivers/rtmouse_i2c.c index 676030e..76b07e4 100644 --- a/src/drivers/rtmouse_i2c.c +++ b/src/drivers/rtmouse_i2c.c @@ -69,7 +69,8 @@ static struct i2c_driver i2c_counter_driver = { MODULE_DEVICE_TABLE(i2c, i2c_counter_id); // called by rtcnt_i2c_probe() -static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const int dev_side) +static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, + const int dev_side) { int minor; int alloc_ret = 0; @@ -78,11 +79,11 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const int d /* 空いているメジャー番号を確保する */ if (dev_side == DEV_LEFT) { - alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], - DEVNAME_CNTL); + alloc_ret = alloc_chrdev_region( + &dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], DEVNAME_CNTL); } else if (dev_side == DEV_RIGHT) { - alloc_ret = alloc_chrdev_region(&dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], - DEVNAME_CNTR); + alloc_ret = alloc_chrdev_region( + &dev, DEV_MINOR, NUM_DEV[ID_DEV_CNT], DEVNAME_CNTR); } if (alloc_ret != 0) { printk(KERN_ERR "alloc_chrdev_region = %d\n", alloc_ret); @@ -109,9 +110,11 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const int d /* このデバイスのクラス登録をする(/sys/class/mydevice/ を作る) */ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0) if (dev_side == DEV_LEFT) { - dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTL); + dev_info->device_class = + class_create(THIS_MODULE, DEVNAME_CNTL); } else if (dev_side == DEV_RIGHT) { - dev_info->device_class = class_create(THIS_MODULE, DEVNAME_CNTR); + dev_info->device_class = + class_create(THIS_MODULE, DEVNAME_CNTR); } #else if (dev_side == DEV_LEFT) { @@ -134,13 +137,15 @@ static int rtcnt_i2c_create_cdev(struct rtcnt_device_info *dev_info, const int d struct device *dev_ret; if (dev_side == DEV_LEFT) { - dev_ret = device_create(dev_info->device_class, NULL, - MKDEV(dev_info->device_major, minor), - NULL, "rtcounter_l%d", minor); + dev_ret = + device_create(dev_info->device_class, NULL, + MKDEV(dev_info->device_major, minor), + NULL, "rtcounter_l%d", minor); } else if (dev_side == DEV_RIGHT) { - dev_ret = device_create(dev_info->device_class, NULL, - MKDEV(dev_info->device_major, minor), - NULL, "rtcounter_r%d", minor); + dev_ret = + device_create(dev_info->device_class, NULL, + MKDEV(dev_info->device_major, minor), + NULL, "rtcounter_r%d", minor); } /* デバイスファイル作成の可否を判定 */ From 98045cc188b7c0a36e1e72128f5fd9ea66a7b92f Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 17:12:30 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=AD=A3&=E5=AE=9F=E6=A9=9F?= =?UTF-8?q?=E3=81=A7=E5=8B=95=E4=BD=9C=E7=A2=BA=E8=AA=8D=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse_dev.c | 1 + src/drivers/rtmouse_i2c.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/drivers/rtmouse_dev.c b/src/drivers/rtmouse_dev.c index bb056f5..57ca4a6 100644 --- a/src/drivers/rtmouse_dev.c +++ b/src/drivers/rtmouse_dev.c @@ -270,6 +270,7 @@ static void set_motor_freq(int freq, const int dev_side) if (dev_side == DEV_LEFT) { motor_l_freq_is_positive = 0; rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_L_BASE); + freq = -freq; } else if (dev_side == DEV_RIGHT) { motor_r_freq_is_positive = 0; rpi_gpio_set32(RPI_GPIO_P2MASK, 1 << MOTDIR_R_BASE); diff --git a/src/drivers/rtmouse_i2c.c b/src/drivers/rtmouse_i2c.c index 76b07e4..e219212 100644 --- a/src/drivers/rtmouse_i2c.c +++ b/src/drivers/rtmouse_i2c.c @@ -215,10 +215,10 @@ static int rtcnt_i2c_probe(struct i2c_client *client, /* create character device */ if ((int)(id->driver_data) == 0) { - if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTL)) + if (rtcnt_i2c_create_cdev(dev_info, DEV_LEFT)) return -ENOMEM; } else if ((int)(id->driver_data) == 1) { - if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTR)) + if (rtcnt_i2c_create_cdev(dev_info, DEV_RIGHT)) return -ENOMEM; } @@ -256,10 +256,10 @@ static int rtcnt_i2c_probe(struct i2c_client *client) /* create character device */ if ((int)(id->driver_data) == 0) { - if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTL)) + if (rtcnt_i2c_create_cdev(dev_info, DEV_LEFT)) return -ENOMEM; } else if ((int)(id->driver_data) == 1) { - if (rtcnt_i2c_create_cdev(dev_info, DEVNAME_CNTR)) + if (rtcnt_i2c_create_cdev(dev_info, DEV_RIGHT)) return -ENOMEM; } From 31f03095bcc8fb3098df86431e0059340a17775f Mon Sep 17 00:00:00 2001 From: YusukeKato Date: Tue, 19 Nov 2024 17:49:31 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E3=82=923.3.4=E3=81=AB=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drivers/rtmouse_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/rtmouse_main.c b/src/drivers/rtmouse_main.c index df071f5..0f415a1 100644 --- a/src/drivers/rtmouse_main.c +++ b/src/drivers/rtmouse_main.c @@ -3,7 +3,7 @@ * rtmouse_main.c * Raspberry Pi Mouse device driver * - * Version: 3.3.3 + * Version: 3.3.4 * * Copyright (C) 2015-2024 RT Corporation * @@ -26,7 +26,7 @@ MODULE_AUTHOR("RT Corporation"); MODULE_LICENSE("GPL"); -MODULE_VERSION("3.3.3"); +MODULE_VERSION("3.3.4"); MODULE_DESCRIPTION("Raspberry Pi Mouse device driver"); /*