static int wait_aux_op_finish(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int val;
        int ret;
 
 static int anx7625_aux_trans(struct anx7625_data *ctx, u8 op, u32 address,
                             u8 len, u8 *buf)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
        u8 addrh, addrm, addrl;
        u8 cmd;
                               u8 post_divider)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Config input reference clock frequency 27MHz/19.2MHz */
        ret = anx7625_write_and(ctx, ctx->i2c.rx_p1_client, MIPI_DIGITAL_PLL_16,
 
 static int anx7625_dsi_video_timing_config(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        unsigned long m, n;
        u16 htotal;
        int ret;
 static int anx7625_swap_dsi_lane3(struct anx7625_data *ctx)
 {
        int val;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Swap MIPI-DSI data lane 3 P and N */
        val = anx7625_reg_read(ctx, ctx->i2c.rx_p1_client, MIPI_SWAP);
 
 {
        int val, ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Swap MIPI-DSI data lane 3 P and N */
        ret = anx7625_swap_dsi_lane3(ctx);
 
 static int anx7625_dsi_config(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        DRM_DEV_DEBUG_DRIVER(dev, "config dsi.\n");
 
 static int anx7625_api_dpi_config(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        u16 freq = ctx->dt.pixelclock.min / 1000;
        int ret;
 
 
 static int anx7625_dpi_config(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        DRM_DEV_DEBUG_DRIVER(dev, "config dpi\n");
 static int anx7625_hdcp_key_probe(struct anx7625_data *ctx)
 {
        int ret, val;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        u8 ident[FLASH_BUF_LEN];
 
        ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client,
 static int anx7625_hdcp_key_load(struct anx7625_data *ctx)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Select HDCP 1.4 KEY */
        ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client,
 static int anx7625_hdcp_disable(struct anx7625_data *ctx)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        dev_dbg(dev, "disable HDCP 1.4\n");
 
 {
        u8 bcap;
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        ret = anx7625_hdcp_key_probe(ctx);
        if (ret) {
 static void anx7625_dp_start(struct anx7625_data *ctx)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        u8 data;
 
        if (!ctx->display_timing_valid) {
 
 static void anx7625_dp_stop(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
        u8 data;
 
 static int sp_tx_get_edid_block(struct anx7625_data *ctx)
 {
        int c = 0;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        sp_tx_aux_wr(ctx, 0x7e);
        sp_tx_aux_rd(ctx, 0x01);
                     u8 offset, u8 *pblock_buf)
 {
        int ret, cnt;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        for (cnt = 0; cnt <= EDID_TRY_CNT; cnt++) {
                sp_tx_aux_wr(ctx, offset);
 {
        u8 cnt;
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Write address only */
        ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client,
        u8 i, j;
        int g_edid_break = 0;
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Address initial */
        ret = anx7625_reg_write(ctx, ctx->i2c.rx_p0_client,
 
 static void anx7625_power_on(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret, i;
 
        if (!ctx->pdata.low_power_mode) {
 
 static void anx7625_power_standby(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        if (!ctx->pdata.low_power_mode) {
 
 static void anx7625_disable_pd_protocol(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        /* Reset main ocm */
 static int anx7625_ocm_loading_check(struct anx7625_data *ctx)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Check interface workable */
        ret = anx7625_reg_read(ctx, ctx->i2c.rx_p0_client,
 
 static void anx7625_init_gpio(struct anx7625_data *platform)
 {
-       struct device *dev = &platform->client->dev;
+       struct device *dev = platform->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "init gpio\n");
 
 static void anx7625_start_dp_work(struct anx7625_data *ctx)
 {
        int ret;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        if (ctx->hpd_high_cnt >= 2) {
                DRM_DEV_DEBUG_DRIVER(dev, "filter useless HPD\n");
                                unsigned long wait_us)
 {
        int ret, val;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* Interrupt mode, no need poll HPD status, just return */
        if (ctx->pdata.intp_irq)
                                     unsigned long wait_us)
 {
        struct anx7625_data *ctx = container_of(aux, struct anx7625_data, aux);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        pm_runtime_get_sync(dev);
 
 static void dp_hpd_change_handler(struct anx7625_data *ctx, bool on)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        /* HPD changed */
        DRM_DEV_DEBUG_DRIVER(dev, "dp_hpd_change_default_func: %d\n",
 static int anx7625_hpd_change_detect(struct anx7625_data *ctx)
 {
        int intr_vector, status;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        status = anx7625_reg_write(ctx, ctx->i2c.tcpc_client,
                                   INTR_ALERT_1, 0xFF);
 
        mutex_lock(&ctx->lock);
 
-       if (pm_runtime_suspended(&ctx->client->dev)) {
+       if (pm_runtime_suspended(ctx->dev)) {
                mutex_unlock(&ctx->lock);
                return;
        }
                                    struct drm_dp_aux_msg *msg)
 {
        struct anx7625_data *ctx = container_of(aux, struct anx7625_data, aux);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        u8 request = msg->request & ~DP_AUX_I2C_MOT;
        int ret = 0;
 
 
 static struct edid *anx7625_get_edid(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        struct s_edid_data *p_edid = &ctx->slimport_edid_p;
        int edid_num;
        u8 *edid;
 
 static enum drm_connector_status anx7625_sink_detect(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "sink detect\n");
 
 
 static void anx7625_unregister_audio(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        if (ctx->audio_pdev) {
                platform_device_unregister(ctx->audio_pdev);
 static int anx7625_setup_dsi_device(struct anx7625_data *ctx)
 {
        struct mipi_dsi_device *dsi;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        struct mipi_dsi_host *host;
        const struct mipi_dsi_device_info info = {
                .type = "anx7625",
 
 static int anx7625_attach_dsi(struct anx7625_data *ctx)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int ret;
 
        DRM_DEV_DEBUG_DRIVER(dev, "attach dsi\n");
 
        dwork = to_delayed_work(work);
        ctx = container_of(dwork, struct anx7625_data, hdcp_work);
-       dev = &ctx->client->dev;
+       dev = ctx->dev;
 
        if (!ctx->connector) {
                dev_err(dev, "HDCP connector is null!");
 static int anx7625_connector_atomic_check(struct anx7625_data *ctx,
                                          struct drm_connector_state *state)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        int cp;
 
        dev_dbg(dev, "hdcp state check\n");
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
        int err;
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "drm attach\n");
        if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR))
                          const struct drm_display_mode *mode)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "drm mode checking\n");
 
                                    const struct drm_display_mode *mode)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "drm mode set\n");
 
                                      struct drm_display_mode *adj)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        u32 hsync, hfp, hbp, hblanking;
        u32 adj_hsync, adj_hfp, adj_hbp, adj_hblanking, delta_adj;
        u32 vref, adj_clock;
                                       struct drm_connector_state *conn_state)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        dev_dbg(dev, "drm bridge atomic check\n");
 
                                         struct drm_bridge_state *state)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
        struct drm_connector *connector;
 
        dev_dbg(dev, "drm atomic enable\n");
                                          struct drm_bridge_state *old)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        dev_dbg(dev, "drm atomic disable\n");
 
 anx7625_bridge_detect(struct drm_bridge *bridge)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "drm bridge detect\n");
 
                                            struct drm_connector *connector)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "drm bridge get edid\n");
 
 static int anx7625_register_i2c_dummy_clients(struct anx7625_data *ctx,
                                              struct i2c_client *client)
 {
-       struct device *dev = &ctx->client->dev;
+       struct device *dev = ctx->dev;
 
        ctx->i2c.tx_p0_client = devm_i2c_new_dummy_device(dev, client->adapter,
                                                          TX_P0_ADDR >> 1);
 
        pdata = &platform->pdata;
 
-       platform->client = client;
+       platform->dev = &client->dev;
        i2c_set_clientdata(client, platform);
 
        pdata->supplies[0].supply = "vdd10";
 
 struct it6505 {
        struct drm_dp_aux aux;
        struct drm_bridge bridge;
-       struct i2c_client *client;
+       struct device *dev;
        struct it6505_drm_dp_link link;
        struct it6505_platform_data pdata;
        /*
 {
        unsigned int value;
        int err;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (!it6505->powered)
                return -ENODEV;
                        unsigned int reg_val)
 {
        int err;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (!it6505->powered)
                return -ENODEV;
                           unsigned int mask, unsigned int value)
 {
        int err;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (!it6505->powered)
                return -ENODEV;
 static void it6505_debug_print(struct it6505 *it6505, unsigned int reg,
                               const char *prefix)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int val;
 
        if (!drm_debug_enabled(DRM_UT_DRIVER))
 {
        u8 value;
        int ret;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        ret = drm_dp_dpcd_readb(&it6505->aux, offset, &value);
        if (ret < 0) {
                             u8 datain)
 {
        int ret;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        ret = drm_dp_dpcd_writeb(&it6505->aux, offset, datain);
        if (ret < 0) {
 static int it6505_get_dpcd(struct it6505 *it6505, int offset, u8 *dpcd, int num)
 {
        int ret;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        ret = drm_dp_dpcd_read(&it6505->aux, offset, dpcd, num);
 
 {
        unsigned int i, j;
        u8 regs[16];
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        for (i = 0; i <= 0xff; i += 16) {
                for (j = 0; j < 16; j++)
 
 static void it6505_calc_video_info(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int hsync_pol, vsync_pol, interlaced;
        int htotal, hdes, hdew, hfph, hsyncw;
        int vtotal, vdes, vdew, vfph, vsyncw;
 {
        int status;
        unsigned long timeout;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        timeout = jiffies + msecs_to_jiffies(AUX_WAIT_TIMEOUT_MS) + 1;
 
                                 size_t len)
 {
        struct it6505 *it6505 = data;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        enum aux_cmd_reply reply;
        int offset, ret, aux_retry = 100;
 
 {
        u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE];
        int err;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        err = hdmi_avi_infoframe_pack(frame, buffer, sizeof(buffer));
        if (err < 0) {
 {
        int err;
        union extcon_property_value property;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (it6505->extcon && !it6505->lane_swap_disabled) {
                err = extcon_get_property(it6505->extcon, EXTCON_DISP_DP,
 
 static void it6505_enable_audio_infoframe(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        u8 audio_info_ca[] = { 0x00, 0x00, 0x01, 0x03, 0x07, 0x0B, 0x0F, 0x1F };
 
        DRM_DEV_DEBUG_DRIVER(dev, "infoframe channel_allocation:0x%02x",
 
 static void it6505_enable_audio(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int regbe;
 
        DRM_DEV_DEBUG_DRIVER(dev, "start");
 
 static void it6505_parse_link_capabilities(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        struct it6505_drm_dp_link *link = &it6505->link;
        int bcaps;
 
 
 static void it6505_link_training_setup(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (it6505->enable_enhanced_frame)
                it6505_set_bits(it6505, REG_DATA_MUTE_CTRL,
                                        FORCE_CR_DONE);
                        return true;
                }
-               DRM_DEV_DEBUG_DRIVER(&it6505->client->dev, "cr not done");
+               DRM_DEV_DEBUG_DRIVER(it6505->dev, "cr not done");
 
                if (it6505_check_max_voltage_swing_reached(lane_level_config,
                                                           it6505->lane_count))
                                        FORCE_EQ_DONE);
                        return true;
                }
-               DRM_DEV_DEBUG_DRIVER(&it6505->client->dev, "eq not done");
+               DRM_DEV_DEBUG_DRIVER(it6505->dev, "eq not done");
 
                for (i = 0; i < it6505->lane_count; i++) {
                        lane_voltage_pre_emphasis->voltage_swing[i] =
                .pre_emphasis = { 0 },
        };
 
-       DRM_DEV_DEBUG_DRIVER(&it6505->client->dev, "start");
+       DRM_DEV_DEBUG_DRIVER(it6505->dev, "start");
        err = it6505_drm_dp_link_configure(it6505);
 
        if (err < 0)
 
 static void it6505_start_hdcp(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "start");
        it6505_reset_hdcp(it6505);
 
 static void it6505_hdcp_part1_auth(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        u8 hdcp_bcaps;
 
        it6505_set_bits(it6505, REG_RESET_CTRL, HDCP_RESET, 0x00);
        struct shash_desc *desc;
        struct crypto_shash *tfm;
        int err;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        tfm = crypto_alloc_shash("sha1", 0, 0);
        if (IS_ERR(tfm)) {
 
 static int it6505_setup_sha1_input(struct it6505 *it6505, u8 *sha1_input)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        u8 binfo[2];
        int down_stream_count, i, err, msg_count = 0;
 
 
 static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        u8 av[5][4], bv[5][4];
        int i, err;
 
 {
        struct it6505 *it6505 = container_of(work, struct it6505,
                                             hdcp_wait_ksv_list);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        unsigned int timeout = 5000;
        u8 bstatus = 0;
        bool ksv_list_check;
 {
        struct it6505 *it6505 = container_of(work, struct it6505,
                                             hdcp_work.work);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int ret;
        u8 link_status[DP_LINK_STATUS_SIZE] = { 0 };
 
 
 static void it6505_show_hdcp_info(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int i;
        u8 *sha1 = it6505->sha1_input;
 
 
 static void it6505_link_train_ok(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        it6505->link_state = LINK_OK;
        /* disalbe mute enable avi info frame */
 
 static void it6505_link_step_train_process(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int ret, i, step_retry = 3;
 
        DRM_DEV_DEBUG_DRIVER(dev, "Start step train");
 static void it6505_link_training_work(struct work_struct *work)
 {
        struct it6505 *it6505 = container_of(work, struct it6505, link_works);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int ret;
 
        DRM_DEV_DEBUG_DRIVER(dev, "it6505->sink_count: %d",
 
 static int it6505_process_hpd_irq(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int ret, dpcd_sink_count, dp_irq_vector, bstatus;
        u8 link_status[DP_LINK_STATUS_SIZE];
 
 
 static void it6505_irq_hpd(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int dp_sink_count;
 
        it6505->hpd_state = it6505_get_sink_hpd_status(it6505);
 
 static void it6505_irq_hpd_irq(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "hpd_irq interrupt");
 
 
 static void it6505_irq_scdt(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        bool data;
 
        data = it6505_get_video_status(it6505);
 
 static void it6505_irq_hdcp_done(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "hdcp done interrupt");
        it6505->hdcp_status = HDCP_AUTH_DONE;
 
 static void it6505_irq_hdcp_fail(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "hdcp fail interrupt");
        it6505->hdcp_status = HDCP_AUTH_IDLE;
 
 static void it6505_irq_aux_cmd_fail(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "AUX PC Request Fail Interrupt");
 }
 
 static void it6505_irq_hdcp_ksv_check(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "HDCP event Interrupt");
        schedule_work(&it6505->hdcp_wait_ksv_list);
 
 static void it6505_irq_audio_fifo_error(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "audio fifo error Interrupt");
 
 
 static void it6505_irq_link_train_fail(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "link training fail interrupt");
        schedule_work(&it6505->link_works);
 
 static void it6505_irq_video_fifo_error(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "video fifo overflow interrupt");
        it6505->auto_train_retry = AUTO_TRAIN_RETRY;
 
 static void it6505_irq_io_latch_fifo_overflow(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "IO latch fifo overflow interrupt");
        it6505->auto_train_retry = AUTO_TRAIN_RETRY;
 static irqreturn_t it6505_int_threaded_handler(int unused, void *data)
 {
        struct it6505 *it6505 = data;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        static const struct {
                int bit;
                void (*handler)(struct it6505 *it6505);
 
 static int it6505_poweron(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        struct it6505_platform_data *pdata = &it6505->pdata;
        int err;
 
 
 static int it6505_poweroff(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        struct it6505_platform_data *pdata = &it6505->pdata;
        int err;
 
 
 static enum drm_connector_status it6505_detect(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        enum drm_connector_status status = connector_status_disconnected;
        int dp_sink_count;
 
 static void it6505_extcon_work(struct work_struct *work)
 {
        struct it6505 *it6505 = container_of(work, struct it6505, extcon_wq);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int state, ret;
 
        if (it6505->enable_drv_hold)
 static int it6505_use_notifier_module(struct it6505 *it6505)
 {
        int ret;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        it6505->event_nb.notifier_call = it6505_extcon_notifier;
        INIT_WORK(&it6505->extcon_wq, it6505_extcon_work);
-       ret = devm_extcon_register_notifier(&it6505->client->dev,
+       ret = devm_extcon_register_notifier(it6505->dev,
                                            it6505->extcon, EXTCON_DISP_DP,
                                            &it6505->event_nb);
        if (ret) {
 static void it6505_remove_notifier_module(struct it6505 *it6505)
 {
        if (it6505->extcon) {
-               devm_extcon_unregister_notifier(&it6505->client->dev,
+               devm_extcon_unregister_notifier(it6505->dev,
                                                it6505->extcon, EXTCON_DISP_DP,
                                                &it6505->event_nb);
 
        struct it6505 *it6505 = container_of(work, struct it6505,
                                             delayed_audio.work);
 
-       DRM_DEV_DEBUG_DRIVER(&it6505->client->dev, "start");
+       DRM_DEV_DEBUG_DRIVER(it6505->dev, "start");
 
        if (!it6505->powered)
                return;
                                                       struct hdmi_codec_params
                                                       *params)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int i = 0;
 
        DRM_DEV_DEBUG_DRIVER(dev, "%s %d Hz, %d bit, %d channels\n", __func__,
                                enum drm_bridge_attach_flags flags)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        int ret;
 
        if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) {
                                        struct drm_bridge_state *old_state)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        struct drm_atomic_state *state = old_state->base.state;
        struct hdmi_avi_infoframe frame;
        struct drm_crtc_state *crtc_state;
                                         struct drm_bridge_state *old_state)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "start");
 
                                            struct drm_bridge_state *old_state)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "start");
 
                                              struct drm_bridge_state *old_state)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        DRM_DEV_DEBUG_DRIVER(dev, "start");
 
                                           struct drm_connector *connector)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        if (!it6505->cached_edid) {
                it6505->cached_edid = drm_do_get_edid(connector, it6505_get_edid_block,
 static int it6505_init_pdata(struct it6505 *it6505)
 {
        struct it6505_platform_data *pdata = &it6505->pdata;
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        /* 1.0V digital core power regulator  */
        pdata->pwr18 = devm_regulator_get(dev, "pwr18");
 
 static void it6505_parse_dt(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
        struct device_node *np = dev->of_node, *ep = NULL;
        int len;
        u64 link_frequencies;
 
 static void debugfs_init(struct it6505 *it6505)
 {
-       struct device *dev = &it6505->client->dev;
+       struct device *dev = it6505->dev;
 
        it6505->debugfs = debugfs_create_dir(DEBUGFS_DIR_NAME, NULL);
 
 
        it6505->bridge.of_node = client->dev.of_node;
        it6505->connector_status = connector_status_disconnected;
-       it6505->client = client;
+       it6505->dev = &client->dev;
        i2c_set_clientdata(client, it6505);
 
        /* get extcon device from DTS */