Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp125773pxb; Thu, 14 Jan 2021 21:42:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJwo2XxGEZUtRQbuf5F2cTK8d3dCqXx9D6CYoXcZX3dIzrWb86mjSt0B1hPcMhjDdrzwq/Ua X-Received: by 2002:aa7:d494:: with SMTP id b20mr8607745edr.330.1610689344563; Thu, 14 Jan 2021 21:42:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610689344; cv=none; d=google.com; s=arc-20160816; b=P6YH/cnWVGxQOhBXcSvXLWKzQwf3i8SqtaPnZMSwLlrqNJSjKyoZz/WwRTb38e3q5K oL87ncwgl9Egri2vAd6m1AHQy5EQtyvMNWFeRG8wP8biN+IEK+5WznGvXP1UhzPfW6lp TtxNyESuYdv/HOrgrX3jIwH1OkfHGFvJT6bniGdNoEMl2UeDdiG/lSJLDYDX9nrJZUm7 cWvXrbvLgFWq9yhAvm4v78Je5Msn3OsPLRcOXa98trL9bexjhcKJsyPFWFoXszf8z1t2 y/4ONQmC+MjvDlQE6HDYmdMJApLQ+KebcEYg3ymjP23buP8JZYF0KhY8BtAUVMSuyYM5 cn0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=SYPyMMtYoGmTpYo5uTF3sYMQrf2HJmyoPinqb7mUiZI=; b=hZnpqYicmq/yBrnC2z5Zv3rzQkBne6UQ4ZItVGqkFrSoofWSJv2klT/sGFZYL1E4VV N0rWTtU4bZulJpRhuCZ4Y5IrC3jMHZJaPnLBD8jnmWcUvtqzEc6v5ZwDEx2r4sOEWTA5 S7UlbSAp2t9B5XEexSkd3VqjqQEvumZLJuDz9ycolEQfAUju3rCenylmrqVmdaUMlPff u1YalcAuMwPhU7/f1IDs/5j/Bq91hqpOkcYaJtuD4J0N+JS0RkYERaclFYF97Y1B4xc8 u2dKi6BGjpHkuuuQq/L5bnBi3psBcx/vt+xb+7vTrrD2jSobTBFQ7ItnujsY/gESJye2 jb+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=It3W7q21; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cn16si3219151edb.73.2021.01.14.21.41.59; Thu, 14 Jan 2021 21:42:24 -0800 (PST) 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=@chromium.org header.s=google header.b=It3W7q21; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732153AbhAOCdY (ORCPT + 99 others); Thu, 14 Jan 2021 21:33:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732041AbhAOCdX (ORCPT ); Thu, 14 Jan 2021 21:33:23 -0500 Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83721C061757 for ; Thu, 14 Jan 2021 18:32:43 -0800 (PST) Received: by mail-yb1-xb2b.google.com with SMTP id r63so3726725ybf.5 for ; Thu, 14 Jan 2021 18:32:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SYPyMMtYoGmTpYo5uTF3sYMQrf2HJmyoPinqb7mUiZI=; b=It3W7q21Lp2VJEpihDIjXsP05P+kRz+QzKILrRoncxpeI5cMnr8u/W3Kr122Z4lp6g +qJF2Vwqpy1pHLLzKGearweZlWqVZeaqcDYnUlkRuocUNPb+pcm7hAQWWzoeVkOeYlQA JIStW87/30JoU619posHpsslVhRz+dNU9DHLc= 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=SYPyMMtYoGmTpYo5uTF3sYMQrf2HJmyoPinqb7mUiZI=; b=pZ+9jjz9cmQ6lRzfP3IYC9O1qj58cwrKByDnn6ZmTwzmtSNVsY1fZXa4LlPpkWMU1F SndFzJiFG8QIn+yMSNM50l4E6+Vk5+hETepJNpl2Jtics/YEmMv+tNYNHOPk4TtlYCvx jJ/zAuGPvpZylPtFr5UblYfZcEBYw51DCZ359HJLSiM/McuDkuDhFRWZSHHQMg/J/NxC cCmRXdb9gO0W8yd/csoTW9FxRu4/vVpUBDVoVy3sLzn9mO+AuZZvoHun4XoaXf0/vXHx gppdCcS+fzjYAHWhKJ9jEVRC86GEL971iEukiOmofvlhNxT2p/F4Tb1bljm6KFCaY059 issQ== X-Gm-Message-State: AOAM5317035/N5KOJMCoXHyXwBh0CsXfBXFuFwb+5CdFOT5+DCZh5Dz2 qiS95fldmAQnougTuwQRJ7xEFTskU2reqUOB6GQmFw== X-Received: by 2002:a25:3a04:: with SMTP id h4mr14675417yba.285.1610677962683; Thu, 14 Jan 2021 18:32:42 -0800 (PST) MIME-Version: 1.0 References: <20210113172450.v5.1.I025fb861cd5fa0ef5286b7dce514728e9df7ae74@changeid> <20210113172450.v5.2.I38e90f114f0311b8aa3bcfff750ba381c09dd3b6@changeid> <161058820506.3661239.14441197324080899810@swboyd.mtv.corp.google.com> In-Reply-To: <161058820506.3661239.14441197324080899810@swboyd.mtv.corp.google.com> From: Philip Chen Date: Thu, 14 Jan 2021 18:32:31 -0800 Message-ID: Subject: Re: [PATCH v5 2/2] Input: cros-ec-keyb - Expose function row physical map to userspace To: Stephen Boyd Cc: LKML , Dmitry Torokhov , Douglas Anderson , Benson Leung , Enric Balletbo i Serra , Guenter Roeck , Lee Jones , Rajat Jain , linux-input@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 13, 2021 at 5:36 PM Stephen Boyd wrote: > > Quoting Philip Chen (2021-01-13 17:25:13) > > diff --git a/drivers/input/keyboard/cros_ec_keyb.c b/drivers/input/keyboard/cros_ec_keyb.c > > index b379ed7628781..273e3c9ba0b03 100644 > > --- a/drivers/input/keyboard/cros_ec_keyb.c > > +++ b/drivers/input/keyboard/cros_ec_keyb.c > > @@ -578,6 +590,19 @@ static int cros_ec_keyb_register_matrix(struct cros_ec_keyb *ckdev) > > ckdev->idev = idev; > > cros_ec_keyb_compute_valid_keys(ckdev); > > > > + of_property_for_each_u32(dev->of_node, "function-row-physmap", > > + prop, p, key_pos) { > > + if (i >= MAX_NUM_TOP_ROW_KEYS) { > > + dev_err(dev, "Only support up to %d top row keys.\n", > > dev_warn? And drop the period please as we don't add them in the kernel > usually. Done. > > > + MAX_NUM_TOP_ROW_KEYS); > > + break; > > + } > > + ckdev->function_row_physmap[i] = MATRIX_SCAN_CODE( > > Maybe grow some more local variables, like for function_row_physmap so > this can fit on one line? Done. Please take a look at v6. > > row = KEY_ROW(key_pos); > col = KEY_COL(key_pos); > map[i] = MATRIX_SCAN_CODE(row, col, ckdev->row_shift); > > > + KEY_ROW(key_pos), KEY_COL(key_pos), ckdev->row_shift); > > + i++; > > We could remove this and just increment num_function_row_keys instead. > Then that condition check may be a little longer but probably still ok. Done. Please take a look at v6. > > > > + } > > + ckdev->num_function_row_keys = i; > > + > > err = input_register_device(ckdev->idev); > > if (err) { > > dev_err(dev, "cannot register input device\n");