All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/19] staging: r8188eu: Shorten and simplify calls chain
@ 2021-09-15 12:41 Fabio M. De Francesco
  2021-09-15 12:41 ` [PATCH v5 01/19] staging: r8188eu: remove usb_{read,write}_mem Fabio M. De Francesco
                   ` (18 more replies)
  0 siblings, 19 replies; 24+ messages in thread
From: Fabio M. De Francesco @ 2021-09-15 12:41 UTC (permalink / raw)
  To: Larry Finger, Philip Potter, Greg Kroah-Hartman, Pavel Skripkin,
	linux-staging, linux-kernel, David Laight, Dan Carpenter
  Cc: Fabio M. De Francesco

io_ops abstraction is useless in this driver, since there is only one ops
registration. Without io_ops we can get rid of indirect calls mess and
shorten the calls chain.

Shorten the calls chain of rtw_read8/16/32() down to the actual reads.
For this purpose unify the three usb_read8/16/32 into the new
usb_read(); make the latter parameterizable with 'size'; embed most of
the code of usbctrl_vendorreq() into usb_read() and use in it the new
usb_control_msg_recv() API of USB Core.

Shorten the calls chain of rtw_write8/16/32() down to the actual writes.
For this purpose unify the four usb_write8/16/32/N() into the new
usb_write(); make the latter parameterizable with 'size'; embed most of
the code of usbctrl_vendorreq() into usb_write() and use in it the new
usb_control_msg_send() API of USB Core.

The code with the modifications was thoroughly tested by Pavel Skripkin
using a TP-Link TL-WN722N v2 / v3 [Realtek RTL8188EUS] and by Fabio M.
De Francesco using a ASUSTek Computer, Inc. Realtek 8188EUS [USB-N10 Nano].

Changelog:

v4->v5:
        - 1-14:
                No changes;
        - 15-16:
                Fix minor formatting issues and use "Reverse Xmas Tree" style,
                according to suggestions by David Laight and Dan Carpenter;
        - 17-18:
                Pavel Skripkin found logical errors in the checks of the
                values returned by usb_control_msg_{recv,send}(), so fix them;
                Dan Carpenter suggested to do error handling before success
                handling, so change the code accordingly;
        - 19:
                Add this patch in order to get rid of the shared buffer in
                usb_read() and usb_write() and remove this field from struct
                "dvobj_priv".

v3->v4:
        - 1-14:
                Split a patch into fourteen;
        - 15-16:
                Add these patches for clean-ups of the code that is going to be
                reused in 17-18/18;
        - 17-18:
                Make some changes according to a first review of Greg
                Kroah-Hartman; furthermore, remove the unnecessary while loop
                and a couple of if' test; handle the errors returned by
                usb_control_msg_recv().

v2->v3:
        - 1:
                No changes;
        - 3:
                Fix the version number of the patch.

v1->v2:
        - 1:
                No changes;
        - 3:
                Replace parameter REALTEK_USB_VENQT_READ with REALTEK_USB_VENQT_WRITE
                in usb_control_msg_send(). More in-depth explanation at
                https://lore.kernel.org/lkml/2791328.7pjKATJfGa@localhost.localdomain/T/#m1fc1ab2f7c1f463049ad88d5df5bb1b107b37260

v1: https://lore.kernel.org/lkml/20210904150447.14659-1-fmdefrancesco@gmail.com/
v2: https://lore.kernel.org/lkml/20210904212719.11426-1-fmdefrancesco@gmail.com/
v3: https://lore.kernel.org/lkml/20210904220048.12822-1-fmdefrancesco@gmail.com/
v4: https://lore.kernel.org/lkml/20210913181002.16651-1-fmdefrancesco@gmail.com/

Fabio M. De Francesco (4):
  staging: r8188eu: hal: Clean up usbctrl_vendorreq()
  staging: r8188eu: hal: Clean up rtw_read*() and rtw_write*()
  staging: r8188eu: Shorten calls chain of rtw_read8/16/32()
  staging: r8188eu: Shorten calls chain of rtw_write8/16/32/N()

Pavel Skripkin (15):
  staging: r8188eu: remove usb_{read,write}_mem
  staging: r8188eu: remove the helpers of rtw_read8()
  staging: r8188eu: remove the helpers of rtw_read16()
  staging: r8188eu: remove the helpers of rtw_read32()
  staging: r8188eu: remove the helpers of usb_write8
  staging: r8188eu: remove the helpers of usb_write16
  staging: r8188eu: remove the helpers of usb_write32
  staging: r8188eu: remove the helpers of usb_writeN
  staging: r8188eu: remove the helpers of usb_read_port
  staging: r8188eu: remove the helpers of usb_write_port
  staging: r8188eu: remove the helpers of usb_read_port_cancel
  staging: r8188eu: remove the helpers of usb_write_port_cancel
  staging: r8188eu: remove core/rtw_io.c
  staging: remove struct _io_ops
  staging: r8188eu: remove shared buffer for usb requests

 drivers/staging/r8188eu/Makefile              |   1 -
 drivers/staging/r8188eu/core/rtw_io.c         | 299 ------------------
 drivers/staging/r8188eu/hal/usb_halinit.c     |   6 +-
 drivers/staging/r8188eu/hal/usb_ops_linux.c   | 261 ++++++++-------
 drivers/staging/r8188eu/include/drv_types.h   |   5 -
 drivers/staging/r8188eu/include/rtw_io.h      |  89 +-----
 drivers/staging/r8188eu/include/usb_ops.h     |   2 -
 .../staging/r8188eu/include/usb_ops_linux.h   |   8 -
 drivers/staging/r8188eu/os_dep/usb_intf.c     |  37 +--
 .../staging/r8188eu/os_dep/usb_ops_linux.c    |  20 +-
 10 files changed, 166 insertions(+), 562 deletions(-)
 delete mode 100644 drivers/staging/r8188eu/core/rtw_io.c

-- 
2.33.0


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2021-09-15 17:40 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-15 12:41 [PATCH v5 00/19] staging: r8188eu: Shorten and simplify calls chain Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 01/19] staging: r8188eu: remove usb_{read,write}_mem Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 02/19] staging: r8188eu: remove the helpers of rtw_read8() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 03/19] staging: r8188eu: remove the helpers of rtw_read16() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 04/19] staging: r8188eu: remove the helpers of rtw_read32() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 05/19] staging: r8188eu: remove the helpers of usb_write8 Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 06/19] staging: r8188eu: remove the helpers of usb_write16 Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 07/19] staging: r8188eu: remove the helpers of usb_write32 Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 08/19] staging: r8188eu: remove the helpers of usb_writeN() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 09/19] staging: r8188eu: remove the helpers of usb_read_port() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 10/19] staging: r8188eu: remove the helpers of usb_write_port() Fabio M. De Francesco
2021-09-15 16:06   ` Larry Finger
2021-09-15 17:40     ` Pavel Skripkin
2021-09-15 12:41 ` [PATCH v5 11/19] staging: r8188eu: remove the helpers of usb_read_port_cancel() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 12/19] staging: r8188eu: remove the helpers of usb_write_port_cancel() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 13/19] staging: r8188eu: remove core/rtw_io.c Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 14/19] staging: remove struct _io_ops Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 15/19] staging: r8188eu: hal: Clean up usbctrl_vendorreq() Fabio M. De Francesco
2021-09-15 13:53   ` Dan Carpenter
2021-09-15 14:59     ` Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 16/19] staging: r8188eu: hal: Clean up rtw_read*() and rtw_write*() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 17/19] staging: r8188eu: Shorten calls chain of rtw_read8/16/32() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 18/19] staging: r8188eu: Shorten calls chain of rtw_write8/16/32/N() Fabio M. De Francesco
2021-09-15 12:41 ` [PATCH v5 19/19] staging: r8188eu: remove shared buffer for usb requests Fabio M. De Francesco

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.