From patchwork Sat Mar 7 15:30:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Lad, Prabhakar" X-Patchwork-Id: 5959431 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.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 317A39F318 for ; Sat, 7 Mar 2015 15:31:18 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 50F25203AE for ; Sat, 7 Mar 2015 15:31:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 55A72203A5 for ; Sat, 7 Mar 2015 15:31:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751542AbbCGPa6 (ORCPT ); Sat, 7 Mar 2015 10:30:58 -0500 Received: from mail-wg0-f44.google.com ([74.125.82.44]:44673 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751198AbbCGPaz (ORCPT ); Sat, 7 Mar 2015 10:30:55 -0500 Received: by wghl18 with SMTP id l18so11696985wgh.11; Sat, 07 Mar 2015 07:30:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=w9NZbSm2sl0vK3xF2gwtk3iWF2y9c2ZUbzpOcvScr4U=; b=J8XSJPml28j9L6WPGRLW3xN+3yHZTaZXlt83DARiTLEfIRGsay7tSr0Lfc0pBweFWX J7gqPIgcZa9mDAw1lH8PN017sxJ0kbNi42qgTt8Qhpx+j4TskrQBdlFiw0AlZiZQO9NR 7NGHwSSID8HobGfc9m5TkmTTxDMqMFAJCNe4mGn5VTlb27+W6SYIvgPmZE3OhVngorZf amkQc6ShWI7RiF/2FPSudCgc94ltMfoAIC/C37ma5lxezKbQayPV1R3YXXdlNOj6vRZl WTh0GnQ768sGYM1Tq/g23dZPi/qiDquE7Aa3THYNQ4NewPqvBddTV0NicL1TUDTsRnnG K8NA== X-Received: by 10.180.91.79 with SMTP id cc15mr76099985wib.37.1425742253756; Sat, 07 Mar 2015 07:30:53 -0800 (PST) Received: from tango-charlie.Home (0545247b.skybroadband.com. [5.69.36.123]) by mx.google.com with ESMTPSA id xy2sm5173699wjc.14.2015.03.07.07.30.52 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 07 Mar 2015 07:30:53 -0800 (PST) From: Lad Prabhakar To: LMML , Hans Verkuil Cc: LKML , "Lad, Prabhakar" Subject: [PATCH 1/2] media: am437x-vpfe: match the OF node/i2c addr instead of name Date: Sat, 7 Mar 2015 15:30:49 +0000 Message-Id: <1425742250-24404-2-git-send-email-prabhakar.csengg@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1425742250-24404-1-git-send-email-prabhakar.csengg@gmail.com> References: <1425742250-24404-1-git-send-email-prabhakar.csengg@gmail.com> 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.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, 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 From: "Lad, Prabhakar" Instead of matching the subdevs with their name, match it with OF node/ i2c address and adapter number. Signed-off-by: Lad, Prabhakar --- drivers/media/platform/am437x/am437x-vpfe.c | 27 +++++++++++---------------- drivers/media/platform/am437x/am437x-vpfe.h | 1 - 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c index 8166b38..3d59ae0 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.c +++ b/drivers/media/platform/am437x/am437x-vpfe.c @@ -1701,11 +1701,16 @@ static int vpfe_get_app_input_index(struct vpfe_device *vpfe, { struct vpfe_config *cfg = vpfe->cfg; struct vpfe_subdev_info *sdinfo; + struct i2c_client *client; + struct i2c_client *curr_client; int i, j = 0; + curr_client = v4l2_get_subdevdata(vpfe->current_subdev->sd); for (i = 0; i < ARRAY_SIZE(vpfe->cfg->asd); i++) { sdinfo = &cfg->sub_devs[i]; - if (!strcmp(sdinfo->name, vpfe->current_subdev->name)) { + client = v4l2_get_subdevdata(sdinfo->sd); + if (client->addr == curr_client->addr && + client->adapter->nr == client->adapter->nr) { if (vpfe->current_input >= 1) return -1; *app_input_index = j + vpfe->current_input; @@ -2297,20 +2302,10 @@ vpfe_async_bound(struct v4l2_async_notifier *notifier, vpfe_dbg(1, vpfe, "vpfe_async_bound\n"); for (i = 0; i < ARRAY_SIZE(vpfe->cfg->asd); i++) { - sdinfo = &vpfe->cfg->sub_devs[i]; - - if (!strcmp(sdinfo->name, subdev->name)) { + if (vpfe->cfg->asd[i]->match.of.node == asd[i].match.of.node) { + sdinfo = &vpfe->cfg->sub_devs[i]; vpfe->sd[i] = subdev; - vpfe_info(vpfe, - "v4l2 sub device %s registered\n", - subdev->name); - vpfe->sd[i]->grp_id = - sdinfo->grp_id; - /* update tvnorms from the sub devices */ - for (j = 0; j < 1; j++) - vpfe->video_dev->tvnorms |= - sdinfo->inputs[j].std; - + vpfe->sd[i]->grp_id = sdinfo->grp_id; found = true; break; } @@ -2321,6 +2316,8 @@ vpfe_async_bound(struct v4l2_async_notifier *notifier, return -EINVAL; } + vpfe->video_dev->tvnorms |= sdinfo->inputs[0].std; + /* setup the supported formats & indexes */ for (j = 0, i = 0; ; ++j) { struct vpfe_fmt *fmt; @@ -2501,8 +2498,6 @@ vpfe_get_pdata(struct platform_device *pdev) goto done; } - strncpy(sdinfo->name, rem->name, sizeof(sdinfo->name)); - pdata->asd[i] = devm_kzalloc(&pdev->dev, sizeof(struct v4l2_async_subdev), GFP_KERNEL); diff --git a/drivers/media/platform/am437x/am437x-vpfe.h b/drivers/media/platform/am437x/am437x-vpfe.h index 0f55735..956fb9e 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.h +++ b/drivers/media/platform/am437x/am437x-vpfe.h @@ -83,7 +83,6 @@ struct vpfe_route { }; struct vpfe_subdev_info { - char name[32]; /* Sub device group id */ int grp_id; /* inputs available at the sub device */