Received: by 2002:ac0:a591:0:0:0:0:0 with SMTP id m17-v6csp240959imm; Wed, 4 Jul 2018 22:44:53 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeNrQHO3YVfeNr4eT7qyj6ja5G1blFeSyLjQ4gGOJHLELER055MdDf7+XThnkqjTSyTEYVe X-Received: by 2002:a17:902:654b:: with SMTP id d11-v6mr4717314pln.8.1530769493490; Wed, 04 Jul 2018 22:44:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530769493; cv=none; d=google.com; s=arc-20160816; b=UT6RUNt8hk4rmPNQagJ60UC+CmIzXAy05dbD/K01KHw2id4mYVpfxQ9Dvr8xcx/j2V hIBhABNQwzDVL0747Q9fn9DAGlbVanWzGBZW0abaEYC7j0z/XMvQDGQjxgjFP9Un041q aRlWLFIjz5SVvip2ccKHVJZuBZEZJ5UhgVt2HKaWZazlhSbYA0r8sz5TdN/rbH2GJ3gM qGr62Xobe524xBMlZlo4Lw2J4YJoD7ueb4aq6dnnF/J3KT0adTIAZ2R/x6SNaSRugRb+ Ic8PoXZYZ6DccZzJ65+kiLnEwxqJj7OnmRNDz8h+AusB2p5UvlI11akydGtmmNd2hxZP 4m0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language:thread-index :content-transfer-encoding:mime-version:message-id:date:subject :in-reply-to:references:cc:to:from:arc-authentication-results; bh=7w5ygNy6Pb2T8gFZvj9/OcFbLCGar0gZerT9yuRwHI8=; b=ZMA6seM1GJPfX/7blqZ7Rb+f28/OiN5Kx/8qQKQXS4r4d67GJx5CKBRJ0N+Q9Rf+B2 Kovku4e/HxWbGfr/X3fZeppKgxhYU0CvlilU5/OA/hkME0gZjQ4UEE30i2G17tBA+Qof bmcGb21oOC5zFwNjSPAb9I6MYqRIdd6ejSrBSKvccsUcIosQJy0n68QOk6ja5ulA7z/t ayLyqsL2ojhzES17bQQDaKU7f73O3iShlk81V+gimnZZz/s79+PBGanF1Jc3v0Dn+nET +Ns7NNvpCSo0slnnJRJOPLh2/6UUseRmK9wDDiGYjJ0j6D5rJr8zVkpbaW7OE+HKbGw7 1AEQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d2-v6si4552447pgv.562.2018.07.04.22.44.38; Wed, 04 Jul 2018 22:44:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752912AbeGEFn4 convert rfc822-to-8bit (ORCPT + 99 others); Thu, 5 Jul 2018 01:43:56 -0400 Received: from mx.socionext.com ([202.248.49.38]:57432 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750904AbeGEFny (ORCPT ); Thu, 5 Jul 2018 01:43:54 -0400 Received: from unknown (HELO kinkan-ex.css.socionext.com) ([172.31.9.52]) by mx.socionext.com with ESMTP; 05 Jul 2018 14:43:53 +0900 Received: from mail.mfilter.local (m-filter-2 [10.213.24.62]) by kinkan-ex.css.socionext.com (Postfix) with ESMTP id 5205C180B52; Thu, 5 Jul 2018 14:43:53 +0900 (JST) Received: from 172.31.9.53 (172.31.9.53) by m-FILTER with ESMTP; Thu, 5 Jul 2018 14:43:53 +0900 Received: from yuzu.css.socionext.com (yuzu [172.31.8.45]) by iyokan.css.socionext.com (Postfix) with ESMTP id 16DF140330; Thu, 5 Jul 2018 14:43:53 +0900 (JST) Received: from DESKTOPFLNNJ4T (unknown [10.213.132.95]) by yuzu.css.socionext.com (Postfix) with ESMTP id E367E120A81; Thu, 5 Jul 2018 14:43:52 +0900 (JST) From: "Katsuhiro Suzuki" To: "'Mauro Carvalho Chehab'" , =?utf-8?B?U3V6dWtpLCBLYXRzdWhpcm8v6Yi05pyoIOWLneWNmg==?= Cc: , "Masami Hiramatsu" , "Jassi Brar" , , References: <20180621031748.21703-1-suzuki.katsuhiro@socionext.com> <20180704135657.3fd607cb@coco.lan> <000401d41403$b33db490$19b91db0$@socionext.com> <20180704234244.32d20f6b@coco.lan> In-Reply-To: <20180704234244.32d20f6b@coco.lan> Subject: Re: [PATCH v3] media: dvb-frontends: add Socionext SC1501A ISDB-S/T demodulator driver Date: Thu, 5 Jul 2018 14:43:49 +0900 Message-ID: <000501d41423$265013a0$72f03ae0$@socionext.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8BIT X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQHUCQ54MjjlTBc86EWbqPvQU8s0kqR+x14AgAEazrD//4iKAIAAt4Vg Content-Language: ja x-securitypolicycheck: OK by SHieldMailChecker v2.5.2 x-shieldmailcheckerpolicyversion: POLICY180220 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Mauro, Thank you very much! Great works. Your patches works fine with my driver (modified max/min frequencies). Tested-by: Katsuhiro Suzuki And I have one question in the below. > -----Original Message----- > From: Mauro Carvalho Chehab > Sent: Thursday, July 5, 2018 11:43 AM > To: Suzuki, Katsuhiro/鈴木 勝博 > Cc: linux-media@vger.kernel.org; Masami Hiramatsu ; > Jassi Brar ; linux-arm-kernel@lists.infradead.org; > linux-kernel@vger.kernel.org > Subject: Re: [PATCH v3] media: dvb-frontends: add Socionext SC1501A ISDB-S/T > demodulator driver > > Em Thu, 5 Jul 2018 10:58:42 +0900 > "Katsuhiro Suzuki" escreveu: > > > Hi Mauro, > > > > > -----Original Message----- > > > From: Mauro Carvalho Chehab > > > Sent: Thursday, July 5, 2018 1:58 AM > > > To: Suzuki, Katsuhiro/鈴木 勝博 > > > Cc: linux-media@vger.kernel.org; Masami Hiramatsu > > ; > > > Jassi Brar ; > linux-arm-kernel@lists.infradead.org; > > > linux-kernel@vger.kernel.org > > > Subject: Re: [PATCH v3] media: dvb-frontends: add Socionext SC1501A ISDB-S/T > > > demodulator driver > > > > > > Hi Katsuhiro-san, > > > > > > Em Thu, 21 Jun 2018 12:17:48 +0900 > > > Katsuhiro Suzuki escreveu: > > > > > > > This patch adds a frontend driver for the Socionext SC1501A series > > > > and Socionext MN88443x ISDB-S/T demodulators. > > > > > > Sorry for taking so long to review it. We're missing a sub-maintainer > > > for DVB, with would otherwise speed up reviews of DVB patches. > > > > No problem, thank you for reviewing! I appreciate it. > > > > > > > > > > > > The maximum and minimum frequency of Socionext SC1501A comes from > > > > ISDB-S and ISDB-T so frequency range is the following: > > > > - ISDB-S (BS/CS110 IF frequency in kHz, Local freq 10.678GHz) > > > > - Min: BS-1: 1032000 => 1032.23MHz > > > > - Max: ND24: 2701000 => 2070.25MHz > > > > - ISDB-T (in Hz) > > > > - Min: ch13: 470000000 => 470.357857MHz > > > > - Max: ch62: 770000000 => 769.927857MHz > > > > > > There is actually an error on that part of the driver. Right now, > > > the DVB core expects Satellite frequencies (DVB-S, ISDB-S, ...) > > > in kHz. For all other delivery systems, it is in Hz. > > > > > > It is this way due to historic reasons. While it won't be hard to > > > change the core, that would require to touch all Satellite drivers. > > > > > > As there are very few frontend drivers that accept both Satellite > > > and Terrestrial standards, what we do, instead, is to setup > > > two frontends. See, for example, drivers/media/dvb-frontends/helene.c. > > > > > > > Thank you for describing it. I understand our device is rare case, and > > the reason why Helene has Terrestrial and Satellite structures. > > > > I'm using MN884434 device that has 2 cores. I want to setup DVB adapter > > devices (/dev/dvb/adapter0/*) for our frontend system as the following: > > > > - adapter0: for core 0, ISDB-T, ISDB-S > > - adapter1: for core 1, ISDB-T, ISDB-S > > Yeah, that is what it was supposed to work, if the core was ready for it. > > > But it seems one DVB adapter device support only ISDB-T or only ISDB-S > > if I divide structures. So I define the adapters as the following: > > > > - adapter0: for core 0, ISDB-T > > - adapter1: for core 0, ISDB-S > > - adapter2: for core 1, ISDB-T > > - adapter3: for core 1, ISDB-S > > > > Is this correct? > > That's the way the current driver with uses helene does. > > > > > > > > ... > > > > +static const struct dvb_frontend_ops sc1501a_ops = { > > > > + .delsys = { SYS_ISDBS, SYS_ISDBT }, > > > > + .info = { > > > > + .name = "Socionext SC1501A", > > > > + .frequency_min = 1032000, > > > > + .frequency_max = 770000000, > > > > + .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_AUTO | > > > > + FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO | > > > > + FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_HIERARCHY_AUTO, > > > > + }, > > > > + > > > > + .sleep = sc1501a_sleep, > > > > + .set_frontend = sc1501a_set_frontend, > > > > + .get_tune_settings = sc1501a_get_tune_settings, > > > > + .read_status = sc1501a_read_status, > > > > +}; > > > > > > In other words, you'll need to declare two structs here, one for ISDB-T > > > and another one for ISDB-S. > > > > > > > OK, I'm going to divide this structure for Terrestrial and Satellite. And > > add attach functions same as Helene driver. > > > > I'll send v4 patch. > > I ended by writing two patches that should be solving the issues > inside the core. With them[1], it will work the way you want. > > There is a catch: you'll need to convert Helene to have a single > entry and be sure that the driver that currently uses it (netup_unidvb) > will keep working. I guess I have one such hardware here for testing. > > [1] after tested/reviewed - I didn't test them yet. Feel free to test. > Thank you!! I try to fix '[PATCH v4] media: helene: add I2C device probe function' patch but I have a question... My idea is adding new dvb_tuner_ops structure and I2C probe function for supporting multiple systems. Current drivers (netup) continue to use helene_attach_t() and helene_attach_s(), so no need to change netup. It's conservative but prevent the degrade, I think. Newer added struct dvb_frontend_internal_info has one pair of max/min frequency. What is the best way to declare the frequency range for multiple systems? For example, Helene uses these info for only Ter or Sat freq ranges: .name = "Sony HELENE Ter tuner", .frequency_min_hz = 1 * MHz, .frequency_max_hz = 1200 * MHz, .frequency_step_hz = 25 * kHz, .name = "Sony HELENE Sat tuner", .frequency_min_hz = 500 * MHz, .frequency_max_hz = 2500 * MHz, .frequency_step_hz = 1 * MHz, Is this better to add new info for both system? .name = "Sony HELENE Sat/Ter tuner", .frequency_min_hz = 1 * MHz, .frequency_max_hz = 2500 * MHz, .frequency_step_hz = 25 * kHz, // Is this correct...? > So, please look at the two patches I sent today to the mailing list. > > (not sure why, they're taking a long time to arrive there - perhaps > vger has some issues). > > I added them on this tree: > https://git.linuxtv.org/mchehab/experimental.git/log/?h=dvb_freq_hz > > it is the last two patches there: > - > https://git.linuxtv.org/mchehab/experimental.git/commit/?h=dvb_freq_hz&id=b3d63 > a8f038d136b26692bc3a14554960e767f4a > - > https://git.linuxtv.org/mchehab/experimental.git/commit/?h=dvb_freq_hz&id=2a369 > e8faf3b277baff4026371f298e95c84fbb2 > > I'm not sure if all applications will do the right thing, though, as > it will depend if they query the capabilities before or after switching > to a different delivery system. If it get caps before and store them > in Hz, apps will work, but tests are required. > Ah, indeed. You mean, - Application want to tune Terrestrial system - Driver is in Satellite system - Application query max/min frequency - DVB API returns max/min frequency in 'kHz' - Some application will get something wrong (ex. app specific range check) Unfortunately, I don't know applications that do such scenario. My test application does not query max/min range... > > > > > > > Yeah, I know that this sucks. If you are in the mood of touching the > > > DVB core, I'm willing to consider a patch that would fix this, provided > > > that it won't break backward compatibility with other drivers (or would > > > convert the other satellite drivers to use the new way). > > > > > > Thanks, > > > Mauro > > > > Hmm, I don't know the details of DVB core, I try to investigate it. > > > > > > Regards, > > -- > > Katsuhiro Suzuki > > > > > > > > > > Thanks, > Mauro Regards, -- Katsuhiro Suzuki