lkml.org 
[lkml]   [2020]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 011/376] media: si2157: Better check for running tuner in init
    Date
    From: Brad Love <brad@nextdimension.cc>

    [ Upstream commit e955f959ac52e145f27ff2be9078b646d0352af0 ]

    Getting the Xtal trim property to check if running is less error prone.
    Reset if_frequency if state is unknown.

    Replaces the previous "garbage check".

    Signed-off-by: Brad Love <brad@nextdimension.cc>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/media/tuners/si2157.c | 15 +++++++--------
    1 file changed, 7 insertions(+), 8 deletions(-)

    diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
    index 898e0f9f8b70..20487b25fbe1 100644
    --- a/drivers/media/tuners/si2157.c
    +++ b/drivers/media/tuners/si2157.c
    @@ -75,24 +75,23 @@ static int si2157_init(struct dvb_frontend *fe)
    struct si2157_cmd cmd;
    const struct firmware *fw;
    const char *fw_name;
    - unsigned int uitmp, chip_id;
    + unsigned int chip_id, xtal_trim;

    dev_dbg(&client->dev, "\n");

    - /* Returned IF frequency is garbage when firmware is not running */
    - memcpy(cmd.args, "\x15\x00\x06\x07", 4);
    + /* Try to get Xtal trim property, to verify tuner still running */
    + memcpy(cmd.args, "\x15\x00\x04\x02", 4);
    cmd.wlen = 4;
    cmd.rlen = 4;
    ret = si2157_cmd_execute(client, &cmd);
    - if (ret)
    - goto err;

    - uitmp = cmd.args[2] << 0 | cmd.args[3] << 8;
    - dev_dbg(&client->dev, "if_frequency kHz=%u\n", uitmp);
    + xtal_trim = cmd.args[2] | (cmd.args[3] << 8);

    - if (uitmp == dev->if_frequency / 1000)
    + if (ret == 0 && xtal_trim < 16)
    goto warm;

    + dev->if_frequency = 0; /* we no longer know current tuner state */
    +
    /* power up */
    if (dev->chiptype == SI2157_CHIPTYPE_SI2146) {
    memcpy(cmd.args, "\xc0\x05\x01\x00\x00\x0b\x00\x00\x01", 9);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-19 17:17    [W:4.261 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site