From: Benjamin Larsson Date: Sun, 15 Mar 2015 22:57:53 +0000 (-0300) Subject: [media] mn88473: check if firmware is already running before loading it X-Git-Tag: v4.1-rc1~59^2~1^2~128 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=567627bfb2b5837315fe467e52c1bbca634acc00;p=karo-tx-linux.git [media] mn88473: check if firmware is already running before loading it Signed-off-by: Benjamin Larsson Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/staging/media/mn88473/mn88473.c b/drivers/staging/media/mn88473/mn88473.c index 607ce4d3b12f..a23e59e1537e 100644 --- a/drivers/staging/media/mn88473/mn88473.c +++ b/drivers/staging/media/mn88473/mn88473.c @@ -196,8 +196,19 @@ static int mn88473_init(struct dvb_frontend *fe) dev_dbg(&client->dev, "\n"); - if (dev->warm) + /* set cold state by default */ + dev->warm = false; + + /* check if firmware is already running */ + ret = regmap_read(dev->regmap[0], 0xf5, &tmp); + if (ret) + goto err; + + if (!(tmp & 0x1)) { + dev_info(&client->dev, "firmware already running\n"); + dev->warm = true; return 0; + } /* request the firmware, this will block and timeout */ ret = request_firmware(&fw, fw_file, &client->dev);