All of lore.kernel.org
 help / color / mirror / Atom feed
* ITE8708 on ASUS PN50 uses a 16 byte io region
@ 2020-09-26  8:22 Michael Zimmermann
  2020-09-26 11:30 ` Sean Young
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Zimmermann @ 2020-09-26  8:22 UTC (permalink / raw)
  To: Sean Young; +Cc: linux-media

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?

Thanks
Michael

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26  8:22 ITE8708 on ASUS PN50 uses a 16 byte io region Michael Zimmermann
@ 2020-09-26 11:30 ` Sean Young
  2020-09-26 12:32   ` Michael Zimmermann
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Young @ 2020-09-26 11:30 UTC (permalink / raw)
  To: Michael Zimmermann; +Cc: linux-media

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26 11:30 ` Sean Young
@ 2020-09-26 12:32   ` Michael Zimmermann
  2020-09-26 13:33     ` Sean Young
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Zimmermann @ 2020-09-26 12:32 UTC (permalink / raw)
  To: Sean Young; +Cc: linux-media

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.

Thanks
Michael

On Sat, Sep 26, 2020 at 1:30 PM Sean Young <sean@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26 12:32   ` Michael Zimmermann
@ 2020-09-26 13:33     ` Sean Young
  2020-09-26 14:18       ` Michael Zimmermann
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Young @ 2020-09-26 13:33 UTC (permalink / raw)
  To: Michael Zimmermann; +Cc: linux-media

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.

> 
> Thanks
> Michael
> 
> On Sat, Sep 26, 2020 at 1:30 PM Sean Young <sean@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26 13:33     ` Sean Young
@ 2020-09-26 14:18       ` Michael Zimmermann
  2020-09-26 22:03         ` Sean Young
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Zimmermann @ 2020-09-26 14:18 UTC (permalink / raw)
  To: Sean Young; +Cc: linux-media

On Sat, Sep 26, 2020 at 3:33 PM Sean Young <sean@mess.org> 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?

Thanks
Michael
>
> >
> > Thanks
> > Michael
> >
> > On Sat, Sep 26, 2020 at 1:30 PM Sean Young <sean@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26 14:18       ` Michael Zimmermann
@ 2020-09-26 22:03         ` Sean Young
  2020-11-17 21:47           ` Michael Zimmermann
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Young @ 2020-09-26 22:03 UTC (permalink / raw)
  To: Michael Zimmermann; +Cc: linux-media

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@mess.org> 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@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-09-26 22:03         ` Sean Young
@ 2020-11-17 21:47           ` Michael Zimmermann
  2020-11-18 12:15             ` Sean Young
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Zimmermann @ 2020-11-17 21:47 UTC (permalink / raw)
  To: Sean Young; +Cc: linux-media

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@mess.org> 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@mess.org> 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@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ITE8708 on ASUS PN50 uses a 16 byte io region
  2020-11-17 21:47           ` Michael Zimmermann
@ 2020-11-18 12:15             ` Sean Young
  0 siblings, 0 replies; 8+ messages in thread
From: Sean Young @ 2020-11-18 12:15 UTC (permalink / raw)
  To: Michael Zimmermann; +Cc: linux-media

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@mess.org> 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@mess.org> 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@mess.org> 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-11-18 12:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-26  8:22 ITE8708 on ASUS PN50 uses a 16 byte io region Michael Zimmermann
2020-09-26 11:30 ` Sean Young
2020-09-26 12:32   ` Michael Zimmermann
2020-09-26 13:33     ` Sean Young
2020-09-26 14:18       ` Michael Zimmermann
2020-09-26 22:03         ` Sean Young
2020-11-17 21:47           ` Michael Zimmermann
2020-11-18 12:15             ` Sean Young

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.