[media] drx-j: Some cleanups at drx_driver.c source

This is mostly CodingStyle fixes and improvements.

No functional changes.

Acked-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
Mauro Carvalho Chehab 2014-01-22 10:21:55 -03:00
parent 96b43136b8
commit 1e76a99963
2 changed files with 117 additions and 152 deletions

View File

@ -31,7 +31,7 @@ struct drx39xxj_state {
struct drx_demod_instance *demod;
enum drx_standard current_standard;
struct dvb_frontend frontend;
int powered_up:1;
unsigned int powered_up:1;
unsigned int i2c_gate_open:1;
const struct firmware *fw;
};

View File

@ -32,70 +32,42 @@
#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__
/*------------------------------------------------------------------------------
INCLUDE FILES
------------------------------------------------------------------------------*/
#include "drx_driver.h"
#define VERSION_FIXED 0
#if VERSION_FIXED
#define VERSION_MAJOR 0
#define VERSION_MINOR 0
#define VERSION_PATCH 0
#else
#include "drx_driver_version.h"
#endif
/*------------------------------------------------------------------------------
DEFINES
------------------------------------------------------------------------------*/
/*
* DEFINES
*/
/*============================================================================*/
/*=== MICROCODE RELATED DEFINES ==============================================*/
/*============================================================================*/
/*
/* MICROCODE RELATED DEFINES
*/
/** \brief Magic word for checking correct Endianess of microcode data. */
#ifndef DRX_UCODE_MAGIC_WORD
/* Magic word for checking correct Endianess of microcode data */
#define DRX_UCODE_MAGIC_WORD ((((u16)'H')<<8)+((u16)'L'))
#endif
/** \brief CRC flag in ucode header, flags field. */
#ifndef DRX_UCODE_CRC_FLAG
/* CRC flag in ucode header, flags field. */
#define DRX_UCODE_CRC_FLAG (0x0001)
#endif
/** \brief Compression flag in ucode header, flags field. */
#ifndef DRX_UCODE_COMPRESSION_FLAG
#define DRX_UCODE_COMPRESSION_FLAG (0x0002)
#endif
/** \brief Maximum size of buffer used to verify the microcode.
Must be an even number. */
#ifndef DRX_UCODE_MAX_BUF_SIZE
/*
* Maximum size of buffer used to verify the microcode.
* Must be an even number
*/
#define DRX_UCODE_MAX_BUF_SIZE (DRXDAP_MAX_RCHUNKSIZE)
#endif
#if DRX_UCODE_MAX_BUF_SIZE & 1
#error DRX_UCODE_MAX_BUF_SIZE must be an even number
#endif
/*============================================================================*/
/*=== CHANNEL SCAN RELATED DEFINES ===========================================*/
/*============================================================================*/
/**
* \brief Maximum progress indication.
*
* Progress indication will run from 0 upto DRX_SCAN_MAX_PROGRESS during scan.
*
*/
#ifndef DRX_SCAN_MAX_PROGRESS
#define DRX_SCAN_MAX_PROGRESS 1000
#endif
/*============================================================================*/
/*=== MACROS =================================================================*/
/*============================================================================*/
/*
* Power mode macros
*/
#define DRX_ISPOWERDOWNMODE(mode) ((mode == DRX_POWER_MODE_9) || \
(mode == DRX_POWER_MODE_10) || \
@ -107,42 +79,41 @@ DEFINES
(mode == DRX_POWER_MODE_16) || \
(mode == DRX_POWER_DOWN))
/*------------------------------------------------------------------------------
GLOBAL VARIABLES
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
STRUCTURES
------------------------------------------------------------------------------*/
/** \brief Structure of the microcode block headers */
/**
* struct drxu_code_block_hdr - Structure of the microcode block headers
*
* @addr: Destination address of the data in this block
* @size: Size of the block data following this header counted in
* 16 bits words
* @CRC: CRC value of the data block, only valid if CRC flag is
* set.
*/
struct drxu_code_block_hdr {
u32 addr;
/**< Destination address of the data in this block */
u16 size;
/**< Size of the block data following this header counted in
16 bits words */
u16 flags;
/**< Flags for this data block:
- bit[0]= CRC on/off
- bit[1]= compression on/off
- bit[15..2]=reserved */
u16 CRC;/**< CRC value of the data block, only valid if CRC flag is
set. */};
u16 CRC;
};
/*------------------------------------------------------------------------------
FUNCTIONS
------------------------------------------------------------------------------*/
/*============================================================================*/
/*===Microcode related functions==============================================*/
/*============================================================================*/
/*
* Microcode related functions
*/
/**
* \brief Compute CRC of block of microcode data.
* \param block_data: Pointer to microcode data.
* \param nr_words: Size of microcode block (number of 16 bits words).
* \return u16 The computed CRC residu.
*/
* u_code_compute_crc - Compute CRC of block of microcode data.
* @block_data: Pointer to microcode data.
* @nr_words: Size of microcode block (number of 16 bits words).
*
* returns The computed CRC residue.
*/
static u16 u_code_compute_crc(u8 *block_data, u16 nr_words)
{
u16 i = 0;
@ -151,7 +122,7 @@ static u16 u_code_compute_crc(u8 *block_data, u16 nr_words)
u32 carry = 0;
while (i < nr_words) {
crc_word |= (u32) be16_to_cpu(*(u32 *)(block_data));
crc_word |= (u32)be16_to_cpu(*(u32 *)(block_data));
for (j = 0; j < 16; j++) {
crc_word <<= 1;
if (carry != 0)
@ -164,9 +135,13 @@ static u16 u_code_compute_crc(u8 *block_data, u16 nr_words)
return (u16)(crc_word >> 16);
}
/*============================================================================*/
/**
* check_firmware - checks if the loaded firmware is valid
*
* @demod: demod structure
* @mc_data: pointer to the start of the firmware
* @size: firmware size
*/
static int check_firmware(struct drx_demod_instance *demod, u8 *mc_data,
unsigned size)
{
@ -247,26 +222,27 @@ eof:
}
/**
* \brief Handle microcode upload or verify.
* \param dev_addr: Address of device.
* \param mc_info: Pointer to information about microcode data.
* \param action: Either UCODE_UPLOAD or UCODE_VERIFY
* \return int.
* \retval 0:
* - In case of UCODE_UPLOAD: code is successfully uploaded.
* - In case of UCODE_VERIFY: image on device is equal to
* image provided to this control function.
* \retval -EIO:
* - In case of UCODE_UPLOAD: I2C error.
* - In case of UCODE_VERIFY: I2C error or image on device
* is not equal to image provided to this control function.
* \retval -EINVAL:
* - Invalid arguments.
* - Provided image is corrupt
*/
static int
ctrl_u_code(struct drx_demod_instance *demod,
struct drxu_code_info *mc_info, enum drxu_code_action action)
* ctrl_u_code - Handle microcode upload or verify.
* @dev_addr: Address of device.
* @mc_info: Pointer to information about microcode data.
* @action: Either UCODE_UPLOAD or UCODE_VERIFY
*
* This function returns:
* 0:
* - In case of UCODE_UPLOAD: code is successfully uploaded.
* - In case of UCODE_VERIFY: image on device is equal to
* image provided to this control function.
* -EIO:
* - In case of UCODE_UPLOAD: I2C error.
* - In case of UCODE_VERIFY: I2C error or image on device
* is not equal to image provided to this control function.
* -EINVAL:
* - Invalid arguments.
* - Provided image is corrupt
*/
static int ctrl_u_code(struct drx_demod_instance *demod,
struct drxu_code_info *mc_info,
enum drxu_code_action action)
{
struct i2c_device_addr *dev_addr = demod->my_i2c_dev_addr;
int rc;
@ -448,15 +424,16 @@ release:
/*============================================================================*/
/**
* \brief Build list of version information.
* \param demod: A pointer to a demodulator instance.
* \param version_list: Pointer to linked list of versions.
* \return int.
* \retval 0: Version information stored in version_list
* \retval -EINVAL: Invalid arguments.
*/
static int
ctrl_version(struct drx_demod_instance *demod, struct drx_version_list **version_list)
* ctrl_version - Build list of version information.
* @demod: A pointer to a demodulator instance.
* @version_list: Pointer to linked list of versions.
*
* This function returns:
* 0: Version information stored in version_list
* -EINVAL: Invalid arguments.
*/
static int ctrl_version(struct drx_demod_instance *demod,
struct drx_version_list **version_list)
{
static char drx_driver_core_module_name[] = "Core driver";
static char drx_driver_core_version_text[] =
@ -465,7 +442,7 @@ ctrl_version(struct drx_demod_instance *demod, struct drx_version_list **version
static struct drx_version drx_driver_core_version;
static struct drx_version_list drx_driver_core_version_list;
struct drx_version_list *demod_version_list = (struct drx_version_list *) (NULL);
struct drx_version_list *demod_version_list = NULL;
int return_status = -EIO;
/* Check arguments */
@ -507,22 +484,21 @@ ctrl_version(struct drx_demod_instance *demod, struct drx_version_list **version
return 0;
}
/*============================================================================*/
/*============================================================================*/
/*== Exported functions ======================================================*/
/*============================================================================*/
/*============================================================================*/
/*
* Exported functions
*/
/**
* \brief Open a demodulator instance.
* \param demod: A pointer to a demodulator instance.
* \return int Return status.
* \retval 0: Opened demod instance with succes.
* \retval -EIO: Driver not initialized or unable to initialize
* demod.
* \retval -EINVAL: Demod instance has invalid content.
*
*/
* drx_open - Open a demodulator instance.
* @demod: A pointer to a demodulator instance.
*
* This function returns:
* 0: Opened demod instance with succes.
* -EIO: Driver not initialized or unable to initialize
* demod.
* -EINVAL: Demod instance has invalid content.
*
*/
int drx_open(struct drx_demod_instance *demod)
{
@ -548,18 +524,18 @@ int drx_open(struct drx_demod_instance *demod)
/*============================================================================*/
/**
* \brief Close device.
* \param demod: A pointer to a demodulator instance.
* \return int Return status.
* \retval 0: Closed demod instance with succes.
* \retval -EIO: Driver not initialized or error during close
* demod.
* \retval -EINVAL: Demod instance has invalid content.
*
* Free resources occupied by device instance.
* Put device into sleep mode.
*/
* drx_close - Close device
* @demod: A pointer to a demodulator instance.
*
* Free resources occupied by device instance.
* Put device into sleep mode.
*
* This function returns:
* 0: Closed demod instance with succes.
* -EIO: Driver not initialized or error during close
* demod.
* -EINVAL: Demod instance has invalid content.
*/
int drx_close(struct drx_demod_instance *demod)
{
int status = 0;
@ -579,29 +555,22 @@ int drx_close(struct drx_demod_instance *demod)
return status;
}
/*============================================================================*/
/**
* \brief Control the device.
* \param demod: A pointer to a demodulator instance.
* \param ctrl: Reference to desired control function.
* \param ctrl_data: Pointer to data structure for control function.
* \return int Return status.
* \retval 0: Control function completed successfully.
* \retval -EIO: Driver not initialized or error during
* control demod.
* \retval -EINVAL: Demod instance or ctrl_data has invalid
* content.
* \retval -ENOTSUPP: Specified control function is not
* available.
*
* Data needed or returned by the control function is stored in ctrl_data.
*
*/
* drx_ctrl - Control the device.
* @demod: A pointer to a demodulator instance.
* @ctrl: Reference to desired control function.
* @ctrl_data: Pointer to data structure for control function.
*
* Data needed or returned by the control function is stored in ctrl_data.
*
* This function returns:
* 0: Control function completed successfully.
* -EIO: Driver not initialized or error during control demod.
* -EINVAL: Demod instance or ctrl_data has invalid content.
* -ENOTSUPP: Specified control function is not available.
*/
int
drx_ctrl(struct drx_demod_instance *demod, u32 ctrl, void *ctrl_data)
int drx_ctrl(struct drx_demod_instance *demod, u32 ctrl, void *ctrl_data)
{
int status = -EIO;
@ -680,7 +649,3 @@ drx_ctrl(struct drx_demod_instance *demod, u32 ctrl, void *ctrl_data)
return 0;
}
/*============================================================================*/
/* END OF FILE */