| .. | .. |
|---|
| 908 | 908 | { |
|---|
| 909 | 909 | struct tda1997x_state *state = to_state(sd); |
|---|
| 910 | 910 | struct tda1997x_platform_data *pdata = &state->pdata; |
|---|
| 911 | | - bool sp_used_by_fifo = 1; |
|---|
| 911 | + bool sp_used_by_fifo = true; |
|---|
| 912 | 912 | u8 reg; |
|---|
| 913 | 913 | |
|---|
| 914 | 914 | if (!pdata->audout_format) |
|---|
| .. | .. |
|---|
| 936 | 936 | break; |
|---|
| 937 | 937 | case AUDCFG_TYPE_DST: |
|---|
| 938 | 938 | reg |= AUDCFG_TYPE_DST << AUDCFG_TYPE_SHIFT; |
|---|
| 939 | | - sp_used_by_fifo = 0; |
|---|
| 939 | + sp_used_by_fifo = false; |
|---|
| 940 | 940 | break; |
|---|
| 941 | 941 | case AUDCFG_TYPE_HBR: |
|---|
| 942 | 942 | reg |= AUDCFG_TYPE_HBR << AUDCFG_TYPE_SHIFT; |
|---|
| .. | .. |
|---|
| 944 | 944 | /* demuxed via AP0:AP3 */ |
|---|
| 945 | 945 | reg |= AUDCFG_HBR_DEMUX << AUDCFG_HBR_SHIFT; |
|---|
| 946 | 946 | if (pdata->audout_format == AUDFMT_TYPE_SPDIF) |
|---|
| 947 | | - sp_used_by_fifo = 0; |
|---|
| 947 | + sp_used_by_fifo = false; |
|---|
| 948 | 948 | } else { |
|---|
| 949 | 949 | /* straight via AP0 */ |
|---|
| 950 | 950 | reg |= AUDCFG_HBR_STRAIGHT << AUDCFG_HBR_SHIFT; |
|---|
| .. | .. |
|---|
| 1247 | 1247 | { |
|---|
| 1248 | 1248 | struct v4l2_subdev *sd = &state->sd; |
|---|
| 1249 | 1249 | union hdmi_infoframe frame; |
|---|
| 1250 | | - u8 buffer[40]; |
|---|
| 1250 | + u8 buffer[40] = { 0 }; |
|---|
| 1251 | 1251 | u8 reg; |
|---|
| 1252 | 1252 | int len, err; |
|---|
| 1253 | 1253 | |
|---|
| 1254 | 1254 | /* read data */ |
|---|
| 1255 | 1255 | len = io_readn(sd, addr, sizeof(buffer), buffer); |
|---|
| 1256 | | - err = hdmi_infoframe_unpack(&frame, buffer, sizeof(buffer)); |
|---|
| 1256 | + err = hdmi_infoframe_unpack(&frame, buffer, len); |
|---|
| 1257 | 1257 | if (err) { |
|---|
| 1258 | 1258 | v4l_err(state->client, |
|---|
| 1259 | 1259 | "failed parsing %d byte infoframe: 0x%04x/0x%02x\n", |
|---|
| .. | .. |
|---|
| 1885 | 1885 | for (i = 0; i < 128; i++) |
|---|
| 1886 | 1886 | io_write(sd, REG_EDID_IN_BYTE128 + i, edid->edid[i+128]); |
|---|
| 1887 | 1887 | |
|---|
| 1888 | + /* store state */ |
|---|
| 1889 | + memcpy(state->edid.edid, edid->edid, 256); |
|---|
| 1890 | + state->edid.blocks = edid->blocks; |
|---|
| 1891 | + |
|---|
| 1888 | 1892 | tda1997x_enable_edid(sd); |
|---|
| 1889 | 1893 | |
|---|
| 1890 | 1894 | return 0; |
|---|
| .. | .. |
|---|
| 1923 | 1927 | { |
|---|
| 1924 | 1928 | struct tda1997x_state *state = to_state(sd); |
|---|
| 1925 | 1929 | union hdmi_infoframe frame; |
|---|
| 1926 | | - u8 buffer[40]; |
|---|
| 1930 | + u8 buffer[40] = { 0 }; |
|---|
| 1927 | 1931 | int len, err; |
|---|
| 1928 | 1932 | |
|---|
| 1929 | 1933 | /* read data */ |
|---|
| 1930 | 1934 | len = io_readn(sd, addr, sizeof(buffer), buffer); |
|---|
| 1931 | 1935 | v4l2_dbg(1, debug, sd, "infoframe: addr=%d len=%d\n", addr, len); |
|---|
| 1932 | | - err = hdmi_infoframe_unpack(&frame, buffer, sizeof(buffer)); |
|---|
| 1936 | + err = hdmi_infoframe_unpack(&frame, buffer, len); |
|---|
| 1933 | 1937 | if (err) { |
|---|
| 1934 | 1938 | v4l_err(state->client, |
|---|
| 1935 | 1939 | "failed parsing %d byte infoframe: 0x%04x/0x%02x\n", |
|---|
| .. | .. |
|---|
| 2267 | 2271 | static int tda1997x_parse_dt(struct tda1997x_state *state) |
|---|
| 2268 | 2272 | { |
|---|
| 2269 | 2273 | struct tda1997x_platform_data *pdata = &state->pdata; |
|---|
| 2270 | | - struct v4l2_fwnode_endpoint bus_cfg; |
|---|
| 2274 | + struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 }; |
|---|
| 2271 | 2275 | struct device_node *ep; |
|---|
| 2272 | 2276 | struct device_node *np; |
|---|
| 2273 | 2277 | unsigned int flags; |
|---|
| .. | .. |
|---|
| 2586 | 2590 | case 36: |
|---|
| 2587 | 2591 | mbus_codes[i++] = MEDIA_BUS_FMT_RGB121212_1X36; |
|---|
| 2588 | 2592 | mbus_codes[i++] = MEDIA_BUS_FMT_YUV12_1X36; |
|---|
| 2589 | | - /* fall-through */ |
|---|
| 2593 | + fallthrough; |
|---|
| 2590 | 2594 | case 24: |
|---|
| 2591 | 2595 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY12_1X24; |
|---|
| 2592 | 2596 | break; |
|---|
| .. | .. |
|---|
| 2615 | 2619 | mbus_codes[i++] = MEDIA_BUS_FMT_RGB888_1X24; |
|---|
| 2616 | 2620 | mbus_codes[i++] = MEDIA_BUS_FMT_YUV8_1X24; |
|---|
| 2617 | 2621 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY12_1X24; |
|---|
| 2618 | | - /* fall through */ |
|---|
| 2622 | + fallthrough; |
|---|
| 2619 | 2623 | case 20: |
|---|
| 2620 | 2624 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY10_1X20; |
|---|
| 2621 | | - /* fall through */ |
|---|
| 2625 | + fallthrough; |
|---|
| 2622 | 2626 | case 16: |
|---|
| 2623 | 2627 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY8_1X16; |
|---|
| 2624 | 2628 | break; |
|---|
| .. | .. |
|---|
| 2631 | 2635 | case 16: |
|---|
| 2632 | 2636 | case 12: |
|---|
| 2633 | 2637 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY12_2X12; |
|---|
| 2634 | | - /* fall through */ |
|---|
| 2638 | + fallthrough; |
|---|
| 2635 | 2639 | case 10: |
|---|
| 2636 | 2640 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY10_2X10; |
|---|
| 2637 | | - /* fall through */ |
|---|
| 2641 | + fallthrough; |
|---|
| 2638 | 2642 | case 8: |
|---|
| 2639 | 2643 | mbus_codes[i++] = MEDIA_BUS_FMT_UYVY8_2X8; |
|---|
| 2640 | 2644 | break; |
|---|
| .. | .. |
|---|
| 2689 | 2693 | } |
|---|
| 2690 | 2694 | |
|---|
| 2691 | 2695 | ret = 0x34 + ((io_read(sd, REG_SLAVE_ADDR)>>4) & 0x03); |
|---|
| 2692 | | - state->client_cec = i2c_new_dummy(client->adapter, ret); |
|---|
| 2696 | + state->client_cec = devm_i2c_new_dummy_device(&client->dev, |
|---|
| 2697 | + client->adapter, ret); |
|---|
| 2698 | + if (IS_ERR(state->client_cec)) { |
|---|
| 2699 | + ret = PTR_ERR(state->client_cec); |
|---|
| 2700 | + goto err_free_mutex; |
|---|
| 2701 | + } |
|---|
| 2702 | + |
|---|
| 2693 | 2703 | v4l_info(client, "CEC slave address 0x%02x\n", ret); |
|---|
| 2694 | 2704 | |
|---|
| 2695 | 2705 | ret = tda1997x_core_init(sd); |
|---|
| .. | .. |
|---|
| 2796 | 2806 | media_entity_cleanup(&sd->entity); |
|---|
| 2797 | 2807 | v4l2_ctrl_handler_free(&state->hdl); |
|---|
| 2798 | 2808 | regulator_bulk_disable(TDA1997X_NUM_SUPPLIES, state->supplies); |
|---|
| 2799 | | - i2c_unregister_device(state->client_cec); |
|---|
| 2800 | | - cancel_delayed_work(&state->delayed_work_enable_hpd); |
|---|
| 2809 | + cancel_delayed_work_sync(&state->delayed_work_enable_hpd); |
|---|
| 2801 | 2810 | mutex_destroy(&state->page_lock); |
|---|
| 2802 | 2811 | mutex_destroy(&state->lock); |
|---|
| 2803 | 2812 | |
|---|