Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5005093yba; Wed, 10 Apr 2019 09:18:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqxwEJZAiRh2Fm2ve5a2GA2gwWImLUU/34CmyAiIHStbvSMzzW+Nl1/PjcYUHUdRAPTwiXGC X-Received: by 2002:a62:3892:: with SMTP id f140mr44030669pfa.128.1554913119658; Wed, 10 Apr 2019 09:18:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554913119; cv=none; d=google.com; s=arc-20160816; b=F5Wr3ZAcSSnslN43rg9zWbAyNKiWNc3zvI24JC1XsuopraevZMhnDzptmvOc+TmvMe c+OXMuK3gG7jC+MZE0+c/jWT2zm0XUEATEuRBKpcmloTf2wlTiexb+RUr8UlJ5OCyPfj b6y5lEo7DJHyHMVXEThWf3cHALoYbdsGokpZWVvJmab83eokQDbXJ1xHOImRfeyTx0DA dT6J3N7tTzg2xIRD1m8AHHvEkSGAkqbXFu8VlNTn8fxbzbZIt4F86EDshspUbA0eYATD 1UaW8k3NERfIv2s6smuE8Iwrnl+muAZvwygjSkGQ+sv4CqlCJU7WH84DoHgUZXqrT/bz GlrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=dZx0o2O6bRo9EgKQQOxxMtLh9VWY2maG+dgyRyhxfWI=; b=buHK7zuWkbW6EN+FHRTGb7CDBMmUmAc+BcexppTC3UqY2bPlUcnRMosCbIKkm1drMs G8Dm6SL0Klq6wfJkaitxHeEoedqwd2U6JX6AR+HfBoWAO+Lk9S6VZ9J+bcHv1aIH4UYk 8EtVtMG3JOSHWZU6OHaBQuTSp98YWr4P/dQLgw3ukPiqMgIbDjFXWaCHtfD8Gm6DQf2c 3tbFpNu579zkbZNdc9PSGDEwtdTWwIJghLbNbNE2HZyNHncTRmVZRF637VkS50WT22lg 0KOAuXxK4EE9b0tK3Fi6S70YsjE1RS+MNXo4rM8KWR+UF9iJd9xMdky1t42pYporTXKe Vppw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Yj7BLUf6; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q1si32293770pfh.125.2019.04.10.09.18.23; Wed, 10 Apr 2019 09:18:39 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Yj7BLUf6; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732144AbfDJM5f (ORCPT + 99 others); Wed, 10 Apr 2019 08:57:35 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:45439 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728875AbfDJM5e (ORCPT ); Wed, 10 Apr 2019 08:57:34 -0400 Received: by mail-ed1-f66.google.com with SMTP id o26so1911979edv.12 for ; Wed, 10 Apr 2019 05:57:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dZx0o2O6bRo9EgKQQOxxMtLh9VWY2maG+dgyRyhxfWI=; b=Yj7BLUf6pdR67dCM5HlIoA9eB18XipwdFmYFjTiKpPNpqN57eEJCHBSlkFPnMFxHPA 4NsO6QIHqzWVPhyndQwKmvqVouEp36lcMe7kDmNQy1LG1OBviig25sdMuy/wxKB1/ouk dnmwY6cMSA+boNeuXFtOuJYSK+Y1mejpBWb5AAEvBEz5t6XwwBTb6cDzF9AsEdvvYxlu fzJ1kPxxrfInxiMkGHdbmltj/UvpNTf4aPeDAzHxuOhbFffvrWJeH225CC+kfiLsMK8o vkqZ2yjx+3L8/1IyGBeGnqHnnKwz7WNRBi0HXKeEAapBCpV+QI+OVbeKANF6JiJCWSNZ rm/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dZx0o2O6bRo9EgKQQOxxMtLh9VWY2maG+dgyRyhxfWI=; b=nqrO6nUCRx72X+9AtlBJciD/8TVOt36+WVC/WpCdCUt3qmxdOHfPh1EDfTRLl9l5yK DD3o3C8mavCZfBUq1MIHSGaqviA5v08/z15FMFcKkh0lX8B2NczxAbPvBrtnTaKBL1hU DVZlkCED2lPFI8TTu6YgPOy77kLeW6lhhouEyXbAVdx8fvEJvMSY8LOaOHiomHnADMJJ sIbkP+H0hRXjsu4TyXto5YW0+MZ0aj1kfxY4d1UXfS35d3E7nOx6PEy4A6AnLtc7oYtc ExMscsc+F7LZEs71/0cHDBkfVoVJlynWn9KaUb5kWfqziUwKZ+ODJMokpZvwW+fbBIJK SL3g== X-Gm-Message-State: APjAAAWsNsEXk8lCYBJbEg/2cWLu/9fwR+WJjxahqSPcIZB41SPZQXVF iUTIeZFmf069V3kcC/Hufv+17tFwSRZB4TO7rp7HfW5n13A= X-Received: by 2002:a05:6402:12d5:: with SMTP id k21mr12604733edx.75.1554901053253; Wed, 10 Apr 2019 05:57:33 -0700 (PDT) MIME-Version: 1.0 References: <1551362220-99351-1-git-send-email-lipengcheng8@huawei.com> In-Reply-To: <1551362220-99351-1-git-send-email-lipengcheng8@huawei.com> From: Daniel Baluta Date: Wed, 10 Apr 2019 15:57:21 +0300 Message-ID: Subject: Re: [PATCH 1/3] sound: Add hikey960 i2s audio driver To: Pengcheng Li Cc: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , john.stultz@linaro.org, Linux-ALSA , Linux Kernel Mailing List , suzhuangluan@hisilicon.com, kongfei@hisilicon.com, liyuequan@hisilicon.com, cash.qianli@hisilicon.com, huangli295@hisilicon.com, hantanglei@huawei.com, wangyoulin1@hisilicon.com, ninggaoyu@hisilicon.com, xuwei5@huawei.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Pengcheng, Make sure you run ./scripts/checkpatch.pl --strict yourpatchfile.patch On Thu, Feb 28, 2019 at 4:15 PM Pengcheng Li wrote: > > From: Youlin Wang > > Add i2s driver for hisi3660 soc found on the hikey960 board. > Add conpile line in make file. > Technical support by Guangke Ji. Care to add here some documentation pointers to I2S IP on the SOC? > diff --git a/sound/soc/hisilicon/Kconfig b/sound/soc/hisilicon/Kconfig > index 4356d5a..b023ef9 100644 > --- a/sound/soc/hisilicon/Kconfig > +++ b/sound/soc/hisilicon/Kconfig > @@ -1,5 +1,11 @@ > config SND_I2S_HI6210_I2S > - tristate "Hisilicon I2S controller" > + tristate "Hisilicon Hi6210 I2S controller" > + select SND_SOC_GENERIC_DMAENGINE_PCM > + help > + Hisilicon I2S Can you enahance the help text? Something like "I2S controller driver for hisi3600 SoC" > + * Copyright (c) 2001-2021, Huawei Tech. Co., Ltd. 2021? :) IANAL but this looks strange :). > +struct hi3660_i2s { > + struct device *dev; > + struct reset_control *rc; > + int clocks; > + struct regulator *regu_asp; > + struct pinctrl *pctrl; > + struct pinctrl_state *pin_default; > + struct pinctrl_state *pin_idle; > + struct clk *asp_subsys_clk; > + struct snd_soc_dai_driver dai; > + void __iomem *base; > + void __iomem *base_syscon; > + phys_addr_t base_phys; > + struct snd_dmaengine_dai_dma_data dma_data[2]; > + spinlock_t lock; What is this lock used for? Please add some docs. > + int rate; > + int format; > + int bits; > + int channels; > + u32 master; > + u32 status; > +}; > + > +static void update_bits(struct hi3660_i2s *i2s, u32 ofs, u32 reset, u32 set) > +{ > + u32 val = readl(i2s->base + ofs) & ~reset; > + > + writel(val | set, i2s->base + ofs); > +} > + > +static void update_bits_syscon(struct hi3660_i2s *i2s, > + u32 ofs, u32 reset, u32 set) > +{ > + u32 val = readl(i2s->base_syscon + ofs) & ~reset; > + > + writel(val | set, i2s->base_syscon + ofs); > +} Look at the snd_soc_component_update_bits. You can make these two functions following the same pattern for parameters.