Commit 4167efcd authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://ppc.bkbits.net/for-linus-ppc

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 9aafbb9e 63639ded
...@@ -93,7 +93,6 @@ static void a3000_gettod (int *, int *, int *, int *, int *, int *); ...@@ -93,7 +93,6 @@ static void a3000_gettod (int *, int *, int *, int *, int *, int *);
static void a2000_gettod (int *, int *, int *, int *, int *, int *); static void a2000_gettod (int *, int *, int *, int *, int *, int *);
static int amiga_hwclk (int, struct hwclk_time *); static int amiga_hwclk (int, struct hwclk_time *);
static int amiga_set_clock_mmss (unsigned long); static int amiga_set_clock_mmss (unsigned long);
extern void amiga_mksound( unsigned int count, unsigned int ticks );
#ifdef CONFIG_AMIGA_FLOPPY #ifdef CONFIG_AMIGA_FLOPPY
extern void amiga_floppy_setup(char *, int *); extern void amiga_floppy_setup(char *, int *);
#endif #endif
...@@ -115,8 +114,6 @@ static struct console amiga_console_driver = { ...@@ -115,8 +114,6 @@ static struct console amiga_console_driver = {
index: -1, index: -1,
}; };
extern void (*kd_mksound)(unsigned int, unsigned int);
/* /*
* Motherboard Resources present in all Amiga models * Motherboard Resources present in all Amiga models
...@@ -432,7 +429,6 @@ void __init config_amiga(void) ...@@ -432,7 +429,6 @@ void __init config_amiga(void)
#ifdef CONFIG_DUMMY_CONSOLE #ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con; conswitchp = &dummy_con;
#endif #endif
kd_mksound = amiga_mksound;
#ifdef CONFIG_HEARTBEAT #ifdef CONFIG_HEARTBEAT
mach_heartbeat = amiga_heartbeat; mach_heartbeat = amiga_heartbeat;
#endif #endif
......
...@@ -1298,6 +1298,12 @@ _GLOBAL(sys_call_table) ...@@ -1298,6 +1298,12 @@ _GLOBAL(sys_call_table)
.long sys_sched_getaffinity .long sys_sched_getaffinity
.long sys_security .long sys_security
.long sys_ni_syscall /* 225 - reserved for Tux */ .long sys_ni_syscall /* 225 - reserved for Tux */
.long sys_sendfile64
.long sys_io_setup
.long sys_io_destroy
.long sys_io_getevents
.long sys_io_submit /* 230 */
.long sys_io_cancel
.rept NR_syscalls-(.-sys_call_table)/4 .rept NR_syscalls-(.-sys_call_table)/4
.long sys_ni_syscall .long sys_ni_syscall
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/threads.h> #include <linux/threads.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/elfcore.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/elfcore.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/tty.h> #include <linux/tty.h>
......
...@@ -659,3 +659,100 @@ void __init setup_arch(char **cmdline_p) ...@@ -659,3 +659,100 @@ void __init setup_arch(char **cmdline_p)
/* this is for modules since _machine can be a define -- Cort */ /* this is for modules since _machine can be a define -- Cort */
ppc_md.ppc_machine = _machine; ppc_md.ppc_machine = _machine;
} }
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
/* Convert the shorts/longs in hd_driveid from little to big endian;
* chars are endian independant, of course, but strings need to be flipped.
* (Despite what it says in drivers/block/ide.h, they come up as little
* endian...)
*
* Changes to linux/hdreg.h may require changes here. */
void ide_fix_driveid(struct hd_driveid *id)
{
int i;
unsigned short *stringcast;
id->config = __le16_to_cpu(id->config);
id->cyls = __le16_to_cpu(id->cyls);
id->reserved2 = __le16_to_cpu(id->reserved2);
id->heads = __le16_to_cpu(id->heads);
id->track_bytes = __le16_to_cpu(id->track_bytes);
id->sector_bytes = __le16_to_cpu(id->sector_bytes);
id->sectors = __le16_to_cpu(id->sectors);
id->vendor0 = __le16_to_cpu(id->vendor0);
id->vendor1 = __le16_to_cpu(id->vendor1);
id->vendor2 = __le16_to_cpu(id->vendor2);
stringcast = (unsigned short *)&id->serial_no[0];
for (i = 0; i < (20/2); i++)
stringcast[i] = __le16_to_cpu(stringcast[i]);
id->buf_type = __le16_to_cpu(id->buf_type);
id->buf_size = __le16_to_cpu(id->buf_size);
id->ecc_bytes = __le16_to_cpu(id->ecc_bytes);
stringcast = (unsigned short *)&id->fw_rev[0];
for (i = 0; i < (8/2); i++)
stringcast[i] = __le16_to_cpu(stringcast[i]);
stringcast = (unsigned short *)&id->model[0];
for (i = 0; i < (40/2); i++)
stringcast[i] = __le16_to_cpu(stringcast[i]);
id->dword_io = __le16_to_cpu(id->dword_io);
id->reserved50 = __le16_to_cpu(id->reserved50);
id->field_valid = __le16_to_cpu(id->field_valid);
id->cur_cyls = __le16_to_cpu(id->cur_cyls);
id->cur_heads = __le16_to_cpu(id->cur_heads);
id->cur_sectors = __le16_to_cpu(id->cur_sectors);
id->cur_capacity0 = __le16_to_cpu(id->cur_capacity0);
id->cur_capacity1 = __le16_to_cpu(id->cur_capacity1);
id->lba_capacity = __le32_to_cpu(id->lba_capacity);
id->dma_1word = __le16_to_cpu(id->dma_1word);
id->dma_mword = __le16_to_cpu(id->dma_mword);
id->eide_pio_modes = __le16_to_cpu(id->eide_pio_modes);
id->eide_dma_min = __le16_to_cpu(id->eide_dma_min);
id->eide_dma_time = __le16_to_cpu(id->eide_dma_time);
id->eide_pio = __le16_to_cpu(id->eide_pio);
id->eide_pio_iordy = __le16_to_cpu(id->eide_pio_iordy);
for (i = 0; i < 2; i++)
id->words69_70[i] = __le16_to_cpu(id->words69_70[i]);
for (i = 0; i < 4; i++)
id->words71_74[i] = __le16_to_cpu(id->words71_74[i]);
id->queue_depth = __le16_to_cpu(id->queue_depth);
for (i = 0; i < 4; i++)
id->words76_79[i] = __le16_to_cpu(id->words76_79[i]);
id->major_rev_num = __le16_to_cpu(id->major_rev_num);
id->minor_rev_num = __le16_to_cpu(id->minor_rev_num);
id->command_set_1 = __le16_to_cpu(id->command_set_1);
id->command_set_2 = __le16_to_cpu(id->command_set_2);
id->cfsse = __le16_to_cpu(id->cfsse);
id->cfs_enable_1 = __le16_to_cpu(id->cfs_enable_1);
id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2);
id->csf_default = __le16_to_cpu(id->csf_default);
id->dma_ultra = __le16_to_cpu(id->dma_ultra);
id->word89 = __le16_to_cpu(id->word89);
id->word90 = __le16_to_cpu(id->word90);
id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues);
id->word92 = __le16_to_cpu(id->word92);
id->hw_config = __le16_to_cpu(id->hw_config);
id->acoustic = __le16_to_cpu(id->acoustic);
for (i = 0; i < 5; i++)
id->words95_99[i] = __le16_to_cpu(id->words95_99[i]);
id->lba_capacity_2 = __le64_to_cpu(id->lba_capacity_2);
for (i = 0; i < 22; i++)
id->words104_125[i] = __le16_to_cpu(id->words104_125[i]);
id->last_lun = __le16_to_cpu(id->last_lun);
id->word127 = __le16_to_cpu(id->word127);
id->dlf = __le16_to_cpu(id->dlf);
id->csfo = __le16_to_cpu(id->csfo);
for (i = 0; i < 26; i++)
id->words130_155[i] = __le16_to_cpu(id->words130_155[i]);
id->word156 = __le16_to_cpu(id->word156);
for (i = 0; i < 3; i++)
id->words157_159[i] = __le16_to_cpu(id->words157_159[i]);
id->cfa_power = __le16_to_cpu(id->cfa_power);
for (i = 0; i < 14; i++)
id->words161_175[i] = __le16_to_cpu(id->words161_175[i]);
for (i = 0; i < 31; i++)
id->words176_205[i] = __le16_to_cpu(id->words176_205[i]);
for (i = 0; i < 48; i++)
id->words206_254[i] = __le16_to_cpu(id->words206_254[i]);
id->integrity_word = __le16_to_cpu(id->integrity_word);
}
#endif
...@@ -229,17 +229,6 @@ pmac_show_cpuinfo(struct seq_file *m) ...@@ -229,17 +229,6 @@ pmac_show_cpuinfo(struct seq_file *m)
return 0; return 0;
} }
#ifdef CONFIG_VT
/*
* Dummy mksound function that does nothing.
* The real one is in the dmasound driver.
*/
static void __pmac
pmac_mksound(unsigned int hz, unsigned int ticks)
{
}
#endif /* CONFIG_VT */
static volatile u32 *sysctrl_regs; static volatile u32 *sysctrl_regs;
void __init void __init
...@@ -323,9 +312,6 @@ pmac_setup_arch(void) ...@@ -323,9 +312,6 @@ pmac_setup_arch(void)
#ifdef CONFIG_DUMMY_CONSOLE #ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con; conswitchp = &dummy_con;
#endif #endif
#ifdef CONFIG_VT
kd_mksound = pmac_mksound;
#endif
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
if (initrd_start) if (initrd_start)
ROOT_DEV = Root_RAM0; ROOT_DEV = Root_RAM0;
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
#define LG_L1_CACHE_LINE_SIZE 7 #define LG_L1_CACHE_LINE_SIZE 7
#define MAX_COPY_PREFETCH 1 #define MAX_COPY_PREFETCH 1
#else #else
#define L1_CACHE_LINE_SIZE 32 #define L1_CACHE_LINE_SIZE 32
#define LG_L1_CACHE_LINE_SIZE 5 #define LG_L1_CACHE_LINE_SIZE 5
#define MAX_COPY_PREFETCH 4 #define MAX_COPY_PREFETCH 4
#endif #endif
#define L1_CACHE_BYTES L1_CACHE_LINE_SIZE #define L1_CACHE_BYTES L1_CACHE_LINE_SIZE
#define L1_CACHE_SHIFT LG_L1_CACHE_LINE_SIZE
#define SMP_CACHE_BYTES L1_CACHE_BYTES #define SMP_CACHE_BYTES L1_CACHE_BYTES
#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)) #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
......
...@@ -98,14 +98,35 @@ static __inline__ void ide_init_default_hwifs(void) ...@@ -98,14 +98,35 @@ static __inline__ void ide_init_default_hwifs(void)
continue; continue;
ide_init_hwif_ports(&hw, base, 0, NULL); ide_init_hwif_ports(&hw, base, 0, NULL);
hw.irq = ide_default_irq(base); hw.irq = ide_default_irq(base);
ide_register_hw(&hw); ide_register_hw(&hw, NULL);
} }
#endif #endif
} }
#if !defined(ide_request_irq)
#define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id))
#endif
#if !defined(ide_free_irq)
#define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id))
#endif
#define ide_check_region(from,extent) check_region((from), (extent))
#define ide_request_region(from,extent,name) request_region((from), (extent), (name))
#define ide_release_region(from,extent) release_region((from), (extent))
extern void ide_fix_driveid(struct hd_driveid *id);
/*
* The following are not needed for the non-m68k ports
* unless direct IDE on 8xx
*/
#if (defined CONFIG_APUS || defined CONFIG_BLK_DEV_MPC8xx_IDE ) #if (defined CONFIG_APUS || defined CONFIG_BLK_DEV_MPC8xx_IDE )
#define ATA_ARCH_ACK_INTR #define ide_ack_intr(hwif) (hwif->hw.ack_intr ? hwif->hw.ack_intr(hwif) : 1)
#else
#define ide_ack_intr(hwif) (1)
#endif #endif
#define ide_release_lock(lock) do {} while (0)
#define ide_get_lock(lock, hdlr, data) do {} while (0)
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -15,6 +15,8 @@ enum km_type { ...@@ -15,6 +15,8 @@ enum km_type {
KM_BIO_DST_IRQ, KM_BIO_DST_IRQ,
KM_PTE0, KM_PTE0,
KM_PTE1, KM_PTE1,
KM_IRQ0,
KM_IRQ1,
KM_TYPE_NR KM_TYPE_NR
}; };
......
...@@ -58,7 +58,7 @@ static inline void get_rtc_time(struct rtc_time *time) ...@@ -58,7 +58,7 @@ static inline void get_rtc_time(struct rtc_time *time)
} }
/* Set the current date and time in the real time clock. */ /* Set the current date and time in the real time clock. */
static inline void set_rtc_time(struct rtc_time *time) static inline int set_rtc_time(struct rtc_time *time)
{ {
if (ppc_md.get_rtc_time) { if (ppc_md.get_rtc_time) {
unsigned long nowtime; unsigned long nowtime;
......
...@@ -233,6 +233,12 @@ ...@@ -233,6 +233,12 @@
#define __NR_sched_getaffinity 223 #define __NR_sched_getaffinity 223
#define __NR_security 224 #define __NR_security 224
#define __NR_tuxcall 225 #define __NR_tuxcall 225
#define __NR_sendfile64 226
#define __NR_io_setup 227
#define __NR_io_destroy 228
#define __NR_io_getevents 229
#define __NR_io_submit 230
#define __NR_io_cancel 231
#define __NR(n) #n #define __NR(n) #n
......
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