From patchwork Fri May 3 09:53:03 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Lad, Prabhakar" X-Patchwork-Id: 2516551 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 57F263FD1A for ; Fri, 3 May 2013 09:53:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755063Ab3ECJxN (ORCPT ); Fri, 3 May 2013 05:53:13 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:34914 "EHLO mail-pb0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754431Ab3ECJxM (ORCPT ); Fri, 3 May 2013 05:53:12 -0400 Received: by mail-pb0-f45.google.com with SMTP id ro12so828612pbb.4 for ; Fri, 03 May 2013 02:53:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=tg0nEaO+F5f4wKgSPIWeA/kUSX+QeRnplpKBwp3FCN8=; b=WFbkX0XYMaqieAIHrm/AIKhSaOxywbcC1zORzhlmi+FXs/YU5KvM424+h1hLmhPjOz yPDvpqj32CyHyMCCNmAuXz/Qao3/HTDSu2YzREFdb++7gqkOakKmht9tElF5wRFG0mXr +UjIqBlhbhNm6MnOCoBYMvJWI0heGFRHCTkNnxbpY32gTESuU1f3kadC5OKvqOQ+Sz81 qsLgnw8CVtbSx2XIAD2cSTSZBIn2SvpKf5zlkxUHR3kQcjk0EQfcgzrhDpjcLFIm7Nz5 3H4xC5czER37F8TOll7wR3O8AFJO/LRqSb8zMrxmaovx1J5DkoQ8PFnsTvhkdTGPjuBP zuPQ== X-Received: by 10.66.177.46 with SMTP id cn14mr14386628pac.4.1367574791771; Fri, 03 May 2013 02:53:11 -0700 (PDT) Received: from localhost.localdomain ([122.166.13.141]) by mx.google.com with ESMTPSA id qi1sm12150775pac.21.2013.05.03.02.53.08 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 03 May 2013 02:53:10 -0700 (PDT) From: Prabhakar Lad To: LMML , Mauro Carvalho Chehab Cc: DLOS , LKML , "Lad, Prabhakar" Subject: [PATCH] media: davinci: vpbe: fix layer availability for NV12 format Date: Fri, 3 May 2013 15:23:03 +0530 Message-Id: <1367574783-19090-1-git-send-email-prabhakar.csengg@gmail.com> X-Mailer: git-send-email 1.7.4.1 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Lad, Prabhakar For NV12 format, even if display data is single image, both VIDWIN0 and VIDWIN1 parameters must be used. The start address of Y data plane and C data plane is configured in VIDEOWIN0ADH/L and VIDEOWIN1ADH/L respectively. cuurently only one layer was requested, which is suffice for yuv422, but for yuv420(NV12) two layers are required and fix the same by requesting for other layer if pix fmt is NV12 during set_fmt. Signed-off-by: Lad, Prabhakar --- drivers/media/platform/davinci/vpbe_display.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c index 0341dcc..f2ee07b 100644 --- a/drivers/media/platform/davinci/vpbe_display.c +++ b/drivers/media/platform/davinci/vpbe_display.c @@ -922,6 +922,22 @@ static int vpbe_display_s_fmt(struct file *file, void *priv, other video window */ layer->pix_fmt = *pixfmt; + if (pixfmt->pixelformat == V4L2_PIX_FMT_NV12 && + cpu_is_davinci_dm365()) { + struct vpbe_layer *otherlayer; + + otherlayer = _vpbe_display_get_other_win_layer(disp_dev, layer); + /* if other layer is available, only + * claim it, do not configure it + */ + ret = osd_device->ops.request_layer(osd_device, + otherlayer->layer_info.id); + if (ret < 0) { + v4l2_err(&vpbe_dev->v4l2_dev, + "Display Manager failed to allocate layer\n"); + return -EBUSY; + } + } /* Get osd layer config */ osd_device->ops.get_layer_config(osd_device,