forked from Minki/linux
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Pull powerpc fixes from Benjamin Herrenschmidt: "Here's a handful of powerpc patches, a couple of regression fixes for problems introduced in the main batch in this merge window, a couple of defconfig updates, and some trivials. The radeonfb one is something that was long standing in SLES which I forgot to pickup earlier." * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc/ftrace: Trace function graph entry before updating index radeonfb: Add quirk for the graphics adapter in some JSxx powerpc: Lack of firmware flash support is not an error powerpc: Enable pseries hardware RNG and crypto modules powerpc: Update g5_defconfig powerpc/kvm/bookehv: Fix build regression powerpc: Set stack limit properly in crit_transfer_to_handler
This commit is contained in:
commit
b387e41e52
@ -1,10 +1,8 @@
|
||||
CONFIG_PPC64=y
|
||||
CONFIG_ALTIVEC=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
@ -15,16 +13,15 @@ CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_MODULE_SRCVERSION_ALL=y
|
||||
# CONFIG_PPC_PSERIES is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_MAC_PARTITION=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_KEXEC=y
|
||||
# CONFIG_RELOCATABLE is not set
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_PMAC64=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_IRQ_ALL_CPUS=y
|
||||
# CONFIG_MIGRATION is not set
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
@ -52,7 +49,6 @@ CONFIG_NF_CT_NETLINK=m
|
||||
CONFIG_NF_CONNTRACK_IPV4=m
|
||||
CONFIG_IP_NF_QUEUE=m
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
@ -60,8 +56,6 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_IDE=y
|
||||
CONFIG_BLK_DEV_IDECD=y
|
||||
CONFIG_BLK_DEV_IDE_PMAC=y
|
||||
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_ST=y
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
@ -85,33 +79,24 @@ CONFIG_DM_CRYPT=m
|
||||
CONFIG_DM_SNAPSHOT=m
|
||||
CONFIG_DM_MIRROR=m
|
||||
CONFIG_DM_ZERO=m
|
||||
CONFIG_IEEE1394=y
|
||||
CONFIG_IEEE1394_OHCI1394=y
|
||||
CONFIG_IEEE1394_SBP2=m
|
||||
CONFIG_IEEE1394_ETH1394=m
|
||||
CONFIG_IEEE1394_RAWIO=y
|
||||
CONFIG_IEEE1394_VIDEO1394=m
|
||||
CONFIG_IEEE1394_DV1394=m
|
||||
CONFIG_ADB_PMU=y
|
||||
CONFIG_PMAC_SMU=y
|
||||
CONFIG_MACINTOSH_DRIVERS=y
|
||||
CONFIG_MAC_EMUMOUSEBTN=y
|
||||
CONFIG_THERM_PM72=y
|
||||
CONFIG_WINDFARM=y
|
||||
CONFIG_WINDFARM_PM81=y
|
||||
CONFIG_WINDFARM_PM91=y
|
||||
CONFIG_WINDFARM_PM112=y
|
||||
CONFIG_WINDFARM_PM121=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_DUMMY=m
|
||||
CONFIG_BONDING=m
|
||||
CONFIG_TUN=m
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_DUMMY=m
|
||||
CONFIG_MII=y
|
||||
CONFIG_SUNGEM=y
|
||||
CONFIG_TUN=m
|
||||
CONFIG_ACENIC=m
|
||||
CONFIG_ACENIC_OMIT_TIGON_I=y
|
||||
CONFIG_E1000=y
|
||||
CONFIG_TIGON3=y
|
||||
CONFIG_E1000=y
|
||||
CONFIG_SUNGEM=y
|
||||
CONFIG_PPP=m
|
||||
CONFIG_PPP_BSDCOMP=m
|
||||
CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPPOE=m
|
||||
CONFIG_PPP_ASYNC=m
|
||||
CONFIG_PPP_SYNC_TTY=m
|
||||
CONFIG_USB_CATC=m
|
||||
CONFIG_USB_KAWETH=m
|
||||
CONFIG_USB_PEGASUS=m
|
||||
@ -121,36 +106,24 @@ CONFIG_USB_USBNET=m
|
||||
# CONFIG_USB_NET_NET1080 is not set
|
||||
# CONFIG_USB_NET_CDC_SUBSET is not set
|
||||
# CONFIG_USB_NET_ZAURUS is not set
|
||||
CONFIG_PPP=m
|
||||
CONFIG_PPP_ASYNC=m
|
||||
CONFIG_PPP_SYNC_TTY=m
|
||||
CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPP_BSDCOMP=m
|
||||
CONFIG_PPPOE=m
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_JOYDEV=m
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_SERIO_I8042 is not set
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_GEN_RTC=y
|
||||
CONFIG_RAW_DRIVER=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_AGP=m
|
||||
CONFIG_AGP_UNINORTH=m
|
||||
CONFIG_AGP=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_NOUVEAU=y
|
||||
CONFIG_VIDEO_OUTPUT_CONTROL=m
|
||||
CONFIG_FB=y
|
||||
CONFIG_FIRMWARE_EDID=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_OF=y
|
||||
CONFIG_FB_NVIDIA=y
|
||||
CONFIG_FB_NVIDIA_I2C=y
|
||||
CONFIG_FB_RADEON=y
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_SND=m
|
||||
@ -158,15 +131,7 @@ CONFIG_SND_SEQUENCER=m
|
||||
CONFIG_SND_MIXER_OSS=m
|
||||
CONFIG_SND_PCM_OSS=m
|
||||
CONFIG_SND_SEQUENCER_OSS=y
|
||||
CONFIG_SND_POWERMAC=m
|
||||
CONFIG_SND_AOA=m
|
||||
CONFIG_SND_AOA_FABRIC_LAYOUT=m
|
||||
CONFIG_SND_AOA_ONYX=m
|
||||
CONFIG_SND_AOA_TAS=m
|
||||
CONFIG_SND_AOA_TOONIE=m
|
||||
CONFIG_SND_USB_AUDIO=m
|
||||
CONFIG_HID_PID=y
|
||||
CONFIG_USB_HIDDEV=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
@ -174,13 +139,12 @@ CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_PID=y
|
||||
CONFIG_USB_HIDDEV=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_DEVICEFS=y
|
||||
CONFIG_USB_MON=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
# CONFIG_USB_EHCI_HCD_PPC_OF is not set
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
|
||||
CONFIG_USB_ACM=m
|
||||
CONFIG_USB_PRINTER=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
@ -244,8 +208,6 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
|
||||
CONFIG_REISERFS_FS_SECURITY=y
|
||||
CONFIG_XFS_FS=m
|
||||
CONFIG_XFS_POSIX_ACL=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_AUTOFS_FS=m
|
||||
CONFIG_ISO9660_FS=y
|
||||
CONFIG_JOLIET=y
|
||||
CONFIG_ZISOFS=y
|
||||
@ -259,14 +221,12 @@ CONFIG_HFS_FS=m
|
||||
CONFIG_HFSPLUS_FS=m
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_NFSD=y
|
||||
CONFIG_NFSD_V3_ACL=y
|
||||
CONFIG_NFSD_V4=y
|
||||
CONFIG_CIFS=m
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_1250=y
|
||||
CONFIG_NLS_CODEPAGE_1251=y
|
||||
@ -274,29 +234,23 @@ CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_ISO8859_15=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
CONFIG_LATENCYTOP=y
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
CONFIG_BOOTX_TEXT=y
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
CONFIG_CRYPTO_NULL=m
|
||||
CONFIG_CRYPTO_TEST=m
|
||||
CONFIG_CRYPTO_ECB=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_HMAC=y
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_SHA256=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_AES=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
@ -306,3 +260,6 @@ CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
|
@ -279,7 +279,8 @@ CONFIG_HVC_RTAS=y
|
||||
CONFIG_HVC_BEAT=y
|
||||
CONFIG_HVCS=m
|
||||
CONFIG_IBM_BSR=m
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_PSERIES=m
|
||||
CONFIG_RAW_DRIVER=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_AMD8111=y
|
||||
@ -485,7 +486,8 @@ CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_DEV_NX=m
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
|
@ -226,7 +226,8 @@ CONFIG_HVC_CONSOLE=y
|
||||
CONFIG_HVC_RTAS=y
|
||||
CONFIG_HVCS=m
|
||||
CONFIG_IBM_BSR=m
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_PSERIES=m
|
||||
CONFIG_GEN_RTC=y
|
||||
CONFIG_RAW_DRIVER=y
|
||||
CONFIG_MAX_RAW_DEVS=1024
|
||||
@ -367,7 +368,8 @@ CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_DEV_NX=m
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
|
@ -89,10 +89,14 @@ crit_transfer_to_handler:
|
||||
mfspr r0,SPRN_SRR1
|
||||
stw r0,_SRR1(r11)
|
||||
|
||||
/* set the stack limit to the current stack
|
||||
* and set the limit to protect the thread_info
|
||||
* struct
|
||||
*/
|
||||
mfspr r8,SPRN_SPRG_THREAD
|
||||
lwz r0,KSP_LIMIT(r8)
|
||||
stw r0,SAVED_KSP_LIMIT(r11)
|
||||
CURRENT_THREAD_INFO(r0, r1)
|
||||
rlwimi r0,r1,0,0,(31-THREAD_SHIFT)
|
||||
stw r0,KSP_LIMIT(r8)
|
||||
/* fall through */
|
||||
#endif
|
||||
@ -109,10 +113,14 @@ crit_transfer_to_handler:
|
||||
mfspr r0,SPRN_SRR1
|
||||
stw r0,crit_srr1@l(0)
|
||||
|
||||
/* set the stack limit to the current stack
|
||||
* and set the limit to protect the thread_info
|
||||
* struct
|
||||
*/
|
||||
mfspr r8,SPRN_SPRG_THREAD
|
||||
lwz r0,KSP_LIMIT(r8)
|
||||
stw r0,saved_ksp_limit@l(0)
|
||||
CURRENT_THREAD_INFO(r0, r1)
|
||||
rlwimi r0,r1,0,0,(31-THREAD_SHIFT)
|
||||
stw r0,KSP_LIMIT(r8)
|
||||
/* fall through */
|
||||
#endif
|
||||
|
@ -630,18 +630,17 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
|
||||
return;
|
||||
}
|
||||
|
||||
if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY) {
|
||||
trace.func = self_addr;
|
||||
trace.depth = current->curr_ret_stack + 1;
|
||||
|
||||
/* Only trace if the calling function expects to */
|
||||
if (!ftrace_graph_entry(&trace)) {
|
||||
*parent = old;
|
||||
return;
|
||||
}
|
||||
|
||||
trace.func = self_addr;
|
||||
|
||||
/* Only trace if the calling function expects to */
|
||||
if (!ftrace_graph_entry(&trace)) {
|
||||
current->curr_ret_stack--;
|
||||
if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY)
|
||||
*parent = old;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
|
||||
|
||||
|
@ -709,7 +709,7 @@ static int __init rtas_flash_init(void)
|
||||
|
||||
if (rtas_token("ibm,update-flash-64-and-reboot") ==
|
||||
RTAS_UNKNOWN_SERVICE) {
|
||||
printk(KERN_ERR "rtas_flash: no firmware flash support\n");
|
||||
pr_info("rtas_flash: no firmware flash support\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -50,8 +50,9 @@
|
||||
#define HOST_R2 (3 * LONGBYTES)
|
||||
#define HOST_CR (4 * LONGBYTES)
|
||||
#define HOST_NV_GPRS (5 * LONGBYTES)
|
||||
#define HOST_NV_GPR(n) (HOST_NV_GPRS + ((n - 14) * LONGBYTES))
|
||||
#define HOST_MIN_STACK_SIZE (HOST_NV_GPR(31) + LONGBYTES)
|
||||
#define __HOST_NV_GPR(n) (HOST_NV_GPRS + ((n - 14) * LONGBYTES))
|
||||
#define HOST_NV_GPR(n) __HOST_NV_GPR(__REG_##n)
|
||||
#define HOST_MIN_STACK_SIZE (HOST_NV_GPR(R31) + LONGBYTES)
|
||||
#define HOST_STACK_SIZE ((HOST_MIN_STACK_SIZE + 15) & ~15) /* Align. */
|
||||
#define HOST_STACK_LR (HOST_STACK_SIZE + LONGBYTES) /* In caller stack frame. */
|
||||
|
||||
@ -410,24 +411,24 @@ heavyweight_exit:
|
||||
PPC_STL r31, VCPU_GPR(R31)(r4)
|
||||
|
||||
/* Load host non-volatile register state from host stack. */
|
||||
PPC_LL r14, HOST_NV_GPR(r14)(r1)
|
||||
PPC_LL r15, HOST_NV_GPR(r15)(r1)
|
||||
PPC_LL r16, HOST_NV_GPR(r16)(r1)
|
||||
PPC_LL r17, HOST_NV_GPR(r17)(r1)
|
||||
PPC_LL r18, HOST_NV_GPR(r18)(r1)
|
||||
PPC_LL r19, HOST_NV_GPR(r19)(r1)
|
||||
PPC_LL r20, HOST_NV_GPR(r20)(r1)
|
||||
PPC_LL r21, HOST_NV_GPR(r21)(r1)
|
||||
PPC_LL r22, HOST_NV_GPR(r22)(r1)
|
||||
PPC_LL r23, HOST_NV_GPR(r23)(r1)
|
||||
PPC_LL r24, HOST_NV_GPR(r24)(r1)
|
||||
PPC_LL r25, HOST_NV_GPR(r25)(r1)
|
||||
PPC_LL r26, HOST_NV_GPR(r26)(r1)
|
||||
PPC_LL r27, HOST_NV_GPR(r27)(r1)
|
||||
PPC_LL r28, HOST_NV_GPR(r28)(r1)
|
||||
PPC_LL r29, HOST_NV_GPR(r29)(r1)
|
||||
PPC_LL r30, HOST_NV_GPR(r30)(r1)
|
||||
PPC_LL r31, HOST_NV_GPR(r31)(r1)
|
||||
PPC_LL r14, HOST_NV_GPR(R14)(r1)
|
||||
PPC_LL r15, HOST_NV_GPR(R15)(r1)
|
||||
PPC_LL r16, HOST_NV_GPR(R16)(r1)
|
||||
PPC_LL r17, HOST_NV_GPR(R17)(r1)
|
||||
PPC_LL r18, HOST_NV_GPR(R18)(r1)
|
||||
PPC_LL r19, HOST_NV_GPR(R19)(r1)
|
||||
PPC_LL r20, HOST_NV_GPR(R20)(r1)
|
||||
PPC_LL r21, HOST_NV_GPR(R21)(r1)
|
||||
PPC_LL r22, HOST_NV_GPR(R22)(r1)
|
||||
PPC_LL r23, HOST_NV_GPR(R23)(r1)
|
||||
PPC_LL r24, HOST_NV_GPR(R24)(r1)
|
||||
PPC_LL r25, HOST_NV_GPR(R25)(r1)
|
||||
PPC_LL r26, HOST_NV_GPR(R26)(r1)
|
||||
PPC_LL r27, HOST_NV_GPR(R27)(r1)
|
||||
PPC_LL r28, HOST_NV_GPR(R28)(r1)
|
||||
PPC_LL r29, HOST_NV_GPR(R29)(r1)
|
||||
PPC_LL r30, HOST_NV_GPR(R30)(r1)
|
||||
PPC_LL r31, HOST_NV_GPR(R31)(r1)
|
||||
|
||||
/* Return to kvm_vcpu_run(). */
|
||||
mtlr r5
|
||||
@ -453,24 +454,24 @@ _GLOBAL(__kvmppc_vcpu_run)
|
||||
stw r5, HOST_CR(r1)
|
||||
|
||||
/* Save host non-volatile register state to stack. */
|
||||
PPC_STL r14, HOST_NV_GPR(r14)(r1)
|
||||
PPC_STL r15, HOST_NV_GPR(r15)(r1)
|
||||
PPC_STL r16, HOST_NV_GPR(r16)(r1)
|
||||
PPC_STL r17, HOST_NV_GPR(r17)(r1)
|
||||
PPC_STL r18, HOST_NV_GPR(r18)(r1)
|
||||
PPC_STL r19, HOST_NV_GPR(r19)(r1)
|
||||
PPC_STL r20, HOST_NV_GPR(r20)(r1)
|
||||
PPC_STL r21, HOST_NV_GPR(r21)(r1)
|
||||
PPC_STL r22, HOST_NV_GPR(r22)(r1)
|
||||
PPC_STL r23, HOST_NV_GPR(r23)(r1)
|
||||
PPC_STL r24, HOST_NV_GPR(r24)(r1)
|
||||
PPC_STL r25, HOST_NV_GPR(r25)(r1)
|
||||
PPC_STL r26, HOST_NV_GPR(r26)(r1)
|
||||
PPC_STL r27, HOST_NV_GPR(r27)(r1)
|
||||
PPC_STL r28, HOST_NV_GPR(r28)(r1)
|
||||
PPC_STL r29, HOST_NV_GPR(r29)(r1)
|
||||
PPC_STL r30, HOST_NV_GPR(r30)(r1)
|
||||
PPC_STL r31, HOST_NV_GPR(r31)(r1)
|
||||
PPC_STL r14, HOST_NV_GPR(R14)(r1)
|
||||
PPC_STL r15, HOST_NV_GPR(R15)(r1)
|
||||
PPC_STL r16, HOST_NV_GPR(R16)(r1)
|
||||
PPC_STL r17, HOST_NV_GPR(R17)(r1)
|
||||
PPC_STL r18, HOST_NV_GPR(R18)(r1)
|
||||
PPC_STL r19, HOST_NV_GPR(R19)(r1)
|
||||
PPC_STL r20, HOST_NV_GPR(R20)(r1)
|
||||
PPC_STL r21, HOST_NV_GPR(R21)(r1)
|
||||
PPC_STL r22, HOST_NV_GPR(R22)(r1)
|
||||
PPC_STL r23, HOST_NV_GPR(R23)(r1)
|
||||
PPC_STL r24, HOST_NV_GPR(R24)(r1)
|
||||
PPC_STL r25, HOST_NV_GPR(R25)(r1)
|
||||
PPC_STL r26, HOST_NV_GPR(R26)(r1)
|
||||
PPC_STL r27, HOST_NV_GPR(R27)(r1)
|
||||
PPC_STL r28, HOST_NV_GPR(R28)(r1)
|
||||
PPC_STL r29, HOST_NV_GPR(R29)(r1)
|
||||
PPC_STL r30, HOST_NV_GPR(R30)(r1)
|
||||
PPC_STL r31, HOST_NV_GPR(R31)(r1)
|
||||
|
||||
/* Load guest non-volatiles. */
|
||||
PPC_LL r14, VCPU_GPR(R14)(r4)
|
||||
|
@ -730,6 +730,25 @@ static void radeon_videomode_to_var(struct fb_var_screeninfo *var,
|
||||
var->vmode = mode->vmode;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
static int is_powerblade(const char *model)
|
||||
{
|
||||
struct device_node *root;
|
||||
const char* cp;
|
||||
int len, l, rc = 0;
|
||||
|
||||
root = of_find_node_by_path("/");
|
||||
if (root && model) {
|
||||
l = strlen(model);
|
||||
cp = of_get_property(root, "model", &len);
|
||||
if (cp)
|
||||
rc = memcmp(model, cp, min(len, l)) == 0;
|
||||
of_node_put(root);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Build the modedb for head 1 (head 2 will come later), check panel infos
|
||||
* from either BIOS or EDID, and pick up the default mode
|
||||
@ -865,6 +884,22 @@ void __devinit radeon_check_modes(struct radeonfb_info *rinfo, const char *mode_
|
||||
has_default_mode = 1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
if (!has_default_mode && (
|
||||
is_powerblade("IBM,8842") || /* JS20 */
|
||||
is_powerblade("IBM,8844") || /* JS21 */
|
||||
is_powerblade("IBM,7998") || /* JS12/JS21/JS22 */
|
||||
is_powerblade("IBM,0792") || /* QS21 */
|
||||
is_powerblade("IBM,0793") /* QS22 */
|
||||
)) {
|
||||
printk("Falling back to 800x600 on JSxx hardware\n");
|
||||
if (fb_find_mode(&info->var, info, "800x600@60",
|
||||
info->monspecs.modedb,
|
||||
info->monspecs.modedb_len, NULL, 8) != 0)
|
||||
has_default_mode = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Still no mode, let's pick up a default from the db
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user