mirror of
https://github.com/AsahiLinux/m1n1
synced 2024-11-23 07:03:08 +00:00
kboot: propagate bluetooth calibration blob
Depending on the chip stepping (stored in the OTP) either the blob for beamforming or the normal calibration blob has to be used. Signed-off-by: Sven Peter <sven@svenpeter.dev>
This commit is contained in:
parent
1b8c422202
commit
2c37105412
1 changed files with 42 additions and 0 deletions
42
src/kboot.c
42
src/kboot.c
|
@ -531,6 +531,46 @@ static int dt_set_mac_addresses(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int dt_set_bluetooth_cal(int anode, int node, const char *adt_name, const char *fdt_name)
|
||||
{
|
||||
u32 len;
|
||||
const u8 *cal_blob = adt_getprop(adt, anode, adt_name, &len);
|
||||
|
||||
if (!cal_blob || !len)
|
||||
bail("ADT: Failed to get %s", adt_name);
|
||||
|
||||
fdt_setprop(dt, node, fdt_name, cal_blob, len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dt_set_bluetooth(void)
|
||||
{
|
||||
int ret;
|
||||
int anode = adt_path_offset(adt, "/arm-io/bluetooth");
|
||||
|
||||
if (anode < 0)
|
||||
bail("ADT: /arm-io/bluetooth not found\n");
|
||||
|
||||
const char *path = fdt_get_alias(dt, "bluetooth0");
|
||||
if (path == NULL)
|
||||
return 0;
|
||||
|
||||
int node = fdt_path_offset(dt, path);
|
||||
if (node < 0)
|
||||
return 0;
|
||||
|
||||
ret = dt_set_bluetooth_cal(anode, node, "bluetooth-taurus-calibration-bf",
|
||||
"brcm,taurus-bf-cal-blob");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = dt_set_bluetooth_cal(anode, node, "bluetooth-taurus-calibration", "brcm,taurus-cal-blob");
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dt_set_wifi(void)
|
||||
{
|
||||
int anode = adt_path_offset(adt, "/arm-io/wlan");
|
||||
|
@ -1038,6 +1078,8 @@ int kboot_prepare_dt(void *fdt)
|
|||
return -1;
|
||||
if (dt_set_wifi())
|
||||
return -1;
|
||||
if (dt_set_bluetooth())
|
||||
return -1;
|
||||
if (dt_set_uboot())
|
||||
return -1;
|
||||
if (dt_set_atc_tunables())
|
||||
|
|
Loading…
Reference in a new issue