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@xxxxxx> > > > > 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@xxxxxx> 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@xxxxxx>"); > >> -MODULE_DESCRIPTION("STMicroelectronics SoC DRM driver"); > >> -MODULE_LICENSE("GPL"); > >> -- > >> 2.7.4 > >> > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@xxxxxxxxxxxxxxxxxxxxx > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel