Re: XC4000: added card_type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em 03-06-2011 09:38, istvan_v@xxxxxxxxxx escreveu:
> This patch adds support for selecting a card type in struct
> xc4000_config, to allow for implementing some card specific code
> in the driver.

Hi Istvan,

Please send your patches to linux-media@xxxxxxxxxxxxxxxx The linux-dvb
ML is obsolete. I didn't remove it from the server just to avoid loosing
the mail history.

With respect to this specific patch, as Devin pointed, the proper way is to
set the configurable data via the boards entries, and not inside xc4000.

So, feel free to send us patches to cx88 and other bridge drivers whose
boards require different configs, in order to work with xc4000.

Thanks,
Mauro

> 
> Signed-off-by: Istvan Varga <istvan_v@xxxxxxxxxx>
> 
> 
> xc4000_card_type.patch
> 
> 
> diff -uNr xc4000_orig/drivers/media/common/tuners/xc4000.c xc4000/drivers/media/common/tuners/xc4000.c
> --- xc4000_orig/drivers/media/common/tuners/xc4000.c	2011-06-03 11:54:19.000000000 +0200
> +++ xc4000/drivers/media/common/tuners/xc4000.c	2011-06-03 14:32:59.000000000 +0200
> @@ -85,6 +85,7 @@
>  	u32	bandwidth;
>  	u8	video_standard;
>  	u8	rf_mode;
> +	u8	card_type;
>  	u8	ignore_i2c_write_errors;
>   /*	struct xc2028_ctrl	ctrl; */
>  	struct firmware_properties cur_fw;
> @@ -1426,6 +1427,16 @@
>  	int	instance;
>  	u16	id = 0;
>  
> +	if (cfg->card_type != XC4000_CARD_GENERIC) {
> +		if (cfg->card_type == XC4000_CARD_WINFAST_CX88) {
> +			cfg->i2c_address = 0x61;
> +			cfg->if_khz = 4560;
> +		} else {			/* default to PCTV 340E */
> +			cfg->i2c_address = 0x61;
> +			cfg->if_khz = 5400;
> +		}
> +	}
> +
>  	dprintk(1, "%s(%d-%04x)\n", __func__,
>  		i2c ? i2c_adapter_id(i2c) : -1,
>  		cfg ? cfg->i2c_address : -1);
> @@ -1435,6 +1446,8 @@
>  	instance = hybrid_tuner_request_state(struct xc4000_priv, priv,
>  					      hybrid_tuner_instance_list,
>  					      i2c, cfg->i2c_address, "xc4000");
> +	if (cfg->card_type != XC4000_CARD_GENERIC)
> +		priv->card_type = cfg->card_type;
>  	switch (instance) {
>  	case 0:
>  		goto fail;
> @@ -1450,7 +1463,7 @@
>  		break;
>  	}
>  
> -	if (priv->if_khz == 0) {
> +	if (cfg->if_khz != 0) {
>  		/* If the IF hasn't been set yet, use the value provided by
>  		   the caller (occurs in hybrid devices where the analog
>  		   call to xc4000_attach occurs before the digital side) */
> diff -uNr xc4000_orig/drivers/media/common/tuners/xc4000.h xc4000/drivers/media/common/tuners/xc4000.h
> --- xc4000_orig/drivers/media/common/tuners/xc4000.h	2011-06-03 11:54:19.000000000 +0200
> +++ xc4000/drivers/media/common/tuners/xc4000.h	2011-06-03 14:29:32.000000000 +0200
> @@ -27,8 +27,13 @@
>  struct dvb_frontend;
>  struct i2c_adapter;
>  
> +#define XC4000_CARD_GENERIC		0
> +#define XC4000_CARD_PCTV_340E		1
> +#define XC4000_CARD_WINFAST_CX88	2
> +
>  struct xc4000_config {
> -	u8	i2c_address;
> +	u8	card_type;	/* if card type is not generic, all other */
> +	u8	i2c_address;	/* parameters are automatically set */
>  	u32	if_khz;
>  };
>  

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux