.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * s3c24xx/s3c64xx SoC series Camera Interface (CAMIF) driver |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2012 Sylwester Nawrocki <sylvester.nawrocki@gmail.com> |
---|
5 | 6 | * Copyright (C) 2012 Tomasz Figa <tomasz.figa@gmail.com> |
---|
6 | | - * |
---|
7 | | - * This program is free software; you can redistribute it and/or modify |
---|
8 | | - * it under the terms of the GNU General Public License as published |
---|
9 | | - * by the Free Software Foundation, either version 2 of the License, |
---|
10 | | - * or (at your option) any later version. |
---|
11 | 7 | */ |
---|
12 | 8 | #define pr_fmt(fmt) "%s:%d " fmt, __func__, __LINE__ |
---|
13 | 9 | |
---|
.. | .. |
---|
46 | 42 | |
---|
47 | 43 | static const struct camif_fmt camif_formats[] = { |
---|
48 | 44 | { |
---|
49 | | - .name = "YUV 4:2:2 planar, Y/Cb/Cr", |
---|
50 | 45 | .fourcc = V4L2_PIX_FMT_YUV422P, |
---|
51 | 46 | .depth = 16, |
---|
52 | 47 | .ybpp = 1, |
---|
.. | .. |
---|
55 | 50 | .flags = FMT_FL_S3C24XX_CODEC | |
---|
56 | 51 | FMT_FL_S3C64XX, |
---|
57 | 52 | }, { |
---|
58 | | - .name = "YUV 4:2:0 planar, Y/Cb/Cr", |
---|
59 | 53 | .fourcc = V4L2_PIX_FMT_YUV420, |
---|
60 | 54 | .depth = 12, |
---|
61 | 55 | .ybpp = 1, |
---|
.. | .. |
---|
64 | 58 | .flags = FMT_FL_S3C24XX_CODEC | |
---|
65 | 59 | FMT_FL_S3C64XX, |
---|
66 | 60 | }, { |
---|
67 | | - .name = "YVU 4:2:0 planar, Y/Cr/Cb", |
---|
68 | 61 | .fourcc = V4L2_PIX_FMT_YVU420, |
---|
69 | 62 | .depth = 12, |
---|
70 | 63 | .ybpp = 1, |
---|
.. | .. |
---|
73 | 66 | .flags = FMT_FL_S3C24XX_CODEC | |
---|
74 | 67 | FMT_FL_S3C64XX, |
---|
75 | 68 | }, { |
---|
76 | | - .name = "RGB565, 16 bpp", |
---|
77 | 69 | .fourcc = V4L2_PIX_FMT_RGB565X, |
---|
78 | 70 | .depth = 16, |
---|
79 | 71 | .ybpp = 2, |
---|
.. | .. |
---|
82 | 74 | .flags = FMT_FL_S3C24XX_PREVIEW | |
---|
83 | 75 | FMT_FL_S3C64XX, |
---|
84 | 76 | }, { |
---|
85 | | - .name = "XRGB8888, 32 bpp", |
---|
86 | 77 | .fourcc = V4L2_PIX_FMT_RGB32, |
---|
87 | 78 | .depth = 32, |
---|
88 | 79 | .ybpp = 4, |
---|
.. | .. |
---|
91 | 82 | .flags = FMT_FL_S3C24XX_PREVIEW | |
---|
92 | 83 | FMT_FL_S3C64XX, |
---|
93 | 84 | }, { |
---|
94 | | - .name = "BGR666", |
---|
95 | 85 | .fourcc = V4L2_PIX_FMT_BGR666, |
---|
96 | 86 | .depth = 32, |
---|
97 | 87 | .ybpp = 4, |
---|
.. | .. |
---|
314 | 304 | int ret; |
---|
315 | 305 | |
---|
316 | 306 | memset(md, 0, sizeof(*md)); |
---|
317 | | - snprintf(md->model, sizeof(md->model), "SAMSUNG S3C%s CAMIF", |
---|
| 307 | + snprintf(md->model, sizeof(md->model), "Samsung S3C%s CAMIF", |
---|
318 | 308 | ip_rev == S3C6410_CAMIF_IP_REV ? "6410" : "244X"); |
---|
319 | | - strlcpy(md->bus_info, "platform", sizeof(md->bus_info)); |
---|
| 309 | + strscpy(md->bus_info, "platform", sizeof(md->bus_info)); |
---|
320 | 310 | md->hw_revision = ip_rev; |
---|
321 | 311 | |
---|
322 | 312 | md->dev = camif->dev; |
---|
323 | 313 | |
---|
324 | | - strlcpy(v4l2_dev->name, "s3c-camif", sizeof(v4l2_dev->name)); |
---|
| 314 | + strscpy(v4l2_dev->name, "s3c-camif", sizeof(v4l2_dev->name)); |
---|
325 | 315 | v4l2_dev->mdev = md; |
---|
326 | 316 | |
---|
327 | 317 | media_device_init(md); |
---|
.. | .. |
---|
390 | 380 | init_waitqueue_head(&vp->irq_queue); |
---|
391 | 381 | |
---|
392 | 382 | irq = platform_get_irq(pdev, i); |
---|
393 | | - if (irq <= 0) { |
---|
394 | | - dev_err(&pdev->dev, "failed to get IRQ %d\n", i); |
---|
| 383 | + if (irq <= 0) |
---|
395 | 384 | return -ENXIO; |
---|
396 | | - } |
---|
397 | 385 | |
---|
398 | 386 | ret = devm_request_irq(&pdev->dev, irq, s3c_camif_irq_handler, |
---|
399 | 387 | 0, dev_name(&pdev->dev), vp); |
---|