From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754338AbcHZVhl (ORCPT ); Fri, 26 Aug 2016 17:37:41 -0400 Received: from mail.kernel.org ([198.145.29.136]:51370 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753081AbcHZVhi (ORCPT ); Fri, 26 Aug 2016 17:37:38 -0400 MIME-Version: 1.0 In-Reply-To: <20160826201202.GA27227@amd> References: <20160824232437.9446-1-robh@kernel.org> <20160824232437.9446-6-robh@kernel.org> <20160826201202.GA27227@amd> From: Rob Herring Date: Fri, 26 Aug 2016 16:27:35 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC PATCH 4/6] serio: serport: add support for buffered write and receive To: Pavel Machek Cc: Greg Kroah-Hartman , Marcel Holtmann , Jiri Slaby , Sebastian Reichel , Arnd Bergmann , "Dr . H . Nikolaus Schaller" , Alan Cox , Loic Poulain , Peter Hurley , NeilBrown , Linus Walleij , "open list:BLUETOOTH DRIVERS" , "linux-serial@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 26, 2016 at 3:12 PM, Pavel Machek wrote: > Hi! > >> @@ -133,26 +133,29 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c >> if (!test_bit(SERPORT_ACTIVE, &serport->flags)) >> goto out; >> >> - for (i = 0; i < count; i++) { >> - if (fp) { >> - switch (fp[i]) { >> - case TTY_FRAME: >> - ch_flags = SERIO_FRAME; >> - break; >> - >> - case TTY_PARITY: >> - ch_flags = SERIO_PARITY; >> - break; >> - >> - default: >> - ch_flags = 0; >> - break; >> + if (serio_buffered_mode_enabled(serport->serio)) { >> + serio_receive_buf(serport->serio, cp, count); > > Elsewhere: > + /* Use buffer receive if the driver provides a callback */ > + if (drv->receive_buf) > + set_bit(SERIO_MODE_BUFFERED, &drv->flags); > > Could we use if (drv->receive_buf) above directly, and not require the > bitfield? I'm allowing for allowing drivers to provide both functions and be able to switch between them. However, I didn't provide any mechanism to do so yet. Rob From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [RFC PATCH 4/6] serio: serport: add support for buffered write and receive Date: Fri, 26 Aug 2016 16:27:35 -0500 Message-ID: References: <20160824232437.9446-1-robh@kernel.org> <20160824232437.9446-6-robh@kernel.org> <20160826201202.GA27227@amd> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <20160826201202.GA27227@amd> Sender: linux-bluetooth-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Pavel Machek Cc: Greg Kroah-Hartman , Marcel Holtmann , Jiri Slaby , Sebastian Reichel , Arnd Bergmann , "Dr . H . Nikolaus Schaller" , Alan Cox , Loic Poulain , Peter Hurley , NeilBrown , Linus Walleij , "open list:BLUETOOTH DRIVERS" , "linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" List-Id: linux-serial@vger.kernel.org On Fri, Aug 26, 2016 at 3:12 PM, Pavel Machek wrote: > Hi! > >> @@ -133,26 +133,29 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c >> if (!test_bit(SERPORT_ACTIVE, &serport->flags)) >> goto out; >> >> - for (i = 0; i < count; i++) { >> - if (fp) { >> - switch (fp[i]) { >> - case TTY_FRAME: >> - ch_flags = SERIO_FRAME; >> - break; >> - >> - case TTY_PARITY: >> - ch_flags = SERIO_PARITY; >> - break; >> - >> - default: >> - ch_flags = 0; >> - break; >> + if (serio_buffered_mode_enabled(serport->serio)) { >> + serio_receive_buf(serport->serio, cp, count); > > Elsewhere: > + /* Use buffer receive if the driver provides a callback */ > + if (drv->receive_buf) > + set_bit(SERIO_MODE_BUFFERED, &drv->flags); > > Could we use if (drv->receive_buf) above directly, and not require the > bitfield? I'm allowing for allowing drivers to provide both functions and be able to switch between them. However, I didn't provide any mechanism to do so yet. Rob