hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/mfd/ab3100-core.c
....@@ -1,6 +1,6 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) 2007-2010 ST-Ericsson
3
- * License terms: GNU General Public License (GPL) version 2
44 * Low-level core for exclusive access to the AB3100 IC on the I2C bus
55 * and some basic chip-configuration.
66 * Author: Linus Walleij <linus.walleij@stericsson.com>
....@@ -498,7 +498,7 @@
498498 int i = 0;
499499
500500 /* Get userspace string and assure termination */
501
- buf_size = min(count, (sizeof(buf)-1));
501
+ buf_size = min((ssize_t)count, (ssize_t)(sizeof(buf)-1));
502502 if (copy_from_user(buf, user_buf, buf_size))
503503 return -EFAULT;
504504 buf[buf_size] = 0;
....@@ -575,58 +575,27 @@
575575 .llseek = noop_llseek,
576576 };
577577
578
-static struct dentry *ab3100_dir;
579
-static struct dentry *ab3100_reg_file;
580578 static struct ab3100_get_set_reg_priv ab3100_get_priv;
581
-static struct dentry *ab3100_get_reg_file;
582579 static struct ab3100_get_set_reg_priv ab3100_set_priv;
583
-static struct dentry *ab3100_set_reg_file;
584580
585581 static void ab3100_setup_debugfs(struct ab3100 *ab3100)
586582 {
587
- int err;
583
+ struct dentry *ab3100_dir;
588584
589585 ab3100_dir = debugfs_create_dir("ab3100", NULL);
590
- if (!ab3100_dir)
591
- goto exit_no_debugfs;
592586
593
- ab3100_reg_file = debugfs_create_file("registers",
594
- S_IRUGO, ab3100_dir, ab3100,
595
- &ab3100_registers_fops);
596
- if (!ab3100_reg_file) {
597
- err = -ENOMEM;
598
- goto exit_destroy_dir;
599
- }
587
+ debugfs_create_file("registers", S_IRUGO, ab3100_dir, ab3100,
588
+ &ab3100_registers_fops);
600589
601590 ab3100_get_priv.ab3100 = ab3100;
602591 ab3100_get_priv.mode = false;
603
- ab3100_get_reg_file = debugfs_create_file("get_reg",
604
- S_IWUSR, ab3100_dir, &ab3100_get_priv,
605
- &ab3100_get_set_reg_fops);
606
- if (!ab3100_get_reg_file) {
607
- err = -ENOMEM;
608
- goto exit_destroy_reg;
609
- }
592
+ debugfs_create_file("get_reg", S_IWUSR, ab3100_dir, &ab3100_get_priv,
593
+ &ab3100_get_set_reg_fops);
610594
611595 ab3100_set_priv.ab3100 = ab3100;
612596 ab3100_set_priv.mode = true;
613
- ab3100_set_reg_file = debugfs_create_file("set_reg",
614
- S_IWUSR, ab3100_dir, &ab3100_set_priv,
615
- &ab3100_get_set_reg_fops);
616
- if (!ab3100_set_reg_file) {
617
- err = -ENOMEM;
618
- goto exit_destroy_get_reg;
619
- }
620
- return;
621
-
622
- exit_destroy_get_reg:
623
- debugfs_remove(ab3100_get_reg_file);
624
- exit_destroy_reg:
625
- debugfs_remove(ab3100_reg_file);
626
- exit_destroy_dir:
627
- debugfs_remove(ab3100_dir);
628
- exit_no_debugfs:
629
- return;
597
+ debugfs_create_file("set_reg", S_IWUSR, ab3100_dir, &ab3100_set_priv,
598
+ &ab3100_get_set_reg_fops);
630599 }
631600 #else
632601 static inline void ab3100_setup_debugfs(struct ab3100 *ab3100)
....@@ -896,10 +865,10 @@
896865 &ab3100->chip_name[0]);
897866
898867 /* Attach a second dummy i2c_client to the test register address */
899
- ab3100->testreg_client = i2c_new_dummy(client->adapter,
868
+ ab3100->testreg_client = i2c_new_dummy_device(client->adapter,
900869 client->addr + 1);
901
- if (!ab3100->testreg_client) {
902
- err = -ENOMEM;
870
+ if (IS_ERR(ab3100->testreg_client)) {
871
+ err = PTR_ERR(ab3100->testreg_client);
903872 goto exit_no_testreg_client;
904873 }
905874