RE: Sony tuner chip driver questions

Berry, Tom
2016-07-29T10:13:43Z

Hello Tim and Linux-media team.

Thanks for the introduction.
We look forward to working with the Linux Media group.

Just a comment on the SPI interface in this TV tuner.
The device acts as an SPI slave.
The SPI bus is used for both, control interface (internal register read/writes) and also for transfer of the MPEG TS packet data.

Regards
Tom

-----Original Message-----
From: Bird, Timothy
Sent: Friday, July 29, 2016 7:12 AM
To: linux-media@vger.kernel.org
Cc: Shimizu, Kazuhiro; Yamamoto, Masayuki; Yonezawa, Kota; Matsumoto, Toshihiko; Watanabe, Satoshi (SSS); Berry, Tom; Takiguchi, Yasunari; Rowand, Frank; tbird20d@gmail.com
Subject: Sony tuner chip driver questions

Hello Linux-media people... :-)

A group at Sony would like to develop a proper kernel driver for a TV/tuner chip that Sony produces, and we'd like to ask some questions before we get started.

FYI - I'm kicking off the conversation thread, but I'm not a TV or media-driver person, so please excuse anything that sounds strangely worded or is just a really dumb question. I have experts CC:ed who can clarify anything I misstate. :-)

First some background:
The chip is in the same family as other chips for which there are currently some kernel drivers in mainline, produced by 3rd parties (not Sony). The drivers already in the tree are linux/media/dvb-frontend/cxd2820.c, cxd2841er.c, and ascot2e.c.

Currently Sony provides a user-space driver to its customers, but we'd like to switch to an in-kernel driver.

The chip has a tuner and demodulator included.

First, we will be delivering the actual video data over SPI. Currently, we only see examples of doing this over PCI and USB busses. Are there any examples of the appropriate method to transfer video data (or other high-volume data) over SPI? If not, are there any recommendations or tips for going about this?

Second, the current drivers for the cxd2820 and cxd2841 seem to use a lot of hard-coded register values (and don't appear to use device tree). We're not sure if these drivers are the best examples to follow in creating a new dvb driver for Linux. Is there a recommended driver or example that shows the most recent or preferred good structure for such drivers, that we should use in starting ours?

Is DVB is the correct kernel subsystem to use for this driver, or is V4L more appropriate?

If we have multiple files in our driver, should we put them all in the dvb-frontend directory, or should they be sprinkled around in different directories based on function? Or should we create a 'sony' directory somewhere to hold them?

What debugging tools, if any, are available for testing dvb drivers in the kernel?

Do any current tuner drivers support dual-tuner configurations?

Thanks for any assistance or information you can provide to help us get started.
-- Tim Bird
Senior Staff Software Engineer, Sony North America

P.S. We are ramping up the project now, but will likely get to major development effort in a month or two.