Message ID | 1483522006-24382-1-git-send-email-vincent.abriou@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jan 04, 2017 at 10:26:46AM +0100, Vincent Abriou wrote: > sti_vtac.c file is deprecated since stih416 chip family is not > supported anymore. > > Signed-off-by: Vincent Abriou <vincent.abriou@st.com> Ehrm, removing existing support is Not Cool. This either needs more explanation, or it can't be merged. -Daniel > --- > drivers/gpu/drm/sti/Makefile | 1 - > drivers/gpu/drm/sti/sti_drv.c | 1 - > drivers/gpu/drm/sti/sti_drv.h | 1 - > drivers/gpu/drm/sti/sti_vtac.c | 223 ----------------------------------------- > 4 files changed, 226 deletions(-) > delete mode 100644 drivers/gpu/drm/sti/sti_vtac.c > > diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile > index d20f7c0..c35db12 100644 > --- a/drivers/gpu/drm/sti/Makefile > +++ b/drivers/gpu/drm/sti/Makefile > @@ -13,7 +13,6 @@ sti-drm-y := \ > sti_dvo.o \ > sti_awg_utils.o \ > sti_vtg.o \ > - sti_vtac.o \ > sti_hda.o \ > sti_tvout.o \ > sti_hqvdp.o \ > diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > index c584d4d..278a63f 100644 > --- a/drivers/gpu/drm/sti/sti_drv.c > +++ b/drivers/gpu/drm/sti/sti_drv.c > @@ -477,7 +477,6 @@ static struct platform_driver sti_platform_driver = { > > static struct platform_driver * const drivers[] = { > &sti_tvout_driver, > - &sti_vtac_driver, > &sti_hqvdp_driver, > &sti_hdmi_driver, > &sti_hda_driver, > diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h > index 78ebe5e..4c75845 100644 > --- a/drivers/gpu/drm/sti/sti_drv.h > +++ b/drivers/gpu/drm/sti/sti_drv.h > @@ -34,7 +34,6 @@ struct sti_private { > }; > > extern struct platform_driver sti_tvout_driver; > -extern struct platform_driver sti_vtac_driver; > extern struct platform_driver sti_hqvdp_driver; > extern struct platform_driver sti_hdmi_driver; > extern struct platform_driver sti_hda_driver; > diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c > deleted file mode 100644 > index cf7fe8a..0000000 > --- a/drivers/gpu/drm/sti/sti_vtac.c > +++ /dev/null > @@ -1,223 +0,0 @@ > -/* > - * Copyright (C) STMicroelectronics SA 2014 > - * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics. > - * License terms: GNU General Public License (GPL), version 2 > - */ > - > -#include <linux/clk.h> > -#include <linux/io.h> > -#include <linux/module.h> > -#include <linux/of.h> > -#include <linux/platform_device.h> > - > -#include <drm/drmP.h> > - > -#include "sti_drv.h" > - > -/* registers offset */ > -#define VTAC_CONFIG 0x00 > -#define VTAC_RX_FIFO_CONFIG 0x04 > -#define VTAC_FIFO_CONFIG_VAL 0x04 > - > -#define VTAC_SYS_CFG8521 0x824 > -#define VTAC_SYS_CFG8522 0x828 > - > -/* Number of phyts per pixel */ > -#define VTAC_2_5_PPP 0x0005 > -#define VTAC_3_PPP 0x0006 > -#define VTAC_4_PPP 0x0008 > -#define VTAC_5_PPP 0x000A > -#define VTAC_6_PPP 0x000C > -#define VTAC_13_PPP 0x001A > -#define VTAC_14_PPP 0x001C > -#define VTAC_15_PPP 0x001E > -#define VTAC_16_PPP 0x0020 > -#define VTAC_17_PPP 0x0022 > -#define VTAC_18_PPP 0x0024 > - > -/* enable bits */ > -#define VTAC_ENABLE 0x3003 > - > -#define VTAC_TX_PHY_ENABLE_CLK_PHY BIT(0) > -#define VTAC_TX_PHY_ENABLE_CLK_DLL BIT(1) > -#define VTAC_TX_PHY_PLL_NOT_OSC_MODE BIT(3) > -#define VTAC_TX_PHY_RST_N_DLL_SWITCH BIT(4) > -#define VTAC_TX_PHY_PROG_N3 BIT(9) > - > - > -/** > - * VTAC mode structure > - * > - * @vid_in_width: Video Data Resolution > - * @phyts_width: Width of phyt buses(phyt low and phyt high). > - * @phyts_per_pixel: Number of phyts sent per pixel > - */ > -struct sti_vtac_mode { > - u32 vid_in_width; > - u32 phyts_width; > - u32 phyts_per_pixel; > -}; > - > -static const struct sti_vtac_mode vtac_mode_main = { > - .vid_in_width = 0x2, > - .phyts_width = 0x2, > - .phyts_per_pixel = VTAC_5_PPP, > -}; > -static const struct sti_vtac_mode vtac_mode_aux = { > - .vid_in_width = 0x1, > - .phyts_width = 0x0, > - .phyts_per_pixel = VTAC_17_PPP, > -}; > - > -/** > - * VTAC structure > - * > - * @dev: pointer to device structure > - * @regs: ioremapped registers for RX and TX devices > - * @phy_regs: phy registers for TX device > - * @clk: clock > - * @mode: main or auxillary configuration mode > - */ > -struct sti_vtac { > - struct device *dev; > - void __iomem *regs; > - void __iomem *phy_regs; > - struct clk *clk; > - const struct sti_vtac_mode *mode; > -}; > - > -static void sti_vtac_rx_set_config(struct sti_vtac *vtac) > -{ > - u32 config; > - > - /* Enable VTAC clock */ > - if (clk_prepare_enable(vtac->clk)) > - DRM_ERROR("Failed to prepare/enable vtac_rx clock.\n"); > - > - writel(VTAC_FIFO_CONFIG_VAL, vtac->regs + VTAC_RX_FIFO_CONFIG); > - > - config = VTAC_ENABLE; > - config |= vtac->mode->vid_in_width << 4; > - config |= vtac->mode->phyts_width << 16; > - config |= vtac->mode->phyts_per_pixel << 23; > - writel(config, vtac->regs + VTAC_CONFIG); > -} > - > -static void sti_vtac_tx_set_config(struct sti_vtac *vtac) > -{ > - u32 phy_config; > - u32 config; > - > - /* Enable VTAC clock */ > - if (clk_prepare_enable(vtac->clk)) > - DRM_ERROR("Failed to prepare/enable vtac_tx clock.\n"); > - > - /* Configure vtac phy */ > - phy_config = 0x00000000; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8522); > - phy_config = VTAC_TX_PHY_ENABLE_CLK_PHY; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config |= VTAC_TX_PHY_PROG_N3; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config |= VTAC_TX_PHY_ENABLE_CLK_DLL; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config |= VTAC_TX_PHY_RST_N_DLL_SWITCH; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > - phy_config |= VTAC_TX_PHY_PLL_NOT_OSC_MODE; > - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > - > - /* Configure vtac tx */ > - config = VTAC_ENABLE; > - config |= vtac->mode->vid_in_width << 4; > - config |= vtac->mode->phyts_width << 16; > - config |= vtac->mode->phyts_per_pixel << 23; > - writel(config, vtac->regs + VTAC_CONFIG); > -} > - > -static const struct of_device_id vtac_of_match[] = { > - { > - .compatible = "st,vtac-main", > - .data = &vtac_mode_main, > - }, { > - .compatible = "st,vtac-aux", > - .data = &vtac_mode_aux, > - }, { > - /* end node */ > - } > -}; > -MODULE_DEVICE_TABLE(of, vtac_of_match); > - > -static int sti_vtac_probe(struct platform_device *pdev) > -{ > - struct device *dev = &pdev->dev; > - struct device_node *np = dev->of_node; > - const struct of_device_id *id; > - struct sti_vtac *vtac; > - struct resource *res; > - > - vtac = devm_kzalloc(dev, sizeof(*vtac), GFP_KERNEL); > - if (!vtac) > - return -ENOMEM; > - > - vtac->dev = dev; > - > - id = of_match_node(vtac_of_match, np); > - if (!id) > - return -ENOMEM; > - > - vtac->mode = id->data; > - > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - DRM_ERROR("Invalid resource\n"); > - return -ENOMEM; > - } > - vtac->regs = devm_ioremap_resource(dev, res); > - if (IS_ERR(vtac->regs)) > - return PTR_ERR(vtac->regs); > - > - > - vtac->clk = devm_clk_get(dev, "vtac"); > - if (IS_ERR(vtac->clk)) { > - DRM_ERROR("Cannot get vtac clock\n"); > - return PTR_ERR(vtac->clk); > - } > - > - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > - if (res) { > - vtac->phy_regs = devm_ioremap_nocache(dev, res->start, > - resource_size(res)); > - sti_vtac_tx_set_config(vtac); > - } else { > - > - sti_vtac_rx_set_config(vtac); > - } > - > - platform_set_drvdata(pdev, vtac); > - DRM_INFO("%s %s\n", __func__, dev_name(vtac->dev)); > - > - return 0; > -} > - > -static int sti_vtac_remove(struct platform_device *pdev) > -{ > - return 0; > -} > - > -struct platform_driver sti_vtac_driver = { > - .driver = { > - .name = "sti-vtac", > - .owner = THIS_MODULE, > - .of_match_table = vtac_of_match, > - }, > - .probe = sti_vtac_probe, > - .remove = sti_vtac_remove, > -}; > - > -MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>"); > -MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver"); > -MODULE_LICENSE("GPL"); > -- > 2.7.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 01/04/2017 10:40 AM, Daniel Vetter wrote: > On Wed, Jan 04, 2017 at 10:26:46AM +0100, Vincent Abriou wrote: >> sti_vtac.c file is deprecated since stih416 chip family is not >> supported anymore. >> >> Signed-off-by: Vincent Abriou <vincent.abriou@st.com> > > Ehrm, removing existing support is Not Cool. This either needs more > explanation, or it can't be merged. > -Daniel > Hi Daniel, stih416 chip family is no more supported in linux v4.9. It is useless to keep this file since it not used at all for the stih407/10 chip family supported by our sti driver. Vincent >> --- >> drivers/gpu/drm/sti/Makefile | 1 - >> drivers/gpu/drm/sti/sti_drv.c | 1 - >> drivers/gpu/drm/sti/sti_drv.h | 1 - >> drivers/gpu/drm/sti/sti_vtac.c | 223 ----------------------------------------- >> 4 files changed, 226 deletions(-) >> delete mode 100644 drivers/gpu/drm/sti/sti_vtac.c >> >> diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile >> index d20f7c0..c35db12 100644 >> --- a/drivers/gpu/drm/sti/Makefile >> +++ b/drivers/gpu/drm/sti/Makefile >> @@ -13,7 +13,6 @@ sti-drm-y := \ >> sti_dvo.o \ >> sti_awg_utils.o \ >> sti_vtg.o \ >> - sti_vtac.o \ >> sti_hda.o \ >> sti_tvout.o \ >> sti_hqvdp.o \ >> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c >> index c584d4d..278a63f 100644 >> --- a/drivers/gpu/drm/sti/sti_drv.c >> +++ b/drivers/gpu/drm/sti/sti_drv.c >> @@ -477,7 +477,6 @@ static struct platform_driver sti_platform_driver = { >> >> static struct platform_driver * const drivers[] = { >> &sti_tvout_driver, >> - &sti_vtac_driver, >> &sti_hqvdp_driver, >> &sti_hdmi_driver, >> &sti_hda_driver, >> diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h >> index 78ebe5e..4c75845 100644 >> --- a/drivers/gpu/drm/sti/sti_drv.h >> +++ b/drivers/gpu/drm/sti/sti_drv.h >> @@ -34,7 +34,6 @@ struct sti_private { >> }; >> >> extern struct platform_driver sti_tvout_driver; >> -extern struct platform_driver sti_vtac_driver; >> extern struct platform_driver sti_hqvdp_driver; >> extern struct platform_driver sti_hdmi_driver; >> extern struct platform_driver sti_hda_driver; >> diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c >> deleted file mode 100644 >> index cf7fe8a..0000000 >> --- a/drivers/gpu/drm/sti/sti_vtac.c >> +++ /dev/null >> @@ -1,223 +0,0 @@ >> -/* >> - * Copyright (C) STMicroelectronics SA 2014 >> - * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics. >> - * License terms: GNU General Public License (GPL), version 2 >> - */ >> - >> -#include <linux/clk.h> >> -#include <linux/io.h> >> -#include <linux/module.h> >> -#include <linux/of.h> >> -#include <linux/platform_device.h> >> - >> -#include <drm/drmP.h> >> - >> -#include "sti_drv.h" >> - >> -/* registers offset */ >> -#define VTAC_CONFIG 0x00 >> -#define VTAC_RX_FIFO_CONFIG 0x04 >> -#define VTAC_FIFO_CONFIG_VAL 0x04 >> - >> -#define VTAC_SYS_CFG8521 0x824 >> -#define VTAC_SYS_CFG8522 0x828 >> - >> -/* Number of phyts per pixel */ >> -#define VTAC_2_5_PPP 0x0005 >> -#define VTAC_3_PPP 0x0006 >> -#define VTAC_4_PPP 0x0008 >> -#define VTAC_5_PPP 0x000A >> -#define VTAC_6_PPP 0x000C >> -#define VTAC_13_PPP 0x001A >> -#define VTAC_14_PPP 0x001C >> -#define VTAC_15_PPP 0x001E >> -#define VTAC_16_PPP 0x0020 >> -#define VTAC_17_PPP 0x0022 >> -#define VTAC_18_PPP 0x0024 >> - >> -/* enable bits */ >> -#define VTAC_ENABLE 0x3003 >> - >> -#define VTAC_TX_PHY_ENABLE_CLK_PHY BIT(0) >> -#define VTAC_TX_PHY_ENABLE_CLK_DLL BIT(1) >> -#define VTAC_TX_PHY_PLL_NOT_OSC_MODE BIT(3) >> -#define VTAC_TX_PHY_RST_N_DLL_SWITCH BIT(4) >> -#define VTAC_TX_PHY_PROG_N3 BIT(9) >> - >> - >> -/** >> - * VTAC mode structure >> - * >> - * @vid_in_width: Video Data Resolution >> - * @phyts_width: Width of phyt buses(phyt low and phyt high). >> - * @phyts_per_pixel: Number of phyts sent per pixel >> - */ >> -struct sti_vtac_mode { >> - u32 vid_in_width; >> - u32 phyts_width; >> - u32 phyts_per_pixel; >> -}; >> - >> -static const struct sti_vtac_mode vtac_mode_main = { >> - .vid_in_width = 0x2, >> - .phyts_width = 0x2, >> - .phyts_per_pixel = VTAC_5_PPP, >> -}; >> -static const struct sti_vtac_mode vtac_mode_aux = { >> - .vid_in_width = 0x1, >> - .phyts_width = 0x0, >> - .phyts_per_pixel = VTAC_17_PPP, >> -}; >> - >> -/** >> - * VTAC structure >> - * >> - * @dev: pointer to device structure >> - * @regs: ioremapped registers for RX and TX devices >> - * @phy_regs: phy registers for TX device >> - * @clk: clock >> - * @mode: main or auxillary configuration mode >> - */ >> -struct sti_vtac { >> - struct device *dev; >> - void __iomem *regs; >> - void __iomem *phy_regs; >> - struct clk *clk; >> - const struct sti_vtac_mode *mode; >> -}; >> - >> -static void sti_vtac_rx_set_config(struct sti_vtac *vtac) >> -{ >> - u32 config; >> - >> - /* Enable VTAC clock */ >> - if (clk_prepare_enable(vtac->clk)) >> - DRM_ERROR("Failed to prepare/enable vtac_rx clock.\n"); >> - >> - writel(VTAC_FIFO_CONFIG_VAL, vtac->regs + VTAC_RX_FIFO_CONFIG); >> - >> - config = VTAC_ENABLE; >> - config |= vtac->mode->vid_in_width << 4; >> - config |= vtac->mode->phyts_width << 16; >> - config |= vtac->mode->phyts_per_pixel << 23; >> - writel(config, vtac->regs + VTAC_CONFIG); >> -} >> - >> -static void sti_vtac_tx_set_config(struct sti_vtac *vtac) >> -{ >> - u32 phy_config; >> - u32 config; >> - >> - /* Enable VTAC clock */ >> - if (clk_prepare_enable(vtac->clk)) >> - DRM_ERROR("Failed to prepare/enable vtac_tx clock.\n"); >> - >> - /* Configure vtac phy */ >> - phy_config = 0x00000000; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8522); >> - phy_config = VTAC_TX_PHY_ENABLE_CLK_PHY; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config |= VTAC_TX_PHY_PROG_N3; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config |= VTAC_TX_PHY_ENABLE_CLK_DLL; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config |= VTAC_TX_PHY_RST_N_DLL_SWITCH; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); >> - phy_config |= VTAC_TX_PHY_PLL_NOT_OSC_MODE; >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); >> - >> - /* Configure vtac tx */ >> - config = VTAC_ENABLE; >> - config |= vtac->mode->vid_in_width << 4; >> - config |= vtac->mode->phyts_width << 16; >> - config |= vtac->mode->phyts_per_pixel << 23; >> - writel(config, vtac->regs + VTAC_CONFIG); >> -} >> - >> -static const struct of_device_id vtac_of_match[] = { >> - { >> - .compatible = "st,vtac-main", >> - .data = &vtac_mode_main, >> - }, { >> - .compatible = "st,vtac-aux", >> - .data = &vtac_mode_aux, >> - }, { >> - /* end node */ >> - } >> -}; >> -MODULE_DEVICE_TABLE(of, vtac_of_match); >> - >> -static int sti_vtac_probe(struct platform_device *pdev) >> -{ >> - struct device *dev = &pdev->dev; >> - struct device_node *np = dev->of_node; >> - const struct of_device_id *id; >> - struct sti_vtac *vtac; >> - struct resource *res; >> - >> - vtac = devm_kzalloc(dev, sizeof(*vtac), GFP_KERNEL); >> - if (!vtac) >> - return -ENOMEM; >> - >> - vtac->dev = dev; >> - >> - id = of_match_node(vtac_of_match, np); >> - if (!id) >> - return -ENOMEM; >> - >> - vtac->mode = id->data; >> - >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> - if (!res) { >> - DRM_ERROR("Invalid resource\n"); >> - return -ENOMEM; >> - } >> - vtac->regs = devm_ioremap_resource(dev, res); >> - if (IS_ERR(vtac->regs)) >> - return PTR_ERR(vtac->regs); >> - >> - >> - vtac->clk = devm_clk_get(dev, "vtac"); >> - if (IS_ERR(vtac->clk)) { >> - DRM_ERROR("Cannot get vtac clock\n"); >> - return PTR_ERR(vtac->clk); >> - } >> - >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); >> - if (res) { >> - vtac->phy_regs = devm_ioremap_nocache(dev, res->start, >> - resource_size(res)); >> - sti_vtac_tx_set_config(vtac); >> - } else { >> - >> - sti_vtac_rx_set_config(vtac); >> - } >> - >> - platform_set_drvdata(pdev, vtac); >> - DRM_INFO("%s %s\n", __func__, dev_name(vtac->dev)); >> - >> - return 0; >> -} >> - >> -static int sti_vtac_remove(struct platform_device *pdev) >> -{ >> - return 0; >> -} >> - >> -struct platform_driver sti_vtac_driver = { >> - .driver = { >> - .name = "sti-vtac", >> - .owner = THIS_MODULE, >> - .of_match_table = vtac_of_match, >> - }, >> - .probe = sti_vtac_probe, >> - .remove = sti_vtac_remove, >> -}; >> - >> -MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>"); >> -MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver"); >> -MODULE_LICENSE("GPL"); >> -- >> 2.7.4 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel >
On Wed, Jan 04, 2017 at 09:45:21AM +0000, Vincent ABRIOU wrote: > > > On 01/04/2017 10:40 AM, Daniel Vetter wrote: > > On Wed, Jan 04, 2017 at 10:26:46AM +0100, Vincent Abriou wrote: > >> sti_vtac.c file is deprecated since stih416 chip family is not > >> supported anymore. > >> > >> Signed-off-by: Vincent Abriou <vincent.abriou@st.com> > > > > Ehrm, removing existing support is Not Cool. This either needs more > > explanation, or it can't be merged. > > -Daniel > > > > Hi Daniel, > > stih416 chip family is no more supported in linux v4.9. > It is useless to keep this file since it not used at all for the > stih407/10 chip family supported by our sti driver. Ah ok. Then please revise the commit message to include this important information. As-is it sounds like you're removing existing hw support from upstream. -Daniel > > Vincent > > >> --- > >> drivers/gpu/drm/sti/Makefile | 1 - > >> drivers/gpu/drm/sti/sti_drv.c | 1 - > >> drivers/gpu/drm/sti/sti_drv.h | 1 - > >> drivers/gpu/drm/sti/sti_vtac.c | 223 ----------------------------------------- > >> 4 files changed, 226 deletions(-) > >> delete mode 100644 drivers/gpu/drm/sti/sti_vtac.c > >> > >> diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile > >> index d20f7c0..c35db12 100644 > >> --- a/drivers/gpu/drm/sti/Makefile > >> +++ b/drivers/gpu/drm/sti/Makefile > >> @@ -13,7 +13,6 @@ sti-drm-y := \ > >> sti_dvo.o \ > >> sti_awg_utils.o \ > >> sti_vtg.o \ > >> - sti_vtac.o \ > >> sti_hda.o \ > >> sti_tvout.o \ > >> sti_hqvdp.o \ > >> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > >> index c584d4d..278a63f 100644 > >> --- a/drivers/gpu/drm/sti/sti_drv.c > >> +++ b/drivers/gpu/drm/sti/sti_drv.c > >> @@ -477,7 +477,6 @@ static struct platform_driver sti_platform_driver = { > >> > >> static struct platform_driver * const drivers[] = { > >> &sti_tvout_driver, > >> - &sti_vtac_driver, > >> &sti_hqvdp_driver, > >> &sti_hdmi_driver, > >> &sti_hda_driver, > >> diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h > >> index 78ebe5e..4c75845 100644 > >> --- a/drivers/gpu/drm/sti/sti_drv.h > >> +++ b/drivers/gpu/drm/sti/sti_drv.h > >> @@ -34,7 +34,6 @@ struct sti_private { > >> }; > >> > >> extern struct platform_driver sti_tvout_driver; > >> -extern struct platform_driver sti_vtac_driver; > >> extern struct platform_driver sti_hqvdp_driver; > >> extern struct platform_driver sti_hdmi_driver; > >> extern struct platform_driver sti_hda_driver; > >> diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c > >> deleted file mode 100644 > >> index cf7fe8a..0000000 > >> --- a/drivers/gpu/drm/sti/sti_vtac.c > >> +++ /dev/null > >> @@ -1,223 +0,0 @@ > >> -/* > >> - * Copyright (C) STMicroelectronics SA 2014 > >> - * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics. > >> - * License terms: GNU General Public License (GPL), version 2 > >> - */ > >> - > >> -#include <linux/clk.h> > >> -#include <linux/io.h> > >> -#include <linux/module.h> > >> -#include <linux/of.h> > >> -#include <linux/platform_device.h> > >> - > >> -#include <drm/drmP.h> > >> - > >> -#include "sti_drv.h" > >> - > >> -/* registers offset */ > >> -#define VTAC_CONFIG 0x00 > >> -#define VTAC_RX_FIFO_CONFIG 0x04 > >> -#define VTAC_FIFO_CONFIG_VAL 0x04 > >> - > >> -#define VTAC_SYS_CFG8521 0x824 > >> -#define VTAC_SYS_CFG8522 0x828 > >> - > >> -/* Number of phyts per pixel */ > >> -#define VTAC_2_5_PPP 0x0005 > >> -#define VTAC_3_PPP 0x0006 > >> -#define VTAC_4_PPP 0x0008 > >> -#define VTAC_5_PPP 0x000A > >> -#define VTAC_6_PPP 0x000C > >> -#define VTAC_13_PPP 0x001A > >> -#define VTAC_14_PPP 0x001C > >> -#define VTAC_15_PPP 0x001E > >> -#define VTAC_16_PPP 0x0020 > >> -#define VTAC_17_PPP 0x0022 > >> -#define VTAC_18_PPP 0x0024 > >> - > >> -/* enable bits */ > >> -#define VTAC_ENABLE 0x3003 > >> - > >> -#define VTAC_TX_PHY_ENABLE_CLK_PHY BIT(0) > >> -#define VTAC_TX_PHY_ENABLE_CLK_DLL BIT(1) > >> -#define VTAC_TX_PHY_PLL_NOT_OSC_MODE BIT(3) > >> -#define VTAC_TX_PHY_RST_N_DLL_SWITCH BIT(4) > >> -#define VTAC_TX_PHY_PROG_N3 BIT(9) > >> - > >> - > >> -/** > >> - * VTAC mode structure > >> - * > >> - * @vid_in_width: Video Data Resolution > >> - * @phyts_width: Width of phyt buses(phyt low and phyt high). > >> - * @phyts_per_pixel: Number of phyts sent per pixel > >> - */ > >> -struct sti_vtac_mode { > >> - u32 vid_in_width; > >> - u32 phyts_width; > >> - u32 phyts_per_pixel; > >> -}; > >> - > >> -static const struct sti_vtac_mode vtac_mode_main = { > >> - .vid_in_width = 0x2, > >> - .phyts_width = 0x2, > >> - .phyts_per_pixel = VTAC_5_PPP, > >> -}; > >> -static const struct sti_vtac_mode vtac_mode_aux = { > >> - .vid_in_width = 0x1, > >> - .phyts_width = 0x0, > >> - .phyts_per_pixel = VTAC_17_PPP, > >> -}; > >> - > >> -/** > >> - * VTAC structure > >> - * > >> - * @dev: pointer to device structure > >> - * @regs: ioremapped registers for RX and TX devices > >> - * @phy_regs: phy registers for TX device > >> - * @clk: clock > >> - * @mode: main or auxillary configuration mode > >> - */ > >> -struct sti_vtac { > >> - struct device *dev; > >> - void __iomem *regs; > >> - void __iomem *phy_regs; > >> - struct clk *clk; > >> - const struct sti_vtac_mode *mode; > >> -}; > >> - > >> -static void sti_vtac_rx_set_config(struct sti_vtac *vtac) > >> -{ > >> - u32 config; > >> - > >> - /* Enable VTAC clock */ > >> - if (clk_prepare_enable(vtac->clk)) > >> - DRM_ERROR("Failed to prepare/enable vtac_rx clock.\n"); > >> - > >> - writel(VTAC_FIFO_CONFIG_VAL, vtac->regs + VTAC_RX_FIFO_CONFIG); > >> - > >> - config = VTAC_ENABLE; > >> - config |= vtac->mode->vid_in_width << 4; > >> - config |= vtac->mode->phyts_width << 16; > >> - config |= vtac->mode->phyts_per_pixel << 23; > >> - writel(config, vtac->regs + VTAC_CONFIG); > >> -} > >> - > >> -static void sti_vtac_tx_set_config(struct sti_vtac *vtac) > >> -{ > >> - u32 phy_config; > >> - u32 config; > >> - > >> - /* Enable VTAC clock */ > >> - if (clk_prepare_enable(vtac->clk)) > >> - DRM_ERROR("Failed to prepare/enable vtac_tx clock.\n"); > >> - > >> - /* Configure vtac phy */ > >> - phy_config = 0x00000000; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8522); > >> - phy_config = VTAC_TX_PHY_ENABLE_CLK_PHY; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config |= VTAC_TX_PHY_PROG_N3; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config |= VTAC_TX_PHY_ENABLE_CLK_DLL; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config |= VTAC_TX_PHY_RST_N_DLL_SWITCH; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); > >> - phy_config |= VTAC_TX_PHY_PLL_NOT_OSC_MODE; > >> - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); > >> - > >> - /* Configure vtac tx */ > >> - config = VTAC_ENABLE; > >> - config |= vtac->mode->vid_in_width << 4; > >> - config |= vtac->mode->phyts_width << 16; > >> - config |= vtac->mode->phyts_per_pixel << 23; > >> - writel(config, vtac->regs + VTAC_CONFIG); > >> -} > >> - > >> -static const struct of_device_id vtac_of_match[] = { > >> - { > >> - .compatible = "st,vtac-main", > >> - .data = &vtac_mode_main, > >> - }, { > >> - .compatible = "st,vtac-aux", > >> - .data = &vtac_mode_aux, > >> - }, { > >> - /* end node */ > >> - } > >> -}; > >> -MODULE_DEVICE_TABLE(of, vtac_of_match); > >> - > >> -static int sti_vtac_probe(struct platform_device *pdev) > >> -{ > >> - struct device *dev = &pdev->dev; > >> - struct device_node *np = dev->of_node; > >> - const struct of_device_id *id; > >> - struct sti_vtac *vtac; > >> - struct resource *res; > >> - > >> - vtac = devm_kzalloc(dev, sizeof(*vtac), GFP_KERNEL); > >> - if (!vtac) > >> - return -ENOMEM; > >> - > >> - vtac->dev = dev; > >> - > >> - id = of_match_node(vtac_of_match, np); > >> - if (!id) > >> - return -ENOMEM; > >> - > >> - vtac->mode = id->data; > >> - > >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >> - if (!res) { > >> - DRM_ERROR("Invalid resource\n"); > >> - return -ENOMEM; > >> - } > >> - vtac->regs = devm_ioremap_resource(dev, res); > >> - if (IS_ERR(vtac->regs)) > >> - return PTR_ERR(vtac->regs); > >> - > >> - > >> - vtac->clk = devm_clk_get(dev, "vtac"); > >> - if (IS_ERR(vtac->clk)) { > >> - DRM_ERROR("Cannot get vtac clock\n"); > >> - return PTR_ERR(vtac->clk); > >> - } > >> - > >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > >> - if (res) { > >> - vtac->phy_regs = devm_ioremap_nocache(dev, res->start, > >> - resource_size(res)); > >> - sti_vtac_tx_set_config(vtac); > >> - } else { > >> - > >> - sti_vtac_rx_set_config(vtac); > >> - } > >> - > >> - platform_set_drvdata(pdev, vtac); > >> - DRM_INFO("%s %s\n", __func__, dev_name(vtac->dev)); > >> - > >> - return 0; > >> -} > >> - > >> -static int sti_vtac_remove(struct platform_device *pdev) > >> -{ > >> - return 0; > >> -} > >> - > >> -struct platform_driver sti_vtac_driver = { > >> - .driver = { > >> - .name = "sti-vtac", > >> - .owner = THIS_MODULE, > >> - .of_match_table = vtac_of_match, > >> - }, > >> - .probe = sti_vtac_probe, > >> - .remove = sti_vtac_remove, > >> -}; > >> - > >> -MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>"); > >> -MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver"); > >> -MODULE_LICENSE("GPL"); > >> -- > >> 2.7.4 > >> > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > >
diff --git a/drivers/gpu/drm/sti/Makefile b/drivers/gpu/drm/sti/Makefile index d20f7c0..c35db12 100644 --- a/drivers/gpu/drm/sti/Makefile +++ b/drivers/gpu/drm/sti/Makefile @@ -13,7 +13,6 @@ sti-drm-y := \ sti_dvo.o \ sti_awg_utils.o \ sti_vtg.o \ - sti_vtac.o \ sti_hda.o \ sti_tvout.o \ sti_hqvdp.o \ diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c index c584d4d..278a63f 100644 --- a/drivers/gpu/drm/sti/sti_drv.c +++ b/drivers/gpu/drm/sti/sti_drv.c @@ -477,7 +477,6 @@ static struct platform_driver sti_platform_driver = { static struct platform_driver * const drivers[] = { &sti_tvout_driver, - &sti_vtac_driver, &sti_hqvdp_driver, &sti_hdmi_driver, &sti_hda_driver, diff --git a/drivers/gpu/drm/sti/sti_drv.h b/drivers/gpu/drm/sti/sti_drv.h index 78ebe5e..4c75845 100644 --- a/drivers/gpu/drm/sti/sti_drv.h +++ b/drivers/gpu/drm/sti/sti_drv.h @@ -34,7 +34,6 @@ struct sti_private { }; extern struct platform_driver sti_tvout_driver; -extern struct platform_driver sti_vtac_driver; extern struct platform_driver sti_hqvdp_driver; extern struct platform_driver sti_hdmi_driver; extern struct platform_driver sti_hda_driver; diff --git a/drivers/gpu/drm/sti/sti_vtac.c b/drivers/gpu/drm/sti/sti_vtac.c deleted file mode 100644 index cf7fe8a..0000000 --- a/drivers/gpu/drm/sti/sti_vtac.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (C) STMicroelectronics SA 2014 - * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics. - * License terms: GNU General Public License (GPL), version 2 - */ - -#include <linux/clk.h> -#include <linux/io.h> -#include <linux/module.h> -#include <linux/of.h> -#include <linux/platform_device.h> - -#include <drm/drmP.h> - -#include "sti_drv.h" - -/* registers offset */ -#define VTAC_CONFIG 0x00 -#define VTAC_RX_FIFO_CONFIG 0x04 -#define VTAC_FIFO_CONFIG_VAL 0x04 - -#define VTAC_SYS_CFG8521 0x824 -#define VTAC_SYS_CFG8522 0x828 - -/* Number of phyts per pixel */ -#define VTAC_2_5_PPP 0x0005 -#define VTAC_3_PPP 0x0006 -#define VTAC_4_PPP 0x0008 -#define VTAC_5_PPP 0x000A -#define VTAC_6_PPP 0x000C -#define VTAC_13_PPP 0x001A -#define VTAC_14_PPP 0x001C -#define VTAC_15_PPP 0x001E -#define VTAC_16_PPP 0x0020 -#define VTAC_17_PPP 0x0022 -#define VTAC_18_PPP 0x0024 - -/* enable bits */ -#define VTAC_ENABLE 0x3003 - -#define VTAC_TX_PHY_ENABLE_CLK_PHY BIT(0) -#define VTAC_TX_PHY_ENABLE_CLK_DLL BIT(1) -#define VTAC_TX_PHY_PLL_NOT_OSC_MODE BIT(3) -#define VTAC_TX_PHY_RST_N_DLL_SWITCH BIT(4) -#define VTAC_TX_PHY_PROG_N3 BIT(9) - - -/** - * VTAC mode structure - * - * @vid_in_width: Video Data Resolution - * @phyts_width: Width of phyt buses(phyt low and phyt high). - * @phyts_per_pixel: Number of phyts sent per pixel - */ -struct sti_vtac_mode { - u32 vid_in_width; - u32 phyts_width; - u32 phyts_per_pixel; -}; - -static const struct sti_vtac_mode vtac_mode_main = { - .vid_in_width = 0x2, - .phyts_width = 0x2, - .phyts_per_pixel = VTAC_5_PPP, -}; -static const struct sti_vtac_mode vtac_mode_aux = { - .vid_in_width = 0x1, - .phyts_width = 0x0, - .phyts_per_pixel = VTAC_17_PPP, -}; - -/** - * VTAC structure - * - * @dev: pointer to device structure - * @regs: ioremapped registers for RX and TX devices - * @phy_regs: phy registers for TX device - * @clk: clock - * @mode: main or auxillary configuration mode - */ -struct sti_vtac { - struct device *dev; - void __iomem *regs; - void __iomem *phy_regs; - struct clk *clk; - const struct sti_vtac_mode *mode; -}; - -static void sti_vtac_rx_set_config(struct sti_vtac *vtac) -{ - u32 config; - - /* Enable VTAC clock */ - if (clk_prepare_enable(vtac->clk)) - DRM_ERROR("Failed to prepare/enable vtac_rx clock.\n"); - - writel(VTAC_FIFO_CONFIG_VAL, vtac->regs + VTAC_RX_FIFO_CONFIG); - - config = VTAC_ENABLE; - config |= vtac->mode->vid_in_width << 4; - config |= vtac->mode->phyts_width << 16; - config |= vtac->mode->phyts_per_pixel << 23; - writel(config, vtac->regs + VTAC_CONFIG); -} - -static void sti_vtac_tx_set_config(struct sti_vtac *vtac) -{ - u32 phy_config; - u32 config; - - /* Enable VTAC clock */ - if (clk_prepare_enable(vtac->clk)) - DRM_ERROR("Failed to prepare/enable vtac_tx clock.\n"); - - /* Configure vtac phy */ - phy_config = 0x00000000; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8522); - phy_config = VTAC_TX_PHY_ENABLE_CLK_PHY; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config |= VTAC_TX_PHY_PROG_N3; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config |= VTAC_TX_PHY_ENABLE_CLK_DLL; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config |= VTAC_TX_PHY_RST_N_DLL_SWITCH; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config = readl(vtac->phy_regs + VTAC_SYS_CFG8521); - phy_config |= VTAC_TX_PHY_PLL_NOT_OSC_MODE; - writel(phy_config, vtac->phy_regs + VTAC_SYS_CFG8521); - - /* Configure vtac tx */ - config = VTAC_ENABLE; - config |= vtac->mode->vid_in_width << 4; - config |= vtac->mode->phyts_width << 16; - config |= vtac->mode->phyts_per_pixel << 23; - writel(config, vtac->regs + VTAC_CONFIG); -} - -static const struct of_device_id vtac_of_match[] = { - { - .compatible = "st,vtac-main", - .data = &vtac_mode_main, - }, { - .compatible = "st,vtac-aux", - .data = &vtac_mode_aux, - }, { - /* end node */ - } -}; -MODULE_DEVICE_TABLE(of, vtac_of_match); - -static int sti_vtac_probe(struct platform_device *pdev) -{ - struct device *dev = &pdev->dev; - struct device_node *np = dev->of_node; - const struct of_device_id *id; - struct sti_vtac *vtac; - struct resource *res; - - vtac = devm_kzalloc(dev, sizeof(*vtac), GFP_KERNEL); - if (!vtac) - return -ENOMEM; - - vtac->dev = dev; - - id = of_match_node(vtac_of_match, np); - if (!id) - return -ENOMEM; - - vtac->mode = id->data; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - DRM_ERROR("Invalid resource\n"); - return -ENOMEM; - } - vtac->regs = devm_ioremap_resource(dev, res); - if (IS_ERR(vtac->regs)) - return PTR_ERR(vtac->regs); - - - vtac->clk = devm_clk_get(dev, "vtac"); - if (IS_ERR(vtac->clk)) { - DRM_ERROR("Cannot get vtac clock\n"); - return PTR_ERR(vtac->clk); - } - - res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - if (res) { - vtac->phy_regs = devm_ioremap_nocache(dev, res->start, - resource_size(res)); - sti_vtac_tx_set_config(vtac); - } else { - - sti_vtac_rx_set_config(vtac); - } - - platform_set_drvdata(pdev, vtac); - DRM_INFO("%s %s\n", __func__, dev_name(vtac->dev)); - - return 0; -} - -static int sti_vtac_remove(struct platform_device *pdev) -{ - return 0; -} - -struct platform_driver sti_vtac_driver = { - .driver = { - .name = "sti-vtac", - .owner = THIS_MODULE, - .of_match_table = vtac_of_match, - }, - .probe = sti_vtac_probe, - .remove = sti_vtac_remove, -}; - -MODULE_AUTHOR("Benjamin Gaignard <benjamin.gaignard@st.com>"); -MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver"); -MODULE_LICENSE("GPL");
sti_vtac.c file is deprecated since stih416 chip family is not supported anymore. Signed-off-by: Vincent Abriou <vincent.abriou@st.com> --- drivers/gpu/drm/sti/Makefile | 1 - drivers/gpu/drm/sti/sti_drv.c | 1 - drivers/gpu/drm/sti/sti_drv.h | 1 - drivers/gpu/drm/sti/sti_vtac.c | 223 ----------------------------------------- 4 files changed, 226 deletions(-) delete mode 100644 drivers/gpu/drm/sti/sti_vtac.c