From 2f7c68cb55ecb7331f2381deb497c27155f32faf Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 03 Jan 2024 09:43:39 +0000 Subject: [PATCH] update kernel to 5.10.198 --- kernel/drivers/mfd/rkx110_x120/rkx110_combrxphy.c | 76 ++++++++++++++++++++++---------------- 1 files changed, 44 insertions(+), 32 deletions(-) diff --git a/kernel/drivers/mfd/rkx110_x120/rkx110_combrxphy.c b/kernel/drivers/mfd/rkx110_x120/rkx110_combrxphy.c index 4152728..fb8eaa0 100644 --- a/kernel/drivers/mfd/rkx110_x120/rkx110_combrxphy.c +++ b/kernel/drivers/mfd/rkx110_x120/rkx110_combrxphy.c @@ -114,15 +114,18 @@ #define LVDS0_MSBSEL(x) HIWORD_UPDATE(x, BIT(2), 2) static void -rkx110_combrxphy_dsi_timing_init(struct rk_serdes *ser, enum comb_phy_id id) +rkx110_combrxphy_dsi_timing_init(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { } -static void rkx110_combrxphy_dsi_power_on(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_dsi_power_on(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct hwclk *hwclk = ser->chip[DEVICE_LOCAL].hwclk; - struct rkx110_combrxphy *combrxphy = &ser->combrxphy; - struct i2c_client *client = ser->chip[DEVICE_LOCAL].client; + struct hwclk *hwclk = ser->chip[dev_id].hwclk; + struct i2c_client *client = ser->chip[dev_id].client; u32 val = 0; u32 grf_base; @@ -144,7 +147,7 @@ serdes_combphy_get_default_config(combrxphy->rate, &combrxphy->mipi_dphy_cfg); - switch (ser->dsi_rx.lanes) { + switch (combrxphy->lanes) { case 4: val |= LANE3_ENABLE(1); fallthrough; @@ -164,12 +167,14 @@ ser->i2c_write_reg(client, grf_base + GRF_MIPI_RX_CON0, PHY_MODE(COMBRX_PHY_MODE_VIDEO_MIPI) | val); - rkx110_combrxphy_dsi_timing_init(ser, id); + rkx110_combrxphy_dsi_timing_init(ser, combrxphy, dev_id, id); } -static void rkx110_combrxphy_dsi_power_off(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_dsi_power_off(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct i2c_client *client = ser->chip[DEVICE_LOCAL].client; + struct i2c_client *client = ser->chip[dev_id].client; u32 grf_base; grf_base = id ? RKX110_GRF_MIPI1_BASE : RKX110_GRF_MIPI0_BASE; @@ -178,9 +183,11 @@ LANE1_ENABLE(0) | LANE0_ENABLE(0)); } -static void rkx110_combrxphy_lvds_power_on(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_lvds_power_on(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct i2c_client *client = ser->chip[DEVICE_LOCAL].client; + struct i2c_client *client = ser->chip[dev_id].client; u32 grf_base = id ? RKX110_GRF_MIPI1_BASE : RKX110_GRF_MIPI0_BASE; u32 val; int ret; @@ -209,9 +216,11 @@ LVDS_RX1_PD(0) | LVDS_RX0_PD(0)); } -static void rkx110_combrxphy_lvds_power_off(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_lvds_power_off(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct i2c_client *client = ser->chip[DEVICE_LOCAL].client; + struct i2c_client *client = ser->chip[dev_id].client; u32 grf_base = id ? RKX110_GRF_MIPI1_BASE : RKX110_GRF_MIPI0_BASE; ser->i2c_write_reg(client, grf_base + GRF_MIPI_RX_CON0, @@ -219,62 +228,65 @@ LVDS_RX1_PD(1) | LVDS_RX0_PD(1)); } -static void rkx110_combrxphy_lvds_camera_power_on(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_lvds_camera_power_on(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { } -static void rkx110_combrxphy_lvds_camera_power_off(struct rk_serdes *ser, enum comb_phy_id id) +static void rkx110_combrxphy_lvds_camera_power_off(struct rk_serdes *ser, + struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { } -void rkx110_combrxphy_power_on(struct rk_serdes *ser, enum comb_phy_id id) +void rkx110_combrxphy_power_on(struct rk_serdes *ser, struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct rkx110_combrxphy *combrxphy = &ser->combrxphy; - switch (combrxphy->mode) { case COMBRX_PHY_MODE_VIDEO_MIPI: - rkx110_combrxphy_dsi_power_on(ser, id); + rkx110_combrxphy_dsi_power_on(ser, combrxphy, dev_id, id); break; case COMBRX_PHY_MODE_VIDEO_LVDS: - rkx110_combrxphy_lvds_power_on(ser, id); + rkx110_combrxphy_lvds_power_on(ser, combrxphy, dev_id, id); break; case COMBRX_PHY_MODE_LVDS_CAMERA: - rkx110_combrxphy_lvds_camera_power_on(ser, id); + rkx110_combrxphy_lvds_camera_power_on(ser, combrxphy, dev_id, id); break; default: break; } } -void rkx110_combrxphy_power_off(struct rk_serdes *ser, enum comb_phy_id id) +void rkx110_combrxphy_power_off(struct rk_serdes *ser, struct rkx110_combrxphy *combrxphy, + u8 dev_id, enum comb_phy_id id) { - struct rkx110_combrxphy *combrxphy = &ser->combrxphy; - switch (combrxphy->mode) { case COMBRX_PHY_MODE_VIDEO_MIPI: - rkx110_combrxphy_dsi_power_off(ser, id); + rkx110_combrxphy_dsi_power_off(ser, combrxphy, dev_id, id); break; case COMBRX_PHY_MODE_VIDEO_LVDS: - rkx110_combrxphy_lvds_power_off(ser, id); + rkx110_combrxphy_lvds_power_off(ser, combrxphy, dev_id, id); break; case COMBRX_PHY_MODE_LVDS_CAMERA: - rkx110_combrxphy_lvds_camera_power_off(ser, id); + rkx110_combrxphy_lvds_camera_power_off(ser, combrxphy, dev_id, id); break; default: break; } } -void rkx110_combrxphy_set_rate(struct rk_serdes *ser, u64 rate) +void rkx110_combrxphy_set_rate(struct rkx110_combrxphy *combrxphy, u64 rate) { - struct rkx110_combrxphy *combrxphy = &ser->combrxphy; - combrxphy->rate = rate; } -void rkx110_combrxphy_set_mode(struct rk_serdes *ser, enum combrx_phy_mode mode) +void rkx110_combrxphy_set_lanes(struct rkx110_combrxphy *combrxphy, uint8_t lanes) { - struct rkx110_combrxphy *combrxphy = &ser->combrxphy; + combrxphy->lanes = lanes; +} +void rkx110_combrxphy_set_mode(struct rkx110_combrxphy *combrxphy, enum combrx_phy_mode mode) +{ combrxphy->mode = mode; } -- Gitblit v1.6.2