Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp107480pxa; Tue, 18 Aug 2020 17:36:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwi0Yurw6/S6/7MNOwGM/4eseuoPqglAh6C7PAlRJZPj7HBIH2u8roLf0oyLAVgxdKLiUFj X-Received: by 2002:a17:906:ce43:: with SMTP id se3mr22241376ejb.403.1597797410821; Tue, 18 Aug 2020 17:36:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597797410; cv=none; d=google.com; s=arc-20160816; b=bXOCUPPSJ7QI5rHmOqEmX6gqAc4a2P9/jI2GGhRocNfuKPDAZxqAv22Hgd51YQr70v G0Ym9VlcbmruJ132miHfa/ZNE9nEPbMLzZQUQ//JGXuhDSzzUhYjpBNRlBasBYP3/bx9 QbXyp698sP+kApTP2GnNVV92LDiuk3C292QsV4Pgl7AWWMWKns6SXME1w7nb4zX5LVms iykZxwowPhTk2HQie/4K+xA0H2OcqVyJJDNSo+uhZb3bw07niLJ+jV1cQOHQBAhGTmDE vXhnrNmjt+GSPoElQ2GaG6Z91SCdE+FTFzCqF0xxXv+pg4FQEueQtBJMtwBtQGAzu/Rp LCSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=Ir9zlPRO6ulJkS1ClGP8dughvLjcHTwT51vNND8Agxc=; b=RN4jh9K0r25mnel2bmCx9kcll3B72VYBMR0j5v/9ogDbjEnZRYk6aCZmnQgvpgdGLg SOJ8URwde0gy4rxuwsZYQcs9Lw+NaxCEOLW7SsjlKC5ioEXeTvMboCqgM8VgYfbITKM+ QbkFG69BHbF4spLvmSGAK39IJls4//le6lhfyG1Ofpz+fxG+4jShrrDX74Xu/U4y97DL WC8/mMqFgnMd6nQSd+/+w6xQNLt6wyDx23gxREw6+cuww777MY3qVqXoXMMNG7652nth ZhFWY3L4gJXJWKWySeTufC9FaUsjgiUCeIXLapiX3gq2blKgDkKgqB7zi/BdEhNoBm6r XH9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=W5MxTVC3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z14si15207384edk.480.2020.08.18.17.36.12; Tue, 18 Aug 2020 17:36:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=W5MxTVC3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726718AbgHSAfO (ORCPT + 99 others); Tue, 18 Aug 2020 20:35:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725554AbgHSAfN (ORCPT ); Tue, 18 Aug 2020 20:35:13 -0400 Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FA35C061389 for ; Tue, 18 Aug 2020 17:35:12 -0700 (PDT) Received: by mail-pg1-x542.google.com with SMTP id j21so10523392pgi.9 for ; Tue, 18 Aug 2020 17:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=Ir9zlPRO6ulJkS1ClGP8dughvLjcHTwT51vNND8Agxc=; b=W5MxTVC3sdRTyvcpiy1o/54gA5IyInv/kudLtDP1IqKXBAuWYQwUkMQ9gGSGFr8dMd BM+mRIzVYnr4bIvOPf6Q72yYuhWFUovSu2RfYT3r5hq14aHyr6Ureusp8dfSBTXGF8Hj 8peQzUxB7eStbNI8LbQswBQyA+pNtFP2HV2/8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=Ir9zlPRO6ulJkS1ClGP8dughvLjcHTwT51vNND8Agxc=; b=lGPeI/tVImRDtZlPIY2SC+8VkKNbPmzUle8G+jTtwpnNsxr5gi4UJ/PQphoBNBzvxR VILTc3RqasHg/G1fL9TfKih5aRhTXCE2hHzRajeLiryING5X/rUsPDJ1pcz0QLVEoqSH zSntj52Zf15XBRvJexr16vZjKMrjqS8kZPtGGKcdLk02aLGsU5ZX/C87nH9jyj873Vg8 nZTWuC8Kji8skgqe4QbtvvSaSiftQKbxFch4rpooGZvlYw/f1tvfb8or7S6XecVzL6Nk 8Lwh+71UCxMt+eDnFgshm87xcKME4UpIEbsdlpi+/cebxXlh7EW5XaWxSRcfP5M1T7Ac o4Xw== X-Gm-Message-State: AOAM531drWMKpDxpLza5phiT2FsuwbdUCEWXrfL0V0KKuuwVNuoUzyPx ae/PmQDCMSUX75i1UB1W2fb31w== X-Received: by 2002:a65:60cb:: with SMTP id r11mr15283051pgv.131.1597797311342; Tue, 18 Aug 2020 17:35:11 -0700 (PDT) Received: from [10.136.13.65] ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id f89sm1061044pjg.5.2020.08.18.17.35.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 18 Aug 2020 17:35:10 -0700 (PDT) Subject: Re: [PATCH v2 1/3] bcm-vk: add bcm_vk UAPI To: Greg Kroah-Hartman Cc: Arnd Bergmann , Kees Cook , linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com References: <20200806004631.8102-1-scott.branden@broadcom.com> <20200806004631.8102-2-scott.branden@broadcom.com> <20200818135313.GB495837@kroah.com> <8894c3c4-4d5c-cb94-bc90-a26833ebf268@broadcom.com> <20200818174451.GA749919@kroah.com> From: Scott Branden Message-ID: <4adbd70e-c49b-c2d4-84c7-5e910f05e449@broadcom.com> Date: Tue, 18 Aug 2020 17:35:04 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200818174451.GA749919@kroah.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-CA Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-08-18 10:44 a.m., Greg Kroah-Hartman wrote: > On Tue, Aug 18, 2020 at 10:23:42AM -0700, Scott Branden wrote: >> Hi Greg, >> >> On 2020-08-18 6:53 a.m., Greg Kroah-Hartman wrote: >>> On Wed, Aug 05, 2020 at 05:46:29PM -0700, Scott Branden wrote: >>>> Add user space api for bcm-vk driver. >>>> >>>> Signed-off-by: Scott Branden >>>> --- >>>> include/uapi/linux/misc/bcm_vk.h | 99 ++++++++++++++++++++++++++++++++ >>>> 1 file changed, 99 insertions(+) >>>> create mode 100644 include/uapi/linux/misc/bcm_vk.h >>>> >>>> diff --git a/include/uapi/linux/misc/bcm_vk.h b/include/uapi/linux/misc/bcm_vk.h >>>> new file mode 100644 >>>> index 000000000000..783087b7c31f >>>> --- /dev/null >>>> +++ b/include/uapi/linux/misc/bcm_vk.h >>>> @@ -0,0 +1,99 @@ >>>> +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ >>>> +/* >>>> + * Copyright 2018-2020 Broadcom. >>>> + */ >>>> + >>>> +#ifndef __UAPI_LINUX_MISC_BCM_VK_H >>>> +#define __UAPI_LINUX_MISC_BCM_VK_H >>>> + >>>> +#include >>>> +#include >>>> + >>>> +#define BCM_VK_MAX_FILENAME 64 >>>> + >>>> +struct vk_image { >>>> + __u32 type; /* Type of image */ >>>> +#define VK_IMAGE_TYPE_BOOT1 1 /* 1st stage (load to SRAM) */ >>>> +#define VK_IMAGE_TYPE_BOOT2 2 /* 2nd stage (load to DDR) */ >>>> + char filename[BCM_VK_MAX_FILENAME]; /* Filename of image */ >>>> +}; >>>> + >>>> +struct vk_reset { >>>> + __u32 arg1; >>>> + __u32 arg2; >>>> +}; >>>> + >>>> +#define VK_MAGIC 0x5e >>>> + >>>> +/* Load image to Valkyrie */ >>>> +#define VK_IOCTL_LOAD_IMAGE _IOW(VK_MAGIC, 0x2, struct vk_image) >>>> + >>>> +/* Send Reset to Valkyrie */ >>>> +#define VK_IOCTL_RESET _IOW(VK_MAGIC, 0x4, struct vk_reset) >>>> + >>>> +/* >>>> + * message block - basic unit in the message where a message's size is always >>>> + * N x sizeof(basic_block) >>>> + */ >>>> +struct vk_msg_blk { >>>> + __u8 function_id; >>>> +#define VK_FID_TRANS_BUF 5 >>>> +#define VK_FID_SHUTDOWN 8 >>>> + __u8 size; >>>> + __u16 trans_id; /* transport id, queue & msg_id */ >>>> + __u32 context_id; >>>> + __u32 args[2]; >>>> +#define VK_CMD_PLANES_MASK 0x000f /* number of planes to up/download */ >>>> +#define VK_CMD_UPLOAD 0x0400 /* memory transfer to vk */ >>>> +#define VK_CMD_DOWNLOAD 0x0500 /* memory transfer from vk */ >>>> +#define VK_CMD_MASK 0x0f00 /* command mask */ >>>> +}; >>>> + >>>> +#define VK_BAR_FWSTS 0x41c >>>> +#define VK_BAR_COP_FWSTS 0x428 >>>> +/* VK_FWSTS definitions */ >>>> +#define VK_FWSTS_RELOCATION_ENTRY BIT(0) >>> >>> >>> I thought BIT() was not allowed in uapi .h files, this really works >>> properly??? >> I did some investigation and it looks like a few other header files in include/uapi also use the BIT() macro: >> include/uapi/misc/uacce/uacce.h >> include/uapi/linux/psci.h >> include/uapi/linux/v4l2-subdev.h > Does the header install test target now fail for these? I do not understand the question above.  make headers_install works. But I guess the above headers would have similar issue with the BIT macro. > >> tools/include/uapi/linux/pkt_sched.h > That doesn't count :) > >> It does look like we end up defining the BIT() macro in our user space app that includes the header file. >> >> So, what is the proper thing to be done? >> 1) Move the BIT() macro somewhere in include/uapi and include it in the necessary header files >> 2) Use the _BITUL macro in include/uapi/linux/const.h instead? >> 3) something else? > open-code it for now please, that's the best way as I am pretty sure we > can not contaminate the global C namespace with out BIT() macro, no > matter how much we would like to... OK, I will open-code it instead. > > thanks, > > greg k-h