From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Subject: Re: [v3,1/4] mfd: cros_ec: Add cros_ec_cmd_xfer_status helper Date: Sat, 18 Jun 2016 10:09:46 -0700 Message-ID: <5765805A.5070407@roeck-us.net> References: <1466193495-95801-2-git-send-email-briannorris@chromium.org> <20160617214151.GA1400@roeck-us.net> <20160618010855.GA67034@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20160618010855.GA67034@google.com> Sender: linux-kernel-owner@vger.kernel.org To: Brian Norris Cc: Lee Jones , Thierry Reding , Olof Johansson , linux-kernel@vger.kernel.org, Doug Anderson , Brian Norris , linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, Boris Brezillon , Stephen Barber , Javier Martinez Canillas , Benson Leung , Enric Balletbo , Randall Spangler , Shawn Nematbakhsh , Dmitry Torokhov , Todd Broch , Gwendal Grignou , Tomeu Vizoso List-Id: devicetree@vger.kernel.org On 06/17/2016 06:08 PM, Brian Norris wrote: > On Fri, Jun 17, 2016 at 02:41:51PM -0700, Guenter Roeck wrote: >> On Fri, Jun 17, 2016 at 12:58:12PM -0700, Brian Norris wrote: >>> +int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev, >>> + struct cros_ec_command *msg) >>> +{ >>> + int ret; >>> + >>> + ret = cros_ec_cmd_xfer(ec_dev, msg); >>> + if (ret < 0) >>> + dev_err(ec_dev->dev, "Command xfer error (err:%d)\n", ret); >>> + else if (msg->result != EC_RES_SUCCESS) >>> + return -EECRESULT - msg->result; >> >> I have been wondering about the error return codes here, and if they should be >> converted to standard Linux error codes. For example, I just hit error -1003 >> with a driver I am working on. This translates to EC_RES_INVALID_PARAM, or, >> in Linux terms, -EINVAL. I think it would be better to use standard error >> codes, especially since some of the errors are logged. > > How do you propose we do that? Do all of the following become EINVAL? > > EC_RES_INVALID_COMMAND -EOPNOTSUPP > EC_RES_INVALID_PARAM -EINVAL or -EBADMSG > EC_RES_INVALID_VERSION -EPROTO or -EBADR or -EBADE or -EBADRQC or -EPROTOOPT > EC_RES_INVALID_HEADER -EPROTO or -EBADR or -EBADE Doesn't look that bad to me. Also, the raw error could still be logged, for example with dev_dbg(). Guenter > > We lose a lot of information that way. And particularly, cros_ec_num_pwms() > won't be able to count as accurately. But I can just go back to not using this > API if that's what you'd like... > > Brian >