hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/media/pci/dt3155/dt3155.c
....@@ -1,16 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /***************************************************************************
23 * Copyright (C) 2006-2010 by Marin Mitov *
34 * mitov@issp.bas.bg *
45 * *
5
- * This program is free software; you can redistribute it and/or modify *
6
- * it under the terms of the GNU General Public License as published by *
7
- * the Free Software Foundation; either version 2 of the License, or *
8
- * (at your option) any later version. *
9
- * *
10
- * This program is distributed in the hope that it will be useful, *
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
- * GNU General Public License for more details. *
146 * *
157 ***************************************************************************/
168
....@@ -46,7 +38,6 @@
4638 u32 tmp = index;
4739
4840 iowrite32((tmp << 17) | IIC_READ, addr + IIC_CSR2);
49
- mmiowb();
5041 udelay(45); /* wait at least 43 usec for NEW_CYCLE to clear */
5142 if (ioread32(addr + IIC_CSR2) & NEW_CYCLE)
5243 return -EIO; /* error: NEW_CYCLE not cleared */
....@@ -77,7 +68,6 @@
7768 u32 tmp = index;
7869
7970 iowrite32((tmp << 17) | IIC_WRITE | data, addr + IIC_CSR2);
80
- mmiowb();
8171 udelay(65); /* wait at least 63 usec for NEW_CYCLE to clear */
8272 if (ioread32(addr + IIC_CSR2) & NEW_CYCLE)
8373 return -EIO; /* error: NEW_CYCLE not cleared */
....@@ -104,7 +94,6 @@
10494 u32 tmp = index;
10595
10696 iowrite32((tmp << 17) | IIC_WRITE | data, addr + IIC_CSR2);
107
- mmiowb();
10897 }
10998
11099 /**
....@@ -264,7 +253,6 @@
264253 FLD_DN_ODD | FLD_DN_EVEN |
265254 CAP_CONT_EVEN | CAP_CONT_ODD,
266255 ipd->regs + CSR1);
267
- mmiowb();
268256 }
269257
270258 spin_lock(&ipd->lock);
....@@ -282,7 +270,6 @@
282270 iowrite32(dma_addr + ipd->width, ipd->regs + ODD_DMA_START);
283271 iowrite32(ipd->width, ipd->regs + EVEN_DMA_STRIDE);
284272 iowrite32(ipd->width, ipd->regs + ODD_DMA_STRIDE);
285
- mmiowb();
286273 }
287274
288275 /* enable interrupts, clear all irq flags */
....@@ -307,12 +294,9 @@
307294 {
308295 struct dt3155_priv *pd = video_drvdata(filp);
309296
310
- strcpy(cap->driver, DT3155_NAME);
311
- strcpy(cap->card, DT3155_NAME " frame grabber");
297
+ strscpy(cap->driver, DT3155_NAME, sizeof(cap->driver));
298
+ strscpy(cap->card, DT3155_NAME " frame grabber", sizeof(cap->card));
312299 sprintf(cap->bus_info, "PCI:%s", pci_name(pd->pdev));
313
- cap->device_caps = V4L2_CAP_VIDEO_CAPTURE |
314
- V4L2_CAP_STREAMING | V4L2_CAP_READWRITE;
315
- cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
316300 return 0;
317301 }
318302
....@@ -322,7 +306,6 @@
322306 if (f->index)
323307 return -EINVAL;
324308 f->pixelformat = V4L2_PIX_FMT_GREY;
325
- strcpy(f->description, "8-bit Greyscale");
326309 return 0;
327310 }
328311
....@@ -378,7 +361,7 @@
378361 snprintf(input->name, sizeof(input->name), "VID%d",
379362 input->index);
380363 else
381
- strlcpy(input->name, "J2/VID0", sizeof(input->name));
364
+ strscpy(input->name, "J2/VID0", sizeof(input->name));
382365 input->type = V4L2_INPUT_TYPE_CAMERA;
383366 input->std = V4L2_STD_ALL;
384367 input->status = 0;
....@@ -437,15 +420,13 @@
437420 /* resetting the adapter */
438421 iowrite32(ADDR_ERR_ODD | ADDR_ERR_EVEN | FLD_CRPT_ODD | FLD_CRPT_EVEN |
439422 FLD_DN_ODD | FLD_DN_EVEN, pd->regs + CSR1);
440
- mmiowb();
441423 msleep(20);
442424
443425 /* initializing adapter registers */
444426 iowrite32(FIFO_EN | SRST, pd->regs + CSR1);
445
- mmiowb();
446427 iowrite32(0xEEEEEE01, pd->regs + EVEN_PIXEL_FMT);
447428 iowrite32(0xEEEEEE01, pd->regs + ODD_PIXEL_FMT);
448
- iowrite32(0x00000020, pd->regs + FIFO_TRIGER);
429
+ iowrite32(0x00000020, pd->regs + FIFO_TRIGGER);
449430 iowrite32(0x00000103, pd->regs + XFER_MODE);
450431 iowrite32(0, pd->regs + RETRY_WAIT_CNT);
451432 iowrite32(0, pd->regs + INT_CSR);
....@@ -454,7 +435,6 @@
454435 iowrite32(0, pd->regs + MASK_LENGTH);
455436 iowrite32(0x0005007C, pd->regs + FIFO_FLAG_CNT);
456437 iowrite32(0x01010101, pd->regs + IIC_CLK_DUR);
457
- mmiowb();
458438
459439 /* verifying that we have a DT3155 board (not just a SAA7116 chip) */
460440 read_i2c_reg(pd->regs, DT_ID, &tmp);
....@@ -506,6 +486,8 @@
506486 .minor = -1,
507487 .release = video_device_release_empty,
508488 .tvnorms = V4L2_STD_ALL,
489
+ .device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
490
+ V4L2_CAP_READWRITE,
509491 };
510492
511493 static int dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id)
....@@ -568,7 +550,7 @@
568550 IRQF_SHARED, DT3155_NAME, pd);
569551 if (err)
570552 goto err_iounmap;
571
- err = video_register_device(&pd->vdev, VFL_TYPE_GRABBER, -1);
553
+ err = video_register_device(&pd->vdev, VFL_TYPE_VIDEO, -1);
572554 if (err)
573555 goto err_free_irq;
574556 dev_info(&pdev->dev, "/dev/video%i is ready\n", pd->vdev.minor);
....@@ -593,9 +575,8 @@
593575 struct dt3155_priv *pd = container_of(v4l2_dev, struct dt3155_priv,
594576 v4l2_dev);
595577
596
- video_unregister_device(&pd->vdev);
578
+ vb2_video_unregister_device(&pd->vdev);
597579 free_irq(pd->pdev->irq, pd);
598
- vb2_queue_release(&pd->vidq);
599580 v4l2_device_unregister(&pd->v4l2_dev);
600581 pci_iounmap(pdev, pd->regs);
601582 pci_release_region(pdev, 0);