diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-09-18 12:21:17 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2012-03-12 22:40:50 +0100 |
commit | e34d0bbb062cc78802d0f0686c939ea1569889a6 (patch) | |
tree | bf38b9444117c01a7675546741c2623efa76be8c /drivers/video | |
parent | afaad83b9c0d24eac88535cc5a8c6019f0c45bcb (diff) | |
download | linux-e34d0bbb062cc78802d0f0686c939ea1569889a6.tar.gz |
sh_mobile_lcdc: Add an lcdc channel pointer to sh_mobile_lcdc_entity
The field will be used by the transmitter drivers to access
sh_mobile_lcdc_chan fields such as fb_info.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/sh_mobile_lcdcfb.c | 5 | ||||
-rw-r--r-- | drivers/video/sh_mobile_lcdcfb.h | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c index 9e44988155a4..1ecc71ec41ff 100644 --- a/drivers/video/sh_mobile_lcdcfb.c +++ b/drivers/video/sh_mobile_lcdcfb.c @@ -1495,8 +1495,10 @@ static int sh_mobile_lcdc_remove(struct platform_device *pdev) if (!info || !info->device) continue; - if (ch->tx_dev) + if (ch->tx_dev) { + ch->tx_dev->lcdc = NULL; module_put(ch->cfg.tx_dev->dev.driver->owner); + } if (ch->sglist) vfree(ch->sglist); @@ -1605,6 +1607,7 @@ sh_mobile_lcdc_channel_init(struct sh_mobile_lcdc_priv *priv, return -EINVAL; } ch->tx_dev = platform_get_drvdata(cfg->tx_dev); + ch->tx_dev->lcdc = ch; } /* Iterate through the modes to validate them and find the highest diff --git a/drivers/video/sh_mobile_lcdcfb.h b/drivers/video/sh_mobile_lcdcfb.h index 9601b929a40c..36cd5649598b 100644 --- a/drivers/video/sh_mobile_lcdcfb.h +++ b/drivers/video/sh_mobile_lcdcfb.h @@ -19,6 +19,7 @@ struct fb_info; struct module; struct sh_mobile_lcdc_entity; struct sh_mobile_lcdc_priv; +struct sh_mobile_lcdc_chan; struct sh_mobile_lcdc_entity_ops { /* Display */ @@ -30,6 +31,7 @@ struct sh_mobile_lcdc_entity_ops { struct sh_mobile_lcdc_entity { struct module *owner; const struct sh_mobile_lcdc_entity_ops *ops; + struct sh_mobile_lcdc_chan *lcdc; }; /* |