summaryrefslogtreecommitdiff
path: root/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <m.chehab@samsung.com>2014-01-18 18:13:02 +0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-03-04 21:32:17 +0400
commitb48293db4a348e9759c1f8a41a84f2e9f559decf (patch)
tree650631000f9e33759ba7ad3fe971e7c5c39a557e /drivers/media/dvb-frontends/drx39xyj/drx_driver.h
parent782ae20df2af894c6840cb2da1221b28dcf3e969 (diff)
downloadlinux-b48293db4a348e9759c1f8a41a84f2e9f559decf.tar.xz
[media] drx-j: dynamically load the firmware
Instead of hardcoding the firmware files together with the driver, use request_firmware() way, loading it from userspace. The firmware files are placed at: http://linuxtv.org/downloads/firmware/#8 And they'll be latter submitted to linux-firmware git tree. Acked-by: Devin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/dvb-frontends/drx39xyj/drx_driver.h')
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx_driver.h51
1 files changed, 28 insertions, 23 deletions
diff --git a/drivers/media/dvb-frontends/drx39xyj/drx_driver.h b/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
index f5add1a72dd6..1696e0d95657 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
+++ b/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
@@ -33,6 +33,8 @@
#include <linux/kernel.h>
#include <linux/errno.h>
+#include <linux/firmware.h>
+#include <linux/i2c.h>
/*
* This structure contains the I2C address, the device ID and a user_data pointer.
@@ -1014,13 +1016,14 @@ STRUCTS
/*============================================================================*/
/**
-* \struct struct drxu_code_info * \brief Parameters for microcode upload and verfiy.
-*
-* Used by DRX_CTRL_LOAD_UCODE and DRX_CTRL_VERIFY_UCODE
-*/
+ * struct drxu_code_info Parameters for microcode upload and verfiy.
+ *
+ * @mc_file: microcode file name
+ *
+ * Used by DRX_CTRL_LOAD_UCODE and DRX_CTRL_VERIFY_UCODE
+ */
struct drxu_code_info {
- u8 *mc_data;
- /**< Pointer to microcode image. */
+ char *mc_file;
};
/**
@@ -1929,8 +1932,7 @@ struct drx_reg_dump {
*/
struct drx_common_attr {
/* Microcode (firmware) attributes */
- u8 *microcode; /**< Pointer to microcode image. */
- /**< Size of microcode image in bytes. */
+ char *microcode_file; /**< microcode filename */
bool verify_microcode;
/**< Use microcode verify or not. */
struct drx_mc_version_rec mcversion;
@@ -2029,21 +2031,24 @@ struct drx_demod_instance;
/**
* \struct struct drx_demod_instance * \brief Top structure of demodulator instance.
*/
- struct drx_demod_instance {
- /* type specific demodulator data */
- struct drx_demod_func *my_demod_funct;
- /**< demodulator functions */
- struct drx_access_func *my_access_funct;
- /**< data access protocol functions */
- struct tuner_instance *my_tuner;
- /**< tuner instance,if NULL then baseband */
- struct i2c_device_addr *my_i2c_dev_addr;
- /**< i2c address and device identifier */
- struct drx_common_attr *my_common_attr;
- /**< common DRX attributes */
- void *my_ext_attr; /**< device specific attributes */
- /* generic demodulator data */
- };
+struct drx_demod_instance {
+ /* type specific demodulator data */
+ struct drx_demod_func *my_demod_funct;
+ /**< demodulator functions */
+ struct drx_access_func *my_access_funct;
+ /**< data access protocol functions */
+ struct tuner_instance *my_tuner;
+ /**< tuner instance,if NULL then baseband */
+ struct i2c_device_addr *my_i2c_dev_addr;
+ /**< i2c address and device identifier */
+ struct drx_common_attr *my_common_attr;
+ /**< common DRX attributes */
+ void *my_ext_attr; /**< device specific attributes */
+ /* generic demodulator data */
+
+ struct i2c_adapter *i2c;
+ const struct firmware *firmware;
+};
/*-------------------------------------------------------------------------
MACROS