From patchwork Sun Mar 3 19:41:00 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Frank_Sch=C3=A4fer?= X-Patchwork-Id: 2208681 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 0D7833FC8F for ; Sun, 3 Mar 2013 19:40:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753908Ab3CCTk0 (ORCPT ); Sun, 3 Mar 2013 14:40:26 -0500 Received: from mail-ea0-f170.google.com ([209.85.215.170]:65386 "EHLO mail-ea0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753876Ab3CCTkZ (ORCPT ); Sun, 3 Mar 2013 14:40:25 -0500 Received: by mail-ea0-f170.google.com with SMTP id a11so638217eaa.15 for ; Sun, 03 Mar 2013 11:40:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:mime-version:content-type:content-transfer-encoding; bh=ncbuM4b4QkJC4BePSXXEVLqSJRvnGtHKhSVnBrU5Yig=; b=xOKPScCXK2rE/oFkf+y9cE7oqm/QETekNNHNSh2M5yTh61gVlxRDWPqla2Nyj3s/Zj h/Ch1J2udWj0zrh5VpCMeGB0De6qG59AouJcwS06ezqxTLtTbtbZXbTgsdoS6wuLDaHj rlL45yXm1VYdqQJMUqmX8PVGPrVrfALrUc8iarwr7pPo5ZIj+3tJgN6cnYfe9uUzLX4e qorSuaVxrhQktPdsqZ9qRJZ7coSSgZ8adb0SggdMAfkLaRaFq+4wcujnav7ar/8BKOKH Mp+zCK176FaLx2ZBeHRGd+liTyfmVqn+umHLc42Av0ZInXcQo3OVCuyhvBSDrw5wGNMV OiSA== X-Received: by 10.14.111.72 with SMTP id v48mr21402487eeg.11.1362339624074; Sun, 03 Mar 2013 11:40:24 -0800 (PST) Received: from Athlon64X2-5000.site (ip-88-153-204-20.unitymediagroup.de. [88.153.204.20]) by mx.google.com with ESMTPS id q42sm28324733eem.14.2013.03.03.11.40.22 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 03 Mar 2013 11:40:23 -0800 (PST) From: =?UTF-8?q?Frank=20Sch=C3=A4fer?= To: mchehab@redhat.com Cc: linux-media@vger.kernel.org, =?UTF-8?q?Frank=20Sch=C3=A4fer?= Subject: [PATCH 4/5] em28xx: make em28xx_set_outfmt() working with EM25xx family bridges Date: Sun, 3 Mar 2013 20:41:00 +0100 Message-Id: <1362339661-3446-5-git-send-email-fschaefer.oss@googlemail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1362339661-3446-1-git-send-email-fschaefer.oss@googlemail.com> References: <1362339661-3446-1-git-send-email-fschaefer.oss@googlemail.com> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Streaming doesn't work with the EM2765 if bit 5 of the output format register 0x27 is set. It's actually not clear if really has to be set for the other chips, but for now let's keep it to avoid regressions and add a comment to the code. Signed-off-by: Frank Schäfer --- drivers/media/usb/em28xx/em28xx-core.c | 20 +++++++++++++++----- 1 Datei geändert, 15 Zeilen hinzugefügt(+), 5 Zeilen entfernt(-) diff --git a/drivers/media/usb/em28xx/em28xx-core.c b/drivers/media/usb/em28xx/em28xx-core.c index b2dcb3d..7b9f76b 100644 --- a/drivers/media/usb/em28xx/em28xx-core.c +++ b/drivers/media/usb/em28xx/em28xx-core.c @@ -697,12 +697,22 @@ int em28xx_vbi_supported(struct em28xx *dev) int em28xx_set_outfmt(struct em28xx *dev) { int ret; - u8 vinctrl; - - ret = em28xx_write_reg_bits(dev, EM28XX_R27_OUTFMT, - dev->format->reg | 0x20, 0xff); + u8 fmt, vinctrl; + + fmt = dev->format->reg; + if (!dev->is_em25xx) + fmt |= 0x20; + /* NOTE: it's not clear if this is really needed ! + * The datasheets say bit 5 is a reserved bit and devices seem to work + * fine without it. But the Windows driver sets it for em2710/50+em28xx + * devices and we've always been setting it, too. + * + * em2765 (em25xx, em276x/7x/8x ?) devices do NOT work with this bit set, + * it's likely used for an additional (compressed ?) format there. + */ + ret = em28xx_write_reg(dev, EM28XX_R27_OUTFMT, fmt); if (ret < 0) - return ret; + return ret; ret = em28xx_write_reg(dev, EM28XX_R10_VINMODE, dev->vinmode); if (ret < 0)