From cec7d2441fdacd51b5a6db5c3f5d11e6bf419ae2 Mon Sep 17 00:00:00 2001 From: frank Date: Fri, 5 Jan 2018 11:43:23 +0100 Subject: [PATCH 1/2] added printk for pwm (1kHz instead of 5kHz) added pcie-Patch from lede (0074) --- drivers/pci/host/pcie-mediatek.c | 20 ++++++++++++++++++-- drivers/pwm/pwm-mediatek.c | 3 +++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/pci/host/pcie-mediatek.c b/drivers/pci/host/pcie-mediatek.c index db93efdf1d635..a4ffab883ab6f 100644 --- a/drivers/pci/host/pcie-mediatek.c +++ b/drivers/pci/host/pcie-mediatek.c @@ -333,10 +333,23 @@ static struct mtk_pcie_port *mtk_pcie_find_port(struct pci_bus *bus, { struct mtk_pcie *pcie = bus->sysdata; struct mtk_pcie_port *port; + struct pci_dev *dev; + struct pci_bus *pbus; - list_for_each_entry(port, &pcie->ports, list) - if (port->slot == PCI_SLOT(devfn)) + list_for_each_entry(port, &pcie->ports, list) { + if (bus->number == 0 && port->slot == PCI_SLOT(devfn)) { return port; + } else if (bus->number != 0) { + pbus = bus; + do { + dev = pbus->self; + if (port->slot == PCI_SLOT(dev->devfn)) + return port; + + pbus = dev->bus; + } while (dev->bus->number != 0); + } + } return NULL; } @@ -663,6 +676,9 @@ static void __iomem *mtk_pcie_map_bus(struct pci_bus *bus, { struct mtk_pcie *pcie = bus->sysdata; + if (!mtk_pcie_find_port(bus, devfn)) + return 0; + writel(PCIE_CONF_ADDR(where, PCI_FUNC(devfn), PCI_SLOT(devfn), bus->number), pcie->base + PCIE_CFG_ADDR); diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c index a801a5f80d4a8..1cc2f6870f577 100644 --- a/drivers/pwm/pwm-mediatek.c +++ b/drivers/pwm/pwm-mediatek.c @@ -140,6 +140,9 @@ static int mtk_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, return -EINVAL; } + printk(KERN_NOTICE "[mtk_pwm_config] period_ns: %d, duty_ns: %d",period_ns,duty_ns); + printk(KERN_NOTICE "[mtk_pwm_config] resolution: %d, clkdiv: %d",resolution,clkdiv); + mtk_pwm_writel(pc, pwm->hwpwm, PWMCON, BIT(15) | clkdiv); if (pwm->hwpwm > 2) { //for PWM4 and PWM5 mtk_pwm_writel(pc, pwm->hwpwm, PWM45DWIDTH, period_ns / resolution); From 8d9a66bcc677253a4d9b2f312ef33d839215fc51 Mon Sep 17 00:00:00 2001 From: frank Date: Fri, 5 Jan 2018 12:56:05 +0100 Subject: [PATCH 2/2] patches for BT --- arch/arm/configs/mt7623n_evb_fwu_defconfig | 5 +++-- drivers/misc/mediatek/connectivity/Kconfig | 2 +- net/bluetooth/hci_event.c | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/configs/mt7623n_evb_fwu_defconfig b/arch/arm/configs/mt7623n_evb_fwu_defconfig index 612230dd226e5..05afa7ce6b276 100644 --- a/arch/arm/configs/mt7623n_evb_fwu_defconfig +++ b/arch/arm/configs/mt7623n_evb_fwu_defconfig @@ -262,8 +262,9 @@ CONFIG_MTK_COMBO_WIFI=y CONFIG_NL80211_TESTMODE=y #internal Bluetooth (also not working yet) -#CONFIG_MTK_BTIF=y -#CONFIG_MTK_COMBO_BT=y +CONFIG_BT=y +CONFIG_MTK_COMBO_BT=m +CONFIG_MTK_COMBO_BT_HCI=m #if you use a mt76x2 or mt76x3 pcie-card CONFIG_MT76=m diff --git a/drivers/misc/mediatek/connectivity/Kconfig b/drivers/misc/mediatek/connectivity/Kconfig index aa4c3e6f71c9d..807115e012e57 100644 --- a/drivers/misc/mediatek/connectivity/Kconfig +++ b/drivers/misc/mediatek/connectivity/Kconfig @@ -200,7 +200,7 @@ config MTK_COMBO_COMM_APO config MTK_COMBO_BT tristate "MediaTek Combo Chip BT driver" - depends on MTK_COMBO + depends on BT && MTK_COMBO select MTK_BTIF help MTK BT /dev/stpbt driver for Bluedroid diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0b4dba08a14ec..53de7b9b0b4c1 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -637,8 +637,7 @@ static void hci_cc_read_local_ext_features(struct hci_dev *hdev, if (rp->status) return; - - if (hdev->max_page < rp->max_page) + if (hdev->max_page < rp->max_page) hdev->max_page = rp->max_page; if (rp->page < HCI_MAX_PAGES)