diff options
author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-01-18 18:13:02 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-03-04 21:32:17 +0400 |
commit | b48293db4a348e9759c1f8a41a84f2e9f559decf (patch) | |
tree | 650631000f9e33759ba7ad3fe971e7c5c39a557e /drivers/media/dvb-frontends/drx39xyj/drx_driver.h | |
parent | 782ae20df2af894c6840cb2da1221b28dcf3e969 (diff) | |
download | linux-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.h | 51 |
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 |