Commit 9272dcc2 authored by Wu Zhangjin's avatar Wu Zhangjin Committed by Jeff Garzik

pata_cs5536: Add support for non-X86_32 platforms

pata_cs5536 does work on the other platforms(e.g. Loongson, a MIPS
variant), so, remove the dependency of X86_32 and fix the building
errors under the other platforms via only reserving the X86_32 specific
parts for X86_32.

pata_amd also supports cs5536 IDE controller, but this one saves about
33k for the compressed kernel image(vmlinuz for MIPS).
Signed-off-by: default avatarZhang Le <r0bertz@gentoo.org>
Signed-off-by: default avatarChen Jie <chenj@lemote.com>
Signed-off-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 687a9933
...@@ -366,7 +366,7 @@ config PATA_CS5535 ...@@ -366,7 +366,7 @@ config PATA_CS5535
config PATA_CS5536 config PATA_CS5536
tristate "CS5536 PATA support" tristate "CS5536 PATA support"
depends on PCI && X86 && !X86_64 depends on PCI
help help
This option enables support for the AMD CS5536 This option enables support for the AMD CS5536
companion chip used with the Geode LX processor family. companion chip used with the Geode LX processor family.
......
...@@ -37,10 +37,20 @@ ...@@ -37,10 +37,20 @@
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/libata.h> #include <linux/libata.h>
#include <scsi/scsi_host.h> #include <scsi/scsi_host.h>
#ifdef CONFIG_X86_32
#include <asm/msr.h> #include <asm/msr.h>
static int use_msr;
module_param_named(msr, use_msr, int, 0644);
MODULE_PARM_DESC(msr, "Force using MSR to configure IDE function (Default: 0)");
#else
#define rdmsr(x, y, z) do { } while (0)
#define wrmsr(x, y, z) do { } while (0)
#define use_msr 0
#endif
#define DRV_NAME "pata_cs5536" #define DRV_NAME "pata_cs5536"
#define DRV_VERSION "0.0.7" #define DRV_VERSION "0.0.8"
enum { enum {
CFG = 0, CFG = 0,
...@@ -75,8 +85,6 @@ enum { ...@@ -75,8 +85,6 @@ enum {
IDE_ETC_NODMA = 0x03, IDE_ETC_NODMA = 0x03,
}; };
static int use_msr;
static const u32 msr_reg[4] = { static const u32 msr_reg[4] = {
MSR_IDE_CFG, MSR_IDE_DTC, MSR_IDE_CAST, MSR_IDE_ETC, MSR_IDE_CFG, MSR_IDE_DTC, MSR_IDE_CAST, MSR_IDE_ETC,
}; };
...@@ -88,7 +96,7 @@ static const u8 pci_reg[4] = { ...@@ -88,7 +96,7 @@ static const u8 pci_reg[4] = {
static inline int cs5536_read(struct pci_dev *pdev, int reg, u32 *val) static inline int cs5536_read(struct pci_dev *pdev, int reg, u32 *val)
{ {
if (unlikely(use_msr)) { if (unlikely(use_msr)) {
u32 dummy; u32 dummy __maybe_unused;
rdmsr(msr_reg[reg], *val, dummy); rdmsr(msr_reg[reg], *val, dummy);
return 0; return 0;
...@@ -294,8 +302,6 @@ MODULE_DESCRIPTION("low-level driver for the CS5536 IDE controller"); ...@@ -294,8 +302,6 @@ MODULE_DESCRIPTION("low-level driver for the CS5536 IDE controller");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, cs5536); MODULE_DEVICE_TABLE(pci, cs5536);
MODULE_VERSION(DRV_VERSION); MODULE_VERSION(DRV_VERSION);
module_param_named(msr, use_msr, int, 0644);
MODULE_PARM_DESC(msr, "Force using MSR to configure IDE function (Default: 0)");
module_init(cs5536_init); module_init(cs5536_init);
module_exit(cs5536_exit); module_exit(cs5536_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment