.. | .. |
---|
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 | |
---|