static void set_scanout(struct drm_crtc *crtc, struct drm_framebuffer *fb)
{
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
struct drm_gem_dma_object *gem;
dma_addr_t start, end;
u64 dma_base_and_ceiling;
{
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
int ret;
reinit_completion(&tilcdc_crtc->palette_loaded);
static void tilcdc_crtc_enable_irqs(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
tilcdc_clear_irqstatus(dev, 0xffffffff);
static void tilcdc_crtc_disable_irqs(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
/* disable irqs that we might have enabled: */
if (priv->rev == 1) {
static void reset(struct drm_crtc *crtc)
{
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
if (priv->rev != 2)
return;
static void tilcdc_crtc_set_clk(struct drm_crtc *crtc)
{
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
unsigned long clk_rate, real_pclk_rate, pclk_rate;
unsigned int clkdiv;
{
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
uint32_t reg, hbp, hfp, hsw, vbp, vfp, vsw;
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
struct drm_framebuffer *fb = crtc->primary->state->fb;
void tilcdc_crtc_destroy(struct drm_crtc *crtc)
{
- struct tilcdc_drm_private *priv = crtc->dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(crtc->dev);
tilcdc_crtc_shutdown(crtc);
{
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
unsigned long flags;
spin_lock_irqsave(&tilcdc_crtc->irq_lock, flags);
{
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
unsigned long flags;
spin_lock_irqsave(&tilcdc_crtc->irq_lock, flags);
tilcdc_crtc_mode_valid(struct drm_crtc *crtc,
const struct drm_display_mode *mode)
{
- struct tilcdc_drm_private *priv = crtc->dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(crtc->dev);
unsigned int bandwidth;
uint32_t hbp, hfp, hsw, vbp, vfp, vsw;
void tilcdc_crtc_update_clk(struct drm_crtc *crtc)
{
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
drm_modeset_lock(&crtc->mutex, NULL);
{
struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
struct drm_device *dev = crtc->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
uint32_t stat, reg;
stat = tilcdc_read_irqstatus(dev);
int tilcdc_crtc_create(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
struct tilcdc_crtc *tilcdc_crtc;
struct drm_crtc *crtc;
int ret;
static void modeset_init(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
dev->mode_config.min_width = 0;
dev->mode_config.min_height = 0;
static irqreturn_t tilcdc_irq(int irq, void *arg)
{
struct drm_device *dev = arg;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
return tilcdc_crtc_irq(priv->crtc);
}
static int tilcdc_irq_install(struct drm_device *dev, unsigned int irq)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
int ret;
ret = request_irq(irq, tilcdc_irq, 0, dev->driver->name, dev);
static void tilcdc_irq_uninstall(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
if (!priv->irq_enabled)
return;
{
struct drm_info_node *node = (struct drm_info_node *) m->private;
struct drm_device *dev = node->minor->dev;
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
unsigned i;
pm_runtime_get_sync(dev->dev);
variant = (uintptr_t)of_device_get_match_data(dev);
- ddev->dev_private = priv;
platform_set_drvdata(pdev, priv);
ddev = &priv->ddev;
ret = drmm_mode_config_init(ddev);
static inline void tilcdc_write(struct drm_device *dev, u32 reg, u32 data)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
iowrite32(data, priv->mmio + reg);
}
static inline void tilcdc_write64(struct drm_device *dev, u32 reg, u64 data)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
volatile void __iomem *addr = priv->mmio + reg;
#if defined(iowrite64) && !defined(iowrite64_is_nonatomic)
static inline u32 tilcdc_read(struct drm_device *dev, u32 reg)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
return ioread32(priv->mmio + reg);
}
/* the register to read/clear irqstatus differs between v1 and v2 of the IP */
static inline u32 tilcdc_irqstatus_reg(struct drm_device *dev)
{
- struct tilcdc_drm_private *priv = dev->dev_private;
+ struct tilcdc_drm_private *priv = ddev_to_tilcdc_priv(dev);
return (priv->rev == 2) ? LCDC_MASKED_STAT_REG : LCDC_STAT_REG;
}