Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

Commit

Permalink
Merge branch 'tracking/caf' into stock-10
Browse files Browse the repository at this point in the history
  • Loading branch information
jesec committed May 19, 2020
2 parents 3f06929 + f948f51 commit 9f57e0e
Show file tree
Hide file tree
Showing 108 changed files with 4,359 additions and 1,027 deletions.
1 change: 1 addition & 0 deletions arch/arm64/configs/vendor/kona-perf_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ CONFIG_UID_SYS_STATS=y
CONFIG_OKL4_USER_VIRQ=y
CONFIG_WIGIG_SENSING_SPI=m
CONFIG_QTI_XR_SMRTVWR_MISC=y
CONFIG_QTI_MAXIM_FAN_CONTROLLER=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/configs/vendor/kona_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ CONFIG_UID_SYS_STATS=y
CONFIG_OKL4_USER_VIRQ=y
CONFIG_WIGIG_SENSING_SPI=m
CONFIG_QTI_XR_SMRTVWR_MISC=y
CONFIG_QTI_MAXIM_FAN_CONTROLLER=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=y
Expand Down
57 changes: 44 additions & 13 deletions drivers/bluetooth/bluetooth-power.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#if defined CONFIG_BT_SLIM_QCA6390 || defined CONFIG_BTFM_SLIM_WCN3990
#include "btfm_slim.h"
#include "btfm_slim_slave.h"
#endif
#include <linux/fs.h>

Expand All @@ -40,6 +41,7 @@ static const struct of_device_id bt_power_match_table[] = {
{ .compatible = "qca,qca6174" },
{ .compatible = "qca,wcn3990" },
{ .compatible = "qca,qca6390" },
{ .compatible = "qca,wcn6750" },
{}
};

Expand Down Expand Up @@ -270,10 +272,14 @@ static int bt_configure_gpios(int on)
return rc;
}
msleep(50);
BT_PWR_ERR("BTON:Turn Bt Off bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));
BT_PWR_ERR("BTON:Turn Bt Off bt-sw-ctrl-gpio(%d) value(%d)\n",
bt_sw_ctrl_gpio, gpio_get_value(bt_sw_ctrl_gpio));
BT_PWR_INFO("BTON:Turn Bt Off bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));
if (bt_sw_ctrl_gpio >= 0) {
BT_PWR_INFO("BTON:Turn Bt Off");
BT_PWR_INFO("bt-sw-ctrl-gpio(%d) value(%d)",
bt_sw_ctrl_gpio,
gpio_get_value(bt_sw_ctrl_gpio));
}

rc = gpio_direction_output(bt_reset_gpio, 1);
if (rc) {
Expand Down Expand Up @@ -304,22 +310,30 @@ static int bt_configure_gpios(int on)
BT_PWR_ERR("Prob: Set Debug-Gpio\n");
}
}
BT_PWR_ERR("BTON:Turn Bt On bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));
BT_PWR_ERR("BTON:Turn Bt On bt-sw-ctrl-gpio(%d) value(%d)\n",
bt_sw_ctrl_gpio, gpio_get_value(bt_sw_ctrl_gpio));
BT_PWR_INFO("BTON:Turn Bt On bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));
if (bt_sw_ctrl_gpio >= 0) {
BT_PWR_INFO("BTON:Turn Bt On");
BT_PWR_INFO("bt-sw-ctrl-gpio(%d) value(%d)",
bt_sw_ctrl_gpio,
gpio_get_value(bt_sw_ctrl_gpio));
}
} else {
gpio_set_value(bt_reset_gpio, 0);
if (bt_debug_gpio >= 0)
gpio_set_value(bt_debug_gpio, 0);
msleep(100);
BT_PWR_ERR("BT-OFF:bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));
BT_PWR_ERR("BT-OFF:bt-sw-ctrl-gpio(%d) value(%d)\n",
bt_sw_ctrl_gpio, gpio_get_value(bt_sw_ctrl_gpio));
BT_PWR_INFO("BT-OFF:bt-reset-gpio(%d) value(%d)\n",
bt_reset_gpio, gpio_get_value(bt_reset_gpio));

if (bt_sw_ctrl_gpio >= 0) {
BT_PWR_INFO("BT-OFF:bt-sw-ctrl-gpio(%d) value(%d)",
bt_sw_ctrl_gpio,
gpio_get_value(bt_sw_ctrl_gpio));
}
}

BT_PWR_ERR("bt_gpio= %d on: %d is successful", bt_reset_gpio, on);
BT_PWR_INFO("bt_gpio= %d on: %d is successful", bt_reset_gpio, on);
return rc;
}

Expand Down Expand Up @@ -846,6 +860,18 @@ int get_chipset_version(void)
return soc_id;
}

int bt_disable_asd(void)
{
int rc = 0;
if (bt_power_pdata->bt_vdd_asd) {
BT_PWR_INFO("Disabling ASD regulator");
rc = bt_vreg_disable(bt_power_pdata->bt_vdd_asd);
} else {
BT_PWR_INFO("ASD regulator is not configured");
}
return rc;
}

static long bt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
int ret = 0, pwr_cntrl = 0;
Expand Down Expand Up @@ -882,6 +908,11 @@ static long bt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
BT_PWR_ERR("BT_CMD_CHIP_VERS soc_version:%x", chipset_version);
if (chipset_version) {
soc_id = chipset_version;
if (soc_id == QCA_HSP_SOC_ID_0100 ||
soc_id == QCA_HSP_SOC_ID_0110 ||
soc_id == QCA_HSP_SOC_ID_0200) {
ret = bt_disable_asd();
}
} else {
BT_PWR_ERR("got invalid soc version");
soc_id = 0;
Expand Down
58 changes: 58 additions & 0 deletions drivers/bluetooth/btfm_slim.c
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,9 @@ static int btfm_slim_alloc_port(struct btfmslim *btfmslim)
int btfm_slim_hw_init(struct btfmslim *btfmslim)
{
int ret;
int chipset_ver;
struct slim_device *slim = btfmslim->slim_pgd;
struct slim_device *slim_ifd = &btfmslim->slim_ifd;

BTFMSLIM_DBG("");
if (!btfmslim)
Expand All @@ -381,6 +384,61 @@ int btfm_slim_hw_init(struct btfmslim *btfmslim)
return 0;
}
mutex_lock(&btfmslim->io_lock);
BTFMSLIM_INFO(
"PGD Enum Addr: %.02x:%.02x:%.02x:%.02x:%.02x: %.02x",
slim->e_addr[0], slim->e_addr[1], slim->e_addr[2],
slim->e_addr[3], slim->e_addr[4], slim->e_addr[5]);
BTFMSLIM_INFO(
"IFD Enum Addr: %.02x:%.02x:%.02x:%.02x:%.02x: %.02x",
slim_ifd->e_addr[0], slim_ifd->e_addr[1],
slim_ifd->e_addr[2], slim_ifd->e_addr[3],
slim_ifd->e_addr[4], slim_ifd->e_addr[5]);

chipset_ver = get_chipset_version();
BTFMSLIM_INFO("chipset soc version:%x", chipset_ver);

if (chipset_ver == QCA_HSP_SOC_ID_0100 ||
chipset_ver == QCA_HSP_SOC_ID_0110 ||
chipset_ver == QCA_HSP_SOC_ID_0200) {
BTFMSLIM_INFO("chipset is hastings prime, overwriting EA");
slim->e_addr[0] = 0x00;
slim->e_addr[1] = 0x01;
slim->e_addr[2] = 0x21;
slim->e_addr[3] = 0x02;
slim->e_addr[4] = 0x17;
slim->e_addr[5] = 0x02;

slim_ifd->e_addr[0] = 0x00;
slim_ifd->e_addr[1] = 0x00;
slim_ifd->e_addr[2] = 0x21;
slim_ifd->e_addr[3] = 0x02;
slim_ifd->e_addr[4] = 0x17;
slim_ifd->e_addr[5] = 0x02;
} else if (chipset_ver == QCA_HASTINGS_SOC_ID_0200) {
BTFMSLIM_INFO("chipset is hastings 2.0, overwriting EA");
slim->e_addr[0] = 0x00;
slim->e_addr[1] = 0x01;
slim->e_addr[2] = 0x20;
slim->e_addr[3] = 0x02;
slim->e_addr[4] = 0x17;
slim->e_addr[5] = 0x02;

slim_ifd->e_addr[0] = 0x00;
slim_ifd->e_addr[1] = 0x00;
slim_ifd->e_addr[2] = 0x20;
slim_ifd->e_addr[3] = 0x02;
slim_ifd->e_addr[4] = 0x17;
slim_ifd->e_addr[5] = 0x02;
}
BTFMSLIM_INFO(
"PGD Enum Addr: %.02x:%.02x:%.02x:%.02x:%.02x: %.02x",
slim->e_addr[0], slim->e_addr[1], slim->e_addr[2],
slim->e_addr[3], slim->e_addr[4], slim->e_addr[5]);
BTFMSLIM_INFO(
"IFD Enum Addr: %.02x:%.02x:%.02x:%.02x:%.02x: %.02x",
slim_ifd->e_addr[0], slim_ifd->e_addr[1],
slim_ifd->e_addr[2], slim_ifd->e_addr[3],
slim_ifd->e_addr[4], slim_ifd->e_addr[5]);

/* Assign Logical Address for PGD (Ported Generic Device)
* enumeration address
Expand Down
6 changes: 6 additions & 0 deletions drivers/bluetooth/btfm_slim_slave.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ enum {
QCA_HASTINGS_SOC_ID_0200 = 0x400A0200,
};

enum {
QCA_HSP_SOC_ID_0100 = 0x400C0100,
QCA_HSP_SOC_ID_0110 = 0x400C0110,
QCA_HSP_SOC_ID_0200 = 0x400C0200,
};

/* Function Prototype */

/*
Expand Down
2 changes: 1 addition & 1 deletion drivers/bus/mhi/core/mhi_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -1235,7 +1235,7 @@ static int of_parse_ev_cfg(struct mhi_controller *mhi_cntrl,
mhi_event->process_event = mhi_process_ctrl_ev_ring;
break;
case MHI_ER_TSYNC_ELEMENT_TYPE:
mhi_event->process_event = mhi_process_tsync_event_ring;
mhi_event->process_event = mhi_process_tsync_ev_ring;
break;
case MHI_ER_BW_SCALE_ELEMENT_TYPE:
mhi_event->process_event = mhi_process_bw_scale_ev_ring;
Expand Down
8 changes: 4 additions & 4 deletions drivers/bus/mhi/core/mhi_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -717,8 +717,6 @@ struct mhi_chan {
struct tsync_node {
struct list_head node;
u32 sequence;
u32 int_sequence;
u64 local_time;
u64 remote_time;
struct mhi_device *mhi_dev;
void (*cb_func)(struct mhi_device *mhi_dev, u32 sequence,
Expand All @@ -728,7 +726,9 @@ struct tsync_node {
struct mhi_timesync {
void __iomem *time_reg;
u32 int_sequence;
u64 local_time;
bool db_support;
bool db_response_pending;
spinlock_t lock; /* list protection */
struct list_head head;
};
Expand Down Expand Up @@ -787,8 +787,8 @@ int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl,
struct mhi_event *mhi_event, u32 event_quota);
int mhi_process_ctrl_ev_ring(struct mhi_controller *mhi_cntrl,
struct mhi_event *mhi_event, u32 event_quota);
int mhi_process_tsync_event_ring(struct mhi_controller *mhi_cntrl,
struct mhi_event *mhi_event, u32 event_quota);
int mhi_process_tsync_ev_ring(struct mhi_controller *mhi_cntrl,
struct mhi_event *mhi_event, u32 event_quota);
int mhi_process_bw_scale_ev_ring(struct mhi_controller *mhi_cntrl,
struct mhi_event *mhi_event, u32 event_quota);
int mhi_send_cmd(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan,
Expand Down
Loading

0 comments on commit 9f57e0e

Please sign in to comment.