From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Antti Palosaari <crope@iki.fi>
Cc: linux-media@vger.kernel.org, Hans Verkuil <hverkuil@xs4all.nl>
Subject: Re: [PATCH RFC v3] dvb: LNA implementation changes
Date: Sun, 7 Oct 2012 10:27:30 -0300 [thread overview]
Message-ID: <20121007102730.5d61657a@redhat.com> (raw)
In-Reply-To: <1349252936-2728-1-git-send-email-crope@iki.fi>
Em Wed, 3 Oct 2012 11:28:56 +0300
Antti Palosaari <crope@iki.fi> escreveu:
> * use dvb property cache
> * implement get (thus API minor++)
> * PCTV 290e: 1=LNA ON, all the other values LNA OFF
> Also fix PCTV 290e LNA comment, it is disabled by default
>
> Hans and Mauro proposed use of cache implementation of get as they
> were planning to extend LNA usage for analog side too.
Looks sane for me. I'll apply it, as Hans also acked.
Regards,
Mauro
>
> Reported-by: Hans Verkuil <hverkuil@xs4all.nl>
> Reported-by: Mauro Carvalho Chehab <mchehab@redhat.com>
> Signed-off-by: Antti Palosaari <crope@iki.fi>
> Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
> ---
> drivers/media/dvb-core/dvb_frontend.c | 18 ++++++++++++++----
> drivers/media/dvb-core/dvb_frontend.h | 4 +++-
> drivers/media/usb/em28xx/em28xx-dvb.c | 13 +++++++------
> include/linux/dvb/version.h | 2 +-
> 4 files changed, 25 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
> index 8f58f24..246a3c5 100644
> --- a/drivers/media/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb-core/dvb_frontend.c
> @@ -966,6 +966,8 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe)
> break;
> }
>
> + c->lna = LNA_AUTO;
> +
> return 0;
> }
>
> @@ -1054,6 +1056,8 @@ static struct dtv_cmds_h dtv_cmds[DTV_MAX_COMMAND + 1] = {
> _DTV_CMD(DTV_ATSCMH_SCCC_CODE_MODE_B, 0, 0),
> _DTV_CMD(DTV_ATSCMH_SCCC_CODE_MODE_C, 0, 0),
> _DTV_CMD(DTV_ATSCMH_SCCC_CODE_MODE_D, 0, 0),
> +
> + _DTV_CMD(DTV_LNA, 0, 0),
> };
>
> static void dtv_property_dump(struct dvb_frontend *fe, struct dtv_property *tvp)
> @@ -1440,6 +1444,10 @@ static int dtv_property_process_get(struct dvb_frontend *fe,
> tvp->u.data = fe->dtv_property_cache.atscmh_sccc_code_mode_d;
> break;
>
> + case DTV_LNA:
> + tvp->u.data = c->lna;
> + break;
> +
> default:
> return -EINVAL;
> }
> @@ -1731,10 +1739,6 @@ static int dtv_property_process_set(struct dvb_frontend *fe,
> case DTV_INTERLEAVING:
> c->interleaving = tvp->u.data;
> break;
> - case DTV_LNA:
> - if (fe->ops.set_lna)
> - r = fe->ops.set_lna(fe, tvp->u.data);
> - break;
>
> /* ISDB-T Support here */
> case DTV_ISDBT_PARTIAL_RECEPTION:
> @@ -1806,6 +1810,12 @@ static int dtv_property_process_set(struct dvb_frontend *fe,
> fe->dtv_property_cache.atscmh_rs_frame_ensemble = tvp->u.data;
> break;
>
> + case DTV_LNA:
> + c->lna = tvp->u.data;
> + if (fe->ops.set_lna)
> + r = fe->ops.set_lna(fe);
> + break;
> +
> default:
> return -EINVAL;
> }
> diff --git a/drivers/media/dvb-core/dvb_frontend.h b/drivers/media/dvb-core/dvb_frontend.h
> index 44a445c..97112cd 100644
> --- a/drivers/media/dvb-core/dvb_frontend.h
> +++ b/drivers/media/dvb-core/dvb_frontend.h
> @@ -303,7 +303,7 @@ struct dvb_frontend_ops {
> int (*dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned long cmd);
> int (*i2c_gate_ctrl)(struct dvb_frontend* fe, int enable);
> int (*ts_bus_ctrl)(struct dvb_frontend* fe, int acquire);
> - int (*set_lna)(struct dvb_frontend *, int);
> + int (*set_lna)(struct dvb_frontend *);
>
> /* These callbacks are for devices that implement their own
> * tuning algorithms, rather than a simple swzigzag
> @@ -391,6 +391,8 @@ struct dtv_frontend_properties {
> u8 atscmh_sccc_code_mode_b;
> u8 atscmh_sccc_code_mode_c;
> u8 atscmh_sccc_code_mode_d;
> +
> + u32 lna;
> };
>
> struct dvb_frontend {
> diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
> index 913e522..13ae821 100644
> --- a/drivers/media/usb/em28xx/em28xx-dvb.c
> +++ b/drivers/media/usb/em28xx/em28xx-dvb.c
> @@ -574,18 +574,19 @@ static void pctv_520e_init(struct em28xx *dev)
> i2c_master_send(&dev->i2c_client, regs[i].r, regs[i].len);
> };
>
> -static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe, int val)
> +static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe)
> {
> + struct dtv_frontend_properties *c = &fe->dtv_property_cache;
> struct em28xx *dev = fe->dvb->priv;
> #ifdef CONFIG_GPIOLIB
> struct em28xx_dvb *dvb = dev->dvb;
> int ret;
> unsigned long flags;
>
> - if (val)
> - flags = GPIOF_OUT_INIT_LOW;
> + if (c->lna == 1)
> + flags = GPIOF_OUT_INIT_HIGH; /* enable LNA */
> else
> - flags = GPIOF_OUT_INIT_HIGH;
> + flags = GPIOF_OUT_INIT_LOW; /* disable LNA */
>
> ret = gpio_request_one(dvb->lna_gpio, flags, NULL);
> if (ret)
> @@ -595,8 +596,8 @@ static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe, int val)
>
> return ret;
> #else
> - dev_warn(&dev->udev->dev, "%s: LNA control is disabled\n",
> - KBUILD_MODNAME);
> + dev_warn(&dev->udev->dev, "%s: LNA control is disabled (lna=%u)\n",
> + KBUILD_MODNAME, c->lna);
> return 0;
> #endif
> }
> diff --git a/include/linux/dvb/version.h b/include/linux/dvb/version.h
> index 20e5eac..827cce7 100644
> --- a/include/linux/dvb/version.h
> +++ b/include/linux/dvb/version.h
> @@ -24,6 +24,6 @@
> #define _DVBVERSION_H_
>
> #define DVB_API_VERSION 5
> -#define DVB_API_VERSION_MINOR 8
> +#define DVB_API_VERSION_MINOR 9
>
> #endif /*_DVBVERSION_H_*/
--
Regards,
Mauro
next prev parent reply other threads:[~2012-10-07 13:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-03 8:28 [PATCH RFC v3] dvb: LNA implementation changes Antti Palosaari
2012-10-07 13:27 ` Mauro Carvalho Chehab [this message]
2012-10-07 13:31 ` Mauro Carvalho Chehab
2012-10-08 7:17 ` Antti Palosaari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121007102730.5d61657a@redhat.com \
--to=mchehab@redhat.com \
--cc=crope@iki.fi \
--cc=hverkuil@xs4all.nl \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).