diff --git a/arch/arm/mach-rockchip/rk312x.c b/arch/arm/mach-rockchip/rk312x.c index 452bdc0dbd31..6ff7f52c9548 100755 --- a/arch/arm/mach-rockchip/rk312x.c +++ b/arch/arm/mach-rockchip/rk312x.c @@ -39,6 +39,7 @@ #include "sram.h" #include "pm.h" #include "pm-rk312x.c" +#include #define RK312X_DEVICE(name) \ { \ .virtual = (unsigned long) RK_##name##_VIRT, \ @@ -256,7 +257,8 @@ static int rk312x_pmu_set_power_domain(enum pmu_power_domain pd, bool on) rk312x_pmu_set_idle_request(IDLE_REQ_GPU, true); } else if (pd == PD_VIO) { SAVE_QOS(rga_qos, VIO_RGA); - SAVE_QOS(ebc_qos, VIO_EBC); + if (!soc_is_rk3126b()) + SAVE_QOS(ebc_qos, VIO_EBC); SAVE_QOS(iep_qos, VIO_IEP); SAVE_QOS(lcdc0_qos, VIO_LCDC0); SAVE_QOS(vip0_qos, VIO_VIP0); @@ -276,7 +278,8 @@ static int rk312x_pmu_set_power_domain(enum pmu_power_domain pd, bool on) } else if (pd == PD_VIO) { rk312x_pmu_set_idle_request(IDLE_REQ_VIO, false); RESTORE_QOS(rga_qos, VIO_RGA); - RESTORE_QOS(ebc_qos, VIO_EBC); + if (!soc_is_rk3126b()) + RESTORE_QOS(ebc_qos, VIO_EBC); RESTORE_QOS(iep_qos, VIO_IEP); RESTORE_QOS(lcdc0_qos, VIO_LCDC0); RESTORE_QOS(vip0_qos, VIO_VIP0); diff --git a/drivers/net/wireless/rockchip_wlan/esp8089/esp_driver/esp_mac80211.c b/drivers/net/wireless/rockchip_wlan/esp8089/esp_driver/esp_mac80211.c index 21f873050563..48be10c5039f 100755 --- a/drivers/net/wireless/rockchip_wlan/esp8089/esp_driver/esp_mac80211.c +++ b/drivers/net/wireless/rockchip_wlan/esp8089/esp_driver/esp_mac80211.c @@ -24,6 +24,7 @@ #include "esp_debug.h" #include "esp_wl.h" #include "esp_utils.h" +#include #define ESP_IEEE80211_DBG esp_dbg @@ -2194,14 +2195,25 @@ esp_pub_init_mac80211(struct esp_pub *epub) int esp_register_mac80211(struct esp_pub *epub) { - int ret = 0; + int ret = 0; + u8 mac[ETH_ALEN]; #ifdef P2P_CONCURRENT u8 *wlan_addr; u8 *p2p_addr; int idx; #endif - esp_pub_init_mac80211(epub); + esp_pub_init_mac80211(epub); + + printk("Wifi Efuse Mac => %02x:%02x:%02x:%02x:%02x:%02x\n", epub->mac_addr[0], epub->mac_addr[1], + epub->mac_addr[2], epub->mac_addr[3], epub->mac_addr[4], epub->mac_addr[5]); + + if (!rockchip_wifi_mac_addr(mac)) + { + printk("=========> get mac address from flash=[%02x:%02x:%02x:%02x:%02x:%02x]\n", mac[0], mac[1], + mac[2], mac[3], mac[4], mac[5]); + memcpy(epub->mac_addr, mac, ETH_ALEN); + } #ifdef P2P_CONCURRENT epub->hw->wiphy->addresses = (struct mac_address *)esp_mac_addr; diff --git a/drivers/usb/dwc_otg_310/dwc_otg_driver.c b/drivers/usb/dwc_otg_310/dwc_otg_driver.c index 16a4464dc51d..fba497d60663 100755 --- a/drivers/usb/dwc_otg_310/dwc_otg_driver.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_driver.c @@ -76,49 +76,7 @@ extern int pcd_remove(struct platform_device *_dev); extern void hcd_remove(struct platform_device *_dev); extern void dwc_otg_adp_start(dwc_otg_core_if_t *core_if, uint8_t is_host); -#ifdef CONFIG_USB20_OTG -static struct usb20otg_pdata_id usb20otg_pdata[] = { - { - .name = "rk3188-usb20otg", - .pdata = &usb20otg_pdata_rk3188, - }, - { - .name = "rk3288-usb20otg", - .pdata = &usb20otg_pdata_rk3288, - }, - { - .name = "rk3036-usb20otg", - .pdata = &usb20otg_pdata_rk3036, - }, - { - .name = "rk3126-usb20otg", - .pdata = &usb20otg_pdata_rk3126, - }, - {}, -}; -#endif -#ifdef CONFIG_USB20_HOST -static struct usb20host_pdata_id usb20host_pdata[] = { - { - .name = "rk3188-usb20host", - .pdata = &usb20host_pdata_rk3188, - }, - { - .name = "rk3288-usb20host", - .pdata = &usb20host_pdata_rk3288, - }, - { - .name = "rk3036-usb20host", - .pdata = &usb20host_pdata_rk3036, - }, - { - .name = "rk3126-usb20host", - .pdata = &usb20host_pdata_rk3126, - }, - {}, -}; -#endif static u32 usb_to_uart_status; /*-------------------------------------------------------------------------*/ @@ -958,19 +916,19 @@ static int host20_driver_remove(struct platform_device *_dev) static const struct of_device_id usb20_host_of_match[] = { { .compatible = "rockchip,rk3188_usb20_host", - .data = &usb20host_pdata[RK3188_USB_CTLR], + .data = &usb20host_pdata_rk3188, }, { .compatible = "rockchip,rk3288_usb20_host", - .data = &usb20host_pdata[RK3288_USB_CTLR], + .data = &usb20host_pdata_rk3288, }, { .compatible = "rockchip,rk3036_usb20_host", - .data = &usb20host_pdata[RK3036_USB_CTLR], + .data = &usb20host_pdata_rk3036, }, { .compatible = "rockchip,rk3126_usb20_host", - .data = &usb20host_pdata[RK3126_USB_CTLR], + .data = &usb20host_pdata_rk3126, }, {}, }; @@ -997,18 +955,16 @@ static int host20_driver_probe(struct platform_device *_dev) struct device *dev = &_dev->dev; struct device_node *node = _dev->dev.of_node; struct dwc_otg_platform_data *pldata; - struct usb20host_pdata_id *p; const struct of_device_id *match = of_match_device(of_match_ptr(usb20_host_of_match), &_dev->dev); - if (match) { - p = (struct usb20host_pdata_id *)match->data; + if (match && match->data) { + dev->platform_data = (void *)match->data; } else { dev_err(dev, "usb20host match failed\n"); return -EINVAL; } - dev->platform_data = p->pdata; pldata = dev->platform_data; pldata->dev = dev; @@ -1326,22 +1282,21 @@ static int otg20_driver_remove(struct platform_device *_dev) static const struct of_device_id usb20_otg_of_match[] = { { .compatible = "rockchip,rk3188_usb20_otg", - .data = &usb20otg_pdata[RK3188_USB_CTLR], + .data = &usb20otg_pdata_rk3188, }, { .compatible = "rockchip,rk3288_usb20_otg", - .data = &usb20otg_pdata[RK3288_USB_CTLR], + .data = &usb20otg_pdata_rk3288, }, { .compatible = "rockchip,rk3036_usb20_otg", - .data = &usb20otg_pdata[RK3036_USB_CTLR], + .data = &usb20otg_pdata_rk3036, }, { .compatible = "rockchip,rk3126_usb20_otg", - .data = &usb20otg_pdata[RK3126_USB_CTLR], - }, - { + .data = &usb20otg_pdata_rk3126, }, + { }, }; MODULE_DEVICE_TABLE(of, usb20_otg_of_match); @@ -1367,19 +1322,16 @@ static int otg20_driver_probe(struct platform_device *_dev) struct device *dev = &_dev->dev; struct device_node *node = _dev->dev.of_node; struct dwc_otg_platform_data *pldata; - struct usb20otg_pdata_id *p; const struct of_device_id *match = of_match_device(of_match_ptr(usb20_otg_of_match), &_dev->dev); if (match) { - p = (struct usb20otg_pdata_id *)match->data; + dev->platform_data = (void *)match->data; } else { dev_err(dev, "usb20otg match failed\n"); return -EINVAL; } - dev->platform_data = p->pdata; - /* dev->platform_data = &usb20otg_pdata; */ pldata = dev->platform_data; pldata->dev = dev; diff --git a/drivers/usb/dwc_otg_310/usbdev_rk.h b/drivers/usb/dwc_otg_310/usbdev_rk.h index fba8eea5173c..71ada7055969 100755 --- a/drivers/usb/dwc_otg_310/usbdev_rk.h +++ b/drivers/usb/dwc_otg_310/usbdev_rk.h @@ -137,16 +137,6 @@ enum { RK3126_USB_CTLR, }; -struct usb20otg_pdata_id { - char name[32]; - struct dwc_otg_platform_data *pdata; -}; - -struct usb20host_pdata_id { - char name[32]; - struct dwc_otg_platform_data *pdata; -}; - struct rkehci_pdata_id { char name[32]; struct rkehci_platform_data *pdata; diff --git a/drivers/usb/host/ehci-rkhsic.c b/drivers/usb/host/ehci-rkhsic.c index 659bcf0fd414..1fa16bfa2a39 100755 --- a/drivers/usb/host/ehci-rkhsic.c +++ b/drivers/usb/host/ehci-rkhsic.c @@ -212,11 +212,11 @@ static DEVICE_ATTR(hsic_debug_ehci, S_IRUGO, hsic_debug_show, NULL); static struct of_device_id rk_hsic_of_match[] = { { .compatible = "rockchip,rk3188_rk_hsic_host", - .data = &rkhsic_pdata[RK3188_USB_CTLR], + .data = &rkhsic_pdata_rk3188, }, { .compatible = "rockchip,rk3288_rk_hsic_host", - .data = &rkhsic_pdata[RK3288_USB_CTLR], + .data = &rkhsic_pdata_rk3288, }, {}, }; @@ -234,20 +234,18 @@ static int ehci_rkhsic_probe(struct platform_device *pdev) int retval = 0; static u64 usb_dmamask = 0xffffffffUL; struct device_node *node = pdev->dev.of_node; - struct rkehci_pdata_id *p; const struct of_device_id *match = of_match_device(of_match_ptr(rk_hsic_of_match), &pdev->dev); dev_dbg(&pdev->dev, "ehci_rkhsic proble\n"); - if (match) { - p = (struct rkehci_pdata_id *)match->data; + if (match && match->data) { + dev->platform_data = match->data; } else { dev_err(dev, "ehci_rkhsic match failed\n"); return -EINVAL; } - dev->platform_data = p->pdata; pldata = dev->platform_data; pldata->dev = dev; diff --git a/drivers/usb/host/ehci-rockchip.c b/drivers/usb/host/ehci-rockchip.c index c6f20a235d05..4e4be6996918 100755 --- a/drivers/usb/host/ehci-rockchip.c +++ b/drivers/usb/host/ehci-rockchip.c @@ -41,18 +41,6 @@ struct rk_ehci_hcd { }; #define EHCI_PRINT(x...) printk(KERN_INFO "EHCI: " x) -static struct rkehci_pdata_id rkehci_pdata[] = { - { - .name = "rk3188-reserved", - .pdata = NULL, - }, - { - .name = "rk3288-ehci", - .pdata = &rkehci_pdata_rk3288, - }, - {}, -}; - static void rk_ehci_hcd_enable(struct work_struct *work) { struct rk_ehci_hcd *rk_ehci; @@ -263,7 +251,7 @@ static DEVICE_ATTR(test_sq, S_IWUSR, NULL, test_sq_store); static struct of_device_id rk_ehci_of_match[] = { { .compatible = "rockchip,rk3288_rk_ehci_host", - .data = &rkehci_pdata[RK3288_USB_CTLR], + .data = &rkehci_pdata_rk3288, }, {}, }; @@ -279,21 +267,19 @@ static int ehci_rk_probe(struct platform_device *pdev) struct rkehci_platform_data *pldata; int ret; struct device_node *node = pdev->dev.of_node; - struct rkehci_pdata_id *p; struct rk_ehci_hcd *rk_ehci; const struct of_device_id *match = of_match_device(of_match_ptr(rk_ehci_of_match), &pdev->dev); dev_dbg(&pdev->dev, "ehci_rk probe!\n"); - if (match) { - p = (struct rkehci_pdata_id *)match->data; + if (match && match->data) { + dev->platform_data = (void *)match->data; } else { dev_err(dev, "ehci_rk match failed\n"); return -EINVAL; } - dev->platform_data = p->pdata; pldata = dev->platform_data; pldata->dev = dev;