Commit Graph

649516 Commits

Author SHA1 Message Date
Larry Finger
62c228751e Bluetooth:: btrtl: Add support for RTL8723DU
This device is functionally equivalent to the BT part of the RTL8723DE,
uses the same firmware, but the LMP subversion and HCI revision are unique.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I2c4d3cedb5216064d8edc05eb77f240256da3228
2020-12-18 12:47:11 +09:00
Jian-Hong Pan
e35ceef8eb Bluetooth: btrtl: HCI reset on close for Realtek BT chip
Realtek RTL8822BE BT chip on ASUS X420FA cannot be turned on correctly
after on-off several times. Bluetooth daemon sets BT mode failed when
this issue happens. Scanning must be active while turning off for this
bug to be hit.

bluetoothd[1576]: Failed to set mode: Failed (0x03)

If BT is turned off, then turned on again, it works correctly again.

According to the vendor driver, the HCI_QUIRK_RESET_ON_CLOSE flag is set
during probing. So, this patch makes Realtek's BT reset on close to fix
this issue.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=203429
Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
Reviewed-by: Daniel Drake <drake@endlessm.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I764d6c28e43fcbc7eb1a8f3586633be7920155b8
2020-12-18 12:47:06 +09:00
Kai-Heng Feng
6269494db7 Bluetooth: btrtl: Restore old logic to assume firmware is already loaded
Realtek bluetooth may not work after reboot:
[   12.446130] Bluetooth: hci0: RTL: rtl: unknown IC info, lmp subver a99e, hci rev 826c, hci ver 0008

This is a regression introduced by commit 26503ad25d ("Bluetooth:
btrtl: split the device initialization into smaller parts"). The new
logic errors out early when no matching IC info can be found, in this
case it means the firmware is already loaded.

So let's assume the firmware is already loaded when we can't find
matching IC info, like the old logic did.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201921
Fixes: 26503ad25d ("Bluetooth: btrtl: split the device initialization into smaller parts")
Cc: stable@vger.kernel.org # 4.19+
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: Iaecc33c211041dff616fac485ef9af4e80263b38
2020-12-18 12:47:01 +09:00
Alex Lu
dec993200c Bluetooth: btrtl: Add support for RTL8822C with USB interface
This device is included in the RTL8822CU combination wifi and BT part,
as well as the BT part of the RTL8822CE.
The necessary firmware has been submitted to the linux-firmware
project.

Signed-off-by: Alex Lu <alex_lu@realsil.com.cn>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: Ic42028110646bb55c604d3e6042a43b34ccf5501
2020-12-18 12:46:56 +09:00
Colin Ian King
663e9c89ae Bluetooth: btrtl: Make array extension_sig static, shrinks object size
Don't populate the array extension_sig on the stack but instead make it
static. Makes the object code smaller by 75 bytes:

Before:
   text	   data	    bss	    dec	    hex	filename
  14325	   4920	      0	  19245	   4b2d	drivers/bluetooth/btrtl.o

After:
   text	   data	    bss	    dec	    hex	filename
  14186	   4984	      0	  19170	   4ae2	drivers/bluetooth/btrtl.o

(gcc version 8.2.0 x86_64)

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I4f8c2f2e1fc242110a322fe9618dce95f7280711
2020-12-18 12:46:51 +09:00
Hans de Goede
ed031fa7e9 Bluetooth: btrtl: Add support for a config filename postfix
The contents of the rtl_bt/rtlXXXX_config.bin file may be board specific
allow the caller of btrtl_initialize to specify a postfix identifying
the board, which if specified will make btrtl_initialize look for
rtl_bt/rtlXXXX_config-<postfix>.bin instead.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I841a33115606d66f539266ff8b3be3ab24f3c744
2020-12-18 12:46:46 +09:00
Martin Blumenstingl
4652422b70 Bluetooth: btrtl: add support for the RTL8723BS and RTL8723DS chips
The Realtek RTL8723BS and RTL8723DS chipsets are SDIO wifi chips. They
also contain a Bluetooth module which is connected via UART to the host.

Realtek's userspace initialization tool (rtk_hciattach) differentiates
these two via the HCI version and revision returned by the
HCI_OP_READ_LOCAL_VERSION command.
Additionally we apply these checks only the for UART devices. Everything
else is assumed to be a "RTL8723B" which was originally supported by the
driver (communicating via USB).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I80200b7f62924e91a8e757418f6ccfde81877565
2020-12-18 12:46:41 +09:00
Martin Blumenstingl
1a638d39b1 Bluetooth: btrtl: add support for retrieving the UART settings
The UART settings are embedded in the config blob. This has to be parsed
to successfully initialize the Bluetooth part of the RTL8723BS (which is
an SDIO chip, but the Bluetooth part is connected via UART).

The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
initialization tools (rtk_hciattach) use the following sequence:
- send H5 sync pattern (already supported by hci_h5)
- get LMP version (already supported by btrtl)
- get ROM version (already supported by btrtl)
- load the firmware and config for the current chipset (already
  supported by btrtl)
- read UART settings from the config blob (part of this patch)
- send UART settings via a vendor command to the device (which changes
  the baudrate of the device and enables or disables flow control
  depending on the config)
- change the baudrate and flow control settings on the host
- send the firmware and config blob to the device (already supported by
  btrtl)

Sending the last firmware and config blob download command
(rtl_download_cmd) fails if the UART settings are not updated
beforehand. This is presumably because the device applies the config
right after the firmware and config blob download - which means that at
this point the host is using different UART settings than the device
(which will obviously result in non-working communication).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I95b475b88aca0d4aa62a7bf482479236d803890c
2020-12-18 12:46:35 +09:00
Hans de Goede
45067b67e4 Bluetooth: btrtl: Use rtl_dev_err and rtl_dev_info
Consistently use rtl_dev_err and rtl_dev_info everywhere for messages.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I4a41cf52f92b11a33b60834324efcdceb74c48b2
2020-12-18 12:46:30 +09:00
Martin Blumenstingl
6db7853ee0 Bluetooth: btrtl: split the device initialization into smaller parts
This prepares the btrtl code so it can be used to initialize Bluetooth
modules connected via UART (these are found for example on the RTL8723BS
and RTL8723DS SDIO chips, which come with an embedded UART Bluetooth
module).

The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
initialization tools (rtk_hciattach) use the following sequence:
1) send H5 sync pattern (already supported by hci_h5)
2) get LMP version (already supported by btrtl)
3) get ROM version (already supported by btrtl)
4) load the firmware and config for the current chipset (already
   supported by btrtl)
5) read UART settings from the config blob (currently not supported)
6) send UART settings via a vendor command to the device (which changes
   the baudrate of the device and enables or disables flow control
   depending on the config)
7) change the baudrate and flow control settings on the host
8) send the firmware and config blob to the device (already supported by
   btrtl)

The main reason why the initialization has to be split is step #7. This
requires changes to the underlying "bus", which should be kept outside
of the "generic" btrtl driver.
The idea for this split is borrowed from the btbcm driver but adjusted
where needed (the btrtl driver for example needs two blobs: firmware and
config, while the btbcm only needs one).

This also prepares the code for step #5 (parsing the config blob) by
centralizing the code which loads the firmware and config blobs and
storing the result in the new struct btrtl_device_info.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: Icc40dd820b448be0a4b3933777e02d09b9d38acf
2020-12-18 12:46:25 +09:00
Martin Blumenstingl
ec9262d7e2 Bluetooth: btrtl: add MODULE_FIRMWARE declarations
This makes the firmware names show up in modinfo.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: Ib331d5de3a10f21d30ee21a8b008f78fb574c5af
2020-12-18 12:46:20 +09:00
Alex Lu
afdd670f69 Bluetooth: btrtl: Add RTL8723D and RTL8821C devices
The Bluetooth parts of RTL8723D and RTL8723B share the same lmp
subversion, thus we need to check both lmp subversion and hci revision
to distinguish the two. The same situation is true for RTL8821A and
RTL8821C. Accordingly, the selection code is revised.

To improve maintainability, a new id_table struct is defined, and an
array of such structs is constructed. Adding a new device can thus be
as simple as adding another value to the table.

Signed-off-by: Alex Lu <alex_lu@realsil.com.cn>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: Ic98eb91ac87a671d7fc3d2a611545e36c3c8cf69
2020-12-18 12:46:13 +09:00
Marcel Holtmann
83c0d10da6 Bluetooth: Use bt_dev_err and bt_dev_info when possible
In case of using BT_ERR and BT_INFO, convert to bt_dev_err and
bt_dev_info when possible. This allows for controller specific
reporting.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Change-Id: I3cd472bf3ce8e797b112c36227884ee2d80b6394
2020-12-18 12:46:08 +09:00
Dan Carpenter
254c0a178f Bluetooth: btrtl: Fix a error code in rtl_load_config()
We accidentally return success if the kmemdup() fails.  It results in
a NULL dereference in the caller.

Fixes: 1110a2dbe6 ("Bluetooth: btrtl: Add RTL8822BE Bluetooth device")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Change-Id: Idd4ff62726885f4aafb3aae69c7cddb12c08442b
2020-12-18 12:46:00 +09:00
Larry Finger
1b5aae4125 Bluetooth: btrtl: Change message for missing config file
The message concerning missing config files for 8723b, 8821a, and
8761a should have been issued with BT_INFO() rather than BT_ERR() as
this condition is not fatal. After looking at that code, I have
reworked the logic to log such messages only if the device needs such a
config file. At the moment, only the 8822b fits that description.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: 陆朱伟 <alex_lu@realsil.com.cn>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Change-Id: I8449be0c4487c8e7af034753cddcc795205ff503
2020-12-18 12:45:47 +09:00
Deokgyu Yang
096f1b1963 ODROID-COMMON: drivers/spi: Set the 64 bits per word by default
The existing force64b routine might not work properly under specific
conditions. This patch fixes that bug of 64 bits per word and forces
use that option. It will improve SPI performance significantly.

Signed-off-by: Deokgyu Yang <secugyu@gmail.com>
Change-Id: I85a58d425303ea1765b7b83ee5dd5f0a7f4203fc
2020-12-18 12:43:52 +09:00
Luke go
2058f3a442 ODROID-HC4: arm64/dts: overlay: Add hc4 fan full speed dtbo.
Signed-off-by: Luke go <sangch.go@gmail.com>
Change-Id: Id95c2cb9cc72c315634140a40b78ec3fe9195243
2020-12-18 12:43:52 +09:00
Luke go
5c63e361ca ODROID-HC4: arm64/dts: Set pwm_d pinmux.
Change-Id: Idcea9acdcdec08e37ba11b4bcdd100c3c558ec8f
Signed-off-by: Luke go <sangch.go@gmail.com>
2020-12-18 12:43:52 +09:00
Chris
4cb19038ed ODROID-C4/HC4: defconfig: Unify defconfig.
using same defconfig about c4 and hc4.

Change-Id: Ied4835ace604cb022c0ff013052989ba2a88ce6b
2020-12-18 12:43:52 +09:00
Chris
d3d39d9d44 ODROID-HC4: Enable sd_emmc_c.
We need to disable emmc, because hc4 doesn't have emmc.

Change-Id: I99d21f75268e0d55f77a868d599f679be68aa3d9
2020-12-18 12:43:51 +09:00
Chris
639e1b7bd0 ODROID: Move esp8089 driver to hardware directory.
Change-Id: I7f86eeadd23c83461f104a6870513deae5755f65
2020-12-18 12:43:51 +09:00
Dongjin Kim
84d6acb892 ODROID-HC4: arch/arm64: Introduce new board 'ODROID-HC4'
Change-Id: Id020eb76109f1a7a3cabf50489cf1a0d5447b010
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
2020-12-18 12:43:51 +09:00
Luke go
9974e1f2d7 ODROID-C4: wireless: esp8089: Support esp8089 driver.
- The esp8089 driver supports many esp's wifi modules. So it is imported.

Change-Id: If039882e183e454baff2c222bf7a1282b6705459
2020-12-18 12:43:51 +09:00
Chris
2ed3759b3b ODROID-COMMON: Fix watchdog reset disabled.
Change-Id: I214eb2ada20c7a885f82a3a198ffc65a4a1a9d19
2020-12-18 12:43:51 +09:00
Joy Cho
cbfd2f0cdd ODROID-COMMON: hdmitx: Fix unstable HDMI modes
Change-Id: Ibac9840a0a97d195918592059b62f6024b4047be
2020-12-18 12:43:41 +09:00
Joy Cho
ce5ab3c466 ODROID-COMMON: hdmitx: Add new hdmi resolutions of 2560x* and 3440x1440
In case of 2560x1600@60hz, unstable display operation may occur
with some specific monitors those pixel clock is under 300MHz.
So, default timing for 2560x1600p60hz is set as following.

Detailed mode: Clock 268.500 MHz, 641 mm x 401 mm
               2560 2608 2640 2720 ( 48  32  80)
               1600 1602 1608 1646 (  2   6  38)
               +hsync -vsync
               VertFreq: 59.972 Hz, HorFreq: 98.713 kHz

Change-Id: Iec9df8713211cf5e0dc7ba09f3dba2948e479b4f
2020-12-18 12:41:20 +09:00
Luke go
10170ad5f8 ODROID-C4: arm64/dts: Bugfix.
Change-Id: I5be14718672c3a3a3a71f019a7cfd7c40d6ef000
2020-12-18 12:41:20 +09:00
Luke go
fc36be2b7d ODROID-COMMON: arm64/dts: overlay: Seperated gpio shortcut.
Change-Id: I3296aa20f364c1f1b3ff8148fc93c99db798bb8d
2020-12-18 12:41:20 +09:00
Luke go
da9ac4939f ODROID-COMMON: arm64/dts: overlay: Add sdio.
Change-Id: I53d595a0f0a31ef603c9758be83984b13073199c
2020-12-18 12:41:20 +09:00
Luke go
5142ba2ec7 ODROID-COMMON: arm64/dts: Disabled sdio.
Change-Id: I0ed353e5275bc71a667313e036d0a77c7d1e4875
2020-12-18 12:41:19 +09:00
Chris
8d2a1e3626 ODROID-G12: Add CONFIG_KEYBOARD_GPIO_POLLED as builtin
Change-Id: Ia3e4ae0df655cfb593b722702434642ac4ca7113
2020-12-18 12:41:19 +09:00
Luke go
1062622938 ODROID-COMMON: arm64/dts: Changed the default gpio-key mapping.
- To avoid conflicts with the default gpio-power key pin and the SPI
  pin, default shortcut pin maps are changed.

Change-Id: If857eafc1e9df101357203ad61ea6ea81b11b571
2020-12-18 12:41:19 +09:00
Luke go
ace71fe4c1 ODROID-C4: arm64/dts: overlay: Add wifi/bt combo.
- To support ap6255, we made wifi/bt combo support board. To use it with
  a ODROID-C4, You need chagne R45 to 10k register. Or please change a
  'gpio_reset' to other pins.

Signed-off-by: Luke go <sangch.go@gmail.com>
Change-Id: I208c11251e3b36bdf27d1505e5bb25a1f4a059c4
2020-12-18 12:41:19 +09:00
Luke Go
01234dd487 ODROID-N2: arm64/dts: overlay: Add a gpio-spdifout.
- Add gpio's spdifout overlays. It support GPIOA 13 -PIN7 spdifout.

Change-Id: I95b99af5e531cba53748c0d82ff112d39ca8bbee
2020-12-18 12:41:02 +09:00
Luke go
202902f042 ODROID-COMMON: arm64/dts: overlay: Add pwm examples.
- N2
  - pwm_c(33) - pwm fan.
  - pwm_d(35) - pwm backlight.

- C4
  - pwm_a(33) - pwm fan.
  - pwm_b(35) - pwm backlight.

Change-Id: If5382b0f5fa515d74d547b1cb20107be5ad813bd
2020-12-18 12:40:06 +09:00
Luke go
65efb21457 ODROID: arm64/dts: overlay: Change CAN chipselect.
Change-Id: I15e2eacd2b6c018b7950dd97ef353d83fb874743
2020-12-18 12:35:31 +09:00
Luke go
2f9cdc7fbe ODROID-COMMON: config: Support CAN BUS.
Change-Id: Ib75ae740bc37c992eed8c479b8da50347b21a900
2020-12-18 12:34:47 +09:00
Dongjin Kim
980354ccbe ODROID-N2: arm64/dts: overlay: add new overlay to run fully loaded fan speed
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I4971f5acccd67a9db30213368870072ba59ee679
2020-12-18 12:34:47 +09:00
Chris KIM
887b51c74b Revert "sd: add sd power cycle for sd3.0 [1/1]"
This reverts commit 1a249d948b.

Change-Id: Ie761d44b73b338fdbceff36c48dee4a809316620
2020-12-18 12:34:47 +09:00
Luke Go
96b8a47a32 ODROID-N2/N2-PLUS: pwm-fan: Changed the trip point.
Change-Id: I2dcee110ff1939216dfdb20e0069f5298b43e9ad
Signed-off-by: Luke Go <sangch.go@gmail.com>
2020-12-18 12:34:47 +09:00
Kevin Kim
e96f70698d ODROID-COMMON: pwm-fan device enabled for active cooling.
Change-Id: I1dcdfa4c22ab72cd24b1be870727420683073f9a
Signed-off-by: Kevin Kim <ckkim@hardkernel.com>
2020-12-18 12:33:27 +09:00
Luke Go
921958bc70 ODROID-N2PLUS: dtbo: Add model name to overlay.
- To name the odroid n2 plus, add name property overlay to the file.

Change-Id: I2c2e5f93989740644165431dfa63fd2f0724fcd4
2020-12-18 12:33:20 +09:00
Luke Go
89b32d7162 ODROID: android: frequency config macro changes.
- Android build each board (N2/C4) at seprated time, So need to common
define to build it.

Change-Id: I558ab468dab3be36717fa248dea41f7718953032
2020-12-18 12:30:40 +09:00
femto
adf17e3a2e ODROID-N2/N2-PLUS: Default freq setting and cpu max_freq limit setting.
board_is_odroidn2 (): Both N2 and N2plus return 'true'

if (is_meson_g12b_cpu() && is_meson_rev_a()) // ODROID-N2
else                                         // ODROID-N2Plus

N2_A53_DEFAULT		1896000	/* N2 Core A53 */
N2_A73_DEFAULT		1800000	/* N2 Core A73 */

N2PLUS_A53_DEFAULT	1908000	/* N2 Plus Core A53 */
N2PLUS_A73_DEFAULT	2208000	/* N2 Plus Core A73 */

Signed-off-by: femto <ckkim@hardkernel.com>
Change-Id: I32fa6b37f54560e9071cf650c74f972b36fc4af2
2020-12-18 12:30:40 +09:00
Chris
45e2c93ea6 ODROID-C4: Fix label redefine in dts 2020-12-18 12:29:27 +09:00
Chris
c46afcb6de ODROID: Fix compile error.
We are rebuilding kernel commits.
2020-12-17 18:10:50 +09:00
Ruixuan Li
366ccec376 emmc: save tuning parameter of hs400 [1/1]
PD#SWPL-15199

Problem:
tunig process of hs400 is too slow

Solution:
saved tuning parameter of hs400 on emmc

Verify:
passed on tm2_t962e2_ab311

Change-Id: Ifd1ba375dd93745c9db33a94f3480ebfc21e999f
Signed-off-by: Ruixuan Li <ruixuan.li@amlogic.com>
Signed-off-by: chunlong.cao <chunlong.cao@amlogic.com>
2020-12-17 17:39:21 +09:00
wenbiao zhang
ec7c326bf0 btsco: config bt sco dts [2/2]
PD#SWPL-30684

Problem:
config bt sco dts

Solution:
config bt sco dts

Verify:
w400

Change-Id: I15943ce6ef2cff1f98bfc668fbcc28b746099978
Signed-off-by: wenbiao zhang <wenbiao.zhang@amlogic.com>
2020-12-17 17:34:01 +09:00
chunlong.cao
5b577fb7d6 lcd: [A311D][BDS][panel]change panel type to lcd_1: mipi TL070WSH27 1024*600.[1/2]
PD#SWPL-32495

Problem:
      change panel type to mipi TL070WSH27 1024*600,cannnot dipslay normally

Solution:
      change display_size_default

 Verify:
      W400

Signed-off-by: chunlong.cao <chunlong.cao@amlogic.com>
Change-Id: Ic3876a2424a8c11dd827f5d5bd1adde8419a6103
2020-12-17 17:34:01 +09:00
chunlong.cao
294bf90eaa touchscreen: [W400][BDS]change to GT911 touch panel [1/1]
PD#SWPL-32704

Problem:
    Unable to touch operation on panel

Solution:
    change to GT911 touch panel

Verify:
    W400

Signed-off-by: chunlong.cao <chunlong.cao@amlogic.com>
Change-Id: Id49d5c93e7576f59926006d5cb993880c2badc8c
2020-12-17 17:34:01 +09:00