Re: ITE8708 on ASUS PN50 uses a 16 byte io region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

Ok. Let's just accept larger io_region_size in ite-cir.c.

Would be willing to write a patch, test, and submit it to the list?

Thanks,

Sean

On Tue, Nov 17, 2020 at 10:47:26PM +0100, Michael Zimmermann wrote:
> Hi Sean,
> 
> I finally managed to open the device and it has an IT8225VG-128.
> I can't find any datasheet for that device though.
> 
> Thanks
> Michael
> 
> On Sun, Sep 27, 2020 at 12:03 AM Sean Young <sean@xxxxxxxx> wrote:
> >
> > On Sat, Sep 26, 2020 at 04:18:10PM +0200, Michael Zimmermann wrote:
> > > On Sat, Sep 26, 2020 at 3:33 PM Sean Young <sean@xxxxxxxx> wrote:
> > > >
> > > > Hi Michael,
> > > >
> > > > On Sat, Sep 26, 2020 at 02:32:21PM +0200, Michael Zimmermann wrote:
> > > > > The acpi _HID name of the device is "ITE8708" and the device works
> > > > > with linux's ITE8708 config.
> > > > >
> > > > > I can't find any datasheet or even product page for that IC so I don't
> > > > > know what footprint to look for when looking at the PCB - none of the
> > > > > bigger ICs near the IR sensor have that name on them and the smaller
> > > > > ones usually don't have any useful information printed on them.
> > > > > Additionally I can only access one side of the PCB because I couldn't
> > > > > figure out how to fully disassemble the device yet.
> > > >
> > > > This is a super i/o device, so this handles stuff like serial ports,
> > > > parallel ports, floppy disks. All the legacy stuff you don't need any more.
> > > >
> > > > There is a coreboot tool which can identify super i/o devices:
> > > >
> > > >         https://www.coreboot.org/Superiotool
> > > >
> > > > The super io devices I've seen are about 2cm by 3cm.
> > > >
> > > > I could find a datasheet for the IT8712F on google.
> > > >
> > > >
> > > > Sean
> > > >
> > > > PS. Please don't top post.
> > >
> > > Hi Sean,
> > >
> > > superiotool r4.12-2974-ga32df26ec07
> > > Found Aspeed AST2400 (id=0x00) at 0x2e
> > >
> > > Which is kinda confusing. So either the superiotool detection is
> > > flawed or the PN50 actually has an AST2400 and is programmed to
> > > emulate the IR part of an IT8708F.
> > > Also, that thing seems beefy enough to be the systems EC, does that seem likely?
> >
> > Strange. To be honest, I don't know.
> >
> > So looking at the driver, there are four models supported. They have an
> > io_region_size of IT87_IOREG_LENGTH, IT8708_IOREG_LENGTH, and
> > IT8709_IOREG_LENGTH. That's 8, 8, and 2. The header file also has a size
> > of IT85_IOREG_LENGTH which is 16, but this is not used anywhere.
> >
> > The documentation I can find for one IT85 model is:
> >
> > http://www.recomb-omsk.ru/published/SC/html/scripts/doc/94689_datasheet_IT8512E_F_V0.4.1.pdf
> >
> > As far as I can make out, if it was this device, the driver wouldn't work
> > at all.
> >
> > I'm thinking the likely explanation is that the DSDT is wrong and we should
> > make the change as you originally suggested.
> >
> >
> > Sean
> >
> >
> > >
> > > Thanks
> > > Michael
> > > >
> > > > >
> > > > > Thanks
> > > > > Michael
> > > > >
> > > > > On Sat, Sep 26, 2020 at 1:30 PM Sean Young <sean@xxxxxxxx> wrote:
> > > > > >
> > > > > > On Sat, Sep 26, 2020 at 10:22:46AM +0200, Michael Zimmermann wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > here's the resource descriptor from my DSDT:
> > > > > > > Name (BUF0, ResourceTemplate ()
> > > > > > > {
> > > > > > >     IO (Decode16,
> > > > > > >         0x0000,             // Range Minimum
> > > > > > >         0x0000,             // Range Maximum
> > > > > > >         0x01,               // Alignment
> > > > > > >         0x10,               // Length
> > > > > > >         _Y1A)
> > > > > > >     IRQNoFlags (_Y1B)
> > > > > > >         {}
> > > > > > >     DMA (Compatibility, NotBusMaster, Transfer8, )
> > > > > > >         {}
> > > > > > > })
> > > > > > >
> > > > > > > As you can see it uses 16 bytes for the IO region while the driver
> > > > > > > drivers/media/rc/ite-cir.c expects 8.
> > > > > > > I don't see any obvious reason why they do that since they only seem
> > > > > > > to write two words in there, and if I edit the DSDT to change the
> > > > > > > length from 0x10 to 0x8 the linux driver detects the device properly
> > > > > > > it works just fine.
> > > > > > >
> > > > > > > So is this a bug on ASUS' side or should we just accept longer regions
> > > > > > > for the same device type?
> > > > > >
> > > > > > So looking at the driver, some devices do have an io region of 16 and
> > > > > > others expect 8. See the io_region_size field of ite_dev_descs.
> > > > > >
> > > > > > So for ITE8708 the io_region_size is set to 8. Does your device really
> > > > > > have an ITE8708 or is the DSDT wrong?
> > > > > >
> > > > > >
> > > > > > Sean



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux