* [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes @ 2014-01-22 22:05 Shane Huang [not found] ` <1390428346-2235-1-git-send-email-shane.huang-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Shane Huang @ 2014-01-22 22:05 UTC (permalink / raw) To: Jean Delvare; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Carl Peng, Shane Huang The locations of SMBus register base address and enablement bit are changed from AMD ML, which need this patch to be supported. Signed-off-by: Shane Huang <shane.huang-5C7GfCeVMHo@public.gmane.org> --- Documentation/i2c/busses/i2c-piix4 | 2 +- drivers/i2c/busses/Kconfig | 1 + drivers/i2c/busses/i2c-piix4.c | 28 +++++++++++++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index c097e0f..aa959fd 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 @@ -13,7 +13,7 @@ Supported adapters: * AMD SP5100 (SB700 derivative found on some server mainboards) Datasheet: Publicly available at the AMD website http://support.amd.com/us/Embedded_TechDocs/44413.pdf - * AMD Hudson-2, CZ + * AMD Hudson-2, ML, CZ Datasheet: Not publicly available * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge Datasheet: Publicly available at the SMSC website http://www.smsc.com diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 6bcdea5..f5ed031 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -152,6 +152,7 @@ config I2C_PIIX4 ATI SB700/SP5100 ATI SB800 AMD Hudson-2 + AMD ML AMD CZ Serverworks OSB4 Serverworks CSB5 diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index a028617..f71b4d3 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c @@ -22,7 +22,7 @@ Intel PIIX4, 440MX Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 ATI IXP200, IXP300, IXP400, SB600, SB700/SP5100, SB800 - AMD Hudson-2, CZ + AMD Hudson-2, ML, CZ SMSC Victory66 Note: we assume there can only be one device, with one or more @@ -235,7 +235,8 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, { unsigned short piix4_smba; unsigned short smba_idx = 0xcd6; - u8 smba_en_lo, smba_en_hi, i2ccfg, i2ccfg_offset = 0x10, smb_en; + u8 smba_en_lo, smba_en_hi, smb_en, smb_en_status; + u8 i2ccfg, i2ccfg_offset = 0x10; /* SB800 and later SMBus does not support forcing address */ if (force || force_addr) { @@ -245,7 +246,15 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, } /* Determine the address of the SMBus areas */ - smb_en = (aux) ? 0x28 : 0x2c; + if ((PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && + PIIX4_dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS && + PIIX4_dev->revision >= 0x41) || + (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && + PIIX4_dev->device == 0x790b && + PIIX4_dev->revision >= 0x49)) + smb_en = 0x00; + else + smb_en = (aux) ? 0x28 : 0x2c; if (!request_region(smba_idx, 2, "smba_idx")) { dev_err(&PIIX4_dev->dev, "SMBus base address index region " @@ -258,13 +267,22 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, smba_en_hi = inb_p(smba_idx + 1); release_region(smba_idx, 2); - if ((smba_en_lo & 1) == 0) { + if (!smb_en) { + smb_en_status = smba_en_lo & 0x10; + piix4_smba = smba_en_hi << 8; + if (aux) + piix4_smba |= 0x20; + } else { + smb_en_status = smba_en_lo & 0x01; + piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; + } + + if (!smb_en_status) { dev_err(&PIIX4_dev->dev, "Host SMBus controller not enabled!\n"); return -ENODEV; } - piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) return -ENODEV; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <1390428346-2235-1-git-send-email-shane.huang-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <1390428346-2235-1-git-send-email-shane.huang-5C7GfCeVMHo@public.gmane.org> @ 2014-01-23 12:27 ` Jean Delvare [not found] ` <20140123132740.122c0f8a-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> 2014-01-24 16:47 ` Wolfram Sang 1 sibling, 1 reply; 7+ messages in thread From: Jean Delvare @ 2014-01-23 12:27 UTC (permalink / raw) To: Shane Huang; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Carl Peng, Wolfram Sang Hi Shane, hi Wolfram, On Wed, 22 Jan 2014 14:05:46 -0800, Shane Huang wrote: > The locations of SMBus register base address and enablement bit are changed > from AMD ML, which need this patch to be supported. > > Signed-off-by: Shane Huang <shane.huang-5C7GfCeVMHo@public.gmane.org> > --- > Documentation/i2c/busses/i2c-piix4 | 2 +- > drivers/i2c/busses/Kconfig | 1 + > drivers/i2c/busses/i2c-piix4.c | 28 +++++++++++++++++++++++----- > 3 files changed, 25 insertions(+), 6 deletions(-) Overall it looks good. Reviewed-by: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org> Wolfram, I think this is a candidate for stable kernel branches. It should apply fine down to 3.12. Shane, I still have one additional question: > (...) > @@ -258,13 +267,22 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, > smba_en_hi = inb_p(smba_idx + 1); > release_region(smba_idx, 2); > > - if ((smba_en_lo & 1) == 0) { > + if (!smb_en) { > + smb_en_status = smba_en_lo & 0x10; > + piix4_smba = smba_en_hi << 8; > + if (aux) > + piix4_smba |= 0x20; > + } (...) As the mask used for smb_en_status doesn't depend on the value of "aux", this implies that on the Hudson-2, a single bit controls if both SMBus controllers are enabled. It's not possible to enable one and disable the other. Is it correct, or is it an overlook? BTW it would be really great if we could have access to the documentation for these new AMD chipsets. I looked for both Hudson and FCH at http://developer.amd.com/ but these searches returned nothing. I could help better if I had access to the documentation / datasheets. -- Jean Delvare ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20140123132740.122c0f8a-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>]
* RE: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <20140123132740.122c0f8a-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> @ 2014-01-23 22:26 ` Huang, Shane [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090ADBB0-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Huang, Shane @ 2014-01-23 22:26 UTC (permalink / raw) To: Jean Delvare Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Peng, Carl, Wolfram Sang, Huang, Shane Hi Jean, > As the mask used for smb_en_status doesn't depend on the value of > "aux", this implies that on the Hudson-2, a single bit controls if both > SMBus controllers are enabled. It's not possible to enable one and > disable the other. Is it correct, or is it an overlook? Good question. This is the current design, not an overlook. > BTW it would be really great if we could have access to the > documentation for these new AMD chipsets. I looked for both Hudson and > FCH at http://developer.amd.com/ but these searches returned nothing. I > could help better if I had access to the documentation / datasheets. I don't know who is the website maintainer but forwarded your question to our FCH datasheet maintainer, and he will follow up. I hope that it will be improved in near future. :-) BTW, will this patch appear from kernel 3.14-rc1 ? Thanks, Shane ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <43EB3AB3EEFE8D43B525F4D2EAF507E1090ADBB0-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org>]
* Re: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090ADBB0-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> @ 2014-01-24 7:47 ` Jean Delvare [not found] ` <20140124084717.74da09ff-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Jean Delvare @ 2014-01-24 7:47 UTC (permalink / raw) To: Huang, Shane; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Peng, Carl, Wolfram Sang Hi Shane, On Thu, 23 Jan 2014 22:26:49 +0000, Huang, Shane wrote: > > As the mask used for smb_en_status doesn't depend on the value of > > "aux", this implies that on the Hudson-2, a single bit controls if both > > SMBus controllers are enabled. It's not possible to enable one and > > disable the other. Is it correct, or is it an overlook? > > Good question. This is the current design, not an overlook. OK. > > BTW it would be really great if we could have access to the > > documentation for these new AMD chipsets. I looked for both Hudson and > > FCH at http://developer.amd.com/ but these searches returned nothing. I > > could help better if I had access to the documentation / datasheets. > > I don't know who is the website maintainer but forwarded your question > to our FCH datasheet maintainer, and he will follow up. I hope that it will > be improved in near future. :-) Thanks! > BTW, will this patch appear from kernel 3.14-rc1 ? This is Wolfram's call, not mine. I sure would like to see this patch in 3.14-rc1, and if that is not possible, in 3.14-rc2. This is a bug fix, so it should be applied ASAP. -- Jean Delvare ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20140124084717.74da09ff-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>]
* RE: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <20140124084717.74da09ff-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> @ 2014-01-27 19:38 ` Huang, Shane [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090B0F04-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Huang, Shane @ 2014-01-27 19:38 UTC (permalink / raw) To: Jean Delvare Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Peng, Carl, Wolfram Sang, Huang, Shane Hi Jean, > > > BTW it would be really great if we could have access to the > > > documentation for these new AMD chipsets. I looked for both Hudson and > > > FCH at http://developer.amd.com/ but these searches returned nothing. I > > > could help better if I had access to the documentation / datasheets. > > > > I don't know who is the website maintainer but forwarded your question > > to our FCH datasheet maintainer, and he will follow up. I hope that it will > > be improved in near future. :-) > > Thanks! AMD Kabini integrated FCH data sheet can be found in the BKDG (page 611), which is almost same as Hudson-2. The data sheet of ML is not released. http://developer.amd.com/wordpress/media/2012/10/48751_BKDG_Fam_16h_Mod_00h-0Fh.pdf Thanks, Shane ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <43EB3AB3EEFE8D43B525F4D2EAF507E1090B0F04-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org>]
* Re: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090B0F04-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> @ 2014-01-28 9:35 ` Jean Delvare 0 siblings, 0 replies; 7+ messages in thread From: Jean Delvare @ 2014-01-28 9:35 UTC (permalink / raw) To: Huang, Shane; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Peng, Carl, Wolfram Sang On Mon, 27 Jan 2014 19:38:09 +0000, Huang, Shane wrote: > Hi Jean, > > > > > BTW it would be really great if we could have access to the > > > > documentation for these new AMD chipsets. I looked for both Hudson and > > > > FCH at http://developer.amd.com/ but these searches returned nothing. I > > > > could help better if I had access to the documentation / datasheets. > > > > > > I don't know who is the website maintainer but forwarded your question > > > to our FCH datasheet maintainer, and he will follow up. I hope that it will > > > be improved in near future. :-) > > > > Thanks! > > AMD Kabini integrated FCH data sheet can be found in the BKDG (page 611), > which is almost same as Hudson-2. The data sheet of ML is not released. > > http://developer.amd.com/wordpress/media/2012/10/48751_BKDG_Fam_16h_Mod_00h-0Fh.pdf Thanks Shane, this is very useful. I had not realized that the SMBus controller was now part of the CPU itself. -- Jean Delvare ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes [not found] ` <1390428346-2235-1-git-send-email-shane.huang-5C7GfCeVMHo@public.gmane.org> 2014-01-23 12:27 ` Jean Delvare @ 2014-01-24 16:47 ` Wolfram Sang 1 sibling, 0 replies; 7+ messages in thread From: Wolfram Sang @ 2014-01-24 16:47 UTC (permalink / raw) To: Shane Huang; +Cc: Jean Delvare, linux-i2c-u79uwXL29TY76Z2rM5mHXA, Carl Peng [-- Attachment #1: Type: text/plain, Size: 324 bytes --] On Wed, Jan 22, 2014 at 02:05:46PM -0800, Shane Huang wrote: > The locations of SMBus register base address and enablement bit are changed > from AMD ML, which need this patch to be supported. > > Signed-off-by: Shane Huang <shane.huang-5C7GfCeVMHo@public.gmane.org> Applied to for-current, thanks! stable added. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-01-28 9:35 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-01-22 22:05 [PATCH 1/2] i2c-piix4: Add support for AMD ML and CZ SMBus changes Shane Huang [not found] ` <1390428346-2235-1-git-send-email-shane.huang-5C7GfCeVMHo@public.gmane.org> 2014-01-23 12:27 ` Jean Delvare [not found] ` <20140123132740.122c0f8a-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> 2014-01-23 22:26 ` Huang, Shane [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090ADBB0-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> 2014-01-24 7:47 ` Jean Delvare [not found] ` <20140124084717.74da09ff-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> 2014-01-27 19:38 ` Huang, Shane [not found] ` <43EB3AB3EEFE8D43B525F4D2EAF507E1090B0F04-7mPiUsE5EJ+PLz/DIDN4AEEOCMrvLtNR@public.gmane.org> 2014-01-28 9:35 ` Jean Delvare 2014-01-24 16:47 ` Wolfram Sang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).