Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp946313imm; Thu, 4 Oct 2018 06:03:24 -0700 (PDT) X-Google-Smtp-Source: ACcGV61XWfKt0/yqllcAq+8SOwiIGEgR7qDrChK9w95d6WPdxRJC0ke7ubNDM8op2jg1D/h+KbS/ X-Received: by 2002:a17:902:968d:: with SMTP id n13-v6mr6540031plp.33.1538658204068; Thu, 04 Oct 2018 06:03:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538658204; cv=none; d=google.com; s=arc-20160816; b=jBUcUbT/S2m72FwMT+KXm55R3zSSz/mVM4HBuHXaJTVwZKmTlW8/LAfoIBbtlzMfBF XLEmPK8rE2XQ+3DCVb7PFWGGel/XLl5DSA1hPWxwyN9d+xEKTpX58B6NPhVvdqXxNjLo ZUUFaK1BGtJYSlWaIEHdc7wlLd/NMnIId9Kgnfb3PjWlXBseIjx7bqLrgW3E/GEvdC4e UwZtDTqJs066JmOZNCSOh5Oi1NieknXtZhouf9ubmDNgMwgJOfjjjP2a9HII4/x00lFc hwHAEi0q7LCccQ7I/GjjThTT7xee0S6+NuXxdqcQHb2sHpx7uvHMizxpCCZXe/3nV1mG QXEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=9bUqmOjkUrkju+i9DzfckYNp4udT3jak0eK/aKFF7M4=; b=FRlxhFtP5U6HhiN1u5B7DdpSmKdKSMWdu2WQf+QijmsLu1Csl6LC9Be4gXh+wxgFRQ elRrtC5UbxhaHQtoCwcigim62EpUIgyoPRqCJI9NyyiI7v61VIHXS21WyfdSczqHAW5C dXkYjsI/HlR7R7pDAjbUZXCvGTDzikGScPZH+pzF69M9AgHHnIjWhrrSCg1VBjkZTcoj 9GaBUR/cMQW5mPgF59ipvJrLxrJcguO9AtkcCER5oRaQ7b2P4BH/fOFiqQ3LPtHNedTa mYTPqxfbWhQiGv2rENZnbQEocjUWZhW7liVa9+vz4Pbl0fw/h/umPOxojxdahV0KbYjz 6Wiw== 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 a7-v6si4721021pgb.301.2018.10.04.06.03.06; Thu, 04 Oct 2018 06:03:24 -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 S1727809AbeJDTzX (ORCPT + 99 others); Thu, 4 Oct 2018 15:55:23 -0400 Received: from lb2-smtp-cloud8.xs4all.net ([194.109.24.25]:35058 "EHLO lb2-smtp-cloud8.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727256AbeJDTzW (ORCPT ); Thu, 4 Oct 2018 15:55:22 -0400 Received: from [IPv6:2001:420:44c1:2579:51eb:3c7a:5e3a:802b] ([IPv6:2001:420:44c1:2579:51eb:3c7a:5e3a:802b]) by smtp-cloud8.xs4all.net with ESMTPA id 83GUgDtLi0ZZE83GYgkhIF; Thu, 04 Oct 2018 15:02:09 +0200 Subject: Re: [PATCH v3 2/2] media: platform: Add Aspeed Video Engine driver To: Eddie James , Eddie James , linux-kernel@vger.kernel.org Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, linux-aspeed@lists.ozlabs.org, andrew@aj.id.au, openbmc@lists.ozlabs.org, robh+dt@kernel.org, mchehab@kernel.org, linux-media@vger.kernel.org References: <1537903629-14003-1-git-send-email-eajames@linux.ibm.com> <1537903629-14003-3-git-send-email-eajames@linux.ibm.com> <8ca47483-5347-c40d-0d01-4f13e88f8cde@linux.vnet.ibm.com> From: Hans Verkuil Message-ID: Date: Thu, 4 Oct 2018 15:02:02 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <8ca47483-5347-c40d-0d01-4f13e88f8cde@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfNof8y89VQ636bB96ItiCiLaL+Nl1OyLkYfONLp9YR3DAGnYwZedb6pkzczeKB8Sg2o5NKI24tNNcfgW5DnC+Ms7uvYj5W9CZOjPRDIDfjNlz+1FSF4d F8G3fy5607kUjkT9g40ouC3xX+1uQPk5oyhw8eURaDpZoU3kEdbyIbGdCksb5CsaAe7iLg99KhbxxtI6aWCZEGI1qPtu6ApSdvmKu46+w0TS+XHXi5YkRlXB gfBd0QMl68cJwCYGMbvP7nmmeB4VCAFD3pwDRTfzBlqo0ZNiVSqnrU5VQrMHLjffh9+BcfNfIDllq/a4cQFrzWe+G9aTUKcnfclIAVM1v3Yo/ONxHYFqPciS pE1d4ikWziA5nvd4dhnFMi2l5Na1BZUJhxP4UvnvOrcd0Di7dBEGy/WhS4uCy2m0MtsWfx1RaZZb1ME6rY1rI1Im9lI52Zk4G5E35PM2/cisG9VkEm6OTIAN qKlesHp/PYzr8KwEWulIz9AHT9HcfBs/Yis48bFBSIX3l6yETZe+25U5z4C1zkG1qXrh0rUs0TdwwVI0LF0xQloqnLnUAQ50xoRhveAP4Kt6lykYmBxbFOlZ ezh3r31baZIy60Mi9UaVg+6ysx67cfyQFRjvglfx37lpcjLAaD34itSG0foSPJ1qn4s= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/03/18 22:26, Eddie James wrote: > > > On 09/28/2018 06:30 AM, Hans Verkuil wrote: >> On 09/25/2018 09:27 PM, Eddie James wrote: >>> The Video Engine (VE) embedded in the Aspeed AST2400 and AST2500 SOCs >>> can capture and compress video data from digital or analog sources. With >>> the Aspeed chip acting a service processor, the Video Engine can capture >>> the host processor graphics output. >>> >>> Add a V4L2 driver to capture video data and compress it to JPEG images. >>> Make the video frames available through the V4L2 streaming interface. >>> >>> + memcpy(&table[base], aspeed_video_jpeg_dct[i], >>> + sizeof(aspeed_video_jpeg_dct[i])); >>> + >>> + base += ASPEED_VIDEO_JPEG_DCT_SIZE; >>> + memcpy(&table[base], aspeed_video_jpeg_quant, >>> + sizeof(aspeed_video_jpeg_quant)); >>> + >>> + if (yuv420) >>> + table[base + 2] = 0x00220103; >>> + } >>> +} >>> + >>> +static void aspeed_video_update(struct aspeed_video *video, u32 reg, >>> + unsigned long mask, u32 bits) >> You probably want to use u32 for the mask. > > Using a u32 there results in: > > warning: large integer implicitly truncated to unsigned type [-Woverflow] > > everywhere I call aspeed_video_update. Not sure what the deal is. Any > suggestions? The BIT and GENMASK macros produce unsigned long values. I think it is easier if instead of passing a mask (i.e. the bits you want to keep) you pass the bits you want to clear and replace with new ones. So 'u32 clear' instead of 'unsigned long mask'. The problem occurs because e.g. ~BIT(10) expands to an unsigned long with all bits except for bit 10 set to 1. And passing that to an u32 will obviously fail. But just passing BIT(10) is fine since that fits in an u32. Regards, Hans > > Thanks, > Eddie > >> >>> +{ >>> + u32 t = readl(video->base + reg); >>> + u32 before = t; >>> + >>> + t &= mask; >>> + t |= bits; >>> + writel(t, video->base + reg); >>> + dev_dbg(video->dev, "update %03x[%08x -> %08x]\n", reg, before, >>> >>> + >>> +module_platform_driver(aspeed_video_driver); >>> + >>> +MODULE_DESCRIPTION("ASPEED Video Engine Driver"); >>> +MODULE_AUTHOR("Eddie James"); >>> +MODULE_LICENSE("GPL v2"); >>> >> Regards, >> >> Hans >> >