linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maciej Szmigiero <mhej@o2.pl>
To: Andy Walls <awalls@md.metrocast.net>
Cc: Michael Krufky <mkrufky@linuxtv.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	Antti Palosaari <crope@iki.fi>,
	Malcolm Priestley <tvboxspy@gmail.com>,
	Patrick Boettcher <pboettcher@kernellabs.com>,
	Martin Wilks <m.wilks@technisat.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Arnaud Lacombe <lacombar@gmail.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Sven Barth <pascaldragon@googlemail.com>,
	Lucas De Marchi <lucas.demarchi@profusion.mobi>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH]Medion 95700 analog video support
Date: Mon, 26 Sep 2011 23:37:04 +0200	[thread overview]
Message-ID: <4E80F080.7030500@o2.pl> (raw)
In-Reply-To: <1316895712.12899.84.camel@palomino.walls.org>

W dniu 24.09.2011 22:21, Andy Walls pisze:
> Hi Maciej,
> 
> I'll try and comment on the specific areas below, but overall the
> problem is this:
> 
> 1. The default setup and behavior of the cx25840 module was written
> around hardware designs supported by the ivtv driver: i.e. interfacing
> to a CX23416 MPEG encoder.
> 
> 2. The ivtv and pvrusb2 drivers rely on that default setup and behavior
> of the cx25840 module.
> 
> 3. The PVR-150 and PVR-500 are very popular cards supported by ivtv that
> use a CX25843 and CX23416.  Many MythTV users still have these cards in
> service.
> 
> 4. The ivtv driver also supports other hardware designs that use
> different encoders, so trying fix ivtv to match new changes in the
> cx25840 will ripples along to other analog video decoder drivers.  This
> would result in a lot of time to perform regression testing with as many
> different ivtv supported capture cards as possible. 
> 
> 
> What I recommend is that you rework your changes so that the cx25840
> module is provided information by the bridge driver as to the board
> model, and then have the cx25840 module behave appropriately based on
> the board information passed in by the bridge driver.
> 
> 1. Add whatever data fields you think you need to the "struct
> cx25840_platform_data" structure in include/media/cx25840.h.  Maybe
> something as simple as "bool is_medion95700"
> 
> 2. In cxusb-analog.c you instantiate the cx25840 sub-device with
> v4l2_i2c_new_subdev_board() with the cx25840 platform data filled in as
> needed for the Medion 95700.  Look at
> drivers/media/video/ivtv/ivtv-i2c.c:ivtv_i2c_register() for an example
> of how this is done for the cx25840 module.
> 
> 3. Modify the cx25840 module to behave as you need it if the platform
> data indicates a Medion 95700; otherwise, leave the default cx25840
> setup and behavior.
> 

Hi Andy,

Thanks for you detailed explanation, I did not know that ivtv boards are that
quirky with regard to VBI capture.
I will do as you wrote above, make my changes to cx25840 driver conditional, 
so ivtv won't be affected.

> Any specific comments I have are in-line below:
> 
>> @@ -18,6 +18,9 @@
>>   * CX2388[578] IRQ handling, IO Pin mux configuration and other small fixes are
>>   * Copyright (C) 2010 Andy Walls <awalls@md.metrocast.net>
>>   *
>> + * CX2384x pin to pad mapping and output format configuration support are
>       ^^^^^^^
> CX2584x?
>>  	if ((fmt->width * 16 < Hsrc) || (Hsrc < fmt->width) ||
>>  			(Vlines * 8 < Vsrc) || (Vsrc < Vlines)) {
>> @@ -1403,6 +1695,112 @@ static void log_audio_status(struct i2c_client *client)
>>  	}
>>  }
>>  
>> +#define CX25480_VCONFIG_OPTION(option_mask) \
>            ^^^^^^
> CX25840?
> 
>> +	if (config_in & option_mask) { \
>> +		state->vid_config &= ~(option_mask); \
>> +		state->vid_config |= config_in & option_mask; \
>> +	} \
>> +
>> +#define CX25480_VCONFIG_SET_BIT(optionmask, reg, bit, oneval) \
>            ^^^^^^
> CX25840?
> 

You mean here that it should be named consistently either as CX2584x or CX25840?

>>  	return set_input(client, input, state->aud_input);
>>  }
>>  
>> @@ -1877,7 +2278,7 @@ static int cx25840_probe(struct i2c_client *client,
>>  	u16 device_id;
>>  
>>  	/* Check if the adapter supports the needed features */
>> -	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
>> +	if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
>>  		return -EIO;
> 
> On the surface, this change doesn't appear to adversely affect the ivtv,
> pvrusb2, cx23885, and cx231xx bridge drivers.  
> 
> I would need to take a hard look at the CX2584[0123], CX2583[67],
> CX2388[578], and CX2310[12] datasheets to see why, and if, all the Mako
> core variants require I2C_FUNC_SMBUS_BYTE_DATA.
> 
> However, if the cxusb bridge has a full I2C master, shouldn't the cxusb
> driver be specifying (I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL) as its
> functionality?  See Documentation/i2c/functionality.

Adding I2C_FUNC_SMBUS_EMUL flag to cxusb i2c host seems to be a right thing to do for now,
but I would be very surprised if any of Conexant video decoders actually used SMBus instead
of plain I2C.

Best regards,
Maciej Szmigiero



  reply	other threads:[~2011-09-26 21:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-04 18:51 [PATCH]Medion 95700 analog video support Maciej Szmigiero
2011-09-04 19:05 ` Arnaud Lacombe
2011-09-04 19:10   ` Maciej Szmigiero
2011-09-04 19:46 ` Michael Krufky
2011-09-04 21:01   ` Maciej Szmigiero
2011-09-23 19:32   ` Mauro Carvalho Chehab
2011-09-23 19:39     ` Michael Krufky
2011-09-23 21:06       ` Andy Walls
2011-09-23 21:15         ` Maciej Szmigiero
2011-09-24 20:21           ` Andy Walls
2011-09-26 21:37             ` Maciej Szmigiero [this message]
2011-09-26 23:53               ` Andy Walls
2011-10-02 19:12                 ` Maciej Szmigiero
2012-08-13 23:35                   ` Mauro Carvalho Chehab
2012-08-15 10:56                     ` Maciej S. Szmigiero

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=4E80F080.7030500@o2.pl \
    --to=mhej@o2.pl \
    --cc=awalls@md.metrocast.net \
    --cc=crope@iki.fi \
    --cc=hverkuil@xs4all.nl \
    --cc=lacombar@gmail.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=lucas.demarchi@profusion.mobi \
    --cc=m.wilks@technisat.com \
    --cc=mchehab@infradead.org \
    --cc=mkrufky@linuxtv.org \
    --cc=pascaldragon@googlemail.com \
    --cc=pboettcher@kernellabs.com \
    --cc=tvboxspy@gmail.com \
    /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).