|
@@ -387,7 +387,7 @@ static void send_tasklet(unsigned long arg)
|
|
|
* Queues FM Channel-8 packet to FM TX queue and schedules FM TX tasklet for
|
|
|
* transmission
|
|
|
*/
|
|
|
-static u32 fm_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
+static int fm_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
int payload_len, struct completion *wait_completion)
|
|
|
{
|
|
|
struct sk_buff *skb;
|
|
@@ -456,13 +456,13 @@ static u32 fm_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
}
|
|
|
|
|
|
/* Sends FM Channel-8 command to the chip and waits for the response */
|
|
|
-u32 fmc_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
+int fmc_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
unsigned int payload_len, void *response, int *response_len)
|
|
|
{
|
|
|
struct sk_buff *skb;
|
|
|
struct fm_event_msg_hdr *evt_hdr;
|
|
|
unsigned long flags;
|
|
|
- u32 ret;
|
|
|
+ int ret;
|
|
|
|
|
|
init_completion(&fmdev->maintask_comp);
|
|
|
ret = fm_send_cmd(fmdev, fm_op, type, payload, payload_len,
|
|
@@ -470,8 +470,8 @@ u32 fmc_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- ret = wait_for_completion_timeout(&fmdev->maintask_comp, FM_DRV_TX_TIMEOUT);
|
|
|
- if (!ret) {
|
|
|
+ if (!wait_for_completion_timeout(&fmdev->maintask_comp,
|
|
|
+ FM_DRV_TX_TIMEOUT)) {
|
|
|
fmerr("Timeout(%d sec),didn't get reg"
|
|
|
"completion signal from RX tasklet\n",
|
|
|
jiffies_to_msecs(FM_DRV_TX_TIMEOUT) / 1000);
|
|
@@ -508,7 +508,7 @@ u32 fmc_send_cmd(struct fmdev *fmdev, u8 fm_op, u16 type, void *payload,
|
|
|
}
|
|
|
|
|
|
/* --- Helper functions used in FM interrupt handlers ---*/
|
|
|
-static inline u32 check_cmdresp_status(struct fmdev *fmdev,
|
|
|
+static inline int check_cmdresp_status(struct fmdev *fmdev,
|
|
|
struct sk_buff **skb)
|
|
|
{
|
|
|
struct fm_event_msg_hdr *fm_evt_hdr;
|
|
@@ -1058,7 +1058,7 @@ static void fm_irq_handle_intmsk_cmd_resp(struct fmdev *fmdev)
|
|
|
}
|
|
|
|
|
|
/* Returns availability of RDS data in internel buffer */
|
|
|
-u32 fmc_is_rds_data_available(struct fmdev *fmdev, struct file *file,
|
|
|
+int fmc_is_rds_data_available(struct fmdev *fmdev, struct file *file,
|
|
|
struct poll_table_struct *pts)
|
|
|
{
|
|
|
poll_wait(file, &fmdev->rx.rds.read_queue, pts);
|
|
@@ -1069,7 +1069,7 @@ u32 fmc_is_rds_data_available(struct fmdev *fmdev, struct file *file,
|
|
|
}
|
|
|
|
|
|
/* Copies RDS data from internal buffer to user buffer */
|
|
|
-u32 fmc_transfer_rds_from_internal_buff(struct fmdev *fmdev, struct file *file,
|
|
|
+int fmc_transfer_rds_from_internal_buff(struct fmdev *fmdev, struct file *file,
|
|
|
u8 __user *buf, size_t count)
|
|
|
{
|
|
|
u32 block_count;
|
|
@@ -1113,7 +1113,7 @@ u32 fmc_transfer_rds_from_internal_buff(struct fmdev *fmdev, struct file *file,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-u32 fmc_set_freq(struct fmdev *fmdev, u32 freq_to_set)
|
|
|
+int fmc_set_freq(struct fmdev *fmdev, u32 freq_to_set)
|
|
|
{
|
|
|
switch (fmdev->curr_fmmode) {
|
|
|
case FM_MODE_RX:
|
|
@@ -1127,7 +1127,7 @@ u32 fmc_set_freq(struct fmdev *fmdev, u32 freq_to_set)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-u32 fmc_get_freq(struct fmdev *fmdev, u32 *cur_tuned_frq)
|
|
|
+int fmc_get_freq(struct fmdev *fmdev, u32 *cur_tuned_frq)
|
|
|
{
|
|
|
if (fmdev->rx.freq == FM_UNDEFINED_FREQ) {
|
|
|
fmerr("RX frequency is not set\n");
|
|
@@ -1153,7 +1153,7 @@ u32 fmc_get_freq(struct fmdev *fmdev, u32 *cur_tuned_frq)
|
|
|
|
|
|
}
|
|
|
|
|
|
-u32 fmc_set_region(struct fmdev *fmdev, u8 region_to_set)
|
|
|
+int fmc_set_region(struct fmdev *fmdev, u8 region_to_set)
|
|
|
{
|
|
|
switch (fmdev->curr_fmmode) {
|
|
|
case FM_MODE_RX:
|
|
@@ -1167,7 +1167,7 @@ u32 fmc_set_region(struct fmdev *fmdev, u8 region_to_set)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-u32 fmc_set_mute_mode(struct fmdev *fmdev, u8 mute_mode_toset)
|
|
|
+int fmc_set_mute_mode(struct fmdev *fmdev, u8 mute_mode_toset)
|
|
|
{
|
|
|
switch (fmdev->curr_fmmode) {
|
|
|
case FM_MODE_RX:
|
|
@@ -1181,7 +1181,7 @@ u32 fmc_set_mute_mode(struct fmdev *fmdev, u8 mute_mode_toset)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-u32 fmc_set_stereo_mono(struct fmdev *fmdev, u16 mode)
|
|
|
+int fmc_set_stereo_mono(struct fmdev *fmdev, u16 mode)
|
|
|
{
|
|
|
switch (fmdev->curr_fmmode) {
|
|
|
case FM_MODE_RX:
|
|
@@ -1195,7 +1195,7 @@ u32 fmc_set_stereo_mono(struct fmdev *fmdev, u16 mode)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-u32 fmc_set_rds_mode(struct fmdev *fmdev, u8 rds_en_dis)
|
|
|
+int fmc_set_rds_mode(struct fmdev *fmdev, u8 rds_en_dis)
|
|
|
{
|
|
|
switch (fmdev->curr_fmmode) {
|
|
|
case FM_MODE_RX:
|
|
@@ -1210,10 +1210,10 @@ u32 fmc_set_rds_mode(struct fmdev *fmdev, u8 rds_en_dis)
|
|
|
}
|
|
|
|
|
|
/* Sends power off command to the chip */
|
|
|
-static u32 fm_power_down(struct fmdev *fmdev)
|
|
|
+static int fm_power_down(struct fmdev *fmdev)
|
|
|
{
|
|
|
u16 payload;
|
|
|
- u32 ret;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!test_bit(FM_CORE_READY, &fmdev->flag)) {
|
|
|
fmerr("FM core is not ready\n");
|
|
@@ -1234,7 +1234,7 @@ static u32 fm_power_down(struct fmdev *fmdev)
|
|
|
}
|
|
|
|
|
|
/* Reads init command from FM firmware file and loads to the chip */
|
|
|
-static u32 fm_download_firmware(struct fmdev *fmdev, const u8 *fw_name)
|
|
|
+static int fm_download_firmware(struct fmdev *fmdev, const u8 *fw_name)
|
|
|
{
|
|
|
const struct firmware *fw_entry;
|
|
|
struct bts_header *fw_header;
|
|
@@ -1299,7 +1299,7 @@ rel_fw:
|
|
|
}
|
|
|
|
|
|
/* Loads default RX configuration to the chip */
|
|
|
-static u32 load_default_rx_configuration(struct fmdev *fmdev)
|
|
|
+static int load_default_rx_configuration(struct fmdev *fmdev)
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
@@ -1311,7 +1311,7 @@ static u32 load_default_rx_configuration(struct fmdev *fmdev)
|
|
|
}
|
|
|
|
|
|
/* Does FM power on sequence */
|
|
|
-static u32 fm_power_up(struct fmdev *fmdev, u8 mode)
|
|
|
+static int fm_power_up(struct fmdev *fmdev, u8 mode)
|
|
|
{
|
|
|
u16 payload, asic_id, asic_ver;
|
|
|
int resp_len, ret;
|
|
@@ -1374,7 +1374,7 @@ rel:
|
|
|
}
|
|
|
|
|
|
/* Set FM Modes(TX, RX, OFF) */
|
|
|
-u32 fmc_set_mode(struct fmdev *fmdev, u8 fm_mode)
|
|
|
+int fmc_set_mode(struct fmdev *fmdev, u8 fm_mode)
|
|
|
{
|
|
|
int ret = 0;
|
|
|
|
|
@@ -1427,7 +1427,7 @@ u32 fmc_set_mode(struct fmdev *fmdev, u8 fm_mode)
|
|
|
}
|
|
|
|
|
|
/* Returns current FM mode (TX, RX, OFF) */
|
|
|
-u32 fmc_get_mode(struct fmdev *fmdev, u8 *fmmode)
|
|
|
+int fmc_get_mode(struct fmdev *fmdev, u8 *fmmode)
|
|
|
{
|
|
|
if (!test_bit(FM_CORE_READY, &fmdev->flag)) {
|
|
|
fmerr("FM core is not ready\n");
|
|
@@ -1483,10 +1483,10 @@ static void fm_st_reg_comp_cb(void *arg, char data)
|
|
|
* This function will be called from FM V4L2 open function.
|
|
|
* Register with ST driver and initialize driver data.
|
|
|
*/
|
|
|
-u32 fmc_prepare(struct fmdev *fmdev)
|
|
|
+int fmc_prepare(struct fmdev *fmdev)
|
|
|
{
|
|
|
static struct st_proto_s fm_st_proto;
|
|
|
- u32 ret;
|
|
|
+ int ret;
|
|
|
|
|
|
if (test_bit(FM_CORE_READY, &fmdev->flag)) {
|
|
|
fmdbg("FM Core is already up\n");
|
|
@@ -1512,10 +1512,8 @@ u32 fmc_prepare(struct fmdev *fmdev)
|
|
|
fmdev->streg_cbdata = -EINPROGRESS;
|
|
|
fmdbg("%s waiting for ST reg completion signal\n", __func__);
|
|
|
|
|
|
- ret = wait_for_completion_timeout(&wait_for_fmdrv_reg_comp,
|
|
|
- FM_ST_REG_TIMEOUT);
|
|
|
-
|
|
|
- if (!ret) {
|
|
|
+ if (!wait_for_completion_timeout(&wait_for_fmdrv_reg_comp,
|
|
|
+ FM_ST_REG_TIMEOUT)) {
|
|
|
fmerr("Timeout(%d sec), didn't get reg "
|
|
|
"completion signal from ST\n",
|
|
|
jiffies_to_msecs(FM_ST_REG_TIMEOUT) / 1000);
|
|
@@ -1589,10 +1587,10 @@ u32 fmc_prepare(struct fmdev *fmdev)
|
|
|
* This function will be called from FM V4L2 release function.
|
|
|
* Unregister from ST driver.
|
|
|
*/
|
|
|
-u32 fmc_release(struct fmdev *fmdev)
|
|
|
+int fmc_release(struct fmdev *fmdev)
|
|
|
{
|
|
|
static struct st_proto_s fm_st_proto;
|
|
|
- u32 ret;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!test_bit(FM_CORE_READY, &fmdev->flag)) {
|
|
|
fmdbg("FM Core is already down\n");
|
|
@@ -1631,7 +1629,7 @@ u32 fmc_release(struct fmdev *fmdev)
|
|
|
static int __init fm_drv_init(void)
|
|
|
{
|
|
|
struct fmdev *fmdev = NULL;
|
|
|
- u32 ret = -ENOMEM;
|
|
|
+ int ret = -ENOMEM;
|
|
|
|
|
|
fmdbg("FM driver version %s\n", FM_DRV_VERSION);
|
|
|
|