lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 16/18] staging: r8188eu: hal: Clean up rtw_read*() and rtw_write*()
    Date
    Clean up rtw_read{8,16,32}() and rtw_write{8,16,32,N}() in usb_ops_linux.c
    because some of their code will be reused in the following two patches of
    this series. This cleanup is in preparation for shortening the call chains
    of rtw_read{8,16,32}() and rtw_write{8,16,32,N}().
    More insights can be found at
    https://lore.kernel.org/lkml/5319192.FrU0QrjFp7@localhost.localdomain/

    Co-developed-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
    ---

    v3->v4:
    Make this patch.
    v2->v3:
    No changes.
    v1->v2:
    No changes.

    drivers/staging/r8188eu/hal/usb_ops_linux.c | 71 +++++++++++----------
    1 file changed, 36 insertions(+), 35 deletions(-)

    diff --git a/drivers/staging/r8188eu/hal/usb_ops_linux.c b/drivers/staging/r8188eu/hal/usb_ops_linux.c
    index 2c7e92085a6e..04402bab805e 100644
    --- a/drivers/staging/r8188eu/hal/usb_ops_linux.c
    +++ b/drivers/staging/r8188eu/hal/usb_ops_linux.c
    @@ -91,91 +91,92 @@ static int usbctrl_vendorreq(struct intf_hdl *intfhdl, u16 value, void *data, u1

    u8 rtw_read8(struct adapter *adapter, u32 addr)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    u8 data;
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;
    + u16 address = (u16)(addr & 0xffff);

    - usbctrl_vendorreq(pintfhdl, wvalue, &data, 1, REALTEK_USB_VENQT_READ);
    + usbctrl_vendorreq(intfhdl, address, &data, 1, REALTEK_USB_VENQT_READ);

    return data;
    }

    u16 rtw_read16(struct adapter *adapter, u32 addr)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    - __le32 data;
    + __le16 data;
    + u16 address = (u16)(addr & 0xffff);
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    - usbctrl_vendorreq(pintfhdl, wvalue, &data, 2, REALTEK_USB_VENQT_READ);
    + usbctrl_vendorreq(intfhdl, address, &data, 2, REALTEK_USB_VENQT_READ);

    - return (u16)(le32_to_cpu(data) & 0xffff);
    + return le16_to_cpu(data);
    }

    u32 rtw_read32(struct adapter *adapter, u32 addr)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    __le32 data;
    + u16 address = (u16)(addr & 0xffff);
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    - usbctrl_vendorreq(pintfhdl, wvalue, &data, 4, REALTEK_USB_VENQT_READ);
    + usbctrl_vendorreq(intfhdl, address, &data, 4, REALTEK_USB_VENQT_READ);

    return le32_to_cpu(data);
    }

    int rtw_write8(struct adapter *adapter, u32 addr, u8 val)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    int ret;
    + u16 address = (u16)(addr & 0xffff);
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    - ret = usbctrl_vendorreq(pintfhdl, wvalue, &val, 1, REALTEK_USB_VENQT_WRITE);
    + ret = usbctrl_vendorreq(intfhdl, address, &val, 1, REALTEK_USB_VENQT_WRITE);

    return RTW_STATUS_CODE(ret);
    }

    int rtw_write16(struct adapter *adapter, u32 addr, u16 val)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    - __le32 data = cpu_to_le32(val & 0x0000ffff);
    int ret;
    + u16 address = (u16)(addr & 0xffff);
    + __le16 data = cpu_to_le16(val);
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    - ret = usbctrl_vendorreq(pintfhdl, wvalue, &data, 2, REALTEK_USB_VENQT_WRITE);
    + ret = usbctrl_vendorreq(intfhdl, address, &data, 2, REALTEK_USB_VENQT_WRITE);

    return RTW_STATUS_CODE(ret);
    }

    int rtw_write32(struct adapter *adapter, u32 addr, u32 val)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    - __le32 data = cpu_to_le32(val);
    int ret;
    + u16 address = (u16)(addr & 0xffff);
    + __le32 data = cpu_to_le32(val);
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    - ret = usbctrl_vendorreq(pintfhdl, wvalue, &data, 4, REALTEK_USB_VENQT_WRITE);
    + ret = usbctrl_vendorreq(intfhdl, address, &data, 4, REALTEK_USB_VENQT_WRITE);

    return RTW_STATUS_CODE(ret);
    }

    -int rtw_writeN(struct adapter *adapter, u32 addr, u32 length, u8 *pdata)
    +int rtw_writeN(struct adapter *adapter, u32 addr, u32 len, u8 *data)
    {
    - struct io_priv *pio_priv = &adapter->iopriv;
    - struct intf_hdl *pintfhdl = &pio_priv->intf;
    - u16 wvalue = (u16)(addr & 0x0000ffff);
    - u8 buf[VENDOR_CMD_MAX_DATA_LEN] = {0};
    int ret;
    + u16 address = (u16)(addr & 0xffff);
    + u16 length = (u16)(len & 0xffff);
    + u8 buf[VENDOR_CMD_MAX_DATA_LEN] = {0};
    + struct io_priv *io_priv = &adapter->iopriv;
    + struct intf_hdl *intfhdl = &io_priv->intf;

    if (length > VENDOR_CMD_MAX_DATA_LEN)
    return _FAIL;

    - memcpy(buf, pdata, length);
    - ret = usbctrl_vendorreq(pintfhdl, wvalue, buf, (length & 0xffff), REALTEK_USB_VENQT_WRITE);
    + memcpy(buf, data, length);
    + ret = usbctrl_vendorreq(intfhdl, address, buf, length, REALTEK_USB_VENQT_WRITE);

    return RTW_STATUS_CODE(ret);
    }
    --
    2.33.0
    \
     
     \ /
      Last update: 2021-09-13 20:14    [W:4.642 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site