Merge branch 'parisc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc fixes from Helge Deller: "Fix two section mismatches, convert to read_persistent_clock64(), add further documentation regarding the HPMC crash handler and make bzImage the default build target" * 'parisc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Fix section mismatches parisc: drivers.c: Fix section mismatches parisc: time: Convert read_persistent_clock() to read_persistent_clock64() parisc: Document rules regarding checksum of HPMC handler parisc: Make bzImage default build target
This commit is contained in:
commit
bb609316d4
@ -123,6 +123,9 @@ INSTALL_TARGETS = zinstall install
|
|||||||
|
|
||||||
PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS)
|
PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS)
|
||||||
|
|
||||||
|
# Default kernel to build
|
||||||
|
all: bzImage
|
||||||
|
|
||||||
zImage: vmlinuz
|
zImage: vmlinuz
|
||||||
Image: vmlinux
|
Image: vmlinux
|
||||||
|
|
||||||
|
@ -448,7 +448,8 @@ static int match_by_id(struct device * dev, void * data)
|
|||||||
* Checks all the children of @parent for a matching @id. If none
|
* Checks all the children of @parent for a matching @id. If none
|
||||||
* found, it allocates a new device and returns it.
|
* found, it allocates a new device and returns it.
|
||||||
*/
|
*/
|
||||||
static struct parisc_device * alloc_tree_node(struct device *parent, char id)
|
static struct parisc_device * __init alloc_tree_node(
|
||||||
|
struct device *parent, char id)
|
||||||
{
|
{
|
||||||
struct match_id_data d = {
|
struct match_id_data d = {
|
||||||
.id = id,
|
.id = id,
|
||||||
@ -825,8 +826,8 @@ static void walk_lower_bus(struct parisc_device *dev)
|
|||||||
* devices which are not physically connected (such as extra serial &
|
* devices which are not physically connected (such as extra serial &
|
||||||
* keyboard ports). This problem is not yet solved.
|
* keyboard ports). This problem is not yet solved.
|
||||||
*/
|
*/
|
||||||
static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high,
|
static void __init walk_native_bus(unsigned long io_io_low,
|
||||||
struct device *parent)
|
unsigned long io_io_high, struct device *parent)
|
||||||
{
|
{
|
||||||
int i, devices_found = 0;
|
int i, devices_found = 0;
|
||||||
unsigned long hpa = io_io_low;
|
unsigned long hpa = io_io_low;
|
||||||
|
@ -174,7 +174,7 @@ void pcibios_set_master(struct pci_dev *dev)
|
|||||||
* pcibios_init_bridge() initializes cache line and default latency
|
* pcibios_init_bridge() initializes cache line and default latency
|
||||||
* for pci controllers and pci-pci bridges
|
* for pci controllers and pci-pci bridges
|
||||||
*/
|
*/
|
||||||
void __init pcibios_init_bridge(struct pci_dev *dev)
|
void __ref pcibios_init_bridge(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
unsigned short bridge_ctl, bridge_ctl_new;
|
unsigned short bridge_ctl, bridge_ctl_new;
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ static int __init rtc_init(void)
|
|||||||
device_initcall(rtc_init);
|
device_initcall(rtc_init);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void read_persistent_clock(struct timespec *ts)
|
void read_persistent_clock64(struct timespec64 *ts)
|
||||||
{
|
{
|
||||||
static struct pdc_tod tod_data;
|
static struct pdc_tod tod_data;
|
||||||
if (pdc_tod_read(&tod_data) == 0) {
|
if (pdc_tod_read(&tod_data) == 0) {
|
||||||
|
@ -837,6 +837,17 @@ void __init initialize_ivt(const void *iva)
|
|||||||
if (pdc_instr(&instr) == PDC_OK)
|
if (pdc_instr(&instr) == PDC_OK)
|
||||||
ivap[0] = instr;
|
ivap[0] = instr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Rules for the checksum of the HPMC handler:
|
||||||
|
* 1. The IVA does not point to PDC/PDH space (ie: the OS has installed
|
||||||
|
* its own IVA).
|
||||||
|
* 2. The word at IVA + 32 is nonzero.
|
||||||
|
* 3. If Length (IVA + 60) is not zero, then Length (IVA + 60) and
|
||||||
|
* Address (IVA + 56) are word-aligned.
|
||||||
|
* 4. The checksum of the 8 words starting at IVA + 32 plus the sum of
|
||||||
|
* the Length/4 words starting at Address is zero.
|
||||||
|
*/
|
||||||
|
|
||||||
/* Compute Checksum for HPMC handler */
|
/* Compute Checksum for HPMC handler */
|
||||||
length = os_hpmc_size;
|
length = os_hpmc_size;
|
||||||
ivap[7] = length;
|
ivap[7] = length;
|
||||||
|
@ -516,7 +516,7 @@ static void __init map_pages(unsigned long start_vaddr,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_initmem(void)
|
void __ref free_initmem(void)
|
||||||
{
|
{
|
||||||
unsigned long init_begin = (unsigned long)__init_begin;
|
unsigned long init_begin = (unsigned long)__init_begin;
|
||||||
unsigned long init_end = (unsigned long)__init_end;
|
unsigned long init_end = (unsigned long)__init_end;
|
||||||
|
@ -1263,7 +1263,7 @@ static struct parisc_driver ccio_driver __refdata = {
|
|||||||
* I/O Page Directory, the resource map, and initalizing the
|
* I/O Page Directory, the resource map, and initalizing the
|
||||||
* U2/Uturn chip into virtual mode.
|
* U2/Uturn chip into virtual mode.
|
||||||
*/
|
*/
|
||||||
static void
|
static void __init
|
||||||
ccio_ioc_init(struct ioc *ioc)
|
ccio_ioc_init(struct ioc *ioc)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user