From patchwork Mon Dec 8 18:54:11 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Larsson X-Patchwork-Id: 5458151 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 183C79F30B for ; Mon, 8 Dec 2014 18:54:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 40AC020114 for ; Mon, 8 Dec 2014 18:54:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DA5122010B for ; Mon, 8 Dec 2014 18:54:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756259AbaLHSyP (ORCPT ); Mon, 8 Dec 2014 13:54:15 -0500 Received: from smtp.bredband2.com ([83.219.192.166]:59695 "EHLO smtp.bredband2.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756168AbaLHSyO (ORCPT ); Mon, 8 Dec 2014 13:54:14 -0500 Received: from [192.168.1.8] (92-244-23-216.customers.ownit.se [92.244.23.216]) (Authenticated sender: ed8153) by smtp.bredband2.com (Postfix) with ESMTPA id C562E105C06; Mon, 8 Dec 2014 19:54:11 +0100 (CET) Message-ID: <5485F3D3.50403@southpole.se> Date: Mon, 08 Dec 2014 19:54:11 +0100 From: Benjamin Larsson User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Antti Palosaari CC: Linux Media Mailing List Subject: Re: [PATCH 2/2] mn88472: fix firmware loading References: <1417990203-758-1-git-send-email-benjamin@southpole.se> <1417990203-758-2-git-send-email-benjamin@southpole.se> <5484D666.6060605@iki.fi> <5485CC0E.2090201@southpole.se> <5485E3E4.80005@iki.fi> In-Reply-To: <5485E3E4.80005@iki.fi> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 12/08/2014 06:46 PM, Antti Palosaari wrote: > Hello! > [...] >> regmap_bulk_write(): Write multiple registers to the device >> >> In this case we want to write multiple bytes to the same register. So I >> think that my patch is correct in principle. > > You haven't make any test whether it is possible to write that > firmware in a large chunks *or* writing one byte (smallest possible > ~chuck) at the time? I think it does not matter. I suspect you could > even download whole firmware as one go - but rtl2832p I2C adapter does > support only 22 bytes on one xfer. > > Even those are written to one register, chip knows how many bytes one > message has and could increase its internal address counter. That is > usually called register address auto-increment. > > A) writing: > f6 00 > f6 01 > f6 02 > f6 03 > f6 04 > f6 05 > f6 06 > f6 07 > f6 08 > f6 09 > > B) writing: > f6 00 01 02 03 04 > f6 05 06 07 08 09 > > will likely end up same. B is better as only 2 xfers are done - much > less IO. > > regards > Antti > Hello Antti. I have now tried the following patch on top of my load defaults patch. index a7d35bb..fd9796d With this patch I get data, without it I don't. Based on that info I started testing different i2c wr max values. When I got to 18 it stopped working. So it seams like both you and me where right. We can write several values at once but only a maximum of 16. I have a patch that adds parity check of the firmware and all the times the check succeeded but the demodulator didn't deliver data. So I guess that the parity checker is before the 16 byte buffer and if you write more the data is just ignored. I will send an updated patch based on this. MvH Benjamin Larsson --- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- a/drivers/staging/media/mn88472/mn88472.c +++ b/drivers/staging/media/mn88472/mn88472.c @@ -467,7 +467,7 @@ static int mn88472_probe(struct i2c_client *client, goto err; } - dev->i2c_wr_max = config->i2c_wr_max; + dev->i2c_wr_max = 2; dev->xtal = config->xtal; dev->ts_mode = config->ts_mode; dev->ts_clock = config->ts_clock;