Subject: VINO

From: Jorik Jonker <[email-masked]>
Date: Tue, 8 Jun 2004 14:54:37 +0200

Hi,

I have been playing around a bit with my Indycam, but it seems that some work
needs to be done to get a nice picture. I've read that it has something to do
with clipping and that the brightness control register is silently ignored. I
happen to have an IRIX installtion on my Indy as well, and I tried finding
out how to read the VINO registers from IRIX, but with no luck.
I suppose that there must be some kernel-space piece of code to read the GIO
(?) memory around adress 0x00080000, but I am not able to figure out how to
do this in IRIX. Perhaps someone (with al little bit more kernel-hacking
experience) could guide me a little bit on doing this?
Are there other people beside ladis who are attemping to enhance the VINO
driver in the linux kernel, and if so, what are your findings?
I would really like to contribute to VINO development, but it's quite opaque
matter to me, as the VINO spec is quite unclear and I am not certain what's
exactly going wrong in the VINO driver.

regards,
-- 
Jorik Jonker
http://boeventronie.net/

---

From: Ladislav Michl <[email-masked]>
Date: Wed, 9 Jun 2004 00:06:04 +0200

> out how to read the VINO registers from IRIX, but with no luck.

Indeed, there's probably no easy way to read VINO registers from
userspace.

> experience) could guide me a little bit on doing this?

That's right idea ((?) - EISA memory space)

> exactly going wrong in the VINO driver.

If you're seriously considering to help with VINO development this link:
http://www.ac3.edu.au/SGI_Developer/books/DevDriver_PG/sgi_html/ch09.html
looks like a good starting point. It's easy, just write driver which
allows you to read VINO registers while capture in progress :)

	ladis

---

From: Jorik Jonker <[email-masked]>
Date: Wed, 9 Jun 2004 14:20:46 +0200

> allows you to read VINO registers while capture in progress :)

Well, it seems not that easy for me. As I told, it's very opaque matter to
me; ie I already figured out that a kernel driver must be built but I really
have no clue on how to do this. For instance, I don't know what call (if
there exists any) should access that memory.
My plan was on writing a driver which allows me (through an ioctl to a special
device) to read/write to the VINO registers. I think I saw a driver example
in the DevDriver_PG which shows how to communicate through ioctl with
userspace (or kernelspace, depends on how you look at it), but the part where
I do the actual 'talking' to the VINO is matter I don't have any clue on how
to do that.

-- 
Jorik Jonker
http://boeventronie.net/

---

From: Ladislav Michl <[email-masked]>
Date: Tue, 29 Jun 2004 15:42:14 +0200

> there exists any) should access that memory.

PHYS_TO_K1 macro from <sys/mips_addrspace.h> does the trick. Just use
something like:

#define VINO_BASE 0x00080000
unsigned int reg = * (unsigned int *) PHYS_TO_K1(VINO_BASE + ofs);

Note that VINO registers are 64bit, but only lower 32bits are relevant for
us (the only exception is valid bit in descriptor cache register, which
is not important in this case). Please refer to VINO Design
Specification for more details:
ftp://ftp.linux-mips.org/pub/linux/mips/doc/indy/vino/

> I do the actual 'talking' to the VINO is matter I don't have any clue on how

I hope you'll find time to make your plan reality.

Best regars,
	ladis