Re: [PATCH] omap3isp: preview: Add support for non-GRBG Bayer patterns

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

 



On Tue, Jun 26, 2012 at 03:30:09AM +0200, Laurent Pinchart wrote:
> Hi Sakari,

Hi Laurent,

> On Saturday 23 June 2012 11:22:37 Sakari Ailus wrote:
> > On Mon, Jun 18, 2012 at 04:30:53PM +0200, Laurent Pinchart wrote:
> > > Rearrange the CFA interpolation coefficients table based on the Bayer
> > > pattern. Modifying the table during streaming isn't supported anymore,
> > > but didn't make sense in the first place anyway.
> > 
> > Why not? I could imagine someone might want to change the table while
> > streaming to change the white balance, for example. Gamma tables or the SRGB
> > matrix can be used to do mostly the same but we should leave the decision
> > which one to use to the user space.
> 
> Because making the CFA table runtime-configurable brings an additional 
> complexity without a use case I'm aware of. The preview engine has separate 
> gamma tables, white balance matrices, and RGB-to-RGB and RGB-to-YUV matrices 
> that can be modified during streaming. If a user really needs to modify the 
> CFA tables during streaming I'll be happy to implement that (and even happier 
> to receive a patch :-)), but I'm a bit reluctant to add complexity to an 
> already complex code without a real use case.

I'm fine with that. Let's get back to the topic once this is really needed.

...

> > > +		return;
> > > +	}
> > > +
> > > +	params = (prev->params.active & OMAP3ISP_PREV_CFA)
> > > +	       ? &prev->params.params[0] : &prev->params.params[1];
> > > +
> > > +	isp_reg_set(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR, ISPPRV_PCR_CFAEN);
> > > +	isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_PREV, ISPPRV_PCR,
> > > +			ISPPRV_PCR_CFAFMT_MASK, ISPPRV_PCR_CFAFMT_BAYER);
> > > +
> > > +	isp_reg_writel(isp,
> > > +		(params->cfa.gradthrs_vert << ISPPRV_CFA_GRADTH_VER_SHIFT) |
> > > +		(params->cfa.gradthrs_horz << ISPPRV_CFA_GRADTH_HOR_SHIFT),
> > > +		OMAP3_ISP_IOMEM_PREV, ISPPRV_CFA);
> > > +
> > > +	switch (prev->formats[PREV_PAD_SINK].code) {
> > > +	case V4L2_MBUS_FMT_SGRBG10_1X10:
> > 
> > > +	default:
> > Is the "default" case expected to ever happen?

How about this one?

> > > +		order = cfa_coef_order[0];
> > > +		break;
> > > +	case V4L2_MBUS_FMT_SRGGB10_1X10:
> > > +		order = cfa_coef_order[1];
> > > +		break;
> > > +	case V4L2_MBUS_FMT_SBGGR10_1X10:
> > > +		order = cfa_coef_order[2];
> > > +		break;
> > > +	case V4L2_MBUS_FMT_SGBRG10_1X10:
> > > +		order = cfa_coef_order[3];
> > > +		break;
> > > +	}
> > > +
> > > +	isp_reg_writel(isp, ISPPRV_CFA_TABLE_ADDR,
> > > +		       OMAP3_ISP_IOMEM_PREV, ISPPRV_SET_TBL_ADDR);
> > > +
> > > +	for (i = 0; i < 4; ++i) {
> > > +		__u32 *block = params->cfa.table
> > > +			     + order[i] * OMAP3ISP_PREV_CFA_BLK_SIZE;
> > > +
> > > +		for (j = 0; j < OMAP3ISP_PREV_CFA_BLK_SIZE; ++j)
> > > +			isp_reg_writel(isp, block[j], OMAP3_ISP_IOMEM_PREV,
> > > +				       ISPPRV_SET_TBL_DATA);
> > > +	}
> > > 
> > >  }
> > >  
> > >  /*

Regards,

-- 
Sakari Ailus
e-mail: sakari.ailus@xxxxxx	jabber/XMPP/Gmail: sailus@xxxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux