diff options
Diffstat (limited to 'drivers/media/dvb-frontends/lgdt330x.c')
| -rw-r--r-- | drivers/media/dvb-frontends/lgdt330x.c | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/drivers/media/dvb-frontends/lgdt330x.c b/drivers/media/dvb-frontends/lgdt330x.c index 96807e134886..8c34a5b850bc 100644 --- a/drivers/media/dvb-frontends/lgdt330x.c +++ b/drivers/media/dvb-frontends/lgdt330x.c @@ -1,18 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * Support for LGDT3302 and LGDT3303 - VSB/QAM * * Copyright (C) 2005 Wilson Michaels <wilsonmichaels@earthlink.net> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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. - * */ /* @@ -38,7 +28,7 @@ #include <asm/byteorder.h> #include <media/dvb_frontend.h> -#include <media/dvb_math.h> +#include <linux/int_log.h> #include "lgdt330x_priv.h" #include "lgdt330x.h" @@ -134,7 +124,6 @@ static int i2c_read_demod_bytes(struct lgdt330x_state *state, /* Software reset */ static int lgdt3302_sw_reset(struct lgdt330x_state *state) { - u8 ret; u8 reset[] = { IRQ_MASK, /* @@ -143,6 +132,7 @@ static int lgdt3302_sw_reset(struct lgdt330x_state *state) */ 0x00 }; + int ret; ret = i2c_write_demod_bytes(state, reset, sizeof(reset)); @@ -157,11 +147,11 @@ static int lgdt3302_sw_reset(struct lgdt330x_state *state) static int lgdt3303_sw_reset(struct lgdt330x_state *state) { - u8 ret; u8 reset[] = { 0x02, 0x00 /* bit 0 is active low software reset */ }; + int ret; ret = i2c_write_demod_bytes(state, reset, sizeof(reset)); @@ -783,7 +773,7 @@ static int lgdt3303_read_status(struct dvb_frontend *fe, if ((buf[0] & 0x02) == 0x00) *status |= FE_HAS_SYNC; - if ((buf[0] & 0xfd) == 0x01) + if ((buf[0] & 0x01) == 0x01) *status |= FE_HAS_VITERBI | FE_HAS_LOCK; break; default: @@ -867,8 +857,7 @@ static struct dvb_frontend *lgdt330x_get_dvb_frontend(struct i2c_client *client) static const struct dvb_frontend_ops lgdt3302_ops; static const struct dvb_frontend_ops lgdt3303_ops; -static int lgdt330x_probe(struct i2c_client *client, - const struct i2c_device_id *id) +static int lgdt330x_probe(struct i2c_client *client) { struct lgdt330x_state *state = NULL; u8 buf[1]; @@ -932,13 +921,13 @@ struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *_config, strscpy(board_info.type, "lgdt330x", sizeof(board_info.type)); board_info.addr = demod_address; board_info.platform_data = &config; - client = i2c_new_device(i2c, &board_info); - if (!client || !client->dev.driver) + client = i2c_new_client_device(i2c, &board_info); + if (!i2c_client_has_driver(client)) return NULL; return lgdt330x_get_dvb_frontend(client); } -EXPORT_SYMBOL(lgdt330x_attach); +EXPORT_SYMBOL_GPL(lgdt330x_attach); static const struct dvb_frontend_ops lgdt3302_ops = { .delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B }, @@ -984,19 +973,17 @@ static const struct dvb_frontend_ops lgdt3303_ops = { .release = lgdt330x_release, }; -static int lgdt330x_remove(struct i2c_client *client) +static void lgdt330x_remove(struct i2c_client *client) { struct lgdt330x_state *state = i2c_get_clientdata(client); dev_dbg(&client->dev, "\n"); kfree(state); - - return 0; } static const struct i2c_device_id lgdt330x_id_table[] = { - {"lgdt330x", 0}, + { "lgdt330x" }, {} }; MODULE_DEVICE_TABLE(i2c, lgdt330x_id_table); |
