Hi, I am looking for people who think about working on the linux kernel for quite some time. Typically they do not know how to start, because that is the biggest hurdle. I offer you support about all questions regarding this topic (Limited what I know. But I do have 118 patches in the kernel). You do not need to start with the big mailing list if you are to shy to ask. I also reply personal. You need to have the following skills: - be persistent (most important as Greg said long ago) - be patient - have some sense about computers Here what I propose: We are going to cleanup the driver: https://elixir.bootlin.com/linux/latest/source/drivers/staging/rtl8192e Reason is that this driver is for hardware that is still good available on the market and has a reasonable data throughput. You want to know how we start? Call in the kernel main directory: ./scripts/checkpatch.pl --file drivers/staging/rtl8192e/rtl8192e/*.c CHECK: Avoid CamelCase: <RxPathSelection_SS_TH_low> #1742: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1742: + DM_RxPathSelTable.SS_TH_low = RxPathSelection_SS_TH_low; CHECK: Avoid CamelCase: <RxPathSelection_diff_TH> #1743: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1743: + DM_RxPathSelTable.diff_TH = RxPathSelection_diff_TH; CHECK: spaces preferred around that '&' (ctx:VxV) #1779: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1779: + DM_RxPathSelTable.cck_Rx_path = (rtl92e_readb(dev, 0xa07)&0xf); ^ CHECK: multiple assignments should be avoided #1797: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1797: + max_rssi_index = min_rssi_index = sec_rssi_index = i; CHECK: multiple assignments should be avoided #1798: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1798: + tmp_max_rssi = tmp_min_rssi = tmp_sec_rssi = cur_rf_rssi; CHECK: multiple assignments should be avoided #1804: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1804: + tmp_sec_rssi = tmp_min_rssi = cur_rf_rssi; CHECK: multiple assignments should be avoided #1805: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1805: + sec_rssi_index = min_rssi_index = i; WARNING: Too many leading tabs - consider code refactoring #1881: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1881: + if (tmp_cck_sec_pwdb == WARNING: Too many leading tabs - consider code refactoring #1892: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1892: + if (tmp_cck_sec_pwdb == tmp_cck_min_pwdb) CHECK: Blank lines aren't necessary before a close brace '}' #1899: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1899: + + } CHECK: spaces preferred around that '+' (ctx:VxV) #1915: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1915: + tmp_max_rssi+5; ^ CHECK: spaces preferred around that '<<' (ctx:VxV) #1917: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1917: + 0x1<<min_rssi_index, 0x0); ^ CHECK: spaces preferred around that '<<' (ctx:VxV) #1919: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1919: + 0x1<<min_rssi_index, 0x0); ^ CHECK: spaces preferred around that '<<' (ctx:VxV) #1931: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1931: + DM_RxPathSelTable.cck_Rx_path = (cck_default_Rx<<2) | ^ CHECK: Avoid CamelCase: <rCCK0_AFESetting> #1933: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1933: + rtl92e_set_bb_reg(dev, rCCK0_AFESetting, 0x0f000000, CHECK: spaces preferred around that '>>' (ctx:VxV) #1939: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1939: + if ((DM_RxPathSelTable.disabledRF>>i) & 0x1) { ^ CHECK: Assignment operator '=' should be on the previous line #1949: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1949: + DM_RxPathSelTable.rf_enable_rssi_th[i] + = 100; CHECK: Please don't use multiple blank lines #1964: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1964: + + CHECK: Avoid CamelCase: <Default_Fsync> #1976: FILE: drivers/staging/rtl8192e/rtl8192e/rtl_dm.c:1976: + priv->rtllib->fsync_state = Default_Fsync; ...... I am looking forward to your Emails. Bye Philipp