Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 106749
b: refs/heads/master
c: 85b9b8a
h: refs/heads/master
i:
  106747: ecd71bb
v: v3
  • Loading branch information
Jean Delvare authored and Mauro Carvalho Chehab committed Jul 26, 2008
1 parent e5ea742 commit 02a87f1
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 54812c77bc830e2dbcb62b4c6d8a9c7f97cfdd1b
refs/heads/master: 85b9b8a444413ea5706096df13012520ed6c5103
36 changes: 23 additions & 13 deletions trunk/drivers/media/video/zoran_card.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ static struct pci_device_id zr36067_pci_tbl[] = {
MODULE_DEVICE_TABLE(pci, zr36067_pci_tbl);

int zoran_num; /* number of Buzs in use */
struct zoran zoran[BUZ_MAX];
struct zoran *zoran[BUZ_MAX];

/* videocodec bus functions ZR36060 */
static u32
Expand Down Expand Up @@ -1164,7 +1164,7 @@ static void
zoran_release (struct zoran *zr)
{
if (!zr->initialized)
return;
goto exit_free;
/* unregister videocodec bus */
if (zr->codec) {
struct videocodec_master *master = zr->codec->master_data;
Expand Down Expand Up @@ -1192,6 +1192,8 @@ zoran_release (struct zoran *zr)
iounmap(zr->zr36057_mem);
pci_disable_device(zr->pci_dev);
video_unregister_device(zr->video_dev);
exit_free:
kfree(zr);
}

void
Expand Down Expand Up @@ -1269,16 +1271,22 @@ find_zr36057 (void)
while (zoran_num < BUZ_MAX &&
(dev = pci_get_device(PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36057, dev)) != NULL) {
card_num = card[zoran_num];
zr = &zoran[zoran_num];
memset(zr, 0, sizeof(struct zoran)); // Just in case if previous cycle failed
zr = kzalloc(sizeof(struct zoran), GFP_KERNEL);
if (!zr) {
dprintk(1,
KERN_ERR
"%s: find_zr36057() - kzalloc failed\n",
ZORAN_NAME);
continue;
}
zr->pci_dev = dev;
//zr->zr36057_mem = NULL;
zr->id = zoran_num;
snprintf(ZR_DEVNAME(zr), sizeof(ZR_DEVNAME(zr)), "MJPEG[%u]", zr->id);
spin_lock_init(&zr->spinlock);
mutex_init(&zr->resource_lock);
if (pci_enable_device(dev))
continue;
goto zr_free_mem;
zr->zr36057_adr = pci_resource_start(zr->pci_dev, 0);
pci_read_config_byte(zr->pci_dev, PCI_CLASS_REVISION,
&zr->revision);
Expand All @@ -1294,7 +1302,7 @@ find_zr36057 (void)
KERN_ERR
"%s: find_zr36057() - no card specified, please use the card=X insmod option\n",
ZR_DEVNAME(zr));
continue;
goto zr_free_mem;
}
} else {
int i;
Expand Down Expand Up @@ -1333,7 +1341,7 @@ find_zr36057 (void)
KERN_ERR
"%s: find_zr36057() - unknown card\n",
ZR_DEVNAME(zr));
continue;
goto zr_free_mem;
}
}
}
Expand All @@ -1343,7 +1351,7 @@ find_zr36057 (void)
KERN_ERR
"%s: find_zr36057() - invalid cardnum %d\n",
ZR_DEVNAME(zr), card_num);
continue;
goto zr_free_mem;
}

/* even though we make this a non pointer and thus
Expand All @@ -1361,7 +1369,7 @@ find_zr36057 (void)
KERN_ERR
"%s: find_zr36057() - ioremap failed\n",
ZR_DEVNAME(zr));
continue;
goto zr_free_mem;
}

result = request_irq(zr->pci_dev->irq,
Expand Down Expand Up @@ -1530,7 +1538,7 @@ find_zr36057 (void)
}
/* Success so keep the pci_dev referenced */
pci_dev_get(zr->pci_dev);
zoran_num++;
zoran[zoran_num++] = zr;
continue;

// Init errors
Expand All @@ -1549,6 +1557,8 @@ find_zr36057 (void)
free_irq(zr->pci_dev->irq, zr);
zr_unmap:
iounmap(zr->zr36057_mem);
zr_free_mem:
kfree(zr);
continue;
}
if (dev) /* Clean up ref count on early exit */
Expand Down Expand Up @@ -1620,7 +1630,7 @@ init_dc10_cards (void)

/* take care of Natoma chipset and a revision 1 zr36057 */
for (i = 0; i < zoran_num; i++) {
struct zoran *zr = &zoran[i];
struct zoran *zr = zoran[i];

if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1) {
zr->jpg_buffers.need_contiguous = 1;
Expand All @@ -1632,7 +1642,7 @@ init_dc10_cards (void)

if (zr36057_init(zr) < 0) {
for (i = 0; i < zoran_num; i++)
zoran_release(&zoran[i]);
zoran_release(zoran[i]);
return -EIO;
}
zoran_proc_init(zr);
Expand All @@ -1647,7 +1657,7 @@ unload_dc10_cards (void)
int i;

for (i = 0; i < zoran_num; i++)
zoran_release(&zoran[i]);
zoran_release(zoran[i]);
}

module_init(init_dc10_cards);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/media/video/zoran_card.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ extern int zr36067_debug;
/* Anybody who uses more than four? */
#define BUZ_MAX 4
extern int zoran_num;
extern struct zoran zoran[BUZ_MAX];
extern struct zoran *zoran[BUZ_MAX];

extern struct video_device zoran_template;

Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/media/video/zoran_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -1213,8 +1213,8 @@ zoran_open (struct inode *inode,

/* find the device */
for (i = 0; i < zoran_num; i++) {
if (zoran[i].video_dev->minor == minor) {
zr = &zoran[i];
if (zoran[i]->video_dev->minor == minor) {
zr = zoran[i];
break;
}
}
Expand Down

0 comments on commit 02a87f1

Please sign in to comment.