diff --git a/drivers/phy/rockchip/phy-rockchip-csi2-dphy-common.h b/drivers/phy/rockchip/phy-rockchip-csi2-dphy-common.h index 7d78b61215ef..631fd67271ba 100644 --- a/drivers/phy/rockchip/phy-rockchip-csi2-dphy-common.h +++ b/drivers/phy/rockchip/phy-rockchip-csi2-dphy-common.h @@ -77,7 +77,7 @@ struct csi2_dphy { bool is_streaming; enum csi2_dphy_lane_mode lane_mode; const struct dphy_drv_data *drv_data; - struct rkmodule_csi_dphy_param *dphy_param; + struct rkmodule_csi_dphy_param dphy_param; }; struct dphy_hw_drv_data { diff --git a/drivers/phy/rockchip/phy-rockchip-csi2-dphy.c b/drivers/phy/rockchip/phy-rockchip-csi2-dphy.c index b2d9f4913bb0..f148fb586712 100644 --- a/drivers/phy/rockchip/phy-rockchip-csi2-dphy.c +++ b/drivers/phy/rockchip/phy-rockchip-csi2-dphy.c @@ -176,7 +176,7 @@ static int csi2_dphy_update_sensor_mbus(struct v4l2_subdev *sd) if (dphy->drv_data->vendor == PHY_VENDOR_SAMSUNG) { ret = v4l2_subdev_call(sensor_sd, core, ioctl, RKMODULE_GET_CSI_DPHY_PARAM, - dphy->dphy_param); + &dphy->dphy_param); if (ret) { dev_err(dphy->dev, "%s fail to get dphy param, used default value\n", __func__); @@ -738,7 +738,7 @@ static int rockchip_csi2_dphy_probe(struct platform_device *pdev) csi2dphy->phy_index = 0; if (csi2dphy->drv_data->vendor == PHY_VENDOR_SAMSUNG) { ret = rockchip_csi2_dphy_attach_samsung_phy(csi2dphy); - csi2dphy->dphy_param = &rk3588_dcphy_param; + csi2dphy->dphy_param = rk3588_dcphy_param; } else { ret = rockchip_csi2_dphy_attach_hw(csi2dphy); } diff --git a/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c b/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c index 4798989b6253..e0e7d4fd3013 100644 --- a/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c +++ b/drivers/phy/rockchip/phy-rockchip-samsung-dcphy.c @@ -1275,13 +1275,13 @@ static void samsung_mipi_dcphy_bias_block_enable(struct samsung_mipi_dcphy *sams u32 bias_con2 = 0x3223; if (csi_dphy && - csi_dphy->dphy_param->lp_vol_ref != 3 && - csi_dphy->dphy_param->lp_vol_ref < 0x7) { + csi_dphy->dphy_param.lp_vol_ref != 3 && + csi_dphy->dphy_param.lp_vol_ref < 0x7) { bias_con2 &= 0xfffffff8; - bias_con2 |= csi_dphy->dphy_param->lp_vol_ref; + bias_con2 |= csi_dphy->dphy_param.lp_vol_ref; dev_info(samsung->dev, "rx change lp_vol_ref to %d, it may cause tx exception\n", - csi_dphy->dphy_param->lp_vol_ref); + csi_dphy->dphy_param.lp_vol_ref); } regmap_write(samsung->regmap, BIAS_CON0, 0x0010); regmap_write(samsung->regmap, BIAS_CON1, 0x0110); @@ -1987,87 +1987,87 @@ static int samsung_dcphy_rx_config_common(struct csi2_dphy *dphy, dlysel = 1 << 8; else if (dphy->data_rate_mbps < 6500) dlysel = 0; - if (dphy->dphy_param->clk_hs_term_sel > 0x7) { + if (dphy->dphy_param.clk_hs_term_sel > 0x7) { dev_err(dphy->dev, "clk_hs_term_sel error param %d\n", - dphy->dphy_param->clk_hs_term_sel); + dphy->dphy_param.clk_hs_term_sel); return -EINVAL; } for (i = 0; i < sensor->lanes; i++) { - if (dphy->dphy_param->data_hs_term_sel[i] > 0x7) { + if (dphy->dphy_param.data_hs_term_sel[i] > 0x7) { dev_err(dphy->dev, "data_hs_term_sel[%d] error param %d\n", i, - dphy->dphy_param->data_hs_term_sel[i]); + dphy->dphy_param.data_hs_term_sel[i]); return -EINVAL; } - if (dphy->dphy_param->lp_hys_sw[i] > 0x3) { + if (dphy->dphy_param.lp_hys_sw[i] > 0x3) { dev_err(dphy->dev, "lp_hys_sw[%d] error param %d\n", i, - dphy->dphy_param->lp_hys_sw[i]); + dphy->dphy_param.lp_hys_sw[i]); return -EINVAL; } - if (dphy->dphy_param->lp_escclk_pol_sel[i] > 0x1) { + if (dphy->dphy_param.lp_escclk_pol_sel[i] > 0x1) { dev_err(dphy->dev, "lp_escclk_pol_sel[%d] error param %d\n", i, - dphy->dphy_param->lp_escclk_pol_sel[i]); + dphy->dphy_param.lp_escclk_pol_sel[i]); return -EINVAL; } - if (dphy->dphy_param->skew_data_cal_clk[i] > 0x1f) { + if (dphy->dphy_param.skew_data_cal_clk[i] > 0x1f) { dev_err(dphy->dev, "skew_data_cal_clk[%d] error param %d\n", i, - dphy->dphy_param->skew_data_cal_clk[i]); + dphy->dphy_param.skew_data_cal_clk[i]); return -EINVAL; } } regmap_write(samsung->regmap, RX_S0C_GNR_CON1, 0x1450); regmap_write(samsung->regmap, RX_S0C_ANA_CON1, 0x8000); - regmap_write(samsung->regmap, RX_S0C_ANA_CON2, dphy->dphy_param->clk_hs_term_sel); + regmap_write(samsung->regmap, RX_S0C_ANA_CON2, dphy->dphy_param.clk_hs_term_sel); regmap_write(samsung->regmap, RX_S0C_ANA_CON3, 0x0600); if (sensor->lanes > 0x00) { regmap_write(samsung->regmap, RX_COMBO_S0D0_GNR_CON1, 0x1450); regmap_write(samsung->regmap, RX_COMBO_S0D0_ANA_CON1, 0x8000); regmap_write(samsung->regmap, RX_COMBO_S0D0_ANA_CON2, dlysel | - dphy->dphy_param->data_hs_term_sel[0]); + dphy->dphy_param.data_hs_term_sel[0]); regmap_write(samsung->regmap, RX_COMBO_S0D0_ANA_CON3, 0x0600 | - (dphy->dphy_param->lp_hys_sw[0] << 4) | - (dphy->dphy_param->lp_escclk_pol_sel[0] << 11)); + (dphy->dphy_param.lp_hys_sw[0] << 4) | + (dphy->dphy_param.lp_escclk_pol_sel[0] << 11)); regmap_write(samsung->regmap, RX_COMBO_S0D0_ANA_CON7, 0x40); regmap_write(samsung->regmap, RX_COMBO_S0D0_DESKEW_CON2, - dphy->dphy_param->skew_data_cal_clk[0]); + dphy->dphy_param.skew_data_cal_clk[0]); } if (sensor->lanes > 0x01) { regmap_write(samsung->regmap, RX_COMBO_S0D1_GNR_CON1, 0x1450); regmap_write(samsung->regmap, RX_COMBO_S0D1_ANA_CON1, 0x8000); regmap_write(samsung->regmap, RX_COMBO_S0D1_ANA_CON2, dlysel | - dphy->dphy_param->data_hs_term_sel[1]); + dphy->dphy_param.data_hs_term_sel[1]); regmap_write(samsung->regmap, RX_COMBO_S0D1_ANA_CON3, 0x0600 | - (dphy->dphy_param->lp_hys_sw[1] << 4) | - (dphy->dphy_param->lp_escclk_pol_sel[1] << 11)); + (dphy->dphy_param.lp_hys_sw[1] << 4) | + (dphy->dphy_param.lp_escclk_pol_sel[1] << 11)); regmap_write(samsung->regmap, RX_COMBO_S0D1_ANA_CON7, 0x40); regmap_write(samsung->regmap, RX_COMBO_S0D1_DESKEW_CON2, - dphy->dphy_param->skew_data_cal_clk[1]); + dphy->dphy_param.skew_data_cal_clk[1]); } if (sensor->lanes > 0x02) { regmap_write(samsung->regmap, RX_COMBO_S0D2_GNR_CON1, 0x1450); regmap_write(samsung->regmap, RX_COMBO_S0D2_ANA_CON1, 0x8000); regmap_write(samsung->regmap, RX_COMBO_S0D2_ANA_CON2, dlysel | - dphy->dphy_param->data_hs_term_sel[2]); + dphy->dphy_param.data_hs_term_sel[2]); regmap_write(samsung->regmap, RX_COMBO_S0D2_ANA_CON3, 0x0600 | - (dphy->dphy_param->lp_hys_sw[2] << 4) | - (dphy->dphy_param->lp_escclk_pol_sel[2] << 11)); + (dphy->dphy_param.lp_hys_sw[2] << 4) | + (dphy->dphy_param.lp_escclk_pol_sel[2] << 11)); regmap_write(samsung->regmap, RX_COMBO_S0D2_ANA_CON7, 0x40); regmap_write(samsung->regmap, RX_COMBO_S0D2_DESKEW_CON2, - dphy->dphy_param->skew_data_cal_clk[2]); + dphy->dphy_param.skew_data_cal_clk[2]); } if (sensor->lanes > 0x03) { regmap_write(samsung->regmap, RX_S0D3_GNR_CON1, 0x1450); regmap_write(samsung->regmap, RX_S0D3_ANA_CON1, 0x8000); regmap_write(samsung->regmap, RX_S0D3_ANA_CON2, dlysel | - dphy->dphy_param->data_hs_term_sel[3]); + dphy->dphy_param.data_hs_term_sel[3]); regmap_write(samsung->regmap, RX_S0D3_ANA_CON3, 0x0600 | - (dphy->dphy_param->lp_hys_sw[3] << 4) | - (dphy->dphy_param->lp_escclk_pol_sel[3] << 11)); + (dphy->dphy_param.lp_hys_sw[3] << 4) | + (dphy->dphy_param.lp_escclk_pol_sel[3] << 11)); regmap_write(samsung->regmap, RX_S0D3_DESKEW_CON2, - dphy->dphy_param->skew_data_cal_clk[3]); + dphy->dphy_param.skew_data_cal_clk[3]); } } else { if (sensor->lanes > 0x00) {