Re: Asus PN62S vs PN50 - ITE8708

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

 



Hi Chris,

On Mon, May 03, 2021 at 11:44:04AM -0400, Chris McCrae wrote:
> Thanks for answering the call Sean.
> 
> On Mon, 3 May 2021 at 05:20, Sean Young <sean@xxxxxxxx> wrote:
> >
> > Hi Chris,
> >
> > On Fri, Apr 30, 2021 at 07:37:10PM -0400, Chris McCrae wrote:
> > > Recently acquired an Asus PN62S (Intel) as a media centre frontend
> > > (currently testing with Xubuntu 20.04 and a 5.10 kernel, and the most
> > > current BIOS available).  Having an integrated IR was part of the
> > > selling features.  However, getting it to be recognized by my system
> > > has become a challenge that I am getting obsessed with.  There's very
> > > little to find online on this device that is current, but there has
> > > been some recent conversation on this list about the same device, on a
> > > related machine, the PN50 (AMD).  I'm hoping that the knowledge here
> > > may lead to a solution for my issue.
> > >
> > > I can provide more detail on request, but at the moment I am focusing
> > > on the DSDT as a possible suspect.  I do not have the 16 byte issue
> > > that the PN50 experiences.  Mine is defined as 8 bytes, which is
> > > compatible with the ite-cir driver.  My issue is that there appears to
> > > be no attempt to bind the device to the driver (but it is visible in
> > > lsmod)... no messages about the driver in dmesg at all.  My thought is
> > > that the definition of the device in DSDT may somehow give it enough
> > > information (ITE8708) to know the driver could be needed, but not the
> > > correct information to make it work.
> > >
> > > An earlier message provided only part of the device definition in DSDT
> > > for the PN50.  I would like to be able to see the full definition for
> > > it from the PN50, to see if anything is significantly different.
> > > Ideally, if I had the full DSDT as a starting point, I could compare
> > > other areas such as motherboard resources.
> >
> > It would be great if we could see the entries for the IR device in your
> > DSDT. There is a guide here https://wiki.archlinux.org/title/DSDT on
> > how to do that.
> >
> Here the full device from the DSDT:
> 
>             Device (CR00)
>             {
>                 Name (_ADR, Zero)  // _ADR: Address
>                 Name (VBAN, 0x0680)
>                 Name (VIRQ, 0x0A)
>                 Name (UIDN, Zero)
>                 Name (_HID, EisaId ("ITE8708"))  // _HID: Hardware ID
>                 Method (_UID, 0, NotSerialized)  // _UID: Unique ID
>                 {
>                     Return (UIDN) /* \_SB_.PCI0.CR00.UIDN */
>                 }
> 
>                 Method (_STA, 0, Serialized)  // _STA: Status
>                 {
>                     If ((CIRE == Zero))
>                     {
>                         Return (Zero)
>                     }
>                     Return (0x0F)
>                 }
> 
>                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
>                 {
>                     Name (BUF0, ResourceTemplate ()
>                     {
>                         IO (Decode16,
>                             0x0000,             // Range Minimum
>                             0x0000,             // Range Maximum
>                             0x01,               // Alignment
>                             0x08,               // Length
>                             _Y10)
>                         IRQNoFlags (_Y11)
>                             {}
>                         DMA (Compatibility, NotBusMaster, Transfer8, )
>                             {}
>                     })
>                     CreateWordField (BUF0,
> \_SB.PCI0.CR00._CRS._Y10._MIN, IOPL)  // _MIN: Minimum Base Address
>                     CreateWordField (BUF0,
> \_SB.PCI0.CR00._CRS._Y10._MAX, IOPH)  // _MAX: Maximum Base Address
>                     CreateWordField (BUF0,
> \_SB.PCI0.CR00._CRS._Y11._INT, IRQ)  // _INT: Interrupts
>                     IOPL = VBAN /* \_SB_.PCI0.CR00.VBAN */
>                     IOPH = VBAN /* \_SB_.PCI0.CR00.VBAN */
>                     IRQ = (One << VIRQ) /* \_SB_.PCI0.CR00.VIRQ */
>                     Return (BUF0) /* \_SB_.PCI0.CR00._CRS.BUF0 */
>                 }
>             }

Hmm this is not really telling us everything yet. Would you mind sending
on the entire dmesg please?

> > Thanks
> >
> > Sean
> 
> I've been using the latest ACPI Spec (6.3) to better comprehend the
> macros, and what they should produce.  Running the DSDT through
> acpiexec for \_SB.PCI0.CR00._CRS gives:
> 
> - execute \_SB.PCI0.CR00._CRS
> Evaluating \_SB.PCI0.CR00._CRS
> 0x1 Outstanding allocations after evaluation of \_SB.PCI0.CR00._CRS
> Evaluation of \_SB.PCI0.CR00._CRS returned object 0x562c4e9a9c90,
> external buffer length 28
> [Buffer] Length 10 =   0000: 47 01 80 06 80 06 01 08 22 00 04 2A 00 00
> 79 00  // G......."..*..y.
> 
> I'm still a little unclear on the first byte (47) and the last two (79
> 00), generated presumably by ResourceTemplate(), but the rest seem to
> match the expected results based on the inputs.  Aside from the
> obvious difference in the address range length compared to the PN50's
> BUF0, which seems to be the PN50's problem, the definition of BUF0 is
> consistent.  I've even recompiled the DSDT with a length of 0x10 just
> to see if that made a difference, and it doesn't.  Still no sign of
> the driver in dmesg.  Although it would be nice to see the full CR00
> definition for the PN50, it seems less likely that the problem lies
> here.
> 
> I've tried various acpi kernel debugging settings, but easily get
> swamped with output.  Is there a process path somewhere that can be
> followed to understand how the device goes through the ACPI process
> and eventually gets picked up by the kernel?  I still feel like the
> problem precedes the kernel's involvement.  The kernel obviously has
> some degree of awareness of the DSDT entry, because I can find :
> 
> /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/ITE8708:00/
> 
> The status is correct (0x0F), but under the physical_node, I have no
> 'resources' entry.  Should there be one?  I have a 'resource' file,
> but it only returns zeroes.

This does _sound_ like an acpi issue, I've cc'ed linux-acpi@xxxxxxxxxxxxxxx.

> And instead of being linked to ite_cir (which is showing in lsmod, but
> not used by anything), the driver ->
> ../../../bus/pci/drivers/skl_uncore
> 
> To me, that seems like it's processing what it has been presented, but
> I've been wrong before.  I'm open for directions on where to
> investigate next.

This is not something I can help with, I'm afraid.

Thanks,

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