#define IDE_CFG 0x40 #define CHANEN (1L << 1) #define PWB (1L << 14) #define CABLE (1L << 16) #define IDE_DTC 0x48 #define IDE_CAST 0x4C #define IDE_ETC 0x50
static void ide_init(struct device *dev) { uint32_t ide_cfg;
printk_spew("cs5536_ide: %s\n", __FUNCTION__); /* GPIO and IRQ setup are handled in the main chipset code. */
// Enable the channel and Post Write Buffer // NOTE: Only 32-bit writes to the data buffer are allowed when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB; pci_write_config8(dev, IDE_CFG, ide_cfg); }
Note the pci_read_config32 followed by the pci_write_config8.
HMM, why did this ever work? Anyway, I changed the write_config8 to write_config32 and it is still no good on the alix1c on v3. If someone wants to try this fix on v2, go for it:
Index: southbridge/amd/cs5536/cs5536.c =================================================================== --- southbridge/amd/cs5536/cs5536.c (revision 676) +++ southbridge/amd/cs5536/cs5536.c (working copy) @@ -597,7 +597,7 @@ // NOTE: Only 32-bit writes to the data buffer are allowed when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB; - pci_write_config8(dev, IDE_CFG, ide_cfg); + pci_write_config32(dev, IDE_CFG, ide_cfg); }
you need to translate for the v2 filename.
off to rest, if somebody gets somewhere with this, let me know.
ron
Ron,
can you commit that one? Together with r677 it should work fine.
On 06.05.2008 06:42, ron minnich wrote:
#define IDE_CFG 0x40 #define CHANEN (1L << 1) #define PWB (1L << 14) #define CABLE (1L << 16) #define IDE_DTC 0x48 #define IDE_CAST 0x4C #define IDE_ETC 0x50
static void ide_init(struct device *dev) { uint32_t ide_cfg;
printk_spew("cs5536_ide: %s\n", __FUNCTION__); /* GPIO and IRQ setup are handled in the main chipset code. */ // Enable the channel and Post Write Buffer // NOTE: Only 32-bit writes to the data buffer are allowed
when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB; pci_write_config8(dev, IDE_CFG, ide_cfg); }
Note the pci_read_config32 followed by the pci_write_config8.
HMM, why did this ever work? Anyway, I changed the write_config8 to write_config32 and it is still no good on the alix1c on v3. If someone wants to try this fix on v2, go for it:
Index: southbridge/amd/cs5536/cs5536.c
--- southbridge/amd/cs5536/cs5536.c (revision 676) +++ southbridge/amd/cs5536/cs5536.c (working copy) @@ -597,7 +597,7 @@ // NOTE: Only 32-bit writes to the data buffer are allowed when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB;
pci_write_config8(dev, IDE_CFG, ide_cfg);
pci_write_config32(dev, IDE_CFG, ide_cfg);
}
you need to translate for the v2 filename.
off to rest, if somebody gets somewhere with this, let me know.
This is still needed.
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Regards, Carl-Daniel
Here's the patch after your latest nice cleanup :-)
Index: southbridge/amd/cs5536/cs5536.c =================================================================== --- southbridge/amd/cs5536/cs5536.c (revision 677) +++ southbridge/amd/cs5536/cs5536.c (working copy) @@ -602,7 +602,7 @@ // NOTE: Only 32-bit writes to the data buffer are allowed when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB; - pci_write_config8(dev, IDE_CFG, ide_cfg); + pci_write_config32(dev, IDE_CFG, ide_cfg); }
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
NO find_device. Tested on alix1c :-)
ron
Committed revision 678.
On 08.05.2008 16:52, ron minnich wrote:
Committed revision 678.
Thanks for tracking this down!
Regards, Carl-Daniel
ron minnich wrote:
Here's the patch after your latest nice cleanup :-)
Index: southbridge/amd/cs5536/cs5536.c
--- southbridge/amd/cs5536/cs5536.c (revision 677) +++ southbridge/amd/cs5536/cs5536.c (working copy) @@ -602,7 +602,7 @@ // NOTE: Only 32-bit writes to the data buffer are allowed when PWB is set ide_cfg = pci_read_config32(dev, IDE_CFG); ide_cfg |= CHANEN | PWB;
pci_write_config8(dev, IDE_CFG, ide_cfg);
pci_write_config32(dev, IDE_CFG, ide_cfg);
}
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
Acked-by: Stefan Reinauer stepan@coresystems.de