[PATCH v4 3/3] drm/loongson: Add interrupt driver for LS7A

2021-07-30 Thread lichenyang
Add LS7A DC vsync interrupt enable and close function, and
register irq_handler function interface.
Add vbrank event processing flow.

v4:
- Replace drm_irq_install with devm_request_irq.
- Delete the irq_ hooks in drm_driver.

v3:
- Improve code readability.
- Use the to_pci_dev function to get pci_dev.

v2:
- Added error handling in the loongson_drm_load function.

Signed-off-by: lichenyang 
---
 drivers/gpu/drm/loongson/Makefile|  1 +
 drivers/gpu/drm/loongson/loongson_crtc.c | 40 +++-
 drivers/gpu/drm/loongson/loongson_drv.c  |  6 ++
 drivers/gpu/drm/loongson/loongson_drv.h  | 12 
 drivers/gpu/drm/loongson/loongson_irq.c  | 80 
 5 files changed, 137 insertions(+), 2 deletions(-)
 create mode 100644 drivers/gpu/drm/loongson/loongson_irq.c

diff --git a/drivers/gpu/drm/loongson/Makefile 
b/drivers/gpu/drm/loongson/Makefile
index a842e85cf6ca..a046c42d8273 100644
--- a/drivers/gpu/drm/loongson/Makefile
+++ b/drivers/gpu/drm/loongson/Makefile
@@ -11,5 +11,6 @@ loongson-y := loongson_connector.o \
loongson_drv.o \
loongson_encoder.o \
loongson_i2c.o \
+   loongson_irq.o \
loongson_plane.o
 obj-$(CONFIG_DRM_LOONGSON) += loongson.o
diff --git a/drivers/gpu/drm/loongson/loongson_crtc.c 
b/drivers/gpu/drm/loongson/loongson_crtc.c
index b9eee34deab2..a0d13b641f85 100644
--- a/drivers/gpu/drm/loongson/loongson_crtc.c
+++ b/drivers/gpu/drm/loongson/loongson_crtc.c
@@ -154,19 +154,25 @@ static void loongson_crtc_mode_set_nofb(struct drm_crtc 
*crtc)
 }
 
 static void loongson_crtc_atomic_enable(struct drm_crtc *crtc,
-   struct drm_atomic_state *old_state)
+   struct drm_atomic_state *old_crtc_state)
 {
struct drm_device *dev = crtc->dev;
struct loongson_device *ldev = to_loongson_device(dev);
struct loongson_crtc *lcrtc = to_loongson_crtc(crtc);
u32 reg_offset = lcrtc->reg_offset;
 
+   if (lcrtc->cfg_reg & CFG_ENABLE)
+   goto vblank_on;
+
lcrtc->cfg_reg |= CFG_ENABLE;
ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg);
+
+vblank_on:
+   drm_crtc_vblank_on(crtc);
 }
 
 static void loongson_crtc_atomic_disable(struct drm_crtc *crtc,
-struct drm_atomic_state *old_state)
+struct drm_atomic_state 
*old_crtc_state)
 {
struct drm_device *dev = crtc->dev;
struct loongson_device *ldev = to_loongson_device(dev);
@@ -175,6 +181,33 @@ static void loongson_crtc_atomic_disable(struct drm_crtc 
*crtc,
 
lcrtc->cfg_reg &= ~CFG_ENABLE;
ls7a_mm_wreg(ldev, FB_CFG_REG + reg_offset, lcrtc->cfg_reg);
+
+   spin_lock_irq(&crtc->dev->event_lock);
+   if (crtc->state->event) {
+   drm_crtc_send_vblank_event(crtc, crtc->state->event);
+   crtc->state->event = NULL;
+   }
+   spin_unlock_irq(&crtc->dev->event_lock);
+
+   drm_crtc_vblank_off(crtc);
+}
+
+static void loongson_crtc_atomic_flush(struct drm_crtc *crtc,
+  struct drm_atomic_state *state)
+{
+   struct drm_pending_vblank_event *event = crtc->state->event;
+
+   if (!event)
+   return;
+
+   crtc->state->event = NULL;
+
+   spin_lock_irq(&crtc->dev->event_lock);
+   if (drm_crtc_vblank_get(crtc) == 0)
+   drm_crtc_arm_vblank_event(crtc, event);
+   else
+   drm_crtc_send_vblank_event(crtc, event);
+   spin_unlock_irq(&crtc->dev->event_lock);
 }
 
 static enum drm_mode_status loongson_mode_valid(struct drm_crtc *crtc,
@@ -194,6 +227,7 @@ static enum drm_mode_status loongson_mode_valid(struct 
drm_crtc *crtc,
 
 static const struct drm_crtc_helper_funcs loongson_crtc_helper_funcs = {
.mode_valid = loongson_mode_valid,
+   .atomic_flush = loongson_crtc_atomic_flush,
.atomic_enable = loongson_crtc_atomic_enable,
.atomic_disable = loongson_crtc_atomic_disable,
.mode_set_nofb = loongson_crtc_mode_set_nofb,
@@ -205,6 +239,8 @@ static const struct drm_crtc_funcs loongson_crtc_funcs = {
.reset = drm_atomic_helper_crtc_reset,
.atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state,
.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
+   .enable_vblank = loongson_crtc_enable_vblank,
+   .disable_vblank = loongson_crtc_disable_vblank,
 };
 
 int loongson_crtc_init(struct loongson_device *ldev, int index)
diff --git a/drivers/gpu/drm/loongson/loongson_drv.c 
b/drivers/gpu/drm/loongson/loongson_drv.c
index 4c02cbe1a5e6..67676fe61cad 100644
--- a/drivers/gpu/drm/loongson/loongson_drv.c
+++ b/drivers/gpu/drm/loongson/loongson_drv.c
@@ -164,6 +164,12 @@ static int loongson_driver_init(struct drm_device *dev)
goto err;
}
 
+   ret = loongson_irq_init(ldev);
+   if (ret) {
+   dev_err(dev->dev

[PATCH v4 2/3] drm/loongson: Add GPIO and I2C driver for loongson drm.

2021-07-30 Thread lichenyang
Implement use GPIO and I2C driver to detect connector
and fetch EDID via DDC.

v3:
- Change some driver log to the drm_ version.

v2:
- Optimize the error handling process.
- Delete loongson_i2c_bus_match and loongson_i2c_add function.
- Optimize part of the code flow.

Signed-off-by: lichenyang 
---
 drivers/gpu/drm/loongson/Makefile |   1 +
 drivers/gpu/drm/loongson/loongson_connector.c |  59 -
 drivers/gpu/drm/loongson/loongson_drv.c   |  15 +-
 drivers/gpu/drm/loongson/loongson_drv.h   |  11 +
 drivers/gpu/drm/loongson/loongson_i2c.c   | 249 ++
 drivers/gpu/drm/loongson/loongson_i2c.h   |  36 +++
 6 files changed, 366 insertions(+), 5 deletions(-)
 create mode 100644 drivers/gpu/drm/loongson/loongson_i2c.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_i2c.h

diff --git a/drivers/gpu/drm/loongson/Makefile 
b/drivers/gpu/drm/loongson/Makefile
index d73ad44fe1d5..a842e85cf6ca 100644
--- a/drivers/gpu/drm/loongson/Makefile
+++ b/drivers/gpu/drm/loongson/Makefile
@@ -10,5 +10,6 @@ loongson-y := loongson_connector.o \
loongson_device.o \
loongson_drv.o \
loongson_encoder.o \
+   loongson_i2c.o \
loongson_plane.o
 obj-$(CONFIG_DRM_LOONGSON) += loongson.o
diff --git a/drivers/gpu/drm/loongson/loongson_connector.c 
b/drivers/gpu/drm/loongson/loongson_connector.c
index a4762d8f9987..bdf7d651d6d1 100644
--- a/drivers/gpu/drm/loongson/loongson_connector.c
+++ b/drivers/gpu/drm/loongson/loongson_connector.c
@@ -4,12 +4,56 @@
 
 static int loongson_get_modes(struct drm_connector *connector)
 {
-   int count;
+   struct drm_device *dev = connector->dev;
+   struct loongson_connector *lconnector =
+   to_loongson_connector(connector);
+   struct i2c_adapter *adapter = lconnector->i2c->adapter;
+   struct edid *edid = NULL;
+   u32 ret;
 
-   count = drm_add_modes_noedid(connector, 1920, 1080);
-   drm_set_preferred_mode(connector, 1024, 768);
+   edid = drm_get_edid(connector, adapter);
+   if (edid) {
+   drm_connector_update_edid_property(connector, edid);
+   ret = drm_add_edid_modes(connector, edid);
+   } else {
+   drm_warn(dev, "Failed to read EDID\n");
+   ret = drm_add_modes_noedid(connector, 1920, 1080);
+   drm_set_preferred_mode(connector, 1024, 768);
+   }
 
-   return count;
+   return ret;
+}
+
+static bool is_connected(struct loongson_connector *lconnector)
+{
+   struct i2c_adapter *adapter = lconnector->i2c->adapter;
+   unsigned char start = 0x0;
+   struct i2c_msg msgs = {
+   .addr = DDC_ADDR,
+   .flags = 0,
+   .len = 1,
+   .buf = &start,
+   };
+
+   if (!lconnector->i2c)
+   return false;
+
+   if (i2c_transfer(adapter, &msgs, 1) != 1)
+   return false;
+
+   return true;
+}
+
+static enum drm_connector_status
+loongson_detect(struct drm_connector *connector, bool force)
+{
+   struct loongson_connector *lconnector =
+   to_loongson_connector(connector);
+
+   if (is_connected(lconnector))
+   return connector_status_connected;
+
+   return connector_status_disconnected;
 }
 
 static const struct drm_connector_helper_funcs loongson_connector_helper = {
@@ -17,6 +61,7 @@ static const struct drm_connector_helper_funcs 
loongson_connector_helper = {
 };
 
 static const struct drm_connector_funcs loongson_connector_funcs = {
+   .detect = loongson_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.destroy = drm_connector_cleanup,
.reset = drm_atomic_helper_connector_reset,
@@ -36,6 +81,12 @@ int loongson_connector_init(struct loongson_device *ldev, 
int index)
 
lconnector->ldev = ldev;
lconnector->id = index;
+   lconnector->i2c_id = index;
+
+   lconnector->i2c = &ldev->i2c_bus[lconnector->i2c_id];
+   if (!lconnector->i2c)
+   drm_err(dev, "connector-%d match i2c-%d err\n", index,
+   lconnector->i2c_id);
 
ldev->mode_info[index].connector = lconnector;
connector = &lconnector->base;
diff --git a/drivers/gpu/drm/loongson/loongson_drv.c 
b/drivers/gpu/drm/loongson/loongson_drv.c
index 2224a03adc1a..4c02cbe1a5e6 100644
--- a/drivers/gpu/drm/loongson/loongson_drv.c
+++ b/drivers/gpu/drm/loongson/loongson_drv.c
@@ -12,9 +12,10 @@
 
 /* Interface history:
  * 0.1 - original.
+ * 0.2 - add i2c and connector detect.
  */
 #define DRIVER_MAJOR 0
-#define DRIVER_MINOR 1
+#define DRIVER_MINOR 2
 
 static const struct drm_mode_config_funcs loongson_mode_funcs = {
.fb_create = drm_gem_fb_create,
@@ -76,6 +77,18 @@ static int loongson_device_init(struct drm_device *dev)
if (!ldev->io)
return -ENOMEM;
 
+   ret = loongson_dc_gpio_init(ldev);
+   if (ret) {
+   

[PATCH v4 1/3] drm/loongson: Add DRM Driver for Loongson 7A1000 bridge chip

2021-07-30 Thread lichenyang
From: Chenyang Li 

This patch adds an initial DRM driver for the Loongson LS7A1000
bridge chip(LS7A). The LS7A bridge chip contains two display
controllers, support dual display output. The maximum support for
each channel display is to 1920x1080@60Hz.
At present, DC device detection and DRM driver registration are
completed, the crtc/plane/encoder/connector objects has been
implemented.
On Loongson 3A4000 CPU and 7A1000 system, we have achieved the use
of dual screen, and support dual screen clone mode and expansion
mode.

v10:
- Replace the drmm_ version functions.
- Replace the simple_encoder version function.
- Alphabetize file names.

v9:
- Optimize the error handling process.
- Remove the useless flags parameter.
- Fix some incorrect use of variables and constructs.

v8:
- Update the atomic_update function interface.

v7:
- The pixel clock is limited to less than 173000.

v6:
- Remove spin_lock in mmio reg read and write.
- TO_UNCAC is replac with ioremap.
- Fix error arguments in crtc_atomic_enable/disable/mode_valid.

v5:
- Change the name of the chip to LS7A.
- Change magic value in crtc to macros.
- Correct mistakes words.
- Change the register operation function prefix to ls7a.

v4:
- Move the mode_valid function to the crtc.

v3:
- Move the mode_valid function to the connector and optimize it.
- Fix num_crtc calculation method.

v2:
- Complete the case of 32-bit color in CRTC.

Signed-off-by: Chenyang Li 
---
 drivers/gpu/drm/Kconfig   |   2 +
 drivers/gpu/drm/Makefile  |   1 +
 drivers/gpu/drm/loongson/Kconfig  |  14 +
 drivers/gpu/drm/loongson/Makefile |  14 +
 drivers/gpu/drm/loongson/loongson_connector.c |  47 +++
 drivers/gpu/drm/loongson/loongson_crtc.c  | 238 +++
 drivers/gpu/drm/loongson/loongson_device.c|  35 +++
 drivers/gpu/drm/loongson/loongson_drv.c   | 271 ++
 drivers/gpu/drm/loongson/loongson_drv.h   | 149 ++
 drivers/gpu/drm/loongson/loongson_encoder.c   |  21 ++
 drivers/gpu/drm/loongson/loongson_plane.c |  92 ++
 11 files changed, 884 insertions(+)
 create mode 100644 drivers/gpu/drm/loongson/Kconfig
 create mode 100644 drivers/gpu/drm/loongson/Makefile
 create mode 100644 drivers/gpu/drm/loongson/loongson_connector.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_crtc.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_device.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_drv.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_drv.h
 create mode 100644 drivers/gpu/drm/loongson/loongson_encoder.c
 create mode 100644 drivers/gpu/drm/loongson/loongson_plane.c

diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 7ff89690a976..08562d9be6e3 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -365,6 +365,8 @@ source "drivers/gpu/drm/xen/Kconfig"
 
 source "drivers/gpu/drm/vboxvideo/Kconfig"
 
+source "drivers/gpu/drm/loongson/Kconfig"
+
 source "drivers/gpu/drm/lima/Kconfig"
 
 source "drivers/gpu/drm/panfrost/Kconfig"
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index a118692a6df7..29c05b8cf2ad 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -119,6 +119,7 @@ obj-$(CONFIG_DRM_PL111) += pl111/
 obj-$(CONFIG_DRM_TVE200) += tve200/
 obj-$(CONFIG_DRM_XEN) += xen/
 obj-$(CONFIG_DRM_VBOXVIDEO) += vboxvideo/
+obj-$(CONFIG_DRM_LOONGSON) += loongson/
 obj-$(CONFIG_DRM_LIMA)  += lima/
 obj-$(CONFIG_DRM_PANFROST) += panfrost/
 obj-$(CONFIG_DRM_ASPEED_GFX) += aspeed/
diff --git a/drivers/gpu/drm/loongson/Kconfig b/drivers/gpu/drm/loongson/Kconfig
new file mode 100644
index ..3cf42a4cca08
--- /dev/null
+++ b/drivers/gpu/drm/loongson/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config DRM_LOONGSON
+   tristate "DRM support for LS7A bridge chipset"
+   depends on DRM && PCI
+   depends on CPU_LOONGSON64
+   select DRM_KMS_HELPER
+   select DRM_VRAM_HELPER
+   select DRM_TTM
+   select DRM_TTM_HELPER
+   default n
+   help
+ Support the display controllers found on the Loongson LS7A
+ bridge.
diff --git a/drivers/gpu/drm/loongson/Makefile 
b/drivers/gpu/drm/loongson/Makefile
new file mode 100644
index ..d73ad44fe1d5
--- /dev/null
+++ b/drivers/gpu/drm/loongson/Makefile
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Makefile for loongson drm drivers.
+# This driver provides support for the
+# Direct Rendering Infrastructure (DRI)
+
+ccflags-y := -Iinclude/drm
+loongson-y := loongson_connector.o \
+   loongson_crtc.o \
+   loongson_device.o \
+   loongson_drv.o \
+   loongson_encoder.o \
+   loongson_plane.o
+obj-$(CONFIG_DRM_LOONGSON) += loongson.o
diff --git a/drivers/gpu/drm/loongson/loongson_connector.c 
b/drivers/gpu/drm/loongson/loongson_connector.c
new file mode 100644
index ..a4762d8f9987
--- /dev/null
+++ b/drivers/gpu/dr

[staging:staging-testing 160/164] drivers/staging/r8188eu/core/rtw_mlme.c:762:24: warning: variable 'pmlmeext' set but not used

2021-07-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
staging-testing
head:   9b6818c1ac0e545c632265e4bf0aa1171347ebea
commit: 78f2b22efc8f7649dcde44143e78149457f1162c [160/164] staging: r8188eu: 
fix include directory mess
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# 
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?id=78f2b22efc8f7649dcde44143e78149457f1162c
git remote add staging 
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
git fetch --no-tags staging staging-testing
git checkout 78f2b22efc8f7649dcde44143e78149457f1162c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross 
ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   drivers/staging/r8188eu/core/rtw_mlme.c: In function 
'rtw_surveydone_event_callback':
>> drivers/staging/r8188eu/core/rtw_mlme.c:762:24: warning: variable 'pmlmeext' 
>> set but not used [-Wunused-but-set-variable]
 762 |  struct mlme_ext_priv *pmlmeext;
 |^~~~
   In file included from drivers/staging/r8188eu/core/../include/drv_types.h:25,
from drivers/staging/r8188eu/core/rtw_mlme.c:8:
   At top level:
   drivers/staging/r8188eu/core/../include/rtw_security.h:312:28: warning: 'K' 
defined but not used [-Wunused-const-variable=]
 312 | static const unsigned long K[64] = {
 |^
--
   drivers/staging/r8188eu/core/rtw_sta_mgt.c: In function 
'rtw_mfree_all_stainfo':
>> drivers/staging/r8188eu/core/rtw_sta_mgt.c:169:19: warning: variable 'psta' 
>> set but not used [-Wunused-but-set-variable]
 169 |  struct sta_info *psta = NULL;
 |   ^~~~
   In file included from drivers/staging/r8188eu/core/../include/drv_types.h:25,
from drivers/staging/r8188eu/core/rtw_sta_mgt.c:7:
   At top level:
   drivers/staging/r8188eu/core/../include/rtw_security.h:312:28: warning: 'K' 
defined but not used [-Wunused-const-variable=]
 312 | static const unsigned long K[64] = {
 |^
--
   drivers/staging/r8188eu/hal/rtl8188eu_recv.c: In function 
'rtl8188eu_init_recv_priv':
>> drivers/staging/r8188eu/hal/rtl8188eu_recv.c:41:8: warning: cast between 
>> incompatible function types from 'void (*)(void *)' to 'void (*)(long 
>> unsigned int)' [-Wcast-function-type]
  41 |(void(*)(unsigned long))rtl8188eu_recv_tasklet,
 |^
   In file included from drivers/staging/r8188eu/hal/../include/drv_types.h:25,
from drivers/staging/r8188eu/hal/rtl8188eu_recv.c:6:
   At top level:
   drivers/staging/r8188eu/hal/../include/rtw_security.h:312:28: warning: 'K' 
defined but not used [-Wunused-const-variable=]
 312 | static const unsigned long K[64] = {
 |^
--
   drivers/staging/r8188eu/hal/rtl8188eu_xmit.c: In function 
'rtl8188eu_init_xmit_priv':
>> drivers/staging/r8188eu/hal/rtl8188eu_xmit.c:17:8: warning: cast between 
>> incompatible function types from 'void (*)(void *)' to 'void (*)(long 
>> unsigned int)' [-Wcast-function-type]
  17 |(void(*)(unsigned long))rtl8188eu_xmit_tasklet,
 |^
   In file included from drivers/staging/r8188eu/hal/../include/drv_types.h:25,
from drivers/staging/r8188eu/hal/rtl8188eu_xmit.c:6:
   At top level:
   drivers/staging/r8188eu/hal/../include/rtw_security.h:312:28: warning: 'K' 
defined but not used [-Wunused-const-variable=]
 312 | static const unsigned long K[64] = {
 |^
--
   drivers/staging/r8188eu/os_dep/osdep_service.c: In function 'rtw_buf_update':
>> drivers/staging/r8188eu/os_dep/osdep_service.c:393:6: warning: variable 
>> 'ori_len' set but not used [-Wunused-but-set-variable]
 393 |  u32 ori_len = 0, dup_len = 0;
 |  ^~~
   In file included from 
drivers/staging/r8188eu/os_dep/../include/drv_types.h:25,
from drivers/staging/r8188eu/os_dep/osdep_service.c:7:
   At top level:
   drivers/staging/r8188eu/os_dep/../include/rtw_security.h:312:28: warning: 
'K' defined but not used [-Wunused-const-variable=]
 312 | static const unsigned long K[64] = {
 |^
--
>> drivers/staging/r8188eu/core/rtw_security.c:1666: warning: This comment 
>> starts with '/**', but isn't a kernel-doc comment. Refer 
>> Documentation/doc-guide/kernel-doc.rst
* Expand the cipher key into the encryption key schedule.
   drivers/staging/r8188eu/core/rtw_security.c:1691: warning: Function 
para

[staging:staging-next] BUILD SUCCESS WITH WARNING 7aaabc37943f383ec8d8e51b7fc43ae60fac4206

2021-07-30 Thread kernel test robot
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
staging-next
branch HEAD: 7aaabc37943f383ec8d8e51b7fc43ae60fac4206  staging/vc04_services: 
Remove all strcpy() uses in favor of strscpy()

possible Warning in current branch:

drivers/misc/hi6421v600-irq.c:249:2-9: line 249 is redundant because 
platform_get_irq() already prints an error

Warning ids grouped by kconfigs:

gcc_recent_errors
|-- i386-randconfig-c001-20210730
|   `-- 
drivers-misc-hi6421v600-irq.c:line-is-redundant-because-platform_get_irq()-already-prints-an-error
|-- m68k-randconfig-c003-20210730
|   `-- 
drivers-misc-hi6421v600-irq.c:line-is-redundant-because-platform_get_irq()-already-prints-an-error
|-- nds32-randconfig-c004-20210730
|   `-- 
drivers-misc-hi6421v600-irq.c:line-is-redundant-because-platform_get_irq()-already-prints-an-error
`-- x86_64-randconfig-c002-20210730
`-- 
drivers-misc-hi6421v600-irq.c:line-is-redundant-because-platform_get_irq()-already-prints-an-error

elapsed time: 1720m

configs tested: 140
configs skipped: 3

gcc tested configs:
arm defconfig
arm64allyesconfig
arm64   defconfig
arm  allyesconfig
arm  allmodconfig
i386 randconfig-c001-20210730
i386 randconfig-c001-20210728
sh  sh7785lcr_32bit_defconfig
m68kstmark2_defconfig
sh   sh7770_generic_defconfig
powerpc   currituck_defconfig
mips   ip32_defconfig
h8300   defconfig
mips cobalt_defconfig
armclps711x_defconfig
arm bcm2835_defconfig
m68km5307c3_defconfig
sh  sdk7786_defconfig
mips mpc30x_defconfig
mips   ci20_defconfig
arm socfpga_defconfig
arm   h3600_defconfig
powerpcklondike_defconfig
arm  footbridge_defconfig
armmps2_defconfig
sh  defconfig
powerpc   bluestone_defconfig
openriscdefconfig
arm   milbeaut_m10v_defconfig
microblaze  defconfig
nios2 10m50_defconfig
sh  r7780mp_defconfig
arm palmz72_defconfig
powerpc tqm8540_defconfig
powerpc mpc8315_rdb_defconfig
m68kmvme16x_defconfig
mips cu1000-neo_defconfig
powerpc pseries_defconfig
alphaallyesconfig
x86_64allnoconfig
ia64 allmodconfig
ia64defconfig
ia64 allyesconfig
m68k allmodconfig
m68kdefconfig
m68k allyesconfig
nios2   defconfig
arc  allyesconfig
nds32 allnoconfig
nds32   defconfig
nios2allyesconfig
cskydefconfig
alpha   defconfig
xtensa   allyesconfig
h8300allyesconfig
arc defconfig
sh   allmodconfig
parisc  defconfig
s390 allyesconfig
s390 allmodconfig
parisc   allyesconfig
s390defconfig
i386 allyesconfig
sparcallyesconfig
sparc   defconfig
i386defconfig
mips allyesconfig
mips allmodconfig
powerpc  allyesconfig
powerpc  allmodconfig
powerpc   allnoconfig
x86_64   randconfig-a006-20210728
x86_64   randconfig-a003-20210728
x86_64   randconfig-a001-20210728
x86_64   randconfig-a004-20210728
x86_64   randconfig-a005-20210728
x86_64   randconfig-a002-20210728
i386 randconfig-a005-20210728
i386 randconfig-a003-20210728
i386 randconfig-a004-20210728
i386 randconfig-a002-20210728
i386 randconfig-a001-20210728
i386 randconfig-a006-20210728
i386 randconfig-a005-20210730
i386 randconfig-a004-20210730
i386

[staging:staging-testing] BUILD SUCCESS WITH WARNING 9b6818c1ac0e545c632265e4bf0aa1171347ebea

2021-07-30 Thread kernel test robot
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
staging-testing
branch HEAD: 9b6818c1ac0e545c632265e4bf0aa1171347ebea  staging: rtl8723bs: put 
condition parentheses at the end of a line

Warning reports:

https://lore.kernel.org/lkml/202107310213.wgo8czvi-...@intel.com

Warning in current branch:

drivers/staging/r8188eu/core/rtw_ieee80211.c:938: warning: expecting prototype 
for ieee802_11_parse_elems(). Prototype was for rtw_ieee802_11_parse_elems() 
instead
drivers/staging/r8188eu/core/rtw_mlme.c:762:24: warning: variable 'pmlmeext' 
set but not used [-Wunused-but-set-variable]
drivers/staging/r8188eu/core/rtw_security.c:1666: warning: This comment starts 
with '/**', but isn't a kernel-doc comment. Refer 
Documentation/doc-guide/kernel-doc.rst
drivers/staging/r8188eu/core/rtw_security.c:1691: warning: expecting prototype 
for omac1_aes_128(). Prototype was for rtw_use_tkipkey_handler() instead
drivers/staging/r8188eu/core/rtw_sta_mgt.c:169:19: warning: variable 'psta' set 
but not used [-Wunused-but-set-variable]
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:104: warning: expecting prototype 
for Function(). Prototype was for rtl8188e_PHY_SetBBReg() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:144: warning: expecting prototype 
for Function(). Prototype was for phy_RFSerialRead() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:243: warning: expecting prototype 
for Function(). Prototype was for phy_RFSerialWrite() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:287: warning: expecting prototype 
for Function(). Prototype was for rtl8188e_PHY_QueryRFReg() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:323: warning: expecting prototype 
for Function(). Prototype was for rtl8188e_PHY_SetRFReg() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:389: warning: expecting prototype 
for Function(). Prototype was for phy_InitBBRFRegisterDefinition() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:46: warning: expecting prototype 
for Function(). Prototype was for phy_CalculateBitShift() instead
drivers/staging/r8188eu/hal/rtl8188e_phycfg.c:76: warning: expecting prototype 
for Function(). Prototype was for rtl8188e_PHY_QueryBBReg() instead
drivers/staging/r8188eu/hal/rtl8188eu_recv.c:41:8: warning: cast between 
incompatible function types from 'void (*)(void *)' to 'void (*)(long unsigned 
int)' [-Wcast-function-type]
drivers/staging/r8188eu/hal/rtl8188eu_xmit.c:17:8: warning: cast between 
incompatible function types from 'void (*)(void *)' to 'void (*)(long unsigned 
int)' [-Wcast-function-type]
drivers/staging/r8188eu/os_dep/ioctl_linux.c:110: warning: expecting prototype 
for hwaddr_aton(). Prototype was for hwaddr_aton_i() instead
drivers/staging/r8188eu/os_dep/osdep_service.c:393:6: warning: variable 
'ori_len' set but not used [-Wunused-but-set-variable]
drivers/staging/r8188eu/os_dep/rtw_android.c:53: warning: This comment starts 
with '/**', but isn't a kernel-doc comment. Refer 
Documentation/doc-guide/kernel-doc.rst

Warning ids grouped by kconfigs:

gcc_recent_errors
|-- alpha-allyesconfig
|   |-- 
drivers-staging-r8188eu-core-rtw_ieee80211.c:warning:expecting-prototype-for-ieee802_11_parse_elems().-Prototype-was-for-rtw_ieee802_11_parse_elems()-instead
|   |-- 
drivers-staging-r8188eu-core-rtw_mlme.c:warning:variable-pmlmeext-set-but-not-used
|   |-- 
drivers-staging-r8188eu-core-rtw_security.c:warning:This-comment-starts-with-but-isn-t-a-kernel-doc-comment.-Refer-Documentation-doc-guide-kernel-doc.rst
|   |-- 
drivers-staging-r8188eu-core-rtw_security.c:warning:expecting-prototype-for-omac1_aes_128().-Prototype-was-for-rtw_use_tkipkey_handler()-instead
|   |-- 
drivers-staging-r8188eu-core-rtw_sta_mgt.c:warning:variable-psta-set-but-not-used
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-phy_CalculateBitShift()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-phy_InitBBRFRegisterDefinition()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-phy_RFSerialRead()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-phy_RFSerialWrite()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-rtl8188e_PHY_QueryBBReg()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-rtl8188e_PHY_QueryRFReg()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-rtl8188e_PHY_SetBBReg()-instead
|   |-- 
drivers-staging-r8188eu-hal-rtl8188e_phycfg.c:warning:expecting-prototype-for-Function().-Prototype-was-for-rtl8188e_PHY_SetRFReg()-instead
|   |-- 
dr