Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp167121pxk; Wed, 9 Sep 2020 02:03:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwq9suwhgFf8+X1I6jTghYkyyEigap6Neaw3PMO0CtTN1FpUkKtgT33J5JCzE0mGpZCAfS4 X-Received: by 2002:a17:906:ecf1:: with SMTP id qt17mr2703640ejb.158.1599642207520; Wed, 09 Sep 2020 02:03:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599642207; cv=none; d=google.com; s=arc-20160816; b=FstZnuH07g2DSO9V5Y9JsAKrhQGGD1Uws40sPqxh8qyhiuVi0W0uQPy5aW9J7eWe3k FMs2HZ5pIavlqO1BNsk81vHCGSRvYQEpFewmDijPVWafZY1bOTVT0zOnFscMG07Y1jcO JQMB27Tgp4VEgbOHosMC23c3dzcBDzsFLepS/mo7jwdRMwQSZzoQhJB9bD4E3zELzPQD YAWG1wZkyje/AslHFUfVGyip+SoSojPWEUBkB2LcmhjSW9J1W9uKuWZIPF9tzNhjgK46 HyRt8ZWcR2MznsPz5PWab54iIXBwhn2lTQqW5j09V8x23lMB1i0EMnQoZNFPBp6gR1uJ On4w== 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=UwK/UCn7nj/bDtxyg3u6KBsLtSFGCtiaPO7yxlcqvrQ=; b=KhqLSL9imQonR1dR/aRAVG5vdKgYepPxLam+NBmG9014FaRsba8tX46/MmDQfEucR6 Go62CoGbNQtnw8ZTEfaBSWQEkUcAle7L3M2RZXYcw+wUyagASPQ+AeSlqmtBj2L9bv3w CbKfT4RcDKXZaWzijNJSP6hyGcttBDXJ4K2QEVJwVC+pN9uT+iN8aaf9WnHq1/vEuf3G tkEeEvHBRLcD8epJ9yX4cCR6eiSwKDmIR85qElV8UXu49n7hTro1nFsHO7mq9AMMFV+r 7/4uIkExS+xXg0hkOXitawWJCubhud9JMz20dK7VVbop2jn3lKsOvaA7VQjcS555mUs0 yv5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=LQwbwBbD; 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=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id by2si1096046edb.324.2020.09.09.02.03.04; Wed, 09 Sep 2020 02:03:27 -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=@redhat.com header.s=mimecast20190719 header.b=LQwbwBbD; 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=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726440AbgIIJC3 (ORCPT + 99 others); Wed, 9 Sep 2020 05:02:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:42265 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725917AbgIIJC3 (ORCPT ); Wed, 9 Sep 2020 05:02:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1599642148; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UwK/UCn7nj/bDtxyg3u6KBsLtSFGCtiaPO7yxlcqvrQ=; b=LQwbwBbDQTK1dJWqheR46LeuwQe+scys0zvUqDtk2SGjwlMMkXUvadMgC2ANOtf4aEzLv8 +SVcyhiB1rysBlmjig9cs3Xr5VO4CMYt1vdtZJwDoqjBXNCxSmQOQffoIQYcfHZJwRqJ71 0VWcNvVMTPEaZ66RggbTB6sGCP1lHkU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-121-mdNZZnLJOlelVXruIZe3Xg-1; Wed, 09 Sep 2020 05:02:24 -0400 X-MC-Unique: mdNZZnLJOlelVXruIZe3Xg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4C0BC801AE5; Wed, 9 Sep 2020 09:02:21 +0000 (UTC) Received: from [10.72.12.24] (ovpn-12-24.pek2.redhat.com [10.72.12.24]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7BAC560C87; Wed, 9 Sep 2020 09:02:09 +0000 (UTC) Subject: Re: [PATCH] i2c: virtio: add a virtio i2c frontend driver To: Jie Deng , linux-i2c@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org Cc: mst@redhat.com, wsa+renesas@sang-engineering.com, wsa@kernel.org, andriy.shevchenko@linux.intel.com, jarkko.nikula@linux.intel.com, jdelvare@suse.de, Sergey.Semin@baikalelectronics.ru, krzk@kernel.org, rppt@kernel.org, loic.poulain@linaro.org, tali.perry1@gmail.com, bjorn.andersson@linaro.org, shuo.a.liu@intel.com, conghui.chen@intel.com, yu1.wang@intel.com References: <0efc2605c8c06b4b1bf68cbad5536c4a900dc019.1599110284.git.jie.deng@intel.com> From: Jason Wang Message-ID: Date: Wed, 9 Sep 2020 17:02:07 +0800 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: <0efc2605c8c06b4b1bf68cbad5536c4a900dc019.1599110284.git.jie.deng@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020/9/3 下午1:34, Jie Deng wrote: > --- a/drivers/i2c/busses/Makefile > +++ b/drivers/i2c/busses/Makefile > @@ -6,6 +6,9 @@ > # ACPI drivers > obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o > > +# VIRTIO I2C host controller driver > +obj-$(CONFIG_I2C_VIRTIO) += i2c-virtio.o > + > # PC SMBus host controller drivers > obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o > obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o > diff --git a/drivers/i2c/busses/i2c-virtio.c b/drivers/i2c/busses/i2c-virtio.c > new file mode 100644 > index 0000000..47f9fd1 > --- /dev/null > +++ b/drivers/i2c/busses/i2c-virtio.c > @@ -0,0 +1,276 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > +/* > + * Virtio I2C Bus Driver > + * > + * Copyright (c) 2020 Intel Corporation. All rights reserved. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > +#include > + > +#define VIRTIO_I2C_MSG_OK 0 > +#define VIRTIO_I2C_MSG_ERR 1 > + > +/** > + * struct virtio_i2c_hdr - the virtio I2C message header structure > + * @addr: i2c_msg addr, the slave address > + * @flags: i2c_msg flags > + * @len: i2c_msg len > + */ > +struct virtio_i2c_hdr { > + __virtio16 addr; > + __virtio16 flags; > + __virtio16 len; > +} __packed; Btw, this part should belong to uAPI, and you need to define the status in uAPI. Thanks