All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: Ben Hutchings <ben@decadent.org.uk>
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH] V4L/DVB: lgs8gxx: remove firmware for lgs8g75
Date: Mon, 23 Nov 2009 14:07:01 -0200	[thread overview]
Message-ID: <4B0AB325.8020605@infradead.org> (raw)
In-Reply-To: <1257041675.3136.310.camel@localhost>

Ben Hutchings wrote:
> The recently added support for lgs8g75 included some 8051 machine code
> without accompanying source code.  Replace this with use of the
> firmware loader.
> 
> Compile-tested only.
> 
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> ---
> This firmware can be added to linux-firmware.git instead, and I will be
> requesting that very shortly.

Had you submitted a patch for it already? Could you please test the patch before we commit it at the tree?

> 
> Ben.
> 
>  drivers/media/dvb/frontends/Kconfig   |    1 +
>  drivers/media/dvb/frontends/lgs8gxx.c |   50 ++++++--------------------------
>  2 files changed, 11 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig
> index d7c4837..26b00ab 100644
> --- a/drivers/media/dvb/frontends/Kconfig
> +++ b/drivers/media/dvb/frontends/Kconfig
> @@ -553,6 +553,7 @@ config DVB_LGS8GL5
>  config DVB_LGS8GXX
>  	tristate "Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator"
>  	depends on DVB_CORE && I2C
> +	select FW_LOADER
>  	default m if DVB_FE_CUSTOMISE
>  	help
>  	  A DMB-TH tuner module. Say Y when you want to support this frontend.
> diff --git a/drivers/media/dvb/frontends/lgs8gxx.c b/drivers/media/dvb/frontends/lgs8gxx.c
> index eabcadc..1bfcf85 100644
> --- a/drivers/media/dvb/frontends/lgs8gxx.c
> +++ b/drivers/media/dvb/frontends/lgs8gxx.c
> @@ -24,6 +24,7 @@
>   */
>  
>  #include <asm/div64.h>
> +#include <linux/firmware.h>
>  
>  #include "dvb_frontend.h"
>  
> @@ -46,42 +47,6 @@ module_param(fake_signal_str, int, 0644);
>  MODULE_PARM_DESC(fake_signal_str, "fake signal strength for LGS8913."
>  "Signal strength calculation is slow.(default:on).");
>  
> -static const u8 lgs8g75_initdat[] = {
> -	0x01, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
> -	0xE4, 0xF5, 0xA8, 0xF5, 0xB8, 0xF5, 0x88, 0xF5,
> -	0x89, 0xF5, 0x87, 0x75, 0xD0, 0x00, 0x11, 0x50,
> -	0x11, 0x50, 0xF4, 0xF5, 0x80, 0xF5, 0x90, 0xF5,
> -	0xA0, 0xF5, 0xB0, 0x75, 0x81, 0x30, 0x80, 0x01,
> -	0x32, 0x90, 0x80, 0x12, 0x74, 0xFF, 0xF0, 0x90,
> -	0x80, 0x13, 0x74, 0x1F, 0xF0, 0x90, 0x80, 0x23,
> -	0x74, 0x01, 0xF0, 0x90, 0x80, 0x22, 0xF0, 0x90,
> -	0x00, 0x48, 0x74, 0x00, 0xF0, 0x90, 0x80, 0x4D,
> -	0x74, 0x05, 0xF0, 0x90, 0x80, 0x09, 0xE0, 0x60,
> -	0x21, 0x12, 0x00, 0xDD, 0x14, 0x60, 0x1B, 0x12,
> -	0x00, 0xDD, 0x14, 0x60, 0x15, 0x12, 0x00, 0xDD,
> -	0x14, 0x60, 0x0F, 0x12, 0x00, 0xDD, 0x14, 0x60,
> -	0x09, 0x12, 0x00, 0xDD, 0x14, 0x60, 0x03, 0x12,
> -	0x00, 0xDD, 0x90, 0x80, 0x42, 0xE0, 0x60, 0x0B,
> -	0x14, 0x60, 0x0C, 0x14, 0x60, 0x0D, 0x14, 0x60,
> -	0x0E, 0x01, 0xB3, 0x74, 0x04, 0x01, 0xB9, 0x74,
> -	0x05, 0x01, 0xB9, 0x74, 0x07, 0x01, 0xB9, 0x74,
> -	0x0A, 0xC0, 0xE0, 0x74, 0xC8, 0x12, 0x00, 0xE2,
> -	0xD0, 0xE0, 0x14, 0x70, 0xF4, 0x90, 0x80, 0x09,
> -	0xE0, 0x70, 0xAE, 0x12, 0x00, 0xF6, 0x12, 0x00,
> -	0xFE, 0x90, 0x00, 0x48, 0xE0, 0x04, 0xF0, 0x90,
> -	0x80, 0x4E, 0xF0, 0x01, 0x73, 0x90, 0x80, 0x08,
> -	0xF0, 0x22, 0xF8, 0x7A, 0x0C, 0x79, 0xFD, 0x00,
> -	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9,
> -	0xF6, 0xDA, 0xF2, 0xD8, 0xEE, 0x22, 0x90, 0x80,
> -	0x65, 0xE0, 0x54, 0xFD, 0xF0, 0x22, 0x90, 0x80,
> -	0x65, 0xE0, 0x44, 0xC2, 0xF0, 0x22
> -};
> -
>  /* LGS8GXX internal helper functions */
>  
>  static int lgs8gxx_write_reg(struct lgs8gxx_state *priv, u8 reg, u8 data)
> @@ -627,9 +592,14 @@ static int lgs8913_init(struct lgs8gxx_state *priv)
>  
>  static int lgs8g75_init_data(struct lgs8gxx_state *priv)
>  {
> -	const u8 *p = lgs8g75_initdat;
> +	const struct firmware *fw;
> +	int rc;
>  	int i;
>  
> +	rc = request_firmware(&fw, "lgs8g75.fw", &priv->i2c->dev);
> +	if (rc)
> +		return rc;
> +
>  	lgs8gxx_write_reg(priv, 0xC6, 0x40);
>  
>  	lgs8gxx_write_reg(priv, 0x3D, 0x04);
> @@ -640,16 +610,16 @@ static int lgs8g75_init_data(struct lgs8gxx_state *priv)
>  	lgs8gxx_write_reg(priv, 0x3B, 0x00);
>  	lgs8gxx_write_reg(priv, 0x38, 0x00);
>  
> -	for (i = 0; i < sizeof(lgs8g75_initdat); i++) {
> +	for (i = 0; i < fw->size; i++) {
>  		lgs8gxx_write_reg(priv, 0x38, 0x00);
>  		lgs8gxx_write_reg(priv, 0x3A, (u8)(i&0xff));
>  		lgs8gxx_write_reg(priv, 0x3B, (u8)(i>>8));
> -		lgs8gxx_write_reg(priv, 0x3C, *p);
> -		p++;
> +		lgs8gxx_write_reg(priv, 0x3C, fw->data[i]);
>  	}
>  
>  	lgs8gxx_write_reg(priv, 0x38, 0x00);
>  
> +	release_firmware(fw);
>  	return 0;
>  }
>  


  reply	other threads:[~2009-11-23 16:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-01  2:14 [PATCH] V4L/DVB: lgs8gxx: remove firmware for lgs8g75 Ben Hutchings
2009-11-23 16:07 ` Mauro Carvalho Chehab [this message]
2010-02-02 15:40   ` Mauro Carvalho Chehab
2010-02-18  1:11     ` Ben Hutchings

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=4B0AB325.8020605@infradead.org \
    --to=mchehab@infradead.org \
    --cc=ben@decadent.org.uk \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.