media: atomisp: Remove unused libmsrlisthelper
authorHans de Goede <hdegoede@redhat.com>
Mon, 16 Sep 2024 09:15:11 +0000 (11:15 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 7 Nov 2024 14:16:06 +0000 (15:16 +0100)
Since commit 3a81c7660f80 ("media: staging: atomisp: Remove IMX sensor
support") the libmsrlisthelper code is no longer used, remove it.

Suggested-by: Dr. David Alan Gilbert <linux@treblig.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://lore.kernel.org/r/20240916091512.81859-1-hdegoede@redhat.com
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/i2c/Kconfig
drivers/staging/media/atomisp/i2c/Makefile
drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c [deleted file]
drivers/staging/media/atomisp/include/linux/libmsrlisthelper.h [deleted file]

index 8710c483015c69a3c4b84777270f06137db2d45d..f5ab23592f29f4f9adb2abd569c577e403177026 100644 (file)
@@ -27,16 +27,6 @@ config VIDEO_ATOMISP_GC2235
 
          It currently only works with the atomisp driver.
 
-config VIDEO_ATOMISP_MSRLIST_HELPER
-       tristate "Helper library to load, parse and apply large register lists."
-       depends on I2C
-       help
-         This is a helper library to be used from a sensor driver to load, parse
-         and apply large register lists.
-
-         To compile this driver as a module, choose M here: the
-         module will be called libmsrlisthelper.
-
 config VIDEO_ATOMISP_MT9M114
        tristate "Aptina mt9m114 sensor support"
        depends on ACPI
index 3073cfa75ecfa9dcdbf4ad5f99012a9cf6a2ac9e..021a7ea0a075d0d979897a15f9a624046cdf6882 100644 (file)
@@ -7,5 +7,3 @@ obj-$(CONFIG_VIDEO_ATOMISP_MT9M114)    += atomisp-mt9m114.o
 obj-$(CONFIG_VIDEO_ATOMISP_GC2235)     += atomisp-gc2235.o
 obj-$(CONFIG_VIDEO_ATOMISP_OV2722)     += atomisp-ov2722.o
 obj-$(CONFIG_VIDEO_ATOMISP_GC0310)     += atomisp-gc0310.o
-
-obj-$(CONFIG_VIDEO_ATOMISP_MSRLIST_HELPER) += atomisp-libmsrlisthelper.o
diff --git a/drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c b/drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c
deleted file mode 100644 (file)
index 3499353..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Copyright (c) 2013 Intel Corporation. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version
- * 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-#include <linux/i2c.h>
-#include <linux/firmware.h>
-#include <linux/device.h>
-#include <linux/export.h>
-#include "../include/linux/libmsrlisthelper.h"
-#include <linux/module.h>
-#include <linux/slab.h>
-
-/* Tagged binary data container structure definitions. */
-struct tbd_header {
-       u32 tag;          /*!< Tag identifier, also checks endianness */
-       u32 size;         /*!< Container size including this header */
-       u32 version;      /*!< Version, format 0xYYMMDDVV */
-       u32 revision;     /*!< Revision, format 0xYYMMDDVV */
-       u32 config_bits;  /*!< Configuration flag bits set */
-       u32 checksum;     /*!< Global checksum, header included */
-} __packed;
-
-struct tbd_record_header {
-       u32 size;        /*!< Size of record including header */
-       u8 format_id;    /*!< tbd_format_t enumeration values used */
-       u8 packing_key;  /*!< Packing method; 0 = no packing */
-       u16 class_id;    /*!< tbd_class_t enumeration values used */
-} __packed;
-
-struct tbd_data_record_header {
-       u16 next_offset;
-       u16 flags;
-       u16 data_offset;
-       u16 data_size;
-} __packed;
-
-#define TBD_CLASS_DRV_ID 2
-
-static int set_msr_configuration(struct i2c_client *client, uint8_t *bufptr,
-                                unsigned int size)
-{
-       /*
-        * The configuration data contains any number of sequences where
-        * the first byte (that is, uint8_t) that marks the number of bytes
-        * in the sequence to follow, is indeed followed by the indicated
-        * number of bytes of actual data to be written to sensor.
-        * By convention, the first two bytes of actual data should be
-        * understood as an address in the sensor address space (hibyte
-        * followed by lobyte) where the remaining data in the sequence
-        * will be written.
-        */
-
-       u8 *ptr = bufptr;
-
-       while (ptr < bufptr + size) {
-               struct i2c_msg msg = {
-                       .addr = client->addr,
-                       .flags = 0,
-               };
-               int ret;
-
-               /* How many bytes */
-               msg.len = *ptr++;
-               /* Where the bytes are located */
-               msg.buf = ptr;
-               ptr += msg.len;
-
-               if (ptr > bufptr + size)
-                       /* Accessing data beyond bounds is not tolerated */
-                       return -EINVAL;
-
-               ret = i2c_transfer(client->adapter, &msg, 1);
-               if (ret < 0) {
-                       dev_err(&client->dev, "i2c write error: %d", ret);
-                       return ret;
-               }
-       }
-       return 0;
-}
-
-static int parse_and_apply(struct i2c_client *client, uint8_t *buffer,
-                          unsigned int size)
-{
-       u8 *endptr8 = buffer + size;
-       struct tbd_data_record_header *header =
-           (struct tbd_data_record_header *)buffer;
-
-       /* There may be any number of datasets present */
-       unsigned int dataset = 0;
-
-       do {
-               /* In below, four variables are read from buffer */
-               if ((uint8_t *)header + sizeof(*header) > endptr8)
-                       return -EINVAL;
-
-               /* All data should be located within given buffer */
-               if ((uint8_t *)header + header->data_offset +
-                   header->data_size > endptr8)
-                       return -EINVAL;
-
-               /* We have a new valid dataset */
-               dataset++;
-               /* See whether there is MSR data */
-               /* If yes, update the reg info */
-               if (header->data_size && (header->flags & 1)) {
-                       int ret;
-
-                       dev_info(&client->dev,
-                                "New MSR data for sensor driver (dataset %02d) size:%d\n",
-                                dataset, header->data_size);
-                       ret = set_msr_configuration(client,
-                                                   buffer + header->data_offset,
-                                                   header->data_size);
-                       if (ret)
-                               return ret;
-               }
-               header = (struct tbd_data_record_header *)(buffer +
-                        header->next_offset);
-       } while (header->next_offset);
-
-       return 0;
-}
-
-int apply_msr_data(struct i2c_client *client, const struct firmware *fw)
-{
-       struct tbd_header *header;
-       struct tbd_record_header *record;
-
-       if (!fw) {
-               dev_warn(&client->dev, "Drv data is not loaded.\n");
-               return -EINVAL;
-       }
-
-       if (sizeof(*header) > fw->size)
-               return -EINVAL;
-
-       header = (struct tbd_header *)fw->data;
-       /* Check that we have drvb block. */
-       if (memcmp(&header->tag, "DRVB", 4))
-               return -EINVAL;
-
-       /* Check the size */
-       if (header->size != fw->size)
-               return -EINVAL;
-
-       if (sizeof(*header) + sizeof(*record) > fw->size)
-               return -EINVAL;
-
-       record = (struct tbd_record_header *)(header + 1);
-       /* Check that class id mathes tbd's drv id. */
-       if (record->class_id != TBD_CLASS_DRV_ID)
-               return -EINVAL;
-
-       /* Size 0 shall not be treated as an error */
-       if (!record->size)
-               return 0;
-
-       return parse_and_apply(client, (uint8_t *)(record + 1), record->size);
-}
-EXPORT_SYMBOL_GPL(apply_msr_data);
-
-int load_msr_list(struct i2c_client *client, char *name,
-                 const struct firmware **fw)
-{
-       int ret = request_firmware(fw, name, &client->dev);
-
-       if (ret) {
-               dev_err(&client->dev,
-                       "Error %d while requesting firmware %s\n",
-                       ret, name);
-               return ret;
-       }
-       dev_info(&client->dev, "Received %lu bytes drv data\n",
-                (unsigned long)(*fw)->size);
-
-       return 0;
-}
-EXPORT_SYMBOL_GPL(load_msr_list);
-
-void release_msr_list(struct i2c_client *client, const struct firmware *fw)
-{
-       release_firmware(fw);
-}
-EXPORT_SYMBOL_GPL(release_msr_list);
-
-static int init_msrlisthelper(void)
-{
-       return 0;
-}
-
-static void exit_msrlisthelper(void)
-{
-}
-
-module_init(init_msrlisthelper);
-module_exit(exit_msrlisthelper);
-
-MODULE_AUTHOR("Jukka Kaartinen <jukka.o.kaartinen@intel.com>");
-MODULE_DESCRIPTION("Helper library to load, parse and apply large register lists");
-MODULE_LICENSE("GPL");
diff --git a/drivers/staging/media/atomisp/include/linux/libmsrlisthelper.h b/drivers/staging/media/atomisp/include/linux/libmsrlisthelper.h
deleted file mode 100644 (file)
index abc8fa8..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (c) 2013 Intel Corporation. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License version
- * 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- *
- */
-#ifndef __LIBMSRLISTHELPER_H__
-#define __LIBMSRLISTHELPER_H__
-
-struct i2c_client;
-struct firmware;
-
-int load_msr_list(struct i2c_client *client, char *path,
-                 const struct firmware **fw);
-int apply_msr_data(struct i2c_client *client, const struct firmware *fw);
-void release_msr_list(struct i2c_client *client,
-                     const struct firmware *fw);
-
-#endif /* ifndef __LIBMSRLISTHELPER_H__ */