Re: [RFC/WIP] drm/rockchip: Support CRTC gamma LUT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Boris,

Am Freitag, 14. Juni 2019, 15:53:20 CEST schrieb Boris Brezillon:
> On Thu, 13 Jun 2019 16:22:44 -0300
> Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> wrote:
> 
> 
> > +static int vop_gamma_lut_request(struct device *dev,
> > +				 struct resource *res, struct vop *vop)
> > +{
> > +	resource_size_t offset = vop->data->gamma_lut_addr_off;
> > +	resource_size_t size = VOP_GAMMA_LUT_SIZE * 4;
> > +
> > +	/*
> > +	 * Some SoCs (e.g. RK3288) have the gamma LUT address after
> > +	 * the MMU registers, which means we can't request and ioremap
> > +	 * the entire register set. Other (e.g. RK3399) have gamma LUT
> > +	 * address before MMU.
> > +	 *
> > +	 * Therefore, we need to request and ioremap those that haven't
> > +	 * been already.
> > +	 */
> > +	if (vop->len >= (offset + size)) {
> > +		vop->lut_regs = vop->regs + offset;
> > +		return 0;
> > +	}
> > +
> > +	if (!devm_request_mem_region(dev, res->start + offset,
> > +				     size, dev_name(dev))) {
> > +		dev_warn(dev, "can't request gamma lut region\n");
> > +		return -EBUSY;
> > +	}
> > +
> > +	vop->lut_regs = devm_ioremap(dev, res->start + offset, size);
> > +	if (!vop->lut_regs) {
> > +		dev_err(dev, "can't ioremap gamma lut address\n");
> > +		devm_release_mem_region(dev, res->start + offset, size);
> > +		return -ENOMEM;
> > +	}
> 
> Can't we patch the resource just after calling plaform_get_resource()
> (and before calling devm_ioremap_resource()) so we don't have to add
> these devm_request_mem_region()+devm_ioremap() calls here?

The issue is that on the older rk3288 socs the vops memory map has
the mmu registers (which get mapped separately) in between the core
and lut registers.



_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux