mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
media: rzg2l-cru: Drop function pointer to configure CSI
Drop function pointer to configure CSI to avoid code duplication by checking the presence of vc select register in rzg2l_cru_info. After this change, limit the scope of the rzg2l_cru_csi2_setup() to static. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Tested-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
6b4d053182
commit
3c5ca0a48b
|
|
@ -367,7 +367,6 @@ static const struct rzg2l_cru_info rzg3e_cru_info = {
|
|||
.enable_interrupts = rzg3e_cru_enable_interrupts,
|
||||
.disable_interrupts = rzg3e_cru_disable_interrupts,
|
||||
.fifo_empty = rzg3e_fifo_empty,
|
||||
.csi_setup = rzg3e_cru_csi2_setup,
|
||||
};
|
||||
|
||||
static const u16 rzg2l_cru_regs[] = {
|
||||
|
|
@ -412,7 +411,6 @@ static const struct rzg2l_cru_info rzg2l_cru_info = {
|
|||
.enable_interrupts = rzg2l_cru_enable_interrupts,
|
||||
.disable_interrupts = rzg2l_cru_disable_interrupts,
|
||||
.fifo_empty = rzg2l_fifo_empty,
|
||||
.csi_setup = rzg2l_cru_csi2_setup,
|
||||
};
|
||||
|
||||
static const struct of_device_id rzg2l_cru_of_id_table[] = {
|
||||
|
|
|
|||
|
|
@ -92,9 +92,6 @@ struct rzg2l_cru_info {
|
|||
void (*enable_interrupts)(struct rzg2l_cru_dev *cru);
|
||||
void (*disable_interrupts)(struct rzg2l_cru_dev *cru);
|
||||
bool (*fifo_empty)(struct rzg2l_cru_dev *cru);
|
||||
void (*csi_setup)(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -204,11 +201,5 @@ void rzg3e_cru_disable_interrupts(struct rzg2l_cru_dev *cru);
|
|||
|
||||
bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru);
|
||||
bool rzg3e_fifo_empty(struct rzg2l_cru_dev *cru);
|
||||
void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc);
|
||||
void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -257,30 +257,18 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru)
|
|||
rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr);
|
||||
}
|
||||
|
||||
void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc)
|
||||
static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc)
|
||||
{
|
||||
const struct rzg2l_cru_info *info = cru->info;
|
||||
u32 icnmc = ICnMC_INF(ip_fmt->datatype);
|
||||
|
||||
icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK;
|
||||
|
||||
/* Set virtual channel CSI2 */
|
||||
icnmc |= ICnMC_VCSEL(csi_vc);
|
||||
|
||||
rzg2l_cru_write(cru, ICnSVCNUM, csi_vc);
|
||||
rzg2l_cru_write(cru, ICnSVC, ICnSVC_SVC0(0) | ICnSVC_SVC1(1) |
|
||||
ICnSVC_SVC2(2) | ICnSVC_SVC3(3));
|
||||
rzg2l_cru_write(cru, info->image_conv, icnmc);
|
||||
}
|
||||
|
||||
void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru,
|
||||
const struct rzg2l_cru_ip_format *ip_fmt,
|
||||
u8 csi_vc)
|
||||
{
|
||||
const struct rzg2l_cru_info *info = cru->info;
|
||||
u32 icnmc = ICnMC_INF(ip_fmt->datatype);
|
||||
if (cru->info->regs[ICnSVC]) {
|
||||
rzg2l_cru_write(cru, ICnSVCNUM, csi_vc);
|
||||
rzg2l_cru_write(cru, ICnSVC, ICnSVC_SVC0(0) | ICnSVC_SVC1(1) |
|
||||
ICnSVC_SVC2(2) | ICnSVC_SVC3(3));
|
||||
}
|
||||
|
||||
icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK;
|
||||
|
||||
|
|
@ -299,7 +287,7 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru,
|
|||
const struct rzg2l_cru_ip_format *cru_ip_fmt;
|
||||
|
||||
cru_ip_fmt = rzg2l_cru_ip_code_to_fmt(ip_sd_fmt->code);
|
||||
info->csi_setup(cru, cru_ip_fmt, csi_vc);
|
||||
rzg2l_cru_csi2_setup(cru, cru_ip_fmt, csi_vc);
|
||||
|
||||
/* Output format */
|
||||
cru_video_fmt = rzg2l_cru_ip_format_to_fmt(cru->format.pixelformat);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user