A question when test W83792D driver on another motherboard

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

 



Hi Rudolf, Jean

Our 792 driver for Windows can work now after the debug, I'd like to
send to how they solve this problem, maybe this can help to solve the
problem we meet under Linux.

Windows driver only add one line code in it's i2c driver, which makes
792 work correctly, the code has been added is:
WRITE_PORT_UCHAR((PUCHAR)0x04b9, 0x08);

I'd like to send part of the Windows codes for your reference, please
check it. If you know how to fix the bug of i2c Linux driver, please tell
me, I'd like to debug it.

Btw, I have not received the reply from ASUS, when I get it, I will
forward it to you.

Thanks
Best Regards

********************************************
NTSTATUS
GpdIoctlGetSMBusAddress(
	IN PLOCAL_DEVICE_INFO pLDI,
	IN PIRP pIrp,
	IN PIO_STACK_LOCATION IrpStack,
	IN ULONG IoctlCode  )

{
				// NOTE:  Use METHOD_BUFFERED ioctls.
	PULONG pIOBuffer;           // Pointer to transfer buffer
				//      (treated as an array of longs).
	ULONG InBufferSize;         // Amount of data avail. from caller.
	ULONG OutBufferSize;        // Max data that caller can accept.
	ULONG nPort;                // Port number to read
	ULONG DataBufferSize;
	ULONG  BaseAddr;
	ULONG  Result ;
	unsigned char flag,data;

	// Size of buffer for data to be sent to application
	OutBufferSize = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;

	// NT copies inbuf here before entry and copies this to outbuf after
	// return, for METHOD_BUFFERED IOCTL's.
	pIOBuffer = (PULONG)pIrp->AssociatedIrp.SystemBuffer;

	// Check to ensure input buffer is big enough to hold a port number and
	// the output buffer is at least as big as the port data width.

		//intel p2x4
		Result = GetSMBusBaseAddr( &BaseAddr, 0x8086 , 0x7113  ,0x90);

		if (Result != 0 )
		{
			flag=EnableICHSMBusController(0X8086,0x24c0,0xf2,&data);
			// intel ich5 update 02.20.2003
			Result = GetSMBusBaseAddr( &BaseAddr, 0x8086 , 0x24d3  ,0x20);
			if(flag)
				RestoreICHSMBusController(0X8086,0x24c0,0xf2,data);	
			if(Result==0)
				ChipSetType=1;
		}

		if (Result != 0 )
		{ 
			WRITE_PORT_UCHAR((PUCHAR)0x04b9, 0x08);  /* here!!! */
			flag=EnableICHSMBusController(0X8086,0x24c0,0xf2,&data);
			// intel ich5(Server) update 12.22.2003
			Result = GetSMBusBaseAddr( &BaseAddr, 0x8086 , 0x25a4  ,0x20);
			if(flag) 
				RestoreICHSMBusController(0X8086,0x24c0,0xf2,data);	
			if(Result==0)
				ChipSetType=1;
		}
................
}


Chunhao
2005-02-24


> -----Original Message-----
> From: PI14 HUANG0
> Sent: 2005??2??24?? 14:25
> To: 'Rudolf Marek'; 'Jean Delvare'
> Cc: sensors at Stimpy.netroedge.com; PI10 LHHsu; PI14 DZSHEN; PI13 CFLi
> Subject: RE: A question when test W83792D driver on another motherboard
> 
> Hi Rudolf, Jean
> 
> Thank you for your reply.
> 
> I will try the commands you gave me after a while, because the PC with
> that motherboard is under Windows now. after my test, then I will send you
> the output message in another mail.
> 
> Our 792 Windows driver can NOT work on this motherboard either, one of
> my colleague is debugging it under Windows, and we also will contact ASUS
> with the questions you provided, then forward you the answer.
> 
> Thanks
> Best Regards
> Chunhao
> 2005-02-24
> 
> 
> 
> > -----Original Message-----
> > From: Rudolf Marek [mailto:R.Marek at sh.cvut.cz]
> > Sent: 2005??2??23?? 19:21
> > To: PI14 HUANG0
> > Cc: sensors at Stimpy.netroedge.com; PI10 LHHsu; PI14 DZSHEN; PI13 CFLi
> > Subject: RE: A question when test W83792D driver on another motherboard
> >
> > Hello,
> >
> > Here is Rudolf speaking.
> > I'm the second person who played with hidden 792D.
> >
> > I think the function fails because nothing listens on that address.
> > (Khali/Jean can you confirm?)
> >
> > you can try:
> >
> > modprobe i2c-dev
> > i2cdetect -l
> >
> > You will see the bus number you will use in next command.
> >
> > i2cdetect 0
> >
> > 0 Is my bus number.
> >
> > This command will probe i2c addresses to find all clients.
> > If you will see XX on that address where should be 792D. Then it is
> > hidden.
> >
> > Asus put some simple multiplexer to hide it. We think they use GPIO lines
> > from superIO. Ask what lines to trigger to unhide it.
> > (Logical device and what GPIO line from that group)
> >
> > I hope this helps.
> >
> > Regards
> >
> > Rudolf
> >


===========================================================================================The privileged confidential information contained in this email is intended for use only by the addressees as indicated by the original author of this email. If you are not the addressee indicated in this email or are not responsible for delivery of the email to such person, please kindly reply the sender indicating accordingly and delete all copies of it from your computer and network server immediately. We thank you for your cooperation. It is advisable that any unauthorized use of confidential information of Winbond is strictly prohibited; and any information in this email that does not relate to the official business of Winbond shall be deemed as neither given nor endorsed by Winbond.===========================================================================================If your computer is unable to decode Chinese font, please ignore the following message. They essentially repea!
 t the  English statement above.???H???????t?????q?l???]???????K?????T, ?????v???o?H?H???w?????H?H???\????. ?????z???D?Q???w?????H?H???]???????]?b???g???v?????????U???????H??, ???z?i?????o?H?H?????Y?N?H???q?q???P???????A???????H????. ?????z???X?@, ?????????P??. ?S??????, ???????g???v?????????????q?l?????K???T???????O?Q?Y???T????. ?H???P?????q?l???~?L???????e,???o?????????q?l?????????N??.



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux