提交 9272dcc2 编写于 作者: W Wu Zhangjin 提交者: 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: NZhang Le <r0bertz@gentoo.org>
Signed-off-by: NChen Jie <chenj@lemote.com>
Signed-off-by: NWu Zhangjin <wuzhangjin@gmail.com>
Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册