diff options
-rw-r--r-- | arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_fbdev_generic.c | 11 | ||||
-rw-r--r-- | drivers/phy/starfive/phy-jh7110-usb.c | 7 |
3 files changed, 22 insertions, 1 deletions
diff --git a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi index 85a87d877156..7c36b6d06c36 100644 --- a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi +++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi @@ -307,6 +307,9 @@ reg = <0x19>; reset-gpio = <&sysgpio 23 0>; enable-gpio = <&sysgpio 22 0>; + mount-matrix = "1", "0", "0", + "0", "-1", "0", + "0", "0", "-1"; port { panel_out1: endpoint { @@ -1185,4 +1188,4 @@ }; }; }; -};
\ No newline at end of file +}; diff --git a/drivers/gpu/drm/drm_fbdev_generic.c b/drivers/gpu/drm/drm_fbdev_generic.c index d647d89764cb..b170a368e097 100644 --- a/drivers/gpu/drm/drm_fbdev_generic.c +++ b/drivers/gpu/drm/drm_fbdev_generic.c @@ -93,6 +93,15 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, fb_helper->buffer = buffer; fb_helper->fb = buffer->fb; + struct iosys_map map; + ret = drm_client_buffer_vmap(buffer, &map); + if (ret) { + goto err_drm_client_framebuffer_delete; + } else if (drm_WARN_ON(dev, map.is_iomem)) { + ret = -ENODEV; /* I/O memory not supported; use generic emulation */ + goto err_drm_client_framebuffer_delete; + } + screen_size = buffer->gem->size; screen_buffer = vzalloc(screen_size); if (!screen_buffer) { @@ -105,6 +114,7 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, ret = PTR_ERR(info); goto err_vfree; } + iosys_map_memset(&map, 0, 0x00, screen_size); drm_fb_helper_fill_info(info, fb_helper, sizes); @@ -130,6 +140,7 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, err_drm_fb_helper_release_info: drm_fb_helper_release_info(fb_helper); err_vfree: + drm_client_buffer_vunmap(buffer); vfree(screen_buffer); err_drm_client_framebuffer_delete: fb_helper->fb = NULL; diff --git a/drivers/phy/starfive/phy-jh7110-usb.c b/drivers/phy/starfive/phy-jh7110-usb.c index 426a2d44272a..42dfd57a7fb2 100644 --- a/drivers/phy/starfive/phy-jh7110-usb.c +++ b/drivers/phy/starfive/phy-jh7110-usb.c @@ -18,6 +18,8 @@ #include <linux/usb/of.h> #define USB_125M_CLK_RATE 125000000 +#define USB_CLK_MODE_OFF 0x0 +#define USB_CLK_MODE_RX_NORMAL_PWR BIT(1) #define USB_LS_KEEPALIVE_OFF 0x4 #define USB_LS_KEEPALIVE_ENABLE BIT(4) @@ -78,6 +80,7 @@ static int jh7110_usb2_phy_init(struct phy *_phy) { struct jh7110_usb2_phy *phy = phy_get_drvdata(_phy); int ret; + unsigned int val; ret = clk_set_rate(phy->usb_125m_clk, USB_125M_CLK_RATE); if (ret) @@ -87,6 +90,10 @@ static int jh7110_usb2_phy_init(struct phy *_phy) if (ret) return ret; + val = readl(phy->regs + USB_CLK_MODE_OFF); + val |= USB_CLK_MODE_RX_NORMAL_PWR; + writel(val, phy->regs + USB_CLK_MODE_OFF); + return 0; } |