Commit 4c8aded7 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/jgarzik/libata-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents f5b8a851 892e9689
...@@ -1207,6 +1207,10 @@ config GENERIC_HARDIRQS ...@@ -1207,6 +1207,10 @@ config GENERIC_HARDIRQS
bool bool
default y default y
config GENERIC_IRQ_PROBE
bool
default y
config X86_SMP config X86_SMP
bool bool
depends on SMP && !X86_VOYAGER depends on SMP && !X86_VOYAGER
......
...@@ -71,6 +71,11 @@ unsigned long ppc_cached_irq_mask[NR_MASK_WORDS]; ...@@ -71,6 +71,11 @@ unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
unsigned long ppc_lost_interrupts[NR_MASK_WORDS]; unsigned long ppc_lost_interrupts[NR_MASK_WORDS];
atomic_t ppc_n_lost_interrupts; atomic_t ppc_n_lost_interrupts;
#ifdef CONFIG_TAU_INT
extern int tau_initialized;
extern int tau_interrupts(int);
#endif
int show_interrupts(struct seq_file *p, void *v) int show_interrupts(struct seq_file *p, void *v)
{ {
int i = *(loff_t *) v, j; int i = *(loff_t *) v, j;
......
...@@ -166,7 +166,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr) ...@@ -166,7 +166,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr)
gunzip((void *)vmlinux.addr, vmlinux.size, gunzip((void *)vmlinux.addr, vmlinux.size,
(unsigned char *)vmlinuz.addr, &len); (unsigned char *)vmlinuz.addr, &len);
printf("done 0x%lx bytes\n\r", len); printf("done 0x%lx bytes\n\r", len);
printf("0x%x bytes of heap consumed, max in use 0x%\n\r", printf("0x%x bytes of heap consumed, max in use 0x%x\n\r",
(unsigned)(avail_high - begin_avail), heap_max); (unsigned)(avail_high - begin_avail), heap_max);
} else { } else {
memmove((void *)vmlinux.addr,(void *)vmlinuz.addr,vmlinuz.size); memmove((void *)vmlinux.addr,(void *)vmlinuz.addr,vmlinuz.size);
......
...@@ -675,7 +675,7 @@ static void __init prom_init_mem(void) ...@@ -675,7 +675,7 @@ static void __init prom_init_mem(void)
if ( RELOC(of_platform) == PLATFORM_PSERIES_LPAR ) if ( RELOC(of_platform) == PLATFORM_PSERIES_LPAR )
RELOC(alloc_top) = RELOC(rmo_top); RELOC(alloc_top) = RELOC(rmo_top);
else else
RELOC(alloc_top) = min(0x40000000ul, RELOC(ram_top)); RELOC(alloc_top) = RELOC(rmo_top) = min(0x40000000ul, RELOC(ram_top));
RELOC(alloc_bottom) = PAGE_ALIGN(RELOC(klimit) - offset + 0x4000); RELOC(alloc_bottom) = PAGE_ALIGN(RELOC(klimit) - offset + 0x4000);
RELOC(alloc_top_high) = RELOC(ram_top); RELOC(alloc_top_high) = RELOC(ram_top);
......
...@@ -265,7 +265,7 @@ int __ioremap_explicit(unsigned long pa, unsigned long ea, ...@@ -265,7 +265,7 @@ int __ioremap_explicit(unsigned long pa, unsigned long ea,
} else { } else {
area = im_get_area(ea, size, IM_REGION_UNUSED|IM_REGION_SUBSET); area = im_get_area(ea, size, IM_REGION_UNUSED|IM_REGION_SUBSET);
if (area == NULL) { if (area == NULL) {
printk(KERN_ERR "could not obtain imalloc area for ea 0x%lx\n", ea); /* Expected when PHB-dlpar is in play */
return 1; return 1;
} }
if (ea != (unsigned long) area->addr) { if (ea != (unsigned long) area->addr) {
......
...@@ -346,6 +346,10 @@ config GENERIC_HARDIRQS ...@@ -346,6 +346,10 @@ config GENERIC_HARDIRQS
bool bool
default y default y
config GENERIC_IRQ_PROBE
bool
default y
menu "Power management options" menu "Power management options"
source kernel/power/Kconfig source kernel/power/Kconfig
......
This diff is collapsed.
...@@ -119,18 +119,33 @@ static char * critical_overtemp_path = "/sbin/critical_overtemp"; ...@@ -119,18 +119,33 @@ static char * critical_overtemp_path = "/sbin/critical_overtemp";
#define ADC_CPU_CURRENT_SCALE 0x1f40 /* _AD4 */ #define ADC_CPU_CURRENT_SCALE 0x1f40 /* _AD4 */
/* /*
* PID factors for the U3/Backside fan control loop * PID factors for the U3/Backside fan control loop. We have 2 sets
* of values here, one set for U3 and one set for U3H
*/ */
#define BACKSIDE_FAN_PWM_ID 1 #define BACKSIDE_FAN_PWM_DEFAULT_ID 1
#define BACKSIDE_PID_G_d 0x02800000 #define BACKSIDE_FAN_PWM_INDEX 0
#define BACKSIDE_PID_U3_G_d 0x02800000
#define BACKSIDE_PID_U3H_G_d 0x01400000
#define BACKSIDE_PID_G_p 0x00500000 #define BACKSIDE_PID_G_p 0x00500000
#define BACKSIDE_PID_G_r 0x00000000 #define BACKSIDE_PID_G_r 0x00000000
#define BACKSIDE_PID_INPUT_TARGET 0x00410000 #define BACKSIDE_PID_U3_INPUT_TARGET 0x00410000
#define BACKSIDE_PID_U3H_INPUT_TARGET 0x004b0000
#define BACKSIDE_PID_INTERVAL 5 #define BACKSIDE_PID_INTERVAL 5
#define BACKSIDE_PID_OUTPUT_MAX 100 #define BACKSIDE_PID_OUTPUT_MAX 100
#define BACKSIDE_PID_OUTPUT_MIN 20 #define BACKSIDE_PID_U3_OUTPUT_MIN 20
#define BACKSIDE_PID_U3H_OUTPUT_MIN 30
#define BACKSIDE_PID_HISTORY_SIZE 2 #define BACKSIDE_PID_HISTORY_SIZE 2
struct basckside_pid_params
{
s32 G_d;
s32 G_p;
s32 G_r;
s32 input_target;
s32 output_min;
s32 output_max;
};
struct backside_pid_state struct backside_pid_state
{ {
int ticks; int ticks;
...@@ -146,7 +161,8 @@ struct backside_pid_state ...@@ -146,7 +161,8 @@ struct backside_pid_state
/* /*
* PID factors for the Drive Bay fan control loop * PID factors for the Drive Bay fan control loop
*/ */
#define DRIVES_FAN_RPM_ID 2 #define DRIVES_FAN_RPM_DEFAULT_ID 2
#define DRIVES_FAN_RPM_INDEX 1
#define DRIVES_PID_G_d 0x01e00000 #define DRIVES_PID_G_d 0x01e00000
#define DRIVES_PID_G_p 0x00500000 #define DRIVES_PID_G_p 0x00500000
#define DRIVES_PID_G_r 0x00000000 #define DRIVES_PID_G_r 0x00000000
...@@ -168,7 +184,8 @@ struct drives_pid_state ...@@ -168,7 +184,8 @@ struct drives_pid_state
int first; int first;
}; };
#define SLOTS_FAN_PWM_ID 2 #define SLOTS_FAN_PWM_DEFAULT_ID 2
#define SLOTS_FAN_PWM_INDEX 2
#define SLOTS_FAN_DEFAULT_PWM 50 /* Do better here ! */ #define SLOTS_FAN_DEFAULT_PWM 50 /* Do better here ! */
/* /*
...@@ -191,10 +208,15 @@ struct drives_pid_state ...@@ -191,10 +208,15 @@ struct drives_pid_state
* CPU B FAKE POWER 49 (I_V_inputs: 18, 19) * CPU B FAKE POWER 49 (I_V_inputs: 18, 19)
*/ */
#define CPUA_INTAKE_FAN_RPM_ID 3 #define CPUA_INTAKE_FAN_RPM_DEFAULT_ID 3
#define CPUA_EXHAUST_FAN_RPM_ID 4 #define CPUA_EXHAUST_FAN_RPM_DEFAULT_ID 4
#define CPUB_INTAKE_FAN_RPM_ID 5 #define CPUB_INTAKE_FAN_RPM_DEFAULT_ID 5
#define CPUB_EXHAUST_FAN_RPM_ID 6 #define CPUB_EXHAUST_FAN_RPM_DEFAULT_ID 6
#define CPUA_INTAKE_FAN_RPM_INDEX 3
#define CPUA_EXHAUST_FAN_RPM_INDEX 4
#define CPUB_INTAKE_FAN_RPM_INDEX 5
#define CPUB_EXHAUST_FAN_RPM_INDEX 6
#define CPU_INTAKE_SCALE 0x0000f852 #define CPU_INTAKE_SCALE 0x0000f852
#define CPU_TEMP_HISTORY_SIZE 2 #define CPU_TEMP_HISTORY_SIZE 2
...@@ -202,6 +224,11 @@ struct drives_pid_state ...@@ -202,6 +224,11 @@ struct drives_pid_state
#define CPU_PID_INTERVAL 1 #define CPU_PID_INTERVAL 1
#define CPU_MAX_OVERTEMP 30 #define CPU_MAX_OVERTEMP 30
#define CPUA_PUMP_RPM_INDEX 7
#define CPUB_PUMP_RPM_INDEX 8
#define CPU_PUMP_OUTPUT_MAX 3700
#define CPU_PUMP_OUTPUT_MIN 1000
struct cpu_pid_state struct cpu_pid_state
{ {
int index; int index;
...@@ -219,6 +246,7 @@ struct cpu_pid_state ...@@ -219,6 +246,7 @@ struct cpu_pid_state
s32 voltage; s32 voltage;
s32 current_a; s32 current_a;
s32 last_temp; s32 last_temp;
s32 last_power;
int first; int first;
u8 adc_config; u8 adc_config;
}; };
......
...@@ -924,7 +924,7 @@ struct aic7xxx_host { ...@@ -924,7 +924,7 @@ struct aic7xxx_host {
volatile long flags; volatile long flags;
ahc_feature features; /* chip features */ ahc_feature features; /* chip features */
unsigned long base; /* card base address */ unsigned long base; /* card base address */
volatile unsigned char *maddr; /* memory mapped address */ volatile unsigned char __iomem *maddr; /* memory mapped address */
unsigned long isr_count; /* Interrupt count */ unsigned long isr_count; /* Interrupt count */
unsigned long spurious_int; unsigned long spurious_int;
scb_data_type *scb_data; scb_data_type *scb_data;
...@@ -7967,8 +7967,8 @@ aic7xxx_register(Scsi_Host_Template *template, struct aic7xxx_host *p, ...@@ -7967,8 +7967,8 @@ aic7xxx_register(Scsi_Host_Template *template, struct aic7xxx_host *p,
printk(KERN_INFO "(scsi%d) BIOS %sabled, IO Port 0x%lx, IRQ %d\n", printk(KERN_INFO "(scsi%d) BIOS %sabled, IO Port 0x%lx, IRQ %d\n",
p->host_no, (p->flags & AHC_BIOS_ENABLED) ? "en" : "dis", p->host_no, (p->flags & AHC_BIOS_ENABLED) ? "en" : "dis",
p->base, p->irq); p->base, p->irq);
printk(KERN_INFO "(scsi%d) IO Memory at 0x%lx, MMAP Memory at 0x%lx\n", printk(KERN_INFO "(scsi%d) IO Memory at 0x%lx, MMAP Memory at %p\n",
p->host_no, p->mbase, (unsigned long)p->maddr); p->host_no, p->mbase, p->maddr);
} }
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
...@@ -9311,14 +9311,9 @@ aic7xxx_detect(Scsi_Host_Template *template) ...@@ -9311,14 +9311,9 @@ aic7xxx_detect(Scsi_Host_Template *template)
((temp_p->chip != (AHC_AIC7870 | AHC_PCI)) && ((temp_p->chip != (AHC_AIC7870 | AHC_PCI)) &&
(temp_p->chip != (AHC_AIC7880 | AHC_PCI))) ) (temp_p->chip != (AHC_AIC7880 | AHC_PCI))) )
{ {
unsigned long page_offset, base; temp_p->maddr = ioremap_nocache(temp_p->mbase, 256);
base = temp_p->mbase & PAGE_MASK;
page_offset = temp_p->mbase - base;
temp_p->maddr = ioremap_nocache(base, page_offset + 256);
if(temp_p->maddr) if(temp_p->maddr)
{ {
temp_p->maddr += page_offset;
/* /*
* We need to check the I/O with the MMAPed address. Some machines * We need to check the I/O with the MMAPed address. Some machines
* simply fail to work with MMAPed I/O and certain controllers. * simply fail to work with MMAPed I/O and certain controllers.
...@@ -9335,7 +9330,7 @@ aic7xxx_detect(Scsi_Host_Template *template) ...@@ -9335,7 +9330,7 @@ aic7xxx_detect(Scsi_Host_Template *template)
PCI_FUNC(temp_p->pci_device_fn)); PCI_FUNC(temp_p->pci_device_fn));
printk(KERN_INFO "aic7xxx: MMAPed I/O failed, reverting to " printk(KERN_INFO "aic7xxx: MMAPed I/O failed, reverting to "
"Programmed I/O.\n"); "Programmed I/O.\n");
iounmap((void *) (((unsigned long) temp_p->maddr) & PAGE_MASK)); iounmap(temp_p->maddr);
temp_p->maddr = NULL; temp_p->maddr = NULL;
if(temp_p->base == 0) if(temp_p->base == 0)
{ {
...@@ -10965,7 +10960,7 @@ aic7xxx_release(struct Scsi_Host *host) ...@@ -10965,7 +10960,7 @@ aic7xxx_release(struct Scsi_Host *host)
#ifdef MMAPIO #ifdef MMAPIO
if(p->maddr) if(p->maddr)
{ {
iounmap((void *) (((unsigned long) p->maddr) & PAGE_MASK)); iounmap(p->maddr);
} }
#endif /* MMAPIO */ #endif /* MMAPIO */
if(!p->pdev) if(!p->pdev)
......
...@@ -316,7 +316,7 @@ static void tul_do_pause(unsigned amount) ...@@ -316,7 +316,7 @@ static void tul_do_pause(unsigned amount)
/******************************************************************* /*******************************************************************
Use memeory refresh time ~ 15us * 2 Use memeory refresh time ~ 15us * 2
********************************************************************/ ********************************************************************/
void tul_se2_wait() void tul_se2_wait(void)
{ {
#if 1 #if 1
udelay(30); udelay(30);
...@@ -815,7 +815,7 @@ void tul_release_scb(HCS * hcsp, SCB * scbp) ...@@ -815,7 +815,7 @@ void tul_release_scb(HCS * hcsp, SCB * scbp)
printk("Release SCB %lx; ", (ULONG) scbp); printk("Release SCB %lx; ", (ULONG) scbp);
#endif #endif
spin_lock_irqsave(&(hcsp->HCS_AvailLock), flags); spin_lock_irqsave(&(hcsp->HCS_AvailLock), flags);
scbp->SCB_Srb = 0; scbp->SCB_Srb = NULL;
scbp->SCB_Status = 0; scbp->SCB_Status = 0;
scbp->SCB_NxtScb = NULL; scbp->SCB_NxtScb = NULL;
if (hcsp->HCS_LastAvail != NULL) { if (hcsp->HCS_LastAvail != NULL) {
...@@ -1231,7 +1231,7 @@ int tul_device_reset(HCS * pCurHcb, struct scsi_cmnd *pSrb, ...@@ -1231,7 +1231,7 @@ int tul_device_reset(HCS * pCurHcb, struct scsi_cmnd *pSrb,
pScb->SCB_Target = target; pScb->SCB_Target = target;
pScb->SCB_Mode = 0; pScb->SCB_Mode = 0;
pScb->SCB_Srb = 0; pScb->SCB_Srb = NULL;
if (ResetFlags & SCSI_RESET_SYNCHRONOUS) { if (ResetFlags & SCSI_RESET_SYNCHRONOUS) {
pScb->SCB_Srb = pSrb; pScb->SCB_Srb = pSrb;
} }
...@@ -2535,8 +2535,8 @@ int tul_post_scsi_rst(HCS * pCurHcb) ...@@ -2535,8 +2535,8 @@ int tul_post_scsi_rst(HCS * pCurHcb)
TCS *pCurTcb; TCS *pCurTcb;
int i; int i;
pCurHcb->HCS_ActScb = 0; pCurHcb->HCS_ActScb = NULL;
pCurHcb->HCS_ActTcs = 0; pCurHcb->HCS_ActTcs = NULL;
pCurHcb->HCS_Flags = 0; pCurHcb->HCS_Flags = 0;
while ((pCurScb = tul_pop_busy_scb(pCurHcb)) != NULL) { while ((pCurScb = tul_pop_busy_scb(pCurHcb)) != NULL) {
......
...@@ -564,7 +564,7 @@ struct isp_queue_entry { ...@@ -564,7 +564,7 @@ struct isp_queue_entry {
}; };
struct isp1020_hostdata { struct isp1020_hostdata {
u_long memaddr; void __iomem *memaddr;
u_char revision; u_char revision;
struct host_param host_param; struct host_param host_param;
struct dev_param dev_param[MAX_TARGETS]; struct dev_param dev_param[MAX_TARGETS];
...@@ -714,7 +714,7 @@ int isp1020_detect(Scsi_Host_Template *tmpt) ...@@ -714,7 +714,7 @@ int isp1020_detect(Scsi_Host_Template *tmpt)
continue; continue;
fail_uninit: fail_uninit:
iounmap((void *)hostdata->memaddr); iounmap(hostdata->memaddr);
release_region(host->io_port, 0xff); release_region(host->io_port, 0xff);
fail_and_unregister: fail_and_unregister:
if (hostdata->res_cpu) if (hostdata->res_cpu)
...@@ -747,7 +747,7 @@ int isp1020_release(struct Scsi_Host *host) ...@@ -747,7 +747,7 @@ int isp1020_release(struct Scsi_Host *host)
isp_outw(0x0, host, PCI_INTF_CTL); isp_outw(0x0, host, PCI_INTF_CTL);
free_irq(host->irq, host); free_irq(host->irq, host);
iounmap((void *)hostdata->memaddr); iounmap(hostdata->memaddr);
release_region(host->io_port, 0xff); release_region(host->io_port, 0xff);
...@@ -769,7 +769,7 @@ const char *isp1020_info(struct Scsi_Host *host) ...@@ -769,7 +769,7 @@ const char *isp1020_info(struct Scsi_Host *host)
"QLogic ISP1020 SCSI on PCI bus %02x device %02x irq %d %s base 0x%lx", "QLogic ISP1020 SCSI on PCI bus %02x device %02x irq %d %s base 0x%lx",
hostdata->pci_dev->bus->number, hostdata->pci_dev->devfn, host->irq, hostdata->pci_dev->bus->number, hostdata->pci_dev->devfn, host->irq,
(hostdata->memaddr ? "MEM" : "I/O"), (hostdata->memaddr ? "MEM" : "I/O"),
(hostdata->memaddr ? hostdata->memaddr : host->io_port)); (hostdata->memaddr ? (unsigned long)hostdata->memaddr : host->io_port));
LEAVE("isp1020_info"); LEAVE("isp1020_info");
...@@ -1410,18 +1410,17 @@ static int isp1020_init(struct Scsi_Host *sh) ...@@ -1410,18 +1410,17 @@ static int isp1020_init(struct Scsi_Host *sh)
if ((command & PCI_COMMAND_MEMORY) && if ((command & PCI_COMMAND_MEMORY) &&
((mem_flags & 1) == 0)) { ((mem_flags & 1) == 0)) {
mem_base = (u_long) ioremap(mem_base, PAGE_SIZE); hostdata->memaddr = ioremap(mem_base, PAGE_SIZE);
if (!mem_base) { if (!hostdata->memaddr) {
printk("qlogicisp : i/o remapping failed.\n"); printk("qlogicisp : i/o remapping failed.\n");
goto out_release; goto out_release;
} }
hostdata->memaddr = mem_base;
} else { } else {
if (command & PCI_COMMAND_IO && (io_flags & 3) != 1) { if (command & PCI_COMMAND_IO && (io_flags & 3) != 1) {
printk("qlogicisp : i/o mapping is disabled\n"); printk("qlogicisp : i/o mapping is disabled\n");
goto out_release; goto out_release;
} }
hostdata->memaddr = 0; /* zero to signify no i/o mapping */ hostdata->memaddr = NULL; /* zero to signify no i/o mapping */
mem_base = 0; mem_base = 0;
} }
...@@ -1470,7 +1469,7 @@ static int isp1020_init(struct Scsi_Host *sh) ...@@ -1470,7 +1469,7 @@ static int isp1020_init(struct Scsi_Host *sh)
return 0; return 0;
out_unmap: out_unmap:
iounmap((void *)hostdata->memaddr); iounmap(hostdata->memaddr);
out_release: out_release:
release_region(sh->io_port, 0xff); release_region(sh->io_port, 0xff);
return 1; return 1;
......
...@@ -397,7 +397,7 @@ struct aty128fb_par { ...@@ -397,7 +397,7 @@ struct aty128fb_par {
struct aty128_ddafifo fifo_reg; struct aty128_ddafifo fifo_reg;
u32 accel_flags; u32 accel_flags;
struct aty128_constants constants; /* PLL and others */ struct aty128_constants constants; /* PLL and others */
void *regbase; /* remapped mmio */ void __iomem *regbase; /* remapped mmio */
u32 vram_size; /* onboard video ram */ u32 vram_size; /* onboard video ram */
int chip_gen; int chip_gen;
const struct aty128_meminfo *mem; /* onboard mem info */ const struct aty128_meminfo *mem; /* onboard mem info */
...@@ -450,9 +450,9 @@ static int aty128_decode_var(struct fb_var_screeninfo *var, ...@@ -450,9 +450,9 @@ static int aty128_decode_var(struct fb_var_screeninfo *var,
struct aty128fb_par *par); struct aty128fb_par *par);
#if 0 #if 0
static void __init aty128_get_pllinfo(struct aty128fb_par *par, static void __init aty128_get_pllinfo(struct aty128fb_par *par,
void *bios); void __iomem *bios);
static void __init *aty128_map_ROM(struct pci_dev *pdev, const struct aty128fb_par *par); static void __init __iomem *aty128_map_ROM(struct pci_dev *pdev, const struct aty128fb_par *par);
static void __init aty128_unmap_ROM(struct pci_dev *dev, void * rom); static void __init aty128_unmap_ROM(struct pci_dev *dev, void __iomem * rom);
#endif #endif
static void aty128_timings(struct aty128fb_par *par); static void aty128_timings(struct aty128fb_par *par);
static void aty128_init_engine(struct aty128fb_par *par); static void aty128_init_engine(struct aty128fb_par *par);
...@@ -788,7 +788,7 @@ static u32 depth_to_dst(u32 depth) ...@@ -788,7 +788,7 @@ static u32 depth_to_dst(u32 depth)
#ifndef __sparc__ #ifndef __sparc__
static void __init aty128_unmap_ROM(struct pci_dev *dev, void * rom) static void __init aty128_unmap_ROM(struct pci_dev *dev, void __iomem * rom)
{ {
struct resource *r = &dev->resource[PCI_ROM_RESOURCE]; struct resource *r = &dev->resource[PCI_ROM_RESOURCE];
...@@ -806,12 +806,12 @@ static void __init aty128_unmap_ROM(struct pci_dev *dev, void * rom) ...@@ -806,12 +806,12 @@ static void __init aty128_unmap_ROM(struct pci_dev *dev, void * rom)
} }
static void * __init aty128_map_ROM(const struct aty128fb_par *par, struct pci_dev *dev) static void __iomem * __init aty128_map_ROM(const struct aty128fb_par *par, struct pci_dev *dev)
{ {
struct resource *r; struct resource *r;
u16 dptr; u16 dptr;
u8 rom_type; u8 rom_type;
void *bios; void __iomem *bios;
/* Fix from ATI for problem with Rage128 hardware not leaving ROM enabled */ /* Fix from ATI for problem with Rage128 hardware not leaving ROM enabled */
unsigned int temp; unsigned int temp;
...@@ -903,7 +903,7 @@ static void * __init aty128_map_ROM(const struct aty128fb_par *par, struct pci_d ...@@ -903,7 +903,7 @@ static void * __init aty128_map_ROM(const struct aty128fb_par *par, struct pci_d
return NULL; return NULL;
} }
static void __init aty128_get_pllinfo(struct aty128fb_par *par, unsigned char *bios) static void __init aty128_get_pllinfo(struct aty128fb_par *par, unsigned char __iomem *bios)
{ {
unsigned int bios_hdr; unsigned int bios_hdr;
unsigned int bios_pll; unsigned int bios_pll;
...@@ -925,7 +925,7 @@ static void __init aty128_get_pllinfo(struct aty128fb_par *par, unsigned char *b ...@@ -925,7 +925,7 @@ static void __init aty128_get_pllinfo(struct aty128fb_par *par, unsigned char *b
} }
#ifdef CONFIG_X86 #ifdef CONFIG_X86
static void * __devinit aty128_find_mem_vbios(struct aty128fb_par *par) static void __iomem * __devinit aty128_find_mem_vbios(struct aty128fb_par *par)
{ {
/* I simplified this code as we used to miss the signatures in /* I simplified this code as we used to miss the signatures in
* a lot of case. It's now closer to XFree, we just don't check * a lot of case. It's now closer to XFree, we just don't check
...@@ -933,10 +933,10 @@ static void * __devinit aty128_find_mem_vbios(struct aty128fb_par *par) ...@@ -933,10 +933,10 @@ static void * __devinit aty128_find_mem_vbios(struct aty128fb_par *par)
* if we end up having conflicts * if we end up having conflicts
*/ */
u32 segstart; u32 segstart;
unsigned char *rom_base = NULL; unsigned char __iomem *rom_base = NULL;
for (segstart=0x000c0000; segstart<0x000f0000; segstart+=0x00001000) { for (segstart=0x000c0000; segstart<0x000f0000; segstart+=0x00001000) {
rom_base = (char *)ioremap(segstart, 0x10000); rom_base = ioremap(segstart, 0x10000);
if (rom_base == NULL) if (rom_base == NULL)
return NULL; return NULL;
if ((*rom_base == 0x55) && (((*(rom_base + 1)) & 0xff) == 0xaa)) if ((*rom_base == 0x55) && (((*(rom_base + 1)) & 0xff) == 0xaa))
...@@ -1885,7 +1885,7 @@ static int __init aty128_probe(struct pci_dev *pdev, const struct pci_device_id ...@@ -1885,7 +1885,7 @@ static int __init aty128_probe(struct pci_dev *pdev, const struct pci_device_id
struct fb_info *info; struct fb_info *info;
int err; int err;
#ifndef __sparc__ #ifndef __sparc__
void *bios = NULL; void __iomem *bios = NULL;
#endif #endif
/* Enable device in PCI config */ /* Enable device in PCI config */
......
...@@ -59,15 +59,15 @@ union aty_pll { ...@@ -59,15 +59,15 @@ union aty_pll {
struct aty_cursor { struct aty_cursor {
u8 bits[8][64]; u8 bits[8][64];
u8 mask[8][64]; u8 mask[8][64];
u8 *ram; u8 __iomem *ram;
}; };
struct atyfb_par { struct atyfb_par {
struct aty_cmap_regs *aty_cmap_regs; struct aty_cmap_regs __iomem *aty_cmap_regs;
const struct aty_dac_ops *dac_ops; const struct aty_dac_ops *dac_ops;
const struct aty_pll_ops *pll_ops; const struct aty_pll_ops *pll_ops;
struct aty_cursor *cursor; struct aty_cursor *cursor;
unsigned long ati_regbase; void __iomem *ati_regbase;
unsigned long clk_wr_offset; unsigned long clk_wr_offset;
struct crtc crtc; struct crtc crtc;
union aty_pll pll; union aty_pll pll;
......
...@@ -1514,7 +1514,7 @@ static int __init aty_init(struct fb_info *info, const char *name) ...@@ -1514,7 +1514,7 @@ static int __init aty_init(struct fb_info *info, const char *name)
u8 pll_ref_div; u8 pll_ref_div;
par->aty_cmap_regs = par->aty_cmap_regs =
(struct aty_cmap_regs *) (par->ati_regbase + 0xc0); (struct aty_cmap_regs __iomem *) (par->ati_regbase + 0xc0);
chip_id = aty_ld_le32(CONFIG_CHIP_ID, par); chip_id = aty_ld_le32(CONFIG_CHIP_ID, par);
type = chip_id & CFG_CHIP_TYPE; type = chip_id & CFG_CHIP_TYPE;
rev = (chip_id & CFG_CHIP_REV) >> 24; rev = (chip_id & CFG_CHIP_REV) >> 24;
...@@ -1782,8 +1782,7 @@ static int __init aty_init(struct fb_info *info, const char *name) ...@@ -1782,8 +1782,7 @@ static int __init aty_init(struct fb_info *info, const char *name)
info->fix.smem_len -= GUI_RESERVE; info->fix.smem_len -= GUI_RESERVE;
/* Clear the video memory */ /* Clear the video memory */
fb_memset((void *) info->screen_base, 0, fb_memset(info->screen_base, 0, info->fix.smem_len);
info->fix.smem_len);
info->fbops = &atyfb_ops; info->fbops = &atyfb_ops;
info->pseudo_palette = pseudo_palette; info->pseudo_palette = pseudo_palette;
...@@ -2216,7 +2215,7 @@ int __init atyfb_do_init(void) ...@@ -2216,7 +2215,7 @@ int __init atyfb_do_init(void)
#else /* __sparc__ */ #else /* __sparc__ */
info->fix.mmio_start = 0x7ff000 + addr; info->fix.mmio_start = 0x7ff000 + addr;
default_par->ati_regbase = (unsigned long) default_par->ati_regbase =
ioremap(info->fix.mmio_start, 0x1000); ioremap(info->fix.mmio_start, 0x1000);
if (!default_par->ati_regbase) { if (!default_par->ati_regbase) {
...@@ -2249,8 +2248,7 @@ int __init atyfb_do_init(void) ...@@ -2249,8 +2248,7 @@ int __init atyfb_do_init(void)
/* Map in frame buffer */ /* Map in frame buffer */
info->fix.smem_start = addr; info->fix.smem_start = addr;
info->screen_base = info->screen_base = ioremap(addr, 0x800000);
(char *) ioremap(addr, 0x800000);
if (!info->screen_base) { if (!info->screen_base) {
#ifdef __sparc__ #ifdef __sparc__
...@@ -2616,9 +2614,9 @@ void cleanup_module(void) ...@@ -2616,9 +2614,9 @@ void cleanup_module(void)
#ifndef __sparc__ #ifndef __sparc__
if (par->ati_regbase) if (par->ati_regbase)
iounmap((void *) par->ati_regbase); iounmap(par->ati_regbase);
if (info->screen_base) if (info->screen_base)
iounmap((void *) info->screen_base); iounmap(info->screen_base);
#ifdef __BIG_ENDIAN #ifdef __BIG_ENDIAN
if (par->cursor && par->cursor->ram) if (par->cursor && par->cursor->ram)
iounmap(par->cursor->ram); iounmap(par->cursor->ram);
......
...@@ -73,7 +73,8 @@ void aty_set_cursor_shape(struct fb_info *info) ...@@ -73,7 +73,8 @@ void aty_set_cursor_shape(struct fb_info *info)
struct atyfb_par *par = (struct atyfb_par *) info->par; struct atyfb_par *par = (struct atyfb_par *) info->par;
struct fb_cursor *cursor = &info->cursor; struct fb_cursor *cursor = &info->cursor;
struct aty_cursor *c = par->cursor; struct aty_cursor *c = par->cursor;
u8 *ram, m, b; u8 m, b;
u8 __iomem *ram;
int x, y; int x, y;
if (!c) if (!c)
...@@ -178,7 +179,7 @@ int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor) ...@@ -178,7 +179,7 @@ int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
struct aty_cursor *__init aty_init_cursor(struct fb_info *info) struct aty_cursor *__init aty_init_cursor(struct fb_info *info)
{ {
struct aty_cursor *cursor; struct aty_cursor *cursor;
unsigned long addr; void __iomem *addr;
cursor = kmalloc(sizeof(struct aty_cursor), GFP_ATOMIC); cursor = kmalloc(sizeof(struct aty_cursor), GFP_ATOMIC);
if (!cursor) if (!cursor)
...@@ -195,8 +196,8 @@ struct aty_cursor *__init aty_init_cursor(struct fb_info *info) ...@@ -195,8 +196,8 @@ struct aty_cursor *__init aty_init_cursor(struct fb_info *info)
addr = info->fix.smem_start - 0x800000 + info->fix.smem_len; addr = info->fix.smem_start - 0x800000 + info->fix.smem_len;
cursor->ram = (u8 *) ioremap(addr, 1024); cursor->ram = (u8 *) ioremap(addr, 1024);
#else #else
addr = (unsigned long) info->screen_base + info->fix.smem_len; addr = info->screen_base + info->fix.smem_len;
cursor->ram = (u8 *) addr; cursor->ram = addr;
#endif #endif
#endif #endif
if (!cursor->ram) { if (!cursor->ram) {
......
...@@ -51,7 +51,7 @@ struct thread_info { ...@@ -51,7 +51,7 @@ struct thread_info {
#endif #endif
#define PREEMPT_ACTIVE 0x4000000 #define PREEMPT_ACTIVE 0x10000000
#ifdef CONFIG_4KSTACKS #ifdef CONFIG_4KSTACKS
#define THREAD_SIZE (4096) #define THREAD_SIZE (4096)
#else #else
......
...@@ -65,7 +65,7 @@ static inline struct thread_info *current_thread_info(void) ...@@ -65,7 +65,7 @@ static inline struct thread_info *current_thread_info(void)
*/ */
#define THREAD_SIZE 8192 /* 2 pages */ #define THREAD_SIZE 8192 /* 2 pages */
#define PREEMPT_ACTIVE 0x4000000 #define PREEMPT_ACTIVE 0x10000000
/* /*
* thread information flag bit numbers * thread information flag bit numbers
......
...@@ -82,7 +82,7 @@ static inline struct thread_info *current_thread_info(void) ...@@ -82,7 +82,7 @@ static inline struct thread_info *current_thread_info(void)
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#define PREEMPT_ACTIVE 0x4000000 #define PREEMPT_ACTIVE 0x10000000
/* /*
* thread information flag bit numbers * thread information flag bit numbers
......
...@@ -125,7 +125,7 @@ static inline struct thread_info *stack_thread_info(void) ...@@ -125,7 +125,7 @@ static inline struct thread_info *stack_thread_info(void)
/* work to do on any return to user space */ /* work to do on any return to user space */
#define _TIF_ALLWORK_MASK 0x0000FFFF #define _TIF_ALLWORK_MASK 0x0000FFFF
#define PREEMPT_ACTIVE 0x4000000 #define PREEMPT_ACTIVE 0x10000000
/* /*
* Thread-synchronous status. * Thread-synchronous status.
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* - bits 8-15 are the softirq count (max # of softirqs: 256) * - bits 8-15 are the softirq count (max # of softirqs: 256)
* - bits 16-27 are the hardirq count (max # of hardirqs: 4096) * - bits 16-27 are the hardirq count (max # of hardirqs: 4096)
* *
* - ( bit 26 is the PREEMPT_ACTIVE flag. ) * - ( bit 28 is the PREEMPT_ACTIVE flag. )
* *
* PREEMPT_MASK: 0x000000ff * PREEMPT_MASK: 0x000000ff
* SOFTIRQ_MASK: 0x0000ff00 * SOFTIRQ_MASK: 0x0000ff00
......
...@@ -252,8 +252,24 @@ extern void tasklet_init(struct tasklet_struct *t, ...@@ -252,8 +252,24 @@ extern void tasklet_init(struct tasklet_struct *t,
* or zero if none occurred, or a negative irq number * or zero if none occurred, or a negative irq number
* if more than one irq occurred. * if more than one irq occurred.
*/ */
#if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE)
static inline unsigned long probe_irq_on(void)
{
return 0;
}
static inline int probe_irq_off(unsigned long val)
{
return 0;
}
static inline unsigned int probe_irq_mask(unsigned long val)
{
return 0;
}
#else
extern unsigned long probe_irq_on(void); /* returns 0 on failure */ extern unsigned long probe_irq_on(void); /* returns 0 on failure */
extern int probe_irq_off(unsigned long); /* returns 0 or negative on failure */ extern int probe_irq_off(unsigned long); /* returns 0 or negative on failure */
extern unsigned int probe_irq_mask(unsigned long); /* returns mask of ISA interrupts */ extern unsigned int probe_irq_mask(unsigned long); /* returns mask of ISA interrupts */
#endif
#endif #endif
obj-y := autoprobe.o handle.o manage.o spurious.o obj-y := handle.o manage.o spurious.o
obj-$(CONFIG_GENERIC_IRQ_PROBE) += autoprobe.o
obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_PROC_FS) += proc.o
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