Merge branch 'sh/stable-updates'
This commit is contained in:
commit
e290861f99
894 changed files with 26945 additions and 15673 deletions
6
CREDITS
6
CREDITS
|
@ -2006,6 +2006,9 @@ E: paul@laufernet.com
|
||||||
D: Soundblaster driver fixes, ISAPnP quirk
|
D: Soundblaster driver fixes, ISAPnP quirk
|
||||||
S: California, USA
|
S: California, USA
|
||||||
|
|
||||||
|
N: Jonathan Layes
|
||||||
|
D: ARPD support
|
||||||
|
|
||||||
N: Tom Lees
|
N: Tom Lees
|
||||||
E: tom@lpsg.demon.co.uk
|
E: tom@lpsg.demon.co.uk
|
||||||
W: http://www.lpsg.demon.co.uk/
|
W: http://www.lpsg.demon.co.uk/
|
||||||
|
@ -3802,6 +3805,9 @@ S: van Bronckhorststraat 12
|
||||||
S: 2612 XV Delft
|
S: 2612 XV Delft
|
||||||
S: The Netherlands
|
S: The Netherlands
|
||||||
|
|
||||||
|
N: Thomas Woller
|
||||||
|
D: CS461x Cirrus Logic sound driver
|
||||||
|
|
||||||
N: David Woodhouse
|
N: David Woodhouse
|
||||||
E: dwmw2@infradead.org
|
E: dwmw2@infradead.org
|
||||||
D: JFFS2 file system, Memory Technology Device subsystem,
|
D: JFFS2 file system, Memory Technology Device subsystem,
|
||||||
|
|
|
@ -94,28 +94,37 @@ What: /sys/block/<disk>/queue/physical_block_size
|
||||||
Date: May 2009
|
Date: May 2009
|
||||||
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||||
Description:
|
Description:
|
||||||
This is the smallest unit the storage device can write
|
This is the smallest unit a physical storage device can
|
||||||
without resorting to read-modify-write operation. It is
|
write atomically. It is usually the same as the logical
|
||||||
usually the same as the logical block size but may be
|
block size but may be bigger. One example is SATA
|
||||||
bigger. One example is SATA drives with 4KB sectors
|
drives with 4KB sectors that expose a 512-byte logical
|
||||||
that expose a 512-byte logical block size to the
|
block size to the operating system. For stacked block
|
||||||
operating system.
|
devices the physical_block_size variable contains the
|
||||||
|
maximum physical_block_size of the component devices.
|
||||||
|
|
||||||
What: /sys/block/<disk>/queue/minimum_io_size
|
What: /sys/block/<disk>/queue/minimum_io_size
|
||||||
Date: April 2009
|
Date: April 2009
|
||||||
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||||
Description:
|
Description:
|
||||||
Storage devices may report a preferred minimum I/O size,
|
Storage devices may report a granularity or preferred
|
||||||
which is the smallest request the device can perform
|
minimum I/O size which is the smallest request the
|
||||||
without incurring a read-modify-write penalty. For disk
|
device can perform without incurring a performance
|
||||||
drives this is often the physical block size. For RAID
|
penalty. For disk drives this is often the physical
|
||||||
arrays it is often the stripe chunk size.
|
block size. For RAID arrays it is often the stripe
|
||||||
|
chunk size. A properly aligned multiple of
|
||||||
|
minimum_io_size is the preferred request size for
|
||||||
|
workloads where a high number of I/O operations is
|
||||||
|
desired.
|
||||||
|
|
||||||
What: /sys/block/<disk>/queue/optimal_io_size
|
What: /sys/block/<disk>/queue/optimal_io_size
|
||||||
Date: April 2009
|
Date: April 2009
|
||||||
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||||
Description:
|
Description:
|
||||||
Storage devices may report an optimal I/O size, which is
|
Storage devices may report an optimal I/O size, which is
|
||||||
the device's preferred unit of receiving I/O. This is
|
the device's preferred unit for sustained I/O. This is
|
||||||
rarely reported for disk drives. For RAID devices it is
|
rarely reported for disk drives. For RAID arrays it is
|
||||||
usually the stripe width or the internal block size.
|
usually the stripe width or the internal track size. A
|
||||||
|
properly aligned multiple of optimal_io_size is the
|
||||||
|
preferred request size for workloads where sustained
|
||||||
|
throughput is desired. If no optimal I/O size is
|
||||||
|
reported this file contains 0.
|
||||||
|
|
|
@ -449,8 +449,8 @@ printk(KERN_INFO "i = %u\n", i);
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
__u32 ipaddress;
|
__be32 ipaddress;
|
||||||
printk(KERN_INFO "my ip: %d.%d.%d.%d\n", NIPQUAD(ipaddress));
|
printk(KERN_INFO "my ip: %pI4\n", &ipaddress);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -21,6 +21,8 @@ ffff8000 ffffffff copy_user_page / clear_user_page use.
|
||||||
For SA11xx and Xscale, this is used to
|
For SA11xx and Xscale, this is used to
|
||||||
setup a minicache mapping.
|
setup a minicache mapping.
|
||||||
|
|
||||||
|
ffff4000 ffffffff cache aliasing on ARMv6 and later CPUs.
|
||||||
|
|
||||||
ffff1000 ffff7fff Reserved.
|
ffff1000 ffff7fff Reserved.
|
||||||
Platforms must not use this address range.
|
Platforms must not use this address range.
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,8 @@ interface.
|
||||||
Using sysfs
|
Using sysfs
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
sysfs is always compiled in. You can access it by doing:
|
sysfs is always compiled in if CONFIG_SYSFS is defined. You can access
|
||||||
|
it by doing:
|
||||||
|
|
||||||
mount -t sysfs sysfs /sys
|
mount -t sysfs sysfs /sys
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,7 @@ Code Seq# Include File Comments
|
||||||
'm' all linux/synclink.h conflict!
|
'm' all linux/synclink.h conflict!
|
||||||
'm' 00-1F net/irda/irmod.h conflict!
|
'm' 00-1F net/irda/irmod.h conflict!
|
||||||
'n' 00-7F linux/ncp_fs.h
|
'n' 00-7F linux/ncp_fs.h
|
||||||
|
'n' 80-8F linux/nilfs2_fs.h NILFS2
|
||||||
'n' E0-FF video/matrox.h matroxfb
|
'n' E0-FF video/matrox.h matroxfb
|
||||||
'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2
|
'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2
|
||||||
'o' 00-03 include/mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps)
|
'o' 00-03 include/mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps)
|
||||||
|
|
|
@ -1115,6 +1115,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
libata.dma=4 Compact Flash DMA only
|
libata.dma=4 Compact Flash DMA only
|
||||||
Combinations also work, so libata.dma=3 enables DMA
|
Combinations also work, so libata.dma=3 enables DMA
|
||||||
for disks and CDROMs, but not CFs.
|
for disks and CDROMs, but not CFs.
|
||||||
|
|
||||||
|
libata.ignore_hpa= [LIBATA] Ignore HPA limit
|
||||||
|
libata.ignore_hpa=0 keep BIOS limits (default)
|
||||||
|
libata.ignore_hpa=1 ignore limits, using full disk
|
||||||
|
|
||||||
libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume
|
libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume
|
||||||
when set.
|
when set.
|
||||||
|
|
|
@ -36,8 +36,6 @@ detailed description):
|
||||||
- Bluetooth enable and disable
|
- Bluetooth enable and disable
|
||||||
- video output switching, expansion control
|
- video output switching, expansion control
|
||||||
- ThinkLight on and off
|
- ThinkLight on and off
|
||||||
- limited docking and undocking
|
|
||||||
- UltraBay eject
|
|
||||||
- CMOS/UCMS control
|
- CMOS/UCMS control
|
||||||
- LED control
|
- LED control
|
||||||
- ACPI sounds
|
- ACPI sounds
|
||||||
|
@ -729,131 +727,6 @@ cannot be read or if it is unknown, thinkpad-acpi will report it as "off".
|
||||||
It is impossible to know if the status returned through sysfs is valid.
|
It is impossible to know if the status returned through sysfs is valid.
|
||||||
|
|
||||||
|
|
||||||
Docking / undocking -- /proc/acpi/ibm/dock
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
Docking and undocking (e.g. with the X4 UltraBase) requires some
|
|
||||||
actions to be taken by the operating system to safely make or break
|
|
||||||
the electrical connections with the dock.
|
|
||||||
|
|
||||||
The docking feature of this driver generates the following ACPI events:
|
|
||||||
|
|
||||||
ibm/dock GDCK 00000003 00000001 -- eject request
|
|
||||||
ibm/dock GDCK 00000003 00000002 -- undocked
|
|
||||||
ibm/dock GDCK 00000000 00000003 -- docked
|
|
||||||
|
|
||||||
NOTE: These events will only be generated if the laptop was docked
|
|
||||||
when originally booted. This is due to the current lack of support for
|
|
||||||
hot plugging of devices in the Linux ACPI framework. If the laptop was
|
|
||||||
booted while not in the dock, the following message is shown in the
|
|
||||||
logs:
|
|
||||||
|
|
||||||
Mar 17 01:42:34 aero kernel: thinkpad_acpi: dock device not present
|
|
||||||
|
|
||||||
In this case, no dock-related events are generated but the dock and
|
|
||||||
undock commands described below still work. They can be executed
|
|
||||||
manually or triggered by Fn key combinations (see the example acpid
|
|
||||||
configuration files included in the driver tarball package available
|
|
||||||
on the web site).
|
|
||||||
|
|
||||||
When the eject request button on the dock is pressed, the first event
|
|
||||||
above is generated. The handler for this event should issue the
|
|
||||||
following command:
|
|
||||||
|
|
||||||
echo undock > /proc/acpi/ibm/dock
|
|
||||||
|
|
||||||
After the LED on the dock goes off, it is safe to eject the laptop.
|
|
||||||
Note: if you pressed this key by mistake, go ahead and eject the
|
|
||||||
laptop, then dock it back in. Otherwise, the dock may not function as
|
|
||||||
expected.
|
|
||||||
|
|
||||||
When the laptop is docked, the third event above is generated. The
|
|
||||||
handler for this event should issue the following command to fully
|
|
||||||
enable the dock:
|
|
||||||
|
|
||||||
echo dock > /proc/acpi/ibm/dock
|
|
||||||
|
|
||||||
The contents of the /proc/acpi/ibm/dock file shows the current status
|
|
||||||
of the dock, as provided by the ACPI framework.
|
|
||||||
|
|
||||||
The docking support in this driver does not take care of enabling or
|
|
||||||
disabling any other devices you may have attached to the dock. For
|
|
||||||
example, a CD drive plugged into the UltraBase needs to be disabled or
|
|
||||||
enabled separately. See the provided example acpid configuration files
|
|
||||||
for how this can be accomplished.
|
|
||||||
|
|
||||||
There is no support yet for PCI devices that may be attached to a
|
|
||||||
docking station, e.g. in the ThinkPad Dock II. The driver currently
|
|
||||||
does not recognize, enable or disable such devices. This means that
|
|
||||||
the only docking stations currently supported are the X-series
|
|
||||||
UltraBase docks and "dumb" port replicators like the Mini Dock (the
|
|
||||||
latter don't need any ACPI support, actually).
|
|
||||||
|
|
||||||
|
|
||||||
UltraBay eject -- /proc/acpi/ibm/bay
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Inserting or ejecting an UltraBay device requires some actions to be
|
|
||||||
taken by the operating system to safely make or break the electrical
|
|
||||||
connections with the device.
|
|
||||||
|
|
||||||
This feature generates the following ACPI events:
|
|
||||||
|
|
||||||
ibm/bay MSTR 00000003 00000000 -- eject request
|
|
||||||
ibm/bay MSTR 00000001 00000000 -- eject lever inserted
|
|
||||||
|
|
||||||
NOTE: These events will only be generated if the UltraBay was present
|
|
||||||
when the laptop was originally booted (on the X series, the UltraBay
|
|
||||||
is in the dock, so it may not be present if the laptop was undocked).
|
|
||||||
This is due to the current lack of support for hot plugging of devices
|
|
||||||
in the Linux ACPI framework. If the laptop was booted without the
|
|
||||||
UltraBay, the following message is shown in the logs:
|
|
||||||
|
|
||||||
Mar 17 01:42:34 aero kernel: thinkpad_acpi: bay device not present
|
|
||||||
|
|
||||||
In this case, no bay-related events are generated but the eject
|
|
||||||
command described below still works. It can be executed manually or
|
|
||||||
triggered by a hot key combination.
|
|
||||||
|
|
||||||
Sliding the eject lever generates the first event shown above. The
|
|
||||||
handler for this event should take whatever actions are necessary to
|
|
||||||
shut down the device in the UltraBay (e.g. call idectl), then issue
|
|
||||||
the following command:
|
|
||||||
|
|
||||||
echo eject > /proc/acpi/ibm/bay
|
|
||||||
|
|
||||||
After the LED on the UltraBay goes off, it is safe to pull out the
|
|
||||||
device.
|
|
||||||
|
|
||||||
When the eject lever is inserted, the second event above is
|
|
||||||
generated. The handler for this event should take whatever actions are
|
|
||||||
necessary to enable the UltraBay device (e.g. call idectl).
|
|
||||||
|
|
||||||
The contents of the /proc/acpi/ibm/bay file shows the current status
|
|
||||||
of the UltraBay, as provided by the ACPI framework.
|
|
||||||
|
|
||||||
EXPERIMENTAL warm eject support on the 600e/x, A22p and A3x (To use
|
|
||||||
this feature, you need to supply the experimental=1 parameter when
|
|
||||||
loading the module):
|
|
||||||
|
|
||||||
These models do not have a button near the UltraBay device to request
|
|
||||||
a hot eject but rather require the laptop to be put to sleep
|
|
||||||
(suspend-to-ram) before the bay device is ejected or inserted).
|
|
||||||
The sequence of steps to eject the device is as follows:
|
|
||||||
|
|
||||||
echo eject > /proc/acpi/ibm/bay
|
|
||||||
put the ThinkPad to sleep
|
|
||||||
remove the drive
|
|
||||||
resume from sleep
|
|
||||||
cat /proc/acpi/ibm/bay should show that the drive was removed
|
|
||||||
|
|
||||||
On the A3x, both the UltraBay 2000 and UltraBay Plus devices are
|
|
||||||
supported. Use "eject2" instead of "eject" for the second bay.
|
|
||||||
|
|
||||||
Note: the UltraBay eject support on the 600e/x, A22p and A3x is
|
|
||||||
EXPERIMENTAL and may not work as expected. USE WITH CAUTION!
|
|
||||||
|
|
||||||
|
|
||||||
CMOS/UCMS control
|
CMOS/UCMS control
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -30,9 +30,9 @@ State
|
||||||
The validator tracks lock-class usage history into 4n + 1 separate state bits:
|
The validator tracks lock-class usage history into 4n + 1 separate state bits:
|
||||||
|
|
||||||
- 'ever held in STATE context'
|
- 'ever held in STATE context'
|
||||||
- 'ever head as readlock in STATE context'
|
- 'ever held as readlock in STATE context'
|
||||||
- 'ever head with STATE enabled'
|
- 'ever held with STATE enabled'
|
||||||
- 'ever head as readlock with STATE enabled'
|
- 'ever held as readlock with STATE enabled'
|
||||||
|
|
||||||
Where STATE can be either one of (kernel/lockdep_states.h)
|
Where STATE can be either one of (kernel/lockdep_states.h)
|
||||||
- hardirq
|
- hardirq
|
||||||
|
|
|
@ -101,6 +101,8 @@ card*/pcm*/xrun_debug
|
||||||
bit 0 = Enable XRUN/jiffies debug messages
|
bit 0 = Enable XRUN/jiffies debug messages
|
||||||
bit 1 = Show stack trace at XRUN / jiffies check
|
bit 1 = Show stack trace at XRUN / jiffies check
|
||||||
bit 2 = Enable additional jiffies check
|
bit 2 = Enable additional jiffies check
|
||||||
|
bit 3 = Log hwptr update at each period interrupt
|
||||||
|
bit 4 = Log hwptr update at each snd_pcm_update_hw_ptr()
|
||||||
|
|
||||||
When the bit 0 is set, the driver will show the messages to
|
When the bit 0 is set, the driver will show the messages to
|
||||||
kernel log when an xrun is detected. The debug message is
|
kernel log when an xrun is detected. The debug message is
|
||||||
|
@ -117,6 +119,9 @@ card*/pcm*/xrun_debug
|
||||||
buggy) hardware that doesn't give smooth pointer updates.
|
buggy) hardware that doesn't give smooth pointer updates.
|
||||||
This feature is enabled via the bit 2.
|
This feature is enabled via the bit 2.
|
||||||
|
|
||||||
|
Bits 3 and 4 are for logging the hwptr records. Note that
|
||||||
|
these will give flood of kernel messages.
|
||||||
|
|
||||||
card*/pcm*/sub*/info
|
card*/pcm*/sub*/info
|
||||||
The general information of this PCM sub-stream.
|
The general information of this PCM sub-stream.
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,8 @@ On all - write a character to /proc/sysrq-trigger. e.g.:
|
||||||
'b' - Will immediately reboot the system without syncing or unmounting
|
'b' - Will immediately reboot the system without syncing or unmounting
|
||||||
your disks.
|
your disks.
|
||||||
|
|
||||||
'c' - Will perform a kexec reboot in order to take a crashdump.
|
'c' - Will perform a system crash by a NULL pointer dereference.
|
||||||
|
A crashdump will be taken if configured.
|
||||||
|
|
||||||
'd' - Shows all locks that are held.
|
'd' - Shows all locks that are held.
|
||||||
|
|
||||||
|
@ -141,8 +142,8 @@ useful when you want to exit a program that will not let you switch consoles.
|
||||||
re'B'oot is good when you're unable to shut down. But you should also 'S'ync
|
re'B'oot is good when you're unable to shut down. But you should also 'S'ync
|
||||||
and 'U'mount first.
|
and 'U'mount first.
|
||||||
|
|
||||||
'C'rashdump can be used to manually trigger a crashdump when the system is hung.
|
'C'rash can be used to manually trigger a crashdump when the system is hung.
|
||||||
The kernel needs to have been built with CONFIG_KEXEC enabled.
|
Note that this just triggers a crash if there is no dump mechanism available.
|
||||||
|
|
||||||
'S'ync is great when your system is locked up, it allows you to sync your
|
'S'ync is great when your system is locked up, it allows you to sync your
|
||||||
disks and will certainly lessen the chance of data loss and fscking. Note
|
disks and will certainly lessen the chance of data loss and fscking. Note
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
19 -> EM2860/SAA711X Reference Design (em2860)
|
19 -> EM2860/SAA711X Reference Design (em2860)
|
||||||
20 -> AMD ATI TV Wonder HD 600 (em2880) [0438:b002]
|
20 -> AMD ATI TV Wonder HD 600 (em2880) [0438:b002]
|
||||||
21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800) [eb1a:2801]
|
21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder (em2800) [eb1a:2801]
|
||||||
22 -> Unknown EM2750/EM2751 webcam grabber (em2750) [eb1a:2750,eb1a:2751]
|
22 -> EM2710/EM2750/EM2751 webcam grabber (em2750) [eb1a:2750,eb1a:2751]
|
||||||
23 -> Huaqi DLCW-130 (em2750)
|
23 -> Huaqi DLCW-130 (em2750)
|
||||||
24 -> D-Link DUB-T210 TV Tuner (em2820/em2840) [2001:f112]
|
24 -> D-Link DUB-T210 TV Tuner (em2820/em2840) [2001:f112]
|
||||||
25 -> Gadmei UTV310 (em2820/em2840)
|
25 -> Gadmei UTV310 (em2820/em2840)
|
||||||
|
|
|
@ -44,7 +44,9 @@ zc3xx 0458:7007 Genius VideoCam V2
|
||||||
zc3xx 0458:700c Genius VideoCam V3
|
zc3xx 0458:700c Genius VideoCam V3
|
||||||
zc3xx 0458:700f Genius VideoCam Web V2
|
zc3xx 0458:700f Genius VideoCam Web V2
|
||||||
sonixj 0458:7025 Genius Eye 311Q
|
sonixj 0458:7025 Genius Eye 311Q
|
||||||
|
sn9c20x 0458:7029 Genius Look 320s
|
||||||
sonixj 0458:702e Genius Slim 310 NB
|
sonixj 0458:702e Genius Slim 310 NB
|
||||||
|
sn9c20x 045e:00f4 LifeCam VX-6000 (SN9C20x + OV9650)
|
||||||
sonixj 045e:00f5 MicroSoft VX3000
|
sonixj 045e:00f5 MicroSoft VX3000
|
||||||
sonixj 045e:00f7 MicroSoft VX1000
|
sonixj 045e:00f7 MicroSoft VX1000
|
||||||
ov519 045e:028c Micro$oft xbox cam
|
ov519 045e:028c Micro$oft xbox cam
|
||||||
|
@ -282,6 +284,28 @@ sonixj 0c45:613a Microdia Sonix PC Camera
|
||||||
sonixj 0c45:613b Surfer SN-206
|
sonixj 0c45:613b Surfer SN-206
|
||||||
sonixj 0c45:613c Sonix Pccam168
|
sonixj 0c45:613c Sonix Pccam168
|
||||||
sonixj 0c45:6143 Sonix Pccam168
|
sonixj 0c45:6143 Sonix Pccam168
|
||||||
|
sn9c20x 0c45:6240 PC Camera (SN9C201 + MT9M001)
|
||||||
|
sn9c20x 0c45:6242 PC Camera (SN9C201 + MT9M111)
|
||||||
|
sn9c20x 0c45:6248 PC Camera (SN9C201 + OV9655)
|
||||||
|
sn9c20x 0c45:624e PC Camera (SN9C201 + SOI968)
|
||||||
|
sn9c20x 0c45:624f PC Camera (SN9C201 + OV9650)
|
||||||
|
sn9c20x 0c45:6251 PC Camera (SN9C201 + OV9650)
|
||||||
|
sn9c20x 0c45:6253 PC Camera (SN9C201 + OV9650)
|
||||||
|
sn9c20x 0c45:6260 PC Camera (SN9C201 + OV7670)
|
||||||
|
sn9c20x 0c45:6270 PC Camera (SN9C201 + MT9V011/MT9V111/MT9V112)
|
||||||
|
sn9c20x 0c45:627b PC Camera (SN9C201 + OV7660)
|
||||||
|
sn9c20x 0c45:627c PC Camera (SN9C201 + HV7131R)
|
||||||
|
sn9c20x 0c45:627f PC Camera (SN9C201 + OV9650)
|
||||||
|
sn9c20x 0c45:6280 PC Camera (SN9C202 + MT9M001)
|
||||||
|
sn9c20x 0c45:6282 PC Camera (SN9C202 + MT9M111)
|
||||||
|
sn9c20x 0c45:6288 PC Camera (SN9C202 + OV9655)
|
||||||
|
sn9c20x 0c45:628e PC Camera (SN9C202 + SOI968)
|
||||||
|
sn9c20x 0c45:628f PC Camera (SN9C202 + OV9650)
|
||||||
|
sn9c20x 0c45:62a0 PC Camera (SN9C202 + OV7670)
|
||||||
|
sn9c20x 0c45:62b0 PC Camera (SN9C202 + MT9V011/MT9V111/MT9V112)
|
||||||
|
sn9c20x 0c45:62b3 PC Camera (SN9C202 + OV9655)
|
||||||
|
sn9c20x 0c45:62bb PC Camera (SN9C202 + OV7660)
|
||||||
|
sn9c20x 0c45:62bc PC Camera (SN9C202 + HV7131R)
|
||||||
sunplus 0d64:0303 Sunplus FashionCam DXG
|
sunplus 0d64:0303 Sunplus FashionCam DXG
|
||||||
etoms 102c:6151 Qcam Sangha CIF
|
etoms 102c:6151 Qcam Sangha CIF
|
||||||
etoms 102c:6251 Qcam xxxxxx VGA
|
etoms 102c:6251 Qcam xxxxxx VGA
|
||||||
|
@ -290,6 +314,7 @@ spca561 10fd:7e50 FlyCam Usb 100
|
||||||
zc3xx 10fd:8050 Typhoon Webshot II USB 300k
|
zc3xx 10fd:8050 Typhoon Webshot II USB 300k
|
||||||
ov534 1415:2000 Sony HD Eye for PS3 (SLEH 00201)
|
ov534 1415:2000 Sony HD Eye for PS3 (SLEH 00201)
|
||||||
pac207 145f:013a Trust WB-1300N
|
pac207 145f:013a Trust WB-1300N
|
||||||
|
sn9c20x 145f:013d Trust WB-3600R
|
||||||
vc032x 15b8:6001 HP 2.0 Megapixel
|
vc032x 15b8:6001 HP 2.0 Megapixel
|
||||||
vc032x 15b8:6002 HP 2.0 Megapixel rz406aa
|
vc032x 15b8:6002 HP 2.0 Megapixel rz406aa
|
||||||
spca501 1776:501c Arowana 300K CMOS Camera
|
spca501 1776:501c Arowana 300K CMOS Camera
|
||||||
|
@ -300,4 +325,11 @@ spca500 2899:012c Toptro Industrial
|
||||||
spca508 8086:0110 Intel Easy PC Camera
|
spca508 8086:0110 Intel Easy PC Camera
|
||||||
spca500 8086:0630 Intel Pocket PC Camera
|
spca500 8086:0630 Intel Pocket PC Camera
|
||||||
spca506 99fa:8988 Grandtec V.cap
|
spca506 99fa:8988 Grandtec V.cap
|
||||||
|
sn9c20x a168:0610 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
|
||||||
|
sn9c20x a168:0611 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
|
||||||
|
sn9c20x a168:0613 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
|
||||||
|
sn9c20x a168:0618 Dino-Lite Digital Microscope (SN9C201 + HV7131R)
|
||||||
|
sn9c20x a168:0614 Dino-Lite Digital Microscope (SN9C201 + MT9M111)
|
||||||
|
sn9c20x a168:0615 Dino-Lite Digital Microscope (SN9C201 + MT9M111)
|
||||||
|
sn9c20x a168:0617 Dino-Lite Digital Microscope (SN9C201 + MT9M111)
|
||||||
spca561 abcd:cdee Petcam
|
spca561 abcd:cdee Petcam
|
||||||
|
|
2773
MAINTAINERS
2773
MAINTAINERS
File diff suppressed because it is too large
Load diff
2
Makefile
2
Makefile
|
@ -1,7 +1,7 @@
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
PATCHLEVEL = 6
|
PATCHLEVEL = 6
|
||||||
SUBLEVEL = 31
|
SUBLEVEL = 31
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc5
|
||||||
NAME = Man-Eating Seals of Antiquity
|
NAME = Man-Eating Seals of Antiquity
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
#include <asm-generic/tlb.h>
|
#include <asm-generic/tlb.h>
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb, pte) pte_free((tlb)->mm, pte)
|
#define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte)
|
||||||
#define __pmd_free_tlb(tlb, pmd) pmd_free((tlb)->mm, pmd)
|
#define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,7 +29,6 @@ unsigned int __machine_arch_type;
|
||||||
|
|
||||||
static void putstr(const char *ptr);
|
static void putstr(const char *ptr);
|
||||||
|
|
||||||
#include <linux/compiler.h>
|
|
||||||
#include <mach/uncompress.h>
|
#include <mach/uncompress.h>
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_ICEDCC
|
#ifdef CONFIG_DEBUG_ICEDCC
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
|
#include <linux/clk.h>
|
||||||
|
|
||||||
#include <asm/clkdev.h>
|
#include <asm/clkdev.h>
|
||||||
#include <mach/clkdev.h>
|
#include <mach/clkdev.h>
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.30-rc1
|
# Linux kernel version: 2.6.31-rc4
|
||||||
# Wed Apr 8 10:18:06 2009
|
# Fri Jul 24 16:08:06 2009
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
|
CONFIG_HAVE_PWM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
CONFIG_GENERIC_TIME=y
|
CONFIG_GENERIC_TIME=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
# CONFIG_NO_IOPORT is not set
|
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||||
|
@ -18,14 +18,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
CONFIG_HARDIRQS_SW_RESEND=y
|
CONFIG_HARDIRQS_SW_RESEND=y
|
||||||
CONFIG_GENERIC_IRQ_PROBE=y
|
CONFIG_GENERIC_IRQ_PROBE=y
|
||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
|
||||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
CONFIG_ARCH_MTD_XIP=y
|
CONFIG_ARCH_MTD_XIP=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
CONFIG_CONSTRUCTORS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# General setup
|
# General setup
|
||||||
|
@ -85,7 +84,12 @@ CONFIG_TIMERFD=y
|
||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Performance Counters
|
||||||
|
#
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
|
# CONFIG_STRIP_ASM_SYMS is not set
|
||||||
# CONFIG_COMPAT_BRK is not set
|
# CONFIG_COMPAT_BRK is not set
|
||||||
CONFIG_SLAB=y
|
CONFIG_SLAB=y
|
||||||
# CONFIG_SLUB is not set
|
# CONFIG_SLUB is not set
|
||||||
|
@ -99,6 +103,12 @@ CONFIG_KPROBES=y
|
||||||
CONFIG_KRETPROBES=y
|
CONFIG_KRETPROBES=y
|
||||||
CONFIG_HAVE_KPROBES=y
|
CONFIG_HAVE_KPROBES=y
|
||||||
CONFIG_HAVE_KRETPROBES=y
|
CONFIG_HAVE_KRETPROBES=y
|
||||||
|
CONFIG_HAVE_CLK=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# GCOV-based kernel profiling
|
||||||
|
#
|
||||||
|
# CONFIG_GCOV_KERNEL is not set
|
||||||
# CONFIG_SLOW_WORK is not set
|
# CONFIG_SLOW_WORK is not set
|
||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||||
CONFIG_SLABINFO=y
|
CONFIG_SLABINFO=y
|
||||||
|
@ -111,7 +121,7 @@ CONFIG_MODULE_UNLOAD=y
|
||||||
# CONFIG_MODVERSIONS is not set
|
# CONFIG_MODVERSIONS is not set
|
||||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||||
CONFIG_BLOCK=y
|
CONFIG_BLOCK=y
|
||||||
# CONFIG_LBD is not set
|
CONFIG_LBDAF=y
|
||||||
# CONFIG_BLK_DEV_BSG is not set
|
# CONFIG_BLK_DEV_BSG is not set
|
||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||||
|
|
||||||
|
@ -138,13 +148,14 @@ CONFIG_FREEZER=y
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
|
||||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||||
|
CONFIG_ARCH_MXC=y
|
||||||
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_IMX is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
|
@ -153,25 +164,25 @@ CONFIG_FREEZER=y
|
||||||
# CONFIG_ARCH_IXP4XX is not set
|
# CONFIG_ARCH_IXP4XX is not set
|
||||||
# CONFIG_ARCH_L7200 is not set
|
# CONFIG_ARCH_L7200 is not set
|
||||||
# CONFIG_ARCH_KIRKWOOD is not set
|
# CONFIG_ARCH_KIRKWOOD is not set
|
||||||
# CONFIG_ARCH_KS8695 is not set
|
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
|
||||||
# CONFIG_ARCH_LOKI is not set
|
# CONFIG_ARCH_LOKI is not set
|
||||||
# CONFIG_ARCH_MV78XX0 is not set
|
# CONFIG_ARCH_MV78XX0 is not set
|
||||||
CONFIG_ARCH_MXC=y
|
|
||||||
# CONFIG_ARCH_ORION5X is not set
|
# CONFIG_ARCH_ORION5X is not set
|
||||||
|
# CONFIG_ARCH_MMP is not set
|
||||||
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MMP is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
|
# CONFIG_ARCH_U300 is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Freescale MXC Implementations
|
# Freescale MXC Implementations
|
||||||
|
@ -188,6 +199,8 @@ CONFIG_MACH_MX27=y
|
||||||
CONFIG_MACH_MX27ADS=y
|
CONFIG_MACH_MX27ADS=y
|
||||||
CONFIG_MACH_PCM038=y
|
CONFIG_MACH_PCM038=y
|
||||||
CONFIG_MACH_PCM970_BASEBOARD=y
|
CONFIG_MACH_PCM970_BASEBOARD=y
|
||||||
|
CONFIG_MACH_MX27_3DS=y
|
||||||
|
CONFIG_MACH_MX27LITE=y
|
||||||
CONFIG_MXC_IRQ_PRIOR=y
|
CONFIG_MXC_IRQ_PRIOR=y
|
||||||
CONFIG_MXC_PWM=y
|
CONFIG_MXC_PWM=y
|
||||||
|
|
||||||
|
@ -213,7 +226,6 @@ CONFIG_ARM_THUMB=y
|
||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
|
||||||
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
|
||||||
# CONFIG_OUTER_CACHE is not set
|
|
||||||
CONFIG_COMMON_CLKDEV=y
|
CONFIG_COMMON_CLKDEV=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -238,7 +250,6 @@ CONFIG_PREEMPT=y
|
||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
CONFIG_AEABI=y
|
CONFIG_AEABI=y
|
||||||
CONFIG_OABI_COMPAT=y
|
CONFIG_OABI_COMPAT=y
|
||||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
|
|
||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||||
# CONFIG_HIGHMEM is not set
|
# CONFIG_HIGHMEM is not set
|
||||||
|
@ -253,10 +264,11 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
|
||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||||
CONFIG_ZONE_DMA_FLAG=0
|
CONFIG_ZONE_DMA_FLAG=0
|
||||||
CONFIG_VIRT_TO_BUS=y
|
CONFIG_VIRT_TO_BUS=y
|
||||||
CONFIG_UNEVICTABLE_LRU=y
|
|
||||||
CONFIG_HAVE_MLOCK=y
|
CONFIG_HAVE_MLOCK=y
|
||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||||
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
CONFIG_ALIGNMENT_TRAP=y
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
|
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
|
@ -361,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||||
# CONFIG_ECONET is not set
|
# CONFIG_ECONET is not set
|
||||||
# CONFIG_WAN_ROUTER is not set
|
# CONFIG_WAN_ROUTER is not set
|
||||||
# CONFIG_PHONET is not set
|
# CONFIG_PHONET is not set
|
||||||
|
# CONFIG_IEEE802154 is not set
|
||||||
# CONFIG_NET_SCHED is not set
|
# CONFIG_NET_SCHED is not set
|
||||||
# CONFIG_DCB is not set
|
# CONFIG_DCB is not set
|
||||||
|
|
||||||
|
@ -474,7 +487,16 @@ CONFIG_MTD_PHYSMAP=y
|
||||||
# CONFIG_MTD_DOC2000 is not set
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
# CONFIG_MTD_DOC2001 is not set
|
# CONFIG_MTD_DOC2001 is not set
|
||||||
# CONFIG_MTD_DOC2001PLUS is not set
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
# CONFIG_MTD_NAND is not set
|
CONFIG_MTD_NAND=y
|
||||||
|
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||||
|
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||||
|
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||||
|
# CONFIG_MTD_NAND_GPIO is not set
|
||||||
|
CONFIG_MTD_NAND_IDS=y
|
||||||
|
# CONFIG_MTD_NAND_DISKONCHIP is not set
|
||||||
|
# CONFIG_MTD_NAND_NANDSIM is not set
|
||||||
|
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||||
|
CONFIG_MTD_NAND_MXC=y
|
||||||
# CONFIG_MTD_ONENAND is not set
|
# CONFIG_MTD_ONENAND is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -485,7 +507,15 @@ CONFIG_MTD_PHYSMAP=y
|
||||||
#
|
#
|
||||||
# UBI - Unsorted block images
|
# UBI - Unsorted block images
|
||||||
#
|
#
|
||||||
# CONFIG_MTD_UBI is not set
|
CONFIG_MTD_UBI=y
|
||||||
|
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||||
|
CONFIG_MTD_UBI_BEB_RESERVE=1
|
||||||
|
# CONFIG_MTD_UBI_GLUEBI is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# UBI debugging options
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_UBI_DEBUG is not set
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
CONFIG_BLK_DEV=y
|
CONFIG_BLK_DEV=y
|
||||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||||
|
@ -494,7 +524,21 @@ CONFIG_BLK_DEV=y
|
||||||
# CONFIG_BLK_DEV_RAM is not set
|
# CONFIG_BLK_DEV_RAM is not set
|
||||||
# CONFIG_CDROM_PKTCDVD is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
# CONFIG_ATA_OVER_ETH is not set
|
# CONFIG_ATA_OVER_ETH is not set
|
||||||
# CONFIG_MISC_DEVICES is not set
|
# CONFIG_MG_DISK is not set
|
||||||
|
CONFIG_MISC_DEVICES=y
|
||||||
|
# CONFIG_ICS932S401 is not set
|
||||||
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
|
# CONFIG_ISL29003 is not set
|
||||||
|
# CONFIG_C2PORT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# EEPROM support
|
||||||
|
#
|
||||||
|
CONFIG_EEPROM_AT24=y
|
||||||
|
# CONFIG_EEPROM_AT25 is not set
|
||||||
|
# CONFIG_EEPROM_LEGACY is not set
|
||||||
|
# CONFIG_EEPROM_MAX6875 is not set
|
||||||
|
# CONFIG_EEPROM_93CX6 is not set
|
||||||
CONFIG_HAVE_IDE=y
|
CONFIG_HAVE_IDE=y
|
||||||
# CONFIG_IDE is not set
|
# CONFIG_IDE is not set
|
||||||
|
|
||||||
|
@ -508,7 +552,6 @@ CONFIG_HAVE_IDE=y
|
||||||
# CONFIG_ATA is not set
|
# CONFIG_ATA is not set
|
||||||
# CONFIG_MD is not set
|
# CONFIG_MD is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
|
||||||
# CONFIG_DUMMY is not set
|
# CONFIG_DUMMY is not set
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_MACVLAN is not set
|
# CONFIG_MACVLAN is not set
|
||||||
|
@ -534,6 +577,8 @@ CONFIG_NET_ETHERNET=y
|
||||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||||
# CONFIG_B44 is not set
|
# CONFIG_B44 is not set
|
||||||
|
# CONFIG_KS8842 is not set
|
||||||
|
# CONFIG_KS8851 is not set
|
||||||
CONFIG_FEC=y
|
CONFIG_FEC=y
|
||||||
# CONFIG_FEC2 is not set
|
# CONFIG_FEC2 is not set
|
||||||
# CONFIG_NETDEV_1000 is not set
|
# CONFIG_NETDEV_1000 is not set
|
||||||
|
@ -580,6 +625,11 @@ CONFIG_INPUT_EVDEV=y
|
||||||
# CONFIG_INPUT_TABLET is not set
|
# CONFIG_INPUT_TABLET is not set
|
||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_ADS7846 is not set
|
# CONFIG_TOUCHSCREEN_ADS7846 is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_AD7877 is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_AD7879 is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_EETI is not set
|
||||||
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
# CONFIG_TOUCHSCREEN_FUJITSU is not set
|
||||||
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
# CONFIG_TOUCHSCREEN_GUNZE is not set
|
||||||
# CONFIG_TOUCHSCREEN_ELO is not set
|
# CONFIG_TOUCHSCREEN_ELO is not set
|
||||||
|
@ -592,6 +642,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
|
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
|
||||||
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
|
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
|
||||||
# CONFIG_TOUCHSCREEN_TSC2007 is not set
|
# CONFIG_TOUCHSCREEN_TSC2007 is not set
|
||||||
|
# CONFIG_TOUCHSCREEN_W90X900 is not set
|
||||||
# CONFIG_INPUT_MISC is not set
|
# CONFIG_INPUT_MISC is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -644,6 +695,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
||||||
#
|
#
|
||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||||
#
|
#
|
||||||
|
# CONFIG_I2C_DESIGNWARE is not set
|
||||||
# CONFIG_I2C_GPIO is not set
|
# CONFIG_I2C_GPIO is not set
|
||||||
CONFIG_I2C_IMX=y
|
CONFIG_I2C_IMX=y
|
||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
|
@ -668,7 +720,6 @@ CONFIG_I2C_IMX=y
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
# CONFIG_PCF8575 is not set
|
# CONFIG_PCF8575 is not set
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
# CONFIG_SENSORS_TSL2550 is not set
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
@ -719,6 +770,7 @@ CONFIG_W1=y
|
||||||
#
|
#
|
||||||
# CONFIG_W1_MASTER_DS2482 is not set
|
# CONFIG_W1_MASTER_DS2482 is not set
|
||||||
CONFIG_W1_MASTER_MXC=y
|
CONFIG_W1_MASTER_MXC=y
|
||||||
|
# CONFIG_W1_MASTER_DS1WM is not set
|
||||||
# CONFIG_W1_MASTER_GPIO is not set
|
# CONFIG_W1_MASTER_GPIO is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -753,54 +805,16 @@ CONFIG_SSB_POSSIBLE=y
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
# CONFIG_TWL4030_CORE is not set
|
# CONFIG_TWL4030_CORE is not set
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
|
# CONFIG_MFD_T7L66XB is not set
|
||||||
|
# CONFIG_MFD_TC6387XB is not set
|
||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
# CONFIG_MFD_WM8350_I2C is not set
|
# CONFIG_MFD_WM8350_I2C is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
|
# CONFIG_AB3100_CORE is not set
|
||||||
#
|
# CONFIG_EZX_PCAP is not set
|
||||||
# Multimedia devices
|
# CONFIG_MEDIA_SUPPORT is not set
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia core support
|
|
||||||
#
|
|
||||||
CONFIG_VIDEO_DEV=y
|
|
||||||
CONFIG_VIDEO_V4L2_COMMON=y
|
|
||||||
CONFIG_VIDEO_ALLOW_V4L1=y
|
|
||||||
CONFIG_VIDEO_V4L1_COMPAT=y
|
|
||||||
# CONFIG_DVB_CORE is not set
|
|
||||||
CONFIG_VIDEO_MEDIA=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia drivers
|
|
||||||
#
|
|
||||||
# CONFIG_MEDIA_ATTACH is not set
|
|
||||||
CONFIG_MEDIA_TUNER=y
|
|
||||||
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
|
|
||||||
CONFIG_MEDIA_TUNER_SIMPLE=y
|
|
||||||
CONFIG_MEDIA_TUNER_TDA8290=y
|
|
||||||
CONFIG_MEDIA_TUNER_TDA9887=y
|
|
||||||
CONFIG_MEDIA_TUNER_TEA5761=y
|
|
||||||
CONFIG_MEDIA_TUNER_TEA5767=y
|
|
||||||
CONFIG_MEDIA_TUNER_MT20XX=y
|
|
||||||
CONFIG_MEDIA_TUNER_XC2028=y
|
|
||||||
CONFIG_MEDIA_TUNER_XC5000=y
|
|
||||||
CONFIG_MEDIA_TUNER_MC44S803=y
|
|
||||||
CONFIG_VIDEO_V4L2=y
|
|
||||||
CONFIG_VIDEO_V4L1=y
|
|
||||||
CONFIG_VIDEO_CAPTURE_DRIVERS=y
|
|
||||||
# CONFIG_VIDEO_ADV_DEBUG is not set
|
|
||||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
|
|
||||||
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
|
|
||||||
# CONFIG_VIDEO_VIVI is not set
|
|
||||||
# CONFIG_VIDEO_CPIA is not set
|
|
||||||
# CONFIG_VIDEO_SAA5246A is not set
|
|
||||||
# CONFIG_VIDEO_SAA5249 is not set
|
|
||||||
# CONFIG_SOC_CAMERA is not set
|
|
||||||
# CONFIG_RADIO_ADAPTERS is not set
|
|
||||||
# CONFIG_DAB is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Graphics support
|
# Graphics support
|
||||||
|
@ -917,6 +931,7 @@ CONFIG_RTC_DRV_PCF8563=y
|
||||||
# CONFIG_RTC_DRV_S35390A is not set
|
# CONFIG_RTC_DRV_S35390A is not set
|
||||||
# CONFIG_RTC_DRV_FM3130 is not set
|
# CONFIG_RTC_DRV_FM3130 is not set
|
||||||
# CONFIG_RTC_DRV_RX8581 is not set
|
# CONFIG_RTC_DRV_RX8581 is not set
|
||||||
|
# CONFIG_RTC_DRV_RX8025 is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# SPI RTC drivers
|
# SPI RTC drivers
|
||||||
|
@ -962,12 +977,15 @@ CONFIG_RTC_DRV_PCF8563=y
|
||||||
# CONFIG_REISERFS_FS is not set
|
# CONFIG_REISERFS_FS is not set
|
||||||
# CONFIG_JFS_FS is not set
|
# CONFIG_JFS_FS is not set
|
||||||
# CONFIG_FS_POSIX_ACL is not set
|
# CONFIG_FS_POSIX_ACL is not set
|
||||||
CONFIG_FILE_LOCKING=y
|
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
|
# CONFIG_GFS2_FS is not set
|
||||||
# CONFIG_OCFS2_FS is not set
|
# CONFIG_OCFS2_FS is not set
|
||||||
# CONFIG_BTRFS_FS is not set
|
# CONFIG_BTRFS_FS is not set
|
||||||
|
CONFIG_FILE_LOCKING=y
|
||||||
|
CONFIG_FSNOTIFY=y
|
||||||
# CONFIG_DNOTIFY is not set
|
# CONFIG_DNOTIFY is not set
|
||||||
# CONFIG_INOTIFY is not set
|
# CONFIG_INOTIFY is not set
|
||||||
|
CONFIG_INOTIFY_USER=y
|
||||||
# CONFIG_QUOTA is not set
|
# CONFIG_QUOTA is not set
|
||||||
# CONFIG_AUTOFS_FS is not set
|
# CONFIG_AUTOFS_FS is not set
|
||||||
# CONFIG_AUTOFS4_FS is not set
|
# CONFIG_AUTOFS4_FS is not set
|
||||||
|
@ -1021,6 +1039,12 @@ CONFIG_JFFS2_ZLIB=y
|
||||||
# CONFIG_JFFS2_LZO is not set
|
# CONFIG_JFFS2_LZO is not set
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
# CONFIG_JFFS2_RUBIN is not set
|
# CONFIG_JFFS2_RUBIN is not set
|
||||||
|
CONFIG_UBIFS_FS=y
|
||||||
|
# CONFIG_UBIFS_FS_XATTR is not set
|
||||||
|
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
|
||||||
|
CONFIG_UBIFS_FS_LZO=y
|
||||||
|
CONFIG_UBIFS_FS_ZLIB=y
|
||||||
|
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||||
# CONFIG_CRAMFS is not set
|
# CONFIG_CRAMFS is not set
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
|
@ -1119,25 +1143,11 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||||
CONFIG_NOP_TRACER=y
|
CONFIG_NOP_TRACER=y
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
CONFIG_RING_BUFFER=y
|
CONFIG_RING_BUFFER=y
|
||||||
|
CONFIG_EVENT_TRACING=y
|
||||||
|
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||||
CONFIG_TRACING=y
|
CONFIG_TRACING=y
|
||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
|
# CONFIG_FTRACE is not set
|
||||||
#
|
|
||||||
# Tracers
|
|
||||||
#
|
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
|
||||||
# CONFIG_IRQSOFF_TRACER is not set
|
|
||||||
# CONFIG_PREEMPT_TRACER is not set
|
|
||||||
# CONFIG_SCHED_TRACER is not set
|
|
||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
|
||||||
# CONFIG_EVENT_TRACER is not set
|
|
||||||
# CONFIG_BOOT_TRACER is not set
|
|
||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
|
||||||
# CONFIG_STACK_TRACER is not set
|
|
||||||
# CONFIG_KMEMTRACE is not set
|
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
|
||||||
# CONFIG_FTRACE_STARTUP_TEST is not set
|
|
||||||
# CONFIG_DYNAMIC_DEBUG is not set
|
# CONFIG_DYNAMIC_DEBUG is not set
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
|
@ -1151,16 +1161,104 @@ CONFIG_ARM_UNWIND=y
|
||||||
# CONFIG_SECURITY is not set
|
# CONFIG_SECURITY is not set
|
||||||
# CONFIG_SECURITYFS is not set
|
# CONFIG_SECURITYFS is not set
|
||||||
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
|
||||||
# CONFIG_CRYPTO is not set
|
CONFIG_CRYPTO=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Crypto core or helper
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_FIPS is not set
|
||||||
|
CONFIG_CRYPTO_ALGAPI=y
|
||||||
|
CONFIG_CRYPTO_ALGAPI2=y
|
||||||
|
# CONFIG_CRYPTO_MANAGER is not set
|
||||||
|
# CONFIG_CRYPTO_MANAGER2 is not set
|
||||||
|
# CONFIG_CRYPTO_GF128MUL is not set
|
||||||
|
# CONFIG_CRYPTO_NULL is not set
|
||||||
|
# CONFIG_CRYPTO_CRYPTD is not set
|
||||||
|
# CONFIG_CRYPTO_AUTHENC is not set
|
||||||
|
# CONFIG_CRYPTO_TEST is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Authenticated Encryption with Associated Data
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_CCM is not set
|
||||||
|
# CONFIG_CRYPTO_GCM is not set
|
||||||
|
# CONFIG_CRYPTO_SEQIV is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Block modes
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_CBC is not set
|
||||||
|
# CONFIG_CRYPTO_CTR is not set
|
||||||
|
# CONFIG_CRYPTO_CTS is not set
|
||||||
|
# CONFIG_CRYPTO_ECB is not set
|
||||||
|
# CONFIG_CRYPTO_LRW is not set
|
||||||
|
# CONFIG_CRYPTO_PCBC is not set
|
||||||
|
# CONFIG_CRYPTO_XTS is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Hash modes
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_HMAC is not set
|
||||||
|
# CONFIG_CRYPTO_XCBC is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Digest
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_CRC32C is not set
|
||||||
|
# CONFIG_CRYPTO_MD4 is not set
|
||||||
|
# CONFIG_CRYPTO_MD5 is not set
|
||||||
|
# CONFIG_CRYPTO_MICHAEL_MIC is not set
|
||||||
|
# CONFIG_CRYPTO_RMD128 is not set
|
||||||
|
# CONFIG_CRYPTO_RMD160 is not set
|
||||||
|
# CONFIG_CRYPTO_RMD256 is not set
|
||||||
|
# CONFIG_CRYPTO_RMD320 is not set
|
||||||
|
# CONFIG_CRYPTO_SHA1 is not set
|
||||||
|
# CONFIG_CRYPTO_SHA256 is not set
|
||||||
|
# CONFIG_CRYPTO_SHA512 is not set
|
||||||
|
# CONFIG_CRYPTO_TGR192 is not set
|
||||||
|
# CONFIG_CRYPTO_WP512 is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ciphers
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_AES is not set
|
||||||
|
# CONFIG_CRYPTO_ANUBIS is not set
|
||||||
|
# CONFIG_CRYPTO_ARC4 is not set
|
||||||
|
# CONFIG_CRYPTO_BLOWFISH is not set
|
||||||
|
# CONFIG_CRYPTO_CAMELLIA is not set
|
||||||
|
# CONFIG_CRYPTO_CAST5 is not set
|
||||||
|
# CONFIG_CRYPTO_CAST6 is not set
|
||||||
|
# CONFIG_CRYPTO_DES is not set
|
||||||
|
# CONFIG_CRYPTO_FCRYPT is not set
|
||||||
|
# CONFIG_CRYPTO_KHAZAD is not set
|
||||||
|
# CONFIG_CRYPTO_SALSA20 is not set
|
||||||
|
# CONFIG_CRYPTO_SEED is not set
|
||||||
|
# CONFIG_CRYPTO_SERPENT is not set
|
||||||
|
# CONFIG_CRYPTO_TEA is not set
|
||||||
|
# CONFIG_CRYPTO_TWOFISH is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Compression
|
||||||
|
#
|
||||||
|
CONFIG_CRYPTO_DEFLATE=y
|
||||||
|
# CONFIG_CRYPTO_ZLIB is not set
|
||||||
|
CONFIG_CRYPTO_LZO=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Random Number Generation
|
||||||
|
#
|
||||||
|
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||||
|
CONFIG_CRYPTO_HW=y
|
||||||
CONFIG_BINARY_PRINTF=y
|
CONFIG_BINARY_PRINTF=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Library routines
|
# Library routines
|
||||||
#
|
#
|
||||||
CONFIG_BITREVERSE=y
|
CONFIG_BITREVERSE=y
|
||||||
|
CONFIG_RATIONAL=y
|
||||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||||
# CONFIG_CRC_CCITT is not set
|
# CONFIG_CRC_CCITT is not set
|
||||||
# CONFIG_CRC16 is not set
|
CONFIG_CRC16=y
|
||||||
# CONFIG_CRC_T10DIF is not set
|
# CONFIG_CRC_T10DIF is not set
|
||||||
# CONFIG_CRC_ITU_T is not set
|
# CONFIG_CRC_ITU_T is not set
|
||||||
CONFIG_CRC32=y
|
CONFIG_CRC32=y
|
||||||
|
@ -1168,6 +1266,8 @@ CONFIG_CRC32=y
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
CONFIG_ZLIB_INFLATE=y
|
CONFIG_ZLIB_INFLATE=y
|
||||||
CONFIG_ZLIB_DEFLATE=y
|
CONFIG_ZLIB_DEFLATE=y
|
||||||
|
CONFIG_LZO_COMPRESS=y
|
||||||
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.30-rc1
|
# Linux kernel version: 2.6.31-rc4
|
||||||
# Wed Apr 8 11:06:37 2009
|
# Tue Jul 28 14:11:34 2009
|
||||||
#
|
#
|
||||||
CONFIG_ARM=y
|
CONFIG_ARM=y
|
||||||
|
CONFIG_HAVE_PWM=y
|
||||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||||
CONFIG_GENERIC_GPIO=y
|
CONFIG_GENERIC_GPIO=y
|
||||||
CONFIG_GENERIC_TIME=y
|
CONFIG_GENERIC_TIME=y
|
||||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
# CONFIG_NO_IOPORT is not set
|
|
||||||
CONFIG_GENERIC_HARDIRQS=y
|
CONFIG_GENERIC_HARDIRQS=y
|
||||||
CONFIG_STACKTRACE_SUPPORT=y
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
|
||||||
|
@ -18,14 +18,13 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
CONFIG_HARDIRQS_SW_RESEND=y
|
CONFIG_HARDIRQS_SW_RESEND=y
|
||||||
CONFIG_GENERIC_IRQ_PROBE=y
|
CONFIG_GENERIC_IRQ_PROBE=y
|
||||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
|
||||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
|
||||||
CONFIG_GENERIC_HWEIGHT=y
|
CONFIG_GENERIC_HWEIGHT=y
|
||||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||||
CONFIG_ARCH_MTD_XIP=y
|
CONFIG_ARCH_MTD_XIP=y
|
||||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||||
CONFIG_VECTORS_BASE=0xffff0000
|
CONFIG_VECTORS_BASE=0xffff0000
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
CONFIG_CONSTRUCTORS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# General setup
|
# General setup
|
||||||
|
@ -86,7 +85,12 @@ CONFIG_TIMERFD=y
|
||||||
CONFIG_EVENTFD=y
|
CONFIG_EVENTFD=y
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Performance Counters
|
||||||
|
#
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
|
# CONFIG_STRIP_ASM_SYMS is not set
|
||||||
CONFIG_COMPAT_BRK=y
|
CONFIG_COMPAT_BRK=y
|
||||||
CONFIG_SLAB=y
|
CONFIG_SLAB=y
|
||||||
# CONFIG_SLUB is not set
|
# CONFIG_SLUB is not set
|
||||||
|
@ -97,6 +101,11 @@ CONFIG_HAVE_OPROFILE=y
|
||||||
# CONFIG_KPROBES is not set
|
# CONFIG_KPROBES is not set
|
||||||
CONFIG_HAVE_KPROBES=y
|
CONFIG_HAVE_KPROBES=y
|
||||||
CONFIG_HAVE_KRETPROBES=y
|
CONFIG_HAVE_KRETPROBES=y
|
||||||
|
CONFIG_HAVE_CLK=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# GCOV-based kernel profiling
|
||||||
|
#
|
||||||
# CONFIG_SLOW_WORK is not set
|
# CONFIG_SLOW_WORK is not set
|
||||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||||
CONFIG_SLABINFO=y
|
CONFIG_SLABINFO=y
|
||||||
|
@ -109,7 +118,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
|
||||||
CONFIG_MODVERSIONS=y
|
CONFIG_MODVERSIONS=y
|
||||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||||
CONFIG_BLOCK=y
|
CONFIG_BLOCK=y
|
||||||
# CONFIG_LBD is not set
|
CONFIG_LBDAF=y
|
||||||
# CONFIG_BLK_DEV_BSG is not set
|
# CONFIG_BLK_DEV_BSG is not set
|
||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||||
|
|
||||||
|
@ -136,13 +145,14 @@ CONFIG_FREEZER=y
|
||||||
# CONFIG_ARCH_VERSATILE is not set
|
# CONFIG_ARCH_VERSATILE is not set
|
||||||
# CONFIG_ARCH_AT91 is not set
|
# CONFIG_ARCH_AT91 is not set
|
||||||
# CONFIG_ARCH_CLPS711X is not set
|
# CONFIG_ARCH_CLPS711X is not set
|
||||||
|
# CONFIG_ARCH_GEMINI is not set
|
||||||
# CONFIG_ARCH_EBSA110 is not set
|
# CONFIG_ARCH_EBSA110 is not set
|
||||||
# CONFIG_ARCH_EP93XX is not set
|
# CONFIG_ARCH_EP93XX is not set
|
||||||
# CONFIG_ARCH_GEMINI is not set
|
|
||||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||||
|
CONFIG_ARCH_MXC=y
|
||||||
|
# CONFIG_ARCH_STMP3XXX is not set
|
||||||
# CONFIG_ARCH_NETX is not set
|
# CONFIG_ARCH_NETX is not set
|
||||||
# CONFIG_ARCH_H720X is not set
|
# CONFIG_ARCH_H720X is not set
|
||||||
# CONFIG_ARCH_IMX is not set
|
|
||||||
# CONFIG_ARCH_IOP13XX is not set
|
# CONFIG_ARCH_IOP13XX is not set
|
||||||
# CONFIG_ARCH_IOP32X is not set
|
# CONFIG_ARCH_IOP32X is not set
|
||||||
# CONFIG_ARCH_IOP33X is not set
|
# CONFIG_ARCH_IOP33X is not set
|
||||||
|
@ -151,25 +161,25 @@ CONFIG_FREEZER=y
|
||||||
# CONFIG_ARCH_IXP4XX is not set
|
# CONFIG_ARCH_IXP4XX is not set
|
||||||
# CONFIG_ARCH_L7200 is not set
|
# CONFIG_ARCH_L7200 is not set
|
||||||
# CONFIG_ARCH_KIRKWOOD is not set
|
# CONFIG_ARCH_KIRKWOOD is not set
|
||||||
# CONFIG_ARCH_KS8695 is not set
|
|
||||||
# CONFIG_ARCH_NS9XXX is not set
|
|
||||||
# CONFIG_ARCH_LOKI is not set
|
# CONFIG_ARCH_LOKI is not set
|
||||||
# CONFIG_ARCH_MV78XX0 is not set
|
# CONFIG_ARCH_MV78XX0 is not set
|
||||||
CONFIG_ARCH_MXC=y
|
|
||||||
# CONFIG_ARCH_ORION5X is not set
|
# CONFIG_ARCH_ORION5X is not set
|
||||||
|
# CONFIG_ARCH_MMP is not set
|
||||||
|
# CONFIG_ARCH_KS8695 is not set
|
||||||
|
# CONFIG_ARCH_NS9XXX is not set
|
||||||
|
# CONFIG_ARCH_W90X900 is not set
|
||||||
# CONFIG_ARCH_PNX4008 is not set
|
# CONFIG_ARCH_PNX4008 is not set
|
||||||
# CONFIG_ARCH_PXA is not set
|
# CONFIG_ARCH_PXA is not set
|
||||||
# CONFIG_ARCH_MMP is not set
|
# CONFIG_ARCH_MSM is not set
|
||||||
# CONFIG_ARCH_RPC is not set
|
# CONFIG_ARCH_RPC is not set
|
||||||
# CONFIG_ARCH_SA1100 is not set
|
# CONFIG_ARCH_SA1100 is not set
|
||||||
# CONFIG_ARCH_S3C2410 is not set
|
# CONFIG_ARCH_S3C2410 is not set
|
||||||
# CONFIG_ARCH_S3C64XX is not set
|
# CONFIG_ARCH_S3C64XX is not set
|
||||||
# CONFIG_ARCH_SHARK is not set
|
# CONFIG_ARCH_SHARK is not set
|
||||||
# CONFIG_ARCH_LH7A40X is not set
|
# CONFIG_ARCH_LH7A40X is not set
|
||||||
|
# CONFIG_ARCH_U300 is not set
|
||||||
# CONFIG_ARCH_DAVINCI is not set
|
# CONFIG_ARCH_DAVINCI is not set
|
||||||
# CONFIG_ARCH_OMAP is not set
|
# CONFIG_ARCH_OMAP is not set
|
||||||
# CONFIG_ARCH_MSM is not set
|
|
||||||
# CONFIG_ARCH_W90X900 is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Freescale MXC Implementations
|
# Freescale MXC Implementations
|
||||||
|
@ -178,6 +188,7 @@ CONFIG_ARCH_MXC=y
|
||||||
# CONFIG_ARCH_MX2 is not set
|
# CONFIG_ARCH_MX2 is not set
|
||||||
CONFIG_ARCH_MX3=y
|
CONFIG_ARCH_MX3=y
|
||||||
CONFIG_ARCH_MX31=y
|
CONFIG_ARCH_MX31=y
|
||||||
|
CONFIG_ARCH_MX35=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# MX3 platforms:
|
# MX3 platforms:
|
||||||
|
@ -185,12 +196,19 @@ CONFIG_ARCH_MX31=y
|
||||||
CONFIG_MACH_MX31ADS=y
|
CONFIG_MACH_MX31ADS=y
|
||||||
CONFIG_MACH_MX31ADS_WM1133_EV1=y
|
CONFIG_MACH_MX31ADS_WM1133_EV1=y
|
||||||
CONFIG_MACH_PCM037=y
|
CONFIG_MACH_PCM037=y
|
||||||
|
CONFIG_MACH_PCM037_EET=y
|
||||||
CONFIG_MACH_MX31LITE=y
|
CONFIG_MACH_MX31LITE=y
|
||||||
CONFIG_MACH_MX31_3DS=y
|
CONFIG_MACH_MX31_3DS=y
|
||||||
CONFIG_MACH_MX31MOBOARD=y
|
CONFIG_MACH_MX31MOBOARD=y
|
||||||
|
CONFIG_MACH_MX31LILLY=y
|
||||||
CONFIG_MACH_QONG=y
|
CONFIG_MACH_QONG=y
|
||||||
|
CONFIG_MACH_PCM043=y
|
||||||
|
CONFIG_MACH_ARMADILLO5X0=y
|
||||||
|
CONFIG_MACH_MX35_3DS=y
|
||||||
CONFIG_MXC_IRQ_PRIOR=y
|
CONFIG_MXC_IRQ_PRIOR=y
|
||||||
CONFIG_MXC_PWM=y
|
CONFIG_MXC_PWM=y
|
||||||
|
CONFIG_ARCH_HAS_RNGA=y
|
||||||
|
CONFIG_ARCH_MXC_IOMUX_V3=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Processor Type
|
# Processor Type
|
||||||
|
@ -218,6 +236,7 @@ CONFIG_ARM_THUMB=y
|
||||||
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
# CONFIG_CPU_BPREDICT_DISABLE is not set
|
||||||
CONFIG_OUTER_CACHE=y
|
CONFIG_OUTER_CACHE=y
|
||||||
CONFIG_CACHE_L2X0=y
|
CONFIG_CACHE_L2X0=y
|
||||||
|
# CONFIG_ARM_ERRATA_411920 is not set
|
||||||
CONFIG_COMMON_CLKDEV=y
|
CONFIG_COMMON_CLKDEV=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -242,7 +261,6 @@ CONFIG_PREEMPT=y
|
||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
CONFIG_AEABI=y
|
CONFIG_AEABI=y
|
||||||
CONFIG_OABI_COMPAT=y
|
CONFIG_OABI_COMPAT=y
|
||||||
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
|
|
||||||
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
|
||||||
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
|
||||||
# CONFIG_HIGHMEM is not set
|
# CONFIG_HIGHMEM is not set
|
||||||
|
@ -257,10 +275,11 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||||
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
# CONFIG_PHYS_ADDR_T_64BIT is not set
|
||||||
CONFIG_ZONE_DMA_FLAG=0
|
CONFIG_ZONE_DMA_FLAG=0
|
||||||
CONFIG_VIRT_TO_BUS=y
|
CONFIG_VIRT_TO_BUS=y
|
||||||
CONFIG_UNEVICTABLE_LRU=y
|
|
||||||
CONFIG_HAVE_MLOCK=y
|
CONFIG_HAVE_MLOCK=y
|
||||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||||
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
CONFIG_ALIGNMENT_TRAP=y
|
CONFIG_ALIGNMENT_TRAP=y
|
||||||
|
# CONFIG_UACCESS_WITH_MEMCPY is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
|
@ -362,6 +381,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||||
# CONFIG_ECONET is not set
|
# CONFIG_ECONET is not set
|
||||||
# CONFIG_WAN_ROUTER is not set
|
# CONFIG_WAN_ROUTER is not set
|
||||||
# CONFIG_PHONET is not set
|
# CONFIG_PHONET is not set
|
||||||
|
# CONFIG_IEEE802154 is not set
|
||||||
# CONFIG_NET_SCHED is not set
|
# CONFIG_NET_SCHED is not set
|
||||||
# CONFIG_DCB is not set
|
# CONFIG_DCB is not set
|
||||||
|
|
||||||
|
@ -465,7 +485,16 @@ CONFIG_MTD_PHYSMAP=y
|
||||||
# CONFIG_MTD_DOC2000 is not set
|
# CONFIG_MTD_DOC2000 is not set
|
||||||
# CONFIG_MTD_DOC2001 is not set
|
# CONFIG_MTD_DOC2001 is not set
|
||||||
# CONFIG_MTD_DOC2001PLUS is not set
|
# CONFIG_MTD_DOC2001PLUS is not set
|
||||||
# CONFIG_MTD_NAND is not set
|
CONFIG_MTD_NAND=y
|
||||||
|
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||||
|
# CONFIG_MTD_NAND_ECC_SMC is not set
|
||||||
|
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||||
|
# CONFIG_MTD_NAND_GPIO is not set
|
||||||
|
CONFIG_MTD_NAND_IDS=y
|
||||||
|
# CONFIG_MTD_NAND_DISKONCHIP is not set
|
||||||
|
# CONFIG_MTD_NAND_NANDSIM is not set
|
||||||
|
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||||
|
CONFIG_MTD_NAND_MXC=y
|
||||||
# CONFIG_MTD_ONENAND is not set
|
# CONFIG_MTD_ONENAND is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -476,10 +505,30 @@ CONFIG_MTD_PHYSMAP=y
|
||||||
#
|
#
|
||||||
# UBI - Unsorted block images
|
# UBI - Unsorted block images
|
||||||
#
|
#
|
||||||
# CONFIG_MTD_UBI is not set
|
CONFIG_MTD_UBI=y
|
||||||
|
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||||
|
CONFIG_MTD_UBI_BEB_RESERVE=1
|
||||||
|
# CONFIG_MTD_UBI_GLUEBI is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# UBI debugging options
|
||||||
|
#
|
||||||
|
# CONFIG_MTD_UBI_DEBUG is not set
|
||||||
# CONFIG_PARPORT is not set
|
# CONFIG_PARPORT is not set
|
||||||
# CONFIG_BLK_DEV is not set
|
# CONFIG_BLK_DEV is not set
|
||||||
# CONFIG_MISC_DEVICES is not set
|
CONFIG_MISC_DEVICES=y
|
||||||
|
# CONFIG_ICS932S401 is not set
|
||||||
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
|
# CONFIG_ISL29003 is not set
|
||||||
|
# CONFIG_C2PORT is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# EEPROM support
|
||||||
|
#
|
||||||
|
CONFIG_EEPROM_AT24=y
|
||||||
|
# CONFIG_EEPROM_LEGACY is not set
|
||||||
|
# CONFIG_EEPROM_MAX6875 is not set
|
||||||
|
# CONFIG_EEPROM_93CX6 is not set
|
||||||
CONFIG_HAVE_IDE=y
|
CONFIG_HAVE_IDE=y
|
||||||
# CONFIG_IDE is not set
|
# CONFIG_IDE is not set
|
||||||
|
|
||||||
|
@ -493,7 +542,6 @@ CONFIG_HAVE_IDE=y
|
||||||
# CONFIG_ATA is not set
|
# CONFIG_ATA is not set
|
||||||
# CONFIG_MD is not set
|
# CONFIG_MD is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
|
||||||
# CONFIG_DUMMY is not set
|
# CONFIG_DUMMY is not set
|
||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_MACVLAN is not set
|
# CONFIG_MACVLAN is not set
|
||||||
|
@ -528,7 +576,7 @@ CONFIG_MII=y
|
||||||
# CONFIG_ETHOC is not set
|
# CONFIG_ETHOC is not set
|
||||||
# CONFIG_SMC911X is not set
|
# CONFIG_SMC911X is not set
|
||||||
CONFIG_SMSC911X=y
|
CONFIG_SMSC911X=y
|
||||||
# CONFIG_DNET is not set
|
CONFIG_DNET=y
|
||||||
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
# CONFIG_IBM_NEW_EMAC_ZMII is not set
|
||||||
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
# CONFIG_IBM_NEW_EMAC_RGMII is not set
|
||||||
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
# CONFIG_IBM_NEW_EMAC_TAH is not set
|
||||||
|
@ -537,8 +585,10 @@ CONFIG_SMSC911X=y
|
||||||
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
|
||||||
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
|
||||||
# CONFIG_B44 is not set
|
# CONFIG_B44 is not set
|
||||||
CONFIG_CS89x0=y
|
# CONFIG_CS89x0 is not set
|
||||||
CONFIG_CS89x0_NONISA_IRQ=y
|
# CONFIG_KS8842 is not set
|
||||||
|
CONFIG_FEC=y
|
||||||
|
# CONFIG_FEC2 is not set
|
||||||
# CONFIG_NETDEV_1000 is not set
|
# CONFIG_NETDEV_1000 is not set
|
||||||
# CONFIG_NETDEV_10000 is not set
|
# CONFIG_NETDEV_10000 is not set
|
||||||
|
|
||||||
|
@ -609,6 +659,7 @@ CONFIG_I2C_HELPER_AUTO=y
|
||||||
#
|
#
|
||||||
# I2C system bus drivers (mostly embedded / system-on-chip)
|
# I2C system bus drivers (mostly embedded / system-on-chip)
|
||||||
#
|
#
|
||||||
|
# CONFIG_I2C_DESIGNWARE is not set
|
||||||
# CONFIG_I2C_GPIO is not set
|
# CONFIG_I2C_GPIO is not set
|
||||||
CONFIG_I2C_IMX=y
|
CONFIG_I2C_IMX=y
|
||||||
# CONFIG_I2C_OCORES is not set
|
# CONFIG_I2C_OCORES is not set
|
||||||
|
@ -633,7 +684,6 @@ CONFIG_I2C_IMX=y
|
||||||
# CONFIG_SENSORS_PCF8574 is not set
|
# CONFIG_SENSORS_PCF8574 is not set
|
||||||
# CONFIG_PCF8575 is not set
|
# CONFIG_PCF8575 is not set
|
||||||
# CONFIG_SENSORS_PCA9539 is not set
|
# CONFIG_SENSORS_PCA9539 is not set
|
||||||
# CONFIG_SENSORS_MAX6875 is not set
|
|
||||||
# CONFIG_SENSORS_TSL2550 is not set
|
# CONFIG_SENSORS_TSL2550 is not set
|
||||||
# CONFIG_I2C_DEBUG_CORE is not set
|
# CONFIG_I2C_DEBUG_CORE is not set
|
||||||
# CONFIG_I2C_DEBUG_ALGO is not set
|
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||||
|
@ -669,6 +719,7 @@ CONFIG_W1=y
|
||||||
#
|
#
|
||||||
# CONFIG_W1_MASTER_DS2482 is not set
|
# CONFIG_W1_MASTER_DS2482 is not set
|
||||||
CONFIG_W1_MASTER_MXC=y
|
CONFIG_W1_MASTER_MXC=y
|
||||||
|
# CONFIG_W1_MASTER_DS1WM is not set
|
||||||
# CONFIG_W1_MASTER_GPIO is not set
|
# CONFIG_W1_MASTER_GPIO is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -703,6 +754,8 @@ CONFIG_SSB_POSSIBLE=y
|
||||||
# CONFIG_TPS65010 is not set
|
# CONFIG_TPS65010 is not set
|
||||||
# CONFIG_TWL4030_CORE is not set
|
# CONFIG_TWL4030_CORE is not set
|
||||||
# CONFIG_MFD_TMIO is not set
|
# CONFIG_MFD_TMIO is not set
|
||||||
|
# CONFIG_MFD_T7L66XB is not set
|
||||||
|
# CONFIG_MFD_TC6387XB is not set
|
||||||
# CONFIG_MFD_TC6393XB is not set
|
# CONFIG_MFD_TC6393XB is not set
|
||||||
# CONFIG_PMIC_DA903X is not set
|
# CONFIG_PMIC_DA903X is not set
|
||||||
# CONFIG_MFD_WM8400 is not set
|
# CONFIG_MFD_WM8400 is not set
|
||||||
|
@ -711,10 +764,8 @@ CONFIG_MFD_WM8350_CONFIG_MODE_0=y
|
||||||
CONFIG_MFD_WM8352_CONFIG_MODE_0=y
|
CONFIG_MFD_WM8352_CONFIG_MODE_0=y
|
||||||
CONFIG_MFD_WM8350_I2C=y
|
CONFIG_MFD_WM8350_I2C=y
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
# CONFIG_MFD_PCF50633 is not set
|
||||||
|
# CONFIG_AB3100_CORE is not set
|
||||||
#
|
CONFIG_MEDIA_SUPPORT=y
|
||||||
# Multimedia devices
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Multimedia core support
|
# Multimedia core support
|
||||||
|
@ -758,8 +809,10 @@ CONFIG_SOC_CAMERA_MT9T031=y
|
||||||
CONFIG_SOC_CAMERA_MT9V022=y
|
CONFIG_SOC_CAMERA_MT9V022=y
|
||||||
CONFIG_SOC_CAMERA_TW9910=y
|
CONFIG_SOC_CAMERA_TW9910=y
|
||||||
# CONFIG_SOC_CAMERA_PLATFORM is not set
|
# CONFIG_SOC_CAMERA_PLATFORM is not set
|
||||||
# CONFIG_SOC_CAMERA_OV772X is not set
|
CONFIG_SOC_CAMERA_OV772X=y
|
||||||
|
CONFIG_MX3_VIDEO=y
|
||||||
CONFIG_VIDEO_MX3=y
|
CONFIG_VIDEO_MX3=y
|
||||||
|
# CONFIG_VIDEO_SH_MOBILE_CEU is not set
|
||||||
# CONFIG_RADIO_ADAPTERS is not set
|
# CONFIG_RADIO_ADAPTERS is not set
|
||||||
# CONFIG_DAB is not set
|
# CONFIG_DAB is not set
|
||||||
|
|
||||||
|
@ -847,8 +900,11 @@ CONFIG_REGULATOR=y
|
||||||
# CONFIG_REGULATOR_DEBUG is not set
|
# CONFIG_REGULATOR_DEBUG is not set
|
||||||
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
|
||||||
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
|
||||||
|
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
|
||||||
# CONFIG_REGULATOR_BQ24022 is not set
|
# CONFIG_REGULATOR_BQ24022 is not set
|
||||||
|
# CONFIG_REGULATOR_MAX1586 is not set
|
||||||
CONFIG_REGULATOR_WM8350=y
|
CONFIG_REGULATOR_WM8350=y
|
||||||
|
# CONFIG_REGULATOR_LP3971 is not set
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
|
@ -861,10 +917,12 @@ CONFIG_REGULATOR_WM8350=y
|
||||||
# CONFIG_REISERFS_FS is not set
|
# CONFIG_REISERFS_FS is not set
|
||||||
# CONFIG_JFS_FS is not set
|
# CONFIG_JFS_FS is not set
|
||||||
# CONFIG_FS_POSIX_ACL is not set
|
# CONFIG_FS_POSIX_ACL is not set
|
||||||
CONFIG_FILE_LOCKING=y
|
|
||||||
# CONFIG_XFS_FS is not set
|
# CONFIG_XFS_FS is not set
|
||||||
|
# CONFIG_GFS2_FS is not set
|
||||||
# CONFIG_OCFS2_FS is not set
|
# CONFIG_OCFS2_FS is not set
|
||||||
# CONFIG_BTRFS_FS is not set
|
# CONFIG_BTRFS_FS is not set
|
||||||
|
CONFIG_FILE_LOCKING=y
|
||||||
|
CONFIG_FSNOTIFY=y
|
||||||
# CONFIG_DNOTIFY is not set
|
# CONFIG_DNOTIFY is not set
|
||||||
CONFIG_INOTIFY=y
|
CONFIG_INOTIFY=y
|
||||||
CONFIG_INOTIFY_USER=y
|
CONFIG_INOTIFY_USER=y
|
||||||
|
@ -921,6 +979,12 @@ CONFIG_JFFS2_ZLIB=y
|
||||||
# CONFIG_JFFS2_LZO is not set
|
# CONFIG_JFFS2_LZO is not set
|
||||||
CONFIG_JFFS2_RTIME=y
|
CONFIG_JFFS2_RTIME=y
|
||||||
# CONFIG_JFFS2_RUBIN is not set
|
# CONFIG_JFFS2_RUBIN is not set
|
||||||
|
CONFIG_UBIFS_FS=y
|
||||||
|
# CONFIG_UBIFS_FS_XATTR is not set
|
||||||
|
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
|
||||||
|
CONFIG_UBIFS_FS_LZO=y
|
||||||
|
CONFIG_UBIFS_FS_ZLIB=y
|
||||||
|
# CONFIG_UBIFS_FS_DEBUG is not set
|
||||||
# CONFIG_CRAMFS is not set
|
# CONFIG_CRAMFS is not set
|
||||||
# CONFIG_SQUASHFS is not set
|
# CONFIG_SQUASHFS is not set
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
|
@ -937,6 +1001,7 @@ CONFIG_NFS_FS=y
|
||||||
CONFIG_NFS_V3=y
|
CONFIG_NFS_V3=y
|
||||||
# CONFIG_NFS_V3_ACL is not set
|
# CONFIG_NFS_V3_ACL is not set
|
||||||
CONFIG_NFS_V4=y
|
CONFIG_NFS_V4=y
|
||||||
|
# CONFIG_NFS_V4_1 is not set
|
||||||
CONFIG_ROOT_NFS=y
|
CONFIG_ROOT_NFS=y
|
||||||
# CONFIG_NFSD is not set
|
# CONFIG_NFSD is not set
|
||||||
CONFIG_LOCKD=y
|
CONFIG_LOCKD=y
|
||||||
|
@ -979,22 +1044,7 @@ CONFIG_FRAME_WARN=1024
|
||||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
CONFIG_TRACING_SUPPORT=y
|
CONFIG_TRACING_SUPPORT=y
|
||||||
|
# CONFIG_FTRACE is not set
|
||||||
#
|
|
||||||
# Tracers
|
|
||||||
#
|
|
||||||
# CONFIG_FUNCTION_TRACER is not set
|
|
||||||
# CONFIG_IRQSOFF_TRACER is not set
|
|
||||||
# CONFIG_PREEMPT_TRACER is not set
|
|
||||||
# CONFIG_SCHED_TRACER is not set
|
|
||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
|
||||||
# CONFIG_EVENT_TRACER is not set
|
|
||||||
# CONFIG_BOOT_TRACER is not set
|
|
||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
|
||||||
# CONFIG_STACK_TRACER is not set
|
|
||||||
# CONFIG_KMEMTRACE is not set
|
|
||||||
# CONFIG_WORKQUEUE_TRACER is not set
|
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
|
||||||
# CONFIG_SAMPLES is not set
|
# CONFIG_SAMPLES is not set
|
||||||
CONFIG_HAVE_ARCH_KGDB=y
|
CONFIG_HAVE_ARCH_KGDB=y
|
||||||
CONFIG_ARM_UNWIND=y
|
CONFIG_ARM_UNWIND=y
|
||||||
|
@ -1094,9 +1144,9 @@ CONFIG_CRYPTO_DES=y
|
||||||
#
|
#
|
||||||
# Compression
|
# Compression
|
||||||
#
|
#
|
||||||
# CONFIG_CRYPTO_DEFLATE is not set
|
CONFIG_CRYPTO_DEFLATE=y
|
||||||
# CONFIG_CRYPTO_ZLIB is not set
|
# CONFIG_CRYPTO_ZLIB is not set
|
||||||
# CONFIG_CRYPTO_LZO is not set
|
CONFIG_CRYPTO_LZO=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Random Number Generation
|
# Random Number Generation
|
||||||
|
@ -1109,9 +1159,10 @@ CONFIG_CRYPTO_HW=y
|
||||||
# Library routines
|
# Library routines
|
||||||
#
|
#
|
||||||
CONFIG_BITREVERSE=y
|
CONFIG_BITREVERSE=y
|
||||||
|
CONFIG_RATIONAL=y
|
||||||
CONFIG_GENERIC_FIND_LAST_BIT=y
|
CONFIG_GENERIC_FIND_LAST_BIT=y
|
||||||
# CONFIG_CRC_CCITT is not set
|
# CONFIG_CRC_CCITT is not set
|
||||||
# CONFIG_CRC16 is not set
|
CONFIG_CRC16=y
|
||||||
# CONFIG_CRC_T10DIF is not set
|
# CONFIG_CRC_T10DIF is not set
|
||||||
# CONFIG_CRC_ITU_T is not set
|
# CONFIG_CRC_ITU_T is not set
|
||||||
CONFIG_CRC32=y
|
CONFIG_CRC32=y
|
||||||
|
@ -1119,6 +1170,8 @@ CONFIG_CRC32=y
|
||||||
# CONFIG_LIBCRC32C is not set
|
# CONFIG_LIBCRC32C is not set
|
||||||
CONFIG_ZLIB_INFLATE=y
|
CONFIG_ZLIB_INFLATE=y
|
||||||
CONFIG_ZLIB_DEFLATE=y
|
CONFIG_ZLIB_DEFLATE=y
|
||||||
|
CONFIG_LZO_COMPRESS=y
|
||||||
|
CONFIG_LZO_DECOMPRESS=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=y
|
CONFIG_HAS_DMA=y
|
||||||
|
|
|
@ -1107,7 +1107,7 @@ CONFIG_USB_ZERO=m
|
||||||
CONFIG_USB_OTG_UTILS=y
|
CONFIG_USB_OTG_UTILS=y
|
||||||
# CONFIG_USB_GPIO_VBUS is not set
|
# CONFIG_USB_GPIO_VBUS is not set
|
||||||
# CONFIG_ISP1301_OMAP is not set
|
# CONFIG_ISP1301_OMAP is not set
|
||||||
CONFIG_TWL4030_USB=y
|
# CONFIG_TWL4030_USB is not set
|
||||||
# CONFIG_NOP_USB_XCEIV is not set
|
# CONFIG_NOP_USB_XCEIV is not set
|
||||||
CONFIG_MMC=y
|
CONFIG_MMC=y
|
||||||
# CONFIG_MMC_DEBUG is not set
|
# CONFIG_MMC_DEBUG is not set
|
||||||
|
|
|
@ -159,8 +159,6 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
|
||||||
|
|
||||||
#else /* ARM_ARCH_6 */
|
#else /* ARM_ARCH_6 */
|
||||||
|
|
||||||
#include <asm/system.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
#error SMP not supported on pre-ARMv6 CPUs
|
#error SMP not supported on pre-ARMv6 CPUs
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -102,8 +102,8 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page)
|
#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page)
|
||||||
#define pte_free_tlb(tlb, ptep) pte_free((tlb)->mm, ptep)
|
#define pte_free_tlb(tlb, ptep, addr) pte_free((tlb)->mm, ptep)
|
||||||
#define pmd_free_tlb(tlb, pmdp) pmd_free((tlb)->mm, pmdp)
|
#define pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, pmdp)
|
||||||
|
|
||||||
#define tlb_migrate_finish(mm) do { } while (0)
|
#define tlb_migrate_finish(mm) do { } while (0)
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ trace:
|
||||||
sub r0, r0, #MCOUNT_INSN_SIZE
|
sub r0, r0, #MCOUNT_INSN_SIZE
|
||||||
mov lr, pc
|
mov lr, pc
|
||||||
mov pc, r2
|
mov pc, r2
|
||||||
mov lr, r1 @ restore lr
|
ldr lr, [fp, #-4] @ restore lr
|
||||||
ldmia sp!, {r0-r3, pc}
|
ldmia sp!, {r0-r3, pc}
|
||||||
|
|
||||||
#endif /* CONFIG_DYNAMIC_FTRACE */
|
#endif /* CONFIG_DYNAMIC_FTRACE */
|
||||||
|
|
|
@ -133,7 +133,7 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CRUNCH
|
#ifdef CONFIG_CRUNCH
|
||||||
static int preserve_crunch_context(struct crunch_sigframe *frame)
|
static int preserve_crunch_context(struct crunch_sigframe __user *frame)
|
||||||
{
|
{
|
||||||
char kbuf[sizeof(*frame) + 8];
|
char kbuf[sizeof(*frame) + 8];
|
||||||
struct crunch_sigframe *kframe;
|
struct crunch_sigframe *kframe;
|
||||||
|
@ -146,7 +146,7 @@ static int preserve_crunch_context(struct crunch_sigframe *frame)
|
||||||
return __copy_to_user(frame, kframe, sizeof(*frame));
|
return __copy_to_user(frame, kframe, sizeof(*frame));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int restore_crunch_context(struct crunch_sigframe *frame)
|
static int restore_crunch_context(struct crunch_sigframe __user *frame)
|
||||||
{
|
{
|
||||||
char kbuf[sizeof(*frame) + 8];
|
char kbuf[sizeof(*frame) + 8];
|
||||||
struct crunch_sigframe *kframe;
|
struct crunch_sigframe *kframe;
|
||||||
|
|
102
arch/arm/mach-at91/include/mach/at_hdmac.h
Normal file
102
arch/arm/mach-at91/include/mach/at_hdmac.h
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
/*
|
||||||
|
* Header file for the Atmel AHB DMA Controller driver
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008 Atmel Corporation
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*/
|
||||||
|
#ifndef AT_HDMAC_H
|
||||||
|
#define AT_HDMAC_H
|
||||||
|
|
||||||
|
#include <linux/dmaengine.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct at_dma_platform_data - Controller configuration parameters
|
||||||
|
* @nr_channels: Number of channels supported by hardware (max 8)
|
||||||
|
* @cap_mask: dma_capability flags supported by the platform
|
||||||
|
*/
|
||||||
|
struct at_dma_platform_data {
|
||||||
|
unsigned int nr_channels;
|
||||||
|
dma_cap_mask_t cap_mask;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum at_dma_slave_width - DMA slave register access width.
|
||||||
|
* @AT_DMA_SLAVE_WIDTH_8BIT: Do 8-bit slave register accesses
|
||||||
|
* @AT_DMA_SLAVE_WIDTH_16BIT: Do 16-bit slave register accesses
|
||||||
|
* @AT_DMA_SLAVE_WIDTH_32BIT: Do 32-bit slave register accesses
|
||||||
|
*/
|
||||||
|
enum at_dma_slave_width {
|
||||||
|
AT_DMA_SLAVE_WIDTH_8BIT = 0,
|
||||||
|
AT_DMA_SLAVE_WIDTH_16BIT,
|
||||||
|
AT_DMA_SLAVE_WIDTH_32BIT,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct at_dma_slave - Controller-specific information about a slave
|
||||||
|
* @dma_dev: required DMA master device
|
||||||
|
* @tx_reg: physical address of data register used for
|
||||||
|
* memory-to-peripheral transfers
|
||||||
|
* @rx_reg: physical address of data register used for
|
||||||
|
* peripheral-to-memory transfers
|
||||||
|
* @reg_width: peripheral register width
|
||||||
|
* @cfg: Platform-specific initializer for the CFG register
|
||||||
|
* @ctrla: Platform-specific initializer for the CTRLA register
|
||||||
|
*/
|
||||||
|
struct at_dma_slave {
|
||||||
|
struct device *dma_dev;
|
||||||
|
dma_addr_t tx_reg;
|
||||||
|
dma_addr_t rx_reg;
|
||||||
|
enum at_dma_slave_width reg_width;
|
||||||
|
u32 cfg;
|
||||||
|
u32 ctrla;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Platform-configurable bits in CFG */
|
||||||
|
#define ATC_SRC_PER(h) (0xFU & (h)) /* Channel src rq associated with periph handshaking ifc h */
|
||||||
|
#define ATC_DST_PER(h) ((0xFU & (h)) << 4) /* Channel dst rq associated with periph handshaking ifc h */
|
||||||
|
#define ATC_SRC_REP (0x1 << 8) /* Source Replay Mod */
|
||||||
|
#define ATC_SRC_H2SEL (0x1 << 9) /* Source Handshaking Mod */
|
||||||
|
#define ATC_SRC_H2SEL_SW (0x0 << 9)
|
||||||
|
#define ATC_SRC_H2SEL_HW (0x1 << 9)
|
||||||
|
#define ATC_DST_REP (0x1 << 12) /* Destination Replay Mod */
|
||||||
|
#define ATC_DST_H2SEL (0x1 << 13) /* Destination Handshaking Mod */
|
||||||
|
#define ATC_DST_H2SEL_SW (0x0 << 13)
|
||||||
|
#define ATC_DST_H2SEL_HW (0x1 << 13)
|
||||||
|
#define ATC_SOD (0x1 << 16) /* Stop On Done */
|
||||||
|
#define ATC_LOCK_IF (0x1 << 20) /* Interface Lock */
|
||||||
|
#define ATC_LOCK_B (0x1 << 21) /* AHB Bus Lock */
|
||||||
|
#define ATC_LOCK_IF_L (0x1 << 22) /* Master Interface Arbiter Lock */
|
||||||
|
#define ATC_LOCK_IF_L_CHUNK (0x0 << 22)
|
||||||
|
#define ATC_LOCK_IF_L_BUFFER (0x1 << 22)
|
||||||
|
#define ATC_AHB_PROT_MASK (0x7 << 24) /* AHB Protection */
|
||||||
|
#define ATC_FIFOCFG_MASK (0x3 << 28) /* FIFO Request Configuration */
|
||||||
|
#define ATC_FIFOCFG_LARGESTBURST (0x0 << 28)
|
||||||
|
#define ATC_FIFOCFG_HALFFIFO (0x1 << 28)
|
||||||
|
#define ATC_FIFOCFG_ENOUGHSPACE (0x2 << 28)
|
||||||
|
|
||||||
|
/* Platform-configurable bits in CTRLA */
|
||||||
|
#define ATC_SCSIZE_MASK (0x7 << 16) /* Source Chunk Transfer Size */
|
||||||
|
#define ATC_SCSIZE_1 (0x0 << 16)
|
||||||
|
#define ATC_SCSIZE_4 (0x1 << 16)
|
||||||
|
#define ATC_SCSIZE_8 (0x2 << 16)
|
||||||
|
#define ATC_SCSIZE_16 (0x3 << 16)
|
||||||
|
#define ATC_SCSIZE_32 (0x4 << 16)
|
||||||
|
#define ATC_SCSIZE_64 (0x5 << 16)
|
||||||
|
#define ATC_SCSIZE_128 (0x6 << 16)
|
||||||
|
#define ATC_SCSIZE_256 (0x7 << 16)
|
||||||
|
#define ATC_DCSIZE_MASK (0x7 << 20) /* Destination Chunk Transfer Size */
|
||||||
|
#define ATC_DCSIZE_1 (0x0 << 20)
|
||||||
|
#define ATC_DCSIZE_4 (0x1 << 20)
|
||||||
|
#define ATC_DCSIZE_8 (0x2 << 20)
|
||||||
|
#define ATC_DCSIZE_16 (0x3 << 20)
|
||||||
|
#define ATC_DCSIZE_32 (0x4 << 20)
|
||||||
|
#define ATC_DCSIZE_64 (0x5 << 20)
|
||||||
|
#define ATC_DCSIZE_128 (0x6 << 20)
|
||||||
|
#define ATC_DCSIZE_256 (0x7 << 20)
|
||||||
|
|
||||||
|
#endif /* AT_HDMAC_H */
|
|
@ -37,7 +37,6 @@
|
||||||
#include <mach/serial.h>
|
#include <mach/serial.h>
|
||||||
#include <mach/nand.h>
|
#include <mach/nand.h>
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
#include <mach/common.h>
|
|
||||||
|
|
||||||
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x01e10000
|
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x01e10000
|
||||||
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
|
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
#include <mach/serial.h>
|
#include <mach/serial.h>
|
||||||
#include <mach/nand.h>
|
#include <mach/nand.h>
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
#include <mach/common.h>
|
|
||||||
|
|
||||||
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x01e10000
|
#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x01e10000
|
||||||
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
|
#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
|
||||||
|
|
|
@ -45,7 +45,6 @@
|
||||||
#include <mach/nand.h>
|
#include <mach/nand.h>
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
#include <mach/emac.h>
|
#include <mach/emac.h>
|
||||||
#include <mach/common.h>
|
|
||||||
|
|
||||||
#define DM644X_EVM_PHY_MASK (0x2)
|
#define DM644X_EVM_PHY_MASK (0x2)
|
||||||
#define DM644X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
#define DM644X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
#include <mach/i2c.h>
|
#include <mach/i2c.h>
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
#include <mach/emac.h>
|
#include <mach/emac.h>
|
||||||
#include <mach/common.h>
|
|
||||||
|
|
||||||
#define DM646X_EVM_PHY_MASK (0x2)
|
#define DM646X_EVM_PHY_MASK (0x2)
|
||||||
#define DM646X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
#define DM646X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
||||||
|
|
|
@ -52,7 +52,6 @@
|
||||||
#include <mach/serial.h>
|
#include <mach/serial.h>
|
||||||
#include <mach/psc.h>
|
#include <mach/psc.h>
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/common.h>
|
|
||||||
|
|
||||||
#define SFFSDR_PHY_MASK (0x2)
|
#define SFFSDR_PHY_MASK (0x2)
|
||||||
#define SFFSDR_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
#define SFFSDR_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
|
||||||
|
|
|
@ -41,9 +41,6 @@
|
||||||
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
||||||
|
|
||||||
|
|
||||||
#define TS72XX_NOR_PHYS_BASE 0x60000000
|
|
||||||
#define TS72XX_NOR2_PHYS_BASE 0x62000000
|
|
||||||
|
|
||||||
#define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000
|
#define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000
|
||||||
#define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000
|
#define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000
|
||||||
#define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000
|
#define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000
|
||||||
|
|
|
@ -112,13 +112,16 @@ static void __init ts72xx_map_io(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* NOR flash (TS-7200 only)
|
||||||
|
*************************************************************************/
|
||||||
static struct physmap_flash_data ts72xx_flash_data = {
|
static struct physmap_flash_data ts72xx_flash_data = {
|
||||||
.width = 1,
|
.width = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource ts72xx_flash_resource = {
|
static struct resource ts72xx_flash_resource = {
|
||||||
.start = TS72XX_NOR_PHYS_BASE,
|
.start = EP93XX_CS6_PHYS_BASE,
|
||||||
.end = TS72XX_NOR_PHYS_BASE + SZ_16M - 1,
|
.end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -132,6 +135,12 @@ static struct platform_device ts72xx_flash = {
|
||||||
.resource = &ts72xx_flash_resource,
|
.resource = &ts72xx_flash_resource,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void __init ts72xx_register_flash(void)
|
||||||
|
{
|
||||||
|
if (board_is_ts7200())
|
||||||
|
platform_device_register(&ts72xx_flash);
|
||||||
|
}
|
||||||
|
|
||||||
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
|
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
|
||||||
{
|
{
|
||||||
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
||||||
|
@ -165,8 +174,7 @@ static struct ep93xx_eth_data ts72xx_eth_data = {
|
||||||
static void __init ts72xx_init_machine(void)
|
static void __init ts72xx_init_machine(void)
|
||||||
{
|
{
|
||||||
ep93xx_init_devices();
|
ep93xx_init_devices();
|
||||||
if (board_is_ts7200())
|
ts72xx_register_flash();
|
||||||
platform_device_register(&ts72xx_flash);
|
|
||||||
platform_device_register(&ts72xx_rtc_device);
|
platform_device_register(&ts72xx_rtc_device);
|
||||||
|
|
||||||
ep93xx_register_eth(&ts72xx_eth_data, 1);
|
ep93xx_register_eth(&ts72xx_eth_data, 1);
|
||||||
|
|
|
@ -16,6 +16,11 @@
|
||||||
|
|
||||||
#include <asm/sizes.h>
|
#include <asm/sizes.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clocks are derived from MCLK, which is 25Mhz
|
||||||
|
*/
|
||||||
|
#define KS8695_CLOCK_RATE 25000000
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Physical RAM address.
|
* Physical RAM address.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
#ifndef __ASM_ARCH_TIMEX_H
|
#ifndef __ASM_ARCH_TIMEX_H
|
||||||
#define __ASM_ARCH_TIMEX_H
|
#define __ASM_ARCH_TIMEX_H
|
||||||
|
|
||||||
/* timers are derived from MCLK, which is 25MHz */
|
#include <mach/hardware.h>
|
||||||
#define CLOCK_TICK_RATE 25000000
|
|
||||||
|
#define CLOCK_TICK_RATE KS8695_CLOCK_RATE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -245,6 +245,9 @@ static int ks8695_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs
|
||||||
|
|
||||||
static void __init ks8695_pci_preinit(void)
|
static void __init ks8695_pci_preinit(void)
|
||||||
{
|
{
|
||||||
|
/* make software reset to avoid freeze if PCI bus was messed up */
|
||||||
|
__raw_writel(0x80000000, KS8695_PCI_VA + KS8695_PBCS);
|
||||||
|
|
||||||
/* stage 1 initialization, subid, subdevice = 0x0001 */
|
/* stage 1 initialization, subid, subdevice = 0x0001 */
|
||||||
__raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID);
|
__raw_writel(0x00010001, KS8695_PCI_VA + KS8695_CRCSID);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include <mach/irqs.h>
|
#include <mach/irqs.h>
|
||||||
#include <mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <mach/irqs.h>
|
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/cpu.h>
|
#include <mach/cpu.h>
|
||||||
#include <mach/mcbsp.h>
|
#include <mach/mcbsp.h>
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include <linux/spi/spi.h>
|
#include <linux/spi/spi.h>
|
||||||
#include <linux/spi/ads7846.h>
|
#include <linux/spi/ads7846.h>
|
||||||
#include <linux/i2c/twl4030.h>
|
#include <linux/i2c/twl4030.h>
|
||||||
|
#include <linux/usb/otg.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
|
@ -307,6 +308,10 @@ static void __init omap3_evm_init(void)
|
||||||
ARRAY_SIZE(omap3evm_spi_board_info));
|
ARRAY_SIZE(omap3evm_spi_board_info));
|
||||||
|
|
||||||
omap_serial_init();
|
omap_serial_init();
|
||||||
|
#ifdef CONFIG_NOP_USB_XCEIV
|
||||||
|
/* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
|
||||||
|
usb_nop_xceiv_register();
|
||||||
|
#endif
|
||||||
usb_musb_init();
|
usb_musb_init();
|
||||||
ads7846_dev_init();
|
ads7846_dev_init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include <mach/irqs.h>
|
#include <mach/irqs.h>
|
||||||
#include <mach/dma.h>
|
#include <mach/dma.h>
|
||||||
#include <mach/irqs.h>
|
|
||||||
#include <mach/mux.h>
|
#include <mach/mux.h>
|
||||||
#include <mach/cpu.h>
|
#include <mach/cpu.h>
|
||||||
#include <mach/mcbsp.h>
|
#include <mach/mcbsp.h>
|
||||||
|
|
|
@ -155,20 +155,6 @@ static struct platform_device musb_device = {
|
||||||
.resource = musb_resources,
|
.resource = musb_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_NOP_USB_XCEIV
|
|
||||||
static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);
|
|
||||||
|
|
||||||
static struct platform_device nop_xceiv_device = {
|
|
||||||
.name = "nop_usb_xceiv",
|
|
||||||
.id = -1,
|
|
||||||
.dev = {
|
|
||||||
.dma_mask = &nop_xceiv_dmamask,
|
|
||||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
|
||||||
.platform_data = NULL,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void __init usb_musb_init(void)
|
void __init usb_musb_init(void)
|
||||||
{
|
{
|
||||||
if (cpu_is_omap243x())
|
if (cpu_is_omap243x())
|
||||||
|
@ -183,13 +169,6 @@ void __init usb_musb_init(void)
|
||||||
*/
|
*/
|
||||||
musb_plat.clock = "ick";
|
musb_plat.clock = "ick";
|
||||||
|
|
||||||
#ifdef CONFIG_NOP_USB_XCEIV
|
|
||||||
if (platform_device_register(&nop_xceiv_device) < 0) {
|
|
||||||
printk(KERN_ERR "Unable to register NOP-XCEIV device\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (platform_device_register(&musb_device) < 0) {
|
if (platform_device_register(&musb_device) < 0) {
|
||||||
printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
|
printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1141,12 +1141,16 @@ struct power_supply_info em_x270_psy_info = {
|
||||||
|
|
||||||
static void em_x270_battery_low(void)
|
static void em_x270_battery_low(void)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_APM_EMULATION)
|
||||||
apm_queue_event(APM_LOW_BATTERY);
|
apm_queue_event(APM_LOW_BATTERY);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void em_x270_battery_critical(void)
|
static void em_x270_battery_critical(void)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_APM_EMULATION)
|
||||||
apm_queue_event(APM_CRITICAL_SUSPEND);
|
apm_queue_event(APM_CRITICAL_SUSPEND);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
struct da9030_battery_info em_x270_batterty_info = {
|
struct da9030_battery_info em_x270_batterty_info = {
|
||||||
|
|
|
@ -128,6 +128,10 @@ static unsigned long palmld_pin_config[] __initdata = {
|
||||||
GPIO38_GPIO, /* wifi ready */
|
GPIO38_GPIO, /* wifi ready */
|
||||||
GPIO81_GPIO, /* wifi reset */
|
GPIO81_GPIO, /* wifi reset */
|
||||||
|
|
||||||
|
/* FFUART */
|
||||||
|
GPIO34_FFUART_RXD,
|
||||||
|
GPIO39_FFUART_TXD,
|
||||||
|
|
||||||
/* HDD */
|
/* HDD */
|
||||||
GPIO98_GPIO, /* HDD reset */
|
GPIO98_GPIO, /* HDD reset */
|
||||||
GPIO115_GPIO, /* HDD power */
|
GPIO115_GPIO, /* HDD power */
|
||||||
|
|
|
@ -111,6 +111,10 @@ static unsigned long palmt5_pin_config[] __initdata = {
|
||||||
/* PWM */
|
/* PWM */
|
||||||
GPIO16_PWM0_OUT,
|
GPIO16_PWM0_OUT,
|
||||||
|
|
||||||
|
/* FFUART */
|
||||||
|
GPIO34_FFUART_RXD,
|
||||||
|
GPIO39_FFUART_TXD,
|
||||||
|
|
||||||
/* MISC */
|
/* MISC */
|
||||||
GPIO10_GPIO, /* hotsync button */
|
GPIO10_GPIO, /* hotsync button */
|
||||||
GPIO90_GPIO, /* power detect */
|
GPIO90_GPIO, /* power detect */
|
||||||
|
|
|
@ -127,6 +127,10 @@ static unsigned long palmtx_pin_config[] __initdata = {
|
||||||
GPIO76_LCD_PCLK,
|
GPIO76_LCD_PCLK,
|
||||||
GPIO77_LCD_BIAS,
|
GPIO77_LCD_BIAS,
|
||||||
|
|
||||||
|
/* FFUART */
|
||||||
|
GPIO34_FFUART_RXD,
|
||||||
|
GPIO39_FFUART_TXD,
|
||||||
|
|
||||||
/* MISC. */
|
/* MISC. */
|
||||||
GPIO10_GPIO, /* hotsync button */
|
GPIO10_GPIO, /* hotsync button */
|
||||||
GPIO12_GPIO, /* power detect */
|
GPIO12_GPIO, /* power detect */
|
||||||
|
|
|
@ -409,7 +409,7 @@ static int treo680_irda_startup(struct device *dev)
|
||||||
|
|
||||||
static void treo680_irda_shutdown(struct device *dev)
|
static void treo680_irda_shutdown(struct device *dev)
|
||||||
{
|
{
|
||||||
gpio_free(GPIO_NR_TREO680_AMP_EN);
|
gpio_free(GPIO_NR_TREO680_IR_EN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct pxaficp_platform_data treo680_ficp_info = {
|
static struct pxaficp_platform_data treo680_ficp_info = {
|
||||||
|
|
|
@ -197,10 +197,12 @@ static void __init zylonite_detect_lcd_panel(void)
|
||||||
for (i = 0; i < NUM_LCD_DETECT_PINS; i++) {
|
for (i = 0; i < NUM_LCD_DETECT_PINS; i++) {
|
||||||
id = id << 1;
|
id = id << 1;
|
||||||
gpio = mfp_to_gpio(lcd_detect_pins[i]);
|
gpio = mfp_to_gpio(lcd_detect_pins[i]);
|
||||||
|
gpio_request(gpio, "LCD_ID_PINS");
|
||||||
gpio_direction_input(gpio);
|
gpio_direction_input(gpio);
|
||||||
|
|
||||||
if (gpio_get_value(gpio))
|
if (gpio_get_value(gpio))
|
||||||
id = id | 0x1;
|
id = id | 0x1;
|
||||||
|
gpio_free(gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lcd id, flush out bit 1 */
|
/* lcd id, flush out bit 1 */
|
||||||
|
|
|
@ -176,10 +176,12 @@ static void __init zylonite_detect_lcd_panel(void)
|
||||||
for (i = 0; i < NUM_LCD_DETECT_PINS; i++) {
|
for (i = 0; i < NUM_LCD_DETECT_PINS; i++) {
|
||||||
id = id << 1;
|
id = id << 1;
|
||||||
gpio = mfp_to_gpio(lcd_detect_pins[i]);
|
gpio = mfp_to_gpio(lcd_detect_pins[i]);
|
||||||
|
gpio_request(gpio, "LCD_ID_PINS");
|
||||||
gpio_direction_input(gpio);
|
gpio_direction_input(gpio);
|
||||||
|
|
||||||
if (gpio_get_value(gpio))
|
if (gpio_get_value(gpio))
|
||||||
id = id | 0x1;
|
id = id | 0x1;
|
||||||
|
gpio_free(gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* lcd id, flush out bit 1 */
|
/* lcd id, flush out bit 1 */
|
||||||
|
|
|
@ -28,7 +28,7 @@ static inline struct s3c_gpio_chip *s3c_gpiolib_getchip(unsigned int pin)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
chip = &s3c24xx_gpios[pin/32];
|
chip = &s3c24xx_gpios[pin/32];
|
||||||
return (S3C2410_GPIO_OFFSET(pin) > chip->chip.ngpio) ? chip : NULL;
|
return (S3C2410_GPIO_OFFSET(pin) < chip->chip.ngpio) ? chip : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __ASM_ARCH_GPIO_CORE_H */
|
#endif /* __ASM_ARCH_GPIO_CORE_H */
|
||||||
|
|
|
@ -246,6 +246,10 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
|
||||||
|
|
||||||
tcmp = duty_ns / tin_ns;
|
tcmp = duty_ns / tin_ns;
|
||||||
tcmp = tcnt - tcmp;
|
tcmp = tcnt - tcmp;
|
||||||
|
/* the pwm hw only checks the compare register after a decrement,
|
||||||
|
so the pin never toggles if tcmp = tcnt */
|
||||||
|
if (tcmp == tcnt)
|
||||||
|
tcmp--;
|
||||||
|
|
||||||
pwm_dbg(pwm, "tin_ns=%lu, tcmp=%ld/%lu\n", tin_ns, tcmp, tcnt);
|
pwm_dbg(pwm, "tin_ns=%lu, tcmp=%ld/%lu\n", tin_ns, tcmp, tcnt);
|
||||||
|
|
||||||
|
|
|
@ -117,8 +117,6 @@ void s3c_pm_save_core(void)
|
||||||
* this.
|
* this.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <plat/regs-gpio.h>
|
|
||||||
|
|
||||||
static void s3c64xx_cpu_suspend(void)
|
static void s3c64xx_cpu_suspend(void)
|
||||||
{
|
{
|
||||||
unsigned long tmp;
|
unsigned long tmp;
|
||||||
|
|
|
@ -153,7 +153,7 @@ static unsigned long s3c64xx_clk_arm_round_rate(struct clk *clk,
|
||||||
u32 div;
|
u32 div;
|
||||||
|
|
||||||
if (parent < rate)
|
if (parent < rate)
|
||||||
return rate;
|
return parent;
|
||||||
|
|
||||||
div = (parent / rate) - 1;
|
div = (parent / rate) - 1;
|
||||||
if (div > armclk_mask)
|
if (div > armclk_mask)
|
||||||
|
@ -175,7 +175,7 @@ static int s3c64xx_clk_arm_set_rate(struct clk *clk, unsigned long rate)
|
||||||
div = clk_get_rate(clk->parent) / rate;
|
div = clk_get_rate(clk->parent) / rate;
|
||||||
|
|
||||||
val = __raw_readl(S3C_CLK_DIV0);
|
val = __raw_readl(S3C_CLK_DIV0);
|
||||||
val &= armclk_mask;
|
val &= ~armclk_mask;
|
||||||
val |= (div - 1);
|
val |= (div - 1);
|
||||||
__raw_writel(val, S3C_CLK_DIV0);
|
__raw_writel(val, S3C_CLK_DIV0);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <linux/sysdev.h>
|
#include <linux/sysdev.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/sysdev.h>
|
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
|
|
|
@ -83,7 +83,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
|
||||||
quicklist_free_page(QUICK_PT, NULL, pte);
|
quicklist_free_page(QUICK_PT, NULL, pte);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb,pte) \
|
#define __pte_free_tlb(tlb,pte,addr) \
|
||||||
do { \
|
do { \
|
||||||
pgtable_page_dtor(pte); \
|
pgtable_page_dtor(pte); \
|
||||||
tlb_remove_page((tlb), pte); \
|
tlb_remove_page((tlb), pte); \
|
||||||
|
|
|
@ -47,7 +47,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
|
||||||
__free_page(pte);
|
__free_page(pte);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb,pte) \
|
#define __pte_free_tlb(tlb,pte,address) \
|
||||||
do { \
|
do { \
|
||||||
pgtable_page_dtor(pte); \
|
pgtable_page_dtor(pte); \
|
||||||
tlb_remove_page((tlb), pte); \
|
tlb_remove_page((tlb), pte); \
|
||||||
|
|
|
@ -49,7 +49,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
|
||||||
__free_page(pte);
|
__free_page(pte);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb,pte) \
|
#define __pte_free_tlb(tlb,pte,address) \
|
||||||
do { \
|
do { \
|
||||||
pgtable_page_dtor(pte); \
|
pgtable_page_dtor(pte); \
|
||||||
tlb_remove_page((tlb),(pte)); \
|
tlb_remove_page((tlb),(pte)); \
|
||||||
|
@ -62,7 +62,7 @@ do { \
|
||||||
*/
|
*/
|
||||||
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *) 2); })
|
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *) 2); })
|
||||||
#define pmd_free(mm, x) do { } while (0)
|
#define pmd_free(mm, x) do { } while (0)
|
||||||
#define __pmd_free_tlb(tlb,x) do { } while (0)
|
#define __pmd_free_tlb(tlb,x,a) do { } while (0)
|
||||||
|
|
||||||
#endif /* CONFIG_MMU */
|
#endif /* CONFIG_MMU */
|
||||||
|
|
||||||
|
|
|
@ -225,7 +225,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
|
||||||
*/
|
*/
|
||||||
#define pud_alloc_one(mm, address) NULL
|
#define pud_alloc_one(mm, address) NULL
|
||||||
#define pud_free(mm, x) do { } while (0)
|
#define pud_free(mm, x) do { } while (0)
|
||||||
#define __pud_free_tlb(tlb, x) do { } while (0)
|
#define __pud_free_tlb(tlb, x, address) do { } while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The "pud_xxx()" functions here are trivial for a folded two-level
|
* The "pud_xxx()" functions here are trivial for a folded two-level
|
||||||
|
|
|
@ -41,11 +41,6 @@ $(error Sorry, you need a newer version of the assember, one that is built from
|
||||||
ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz)
|
ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(call cc-version),0304)
|
|
||||||
cflags-$(CONFIG_ITANIUM) += -mtune=merced
|
|
||||||
cflags-$(CONFIG_MCKINLEY) += -mtune=mckinley
|
|
||||||
endif
|
|
||||||
|
|
||||||
KBUILD_CFLAGS += $(cflags-y)
|
KBUILD_CFLAGS += $(cflags-y)
|
||||||
head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o
|
head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o
|
||||||
|
|
||||||
|
|
|
@ -286,7 +286,7 @@ __test_and_clear_bit(int nr, volatile void * addr)
|
||||||
{
|
{
|
||||||
__u32 *p = (__u32 *) addr + (nr >> 5);
|
__u32 *p = (__u32 *) addr + (nr >> 5);
|
||||||
__u32 m = 1 << (nr & 31);
|
__u32 m = 1 << (nr & 31);
|
||||||
int oldbitset = *p & m;
|
int oldbitset = (*p & m) != 0;
|
||||||
|
|
||||||
*p &= ~m;
|
*p &= ~m;
|
||||||
return oldbitset;
|
return oldbitset;
|
||||||
|
|
|
@ -48,7 +48,7 @@ static inline void pud_free(struct mm_struct *mm, pud_t *pud)
|
||||||
{
|
{
|
||||||
quicklist_free(0, NULL, pud);
|
quicklist_free(0, NULL, pud);
|
||||||
}
|
}
|
||||||
#define __pud_free_tlb(tlb, pud) pud_free((tlb)->mm, pud)
|
#define __pud_free_tlb(tlb, pud, address) pud_free((tlb)->mm, pud)
|
||||||
#endif /* CONFIG_PGTABLE_4 */
|
#endif /* CONFIG_PGTABLE_4 */
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
@ -67,7 +67,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
|
||||||
quicklist_free(0, NULL, pmd);
|
quicklist_free(0, NULL, pmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pmd_free_tlb(tlb, pmd) pmd_free((tlb)->mm, pmd)
|
#define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd)
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
pmd_populate(struct mm_struct *mm, pmd_t * pmd_entry, pgtable_t pte)
|
pmd_populate(struct mm_struct *mm, pmd_t * pmd_entry, pgtable_t pte)
|
||||||
|
@ -117,6 +117,6 @@ static inline void check_pgt_cache(void)
|
||||||
quicklist_trim(0, NULL, 25, 16);
|
quicklist_trim(0, NULL, 25, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb, pte) pte_free((tlb)->mm, pte)
|
#define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte)
|
||||||
|
|
||||||
#endif /* _ASM_IA64_PGALLOC_H */
|
#endif /* _ASM_IA64_PGALLOC_H */
|
||||||
|
|
|
@ -155,7 +155,6 @@
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/processor.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Next come the mappings that determine how mmap() protection bits
|
* Next come the mappings that determine how mmap() protection bits
|
||||||
|
|
|
@ -236,22 +236,22 @@ do { \
|
||||||
__tlb_remove_tlb_entry(tlb, ptep, addr); \
|
__tlb_remove_tlb_entry(tlb, ptep, addr); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define pte_free_tlb(tlb, ptep) \
|
#define pte_free_tlb(tlb, ptep, address) \
|
||||||
do { \
|
do { \
|
||||||
tlb->need_flush = 1; \
|
tlb->need_flush = 1; \
|
||||||
__pte_free_tlb(tlb, ptep); \
|
__pte_free_tlb(tlb, ptep, address); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define pmd_free_tlb(tlb, ptep) \
|
#define pmd_free_tlb(tlb, ptep, address) \
|
||||||
do { \
|
do { \
|
||||||
tlb->need_flush = 1; \
|
tlb->need_flush = 1; \
|
||||||
__pmd_free_tlb(tlb, ptep); \
|
__pmd_free_tlb(tlb, ptep, address); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define pud_free_tlb(tlb, pudp) \
|
#define pud_free_tlb(tlb, pudp, address) \
|
||||||
do { \
|
do { \
|
||||||
tlb->need_flush = 1; \
|
tlb->need_flush = 1; \
|
||||||
__pud_free_tlb(tlb, pudp); \
|
__pud_free_tlb(tlb, pudp, address); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#endif /* _ASM_IA64_TLB_H */
|
#endif /* _ASM_IA64_TLB_H */
|
||||||
|
|
|
@ -21,6 +21,7 @@ EXPORT_SYMBOL(csum_ipv6_magic);
|
||||||
|
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
EXPORT_SYMBOL(clear_page);
|
EXPORT_SYMBOL(clear_page);
|
||||||
|
EXPORT_SYMBOL(copy_page);
|
||||||
|
|
||||||
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
||||||
#include <linux/bootmem.h>
|
#include <linux/bootmem.h>
|
||||||
|
@ -60,9 +61,6 @@ EXPORT_SYMBOL(__udivdi3);
|
||||||
EXPORT_SYMBOL(__moddi3);
|
EXPORT_SYMBOL(__moddi3);
|
||||||
EXPORT_SYMBOL(__umoddi3);
|
EXPORT_SYMBOL(__umoddi3);
|
||||||
|
|
||||||
#include <asm/page.h>
|
|
||||||
EXPORT_SYMBOL(copy_page);
|
|
||||||
|
|
||||||
#if defined(CONFIG_MD_RAID456) || defined(CONFIG_MD_RAID456_MODULE)
|
#if defined(CONFIG_MD_RAID456) || defined(CONFIG_MD_RAID456_MODULE)
|
||||||
extern void xor_ia64_2(void);
|
extern void xor_ia64_2(void);
|
||||||
extern void xor_ia64_3(void);
|
extern void xor_ia64_3(void);
|
||||||
|
|
|
@ -1072,6 +1072,10 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base)
|
||||||
}
|
}
|
||||||
|
|
||||||
addr = ioremap(phys_addr, 0);
|
addr = ioremap(phys_addr, 0);
|
||||||
|
if (addr == NULL) {
|
||||||
|
spin_unlock_irqrestore(&iosapic_lock, flags);
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
ver = iosapic_version(addr);
|
ver = iosapic_version(addr);
|
||||||
if ((err = iosapic_check_gsi_range(gsi_base, ver))) {
|
if ((err = iosapic_check_gsi_range(gsi_base, ver))) {
|
||||||
iounmap(addr);
|
iounmap(addr);
|
||||||
|
|
|
@ -69,11 +69,6 @@ iommu_dma_init(void)
|
||||||
|
|
||||||
int iommu_dma_supported(struct device *dev, u64 mask)
|
int iommu_dma_supported(struct device *dev, u64 mask)
|
||||||
{
|
{
|
||||||
struct dma_map_ops *ops = platform_dma_get_ops(dev);
|
|
||||||
|
|
||||||
if (ops->dma_supported)
|
|
||||||
return ops->dma_supported(dev, mask);
|
|
||||||
|
|
||||||
/* Copied from i386. Doesn't make much sense, because it will
|
/* Copied from i386. Doesn't make much sense, because it will
|
||||||
only work for pci_alloc_coherent.
|
only work for pci_alloc_coherent.
|
||||||
The caller just has to use GFP_DMA in this case. */
|
The caller just has to use GFP_DMA in this case. */
|
||||||
|
|
|
@ -372,6 +372,10 @@ static int __cpuinit cache_add_dev(struct sys_device * sys_dev)
|
||||||
retval = kobject_init_and_add(&all_cpu_cache_info[cpu].kobj,
|
retval = kobject_init_and_add(&all_cpu_cache_info[cpu].kobj,
|
||||||
&cache_ktype_percpu_entry, &sys_dev->kobj,
|
&cache_ktype_percpu_entry, &sys_dev->kobj,
|
||||||
"%s", "cache");
|
"%s", "cache");
|
||||||
|
if (unlikely(retval < 0)) {
|
||||||
|
cpu_cache_sysfs_exit(cpu);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < all_cpu_cache_info[cpu].num_cache_leaves; i++) {
|
for (i = 0; i < all_cpu_cache_info[cpu].num_cache_leaves; i++) {
|
||||||
this_object = LEAF_KOBJECT_PTR(cpu,i);
|
this_object = LEAF_KOBJECT_PTR(cpu,i);
|
||||||
|
@ -385,7 +389,7 @@ static int __cpuinit cache_add_dev(struct sys_device * sys_dev)
|
||||||
}
|
}
|
||||||
kobject_put(&all_cpu_cache_info[cpu].kobj);
|
kobject_put(&all_cpu_cache_info[cpu].kobj);
|
||||||
cpu_cache_sysfs_exit(cpu);
|
cpu_cache_sysfs_exit(cpu);
|
||||||
break;
|
return retval;
|
||||||
}
|
}
|
||||||
kobject_uevent(&(this_object->kobj), KOBJ_ADD);
|
kobject_uevent(&(this_object->kobj), KOBJ_ADD);
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,7 +247,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma)
|
||||||
vcpu_get_fpreg(vcpu, inst.M9.f2, &v);
|
vcpu_get_fpreg(vcpu, inst.M9.f2, &v);
|
||||||
/* Write high word. FIXME: this is a kludge! */
|
/* Write high word. FIXME: this is a kludge! */
|
||||||
v.u.bits[1] &= 0x3ffff;
|
v.u.bits[1] &= 0x3ffff;
|
||||||
mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE);
|
mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1], 8,
|
||||||
|
ma, IOREQ_WRITE);
|
||||||
data = v.u.bits[0];
|
data = v.u.bits[0];
|
||||||
size = 3;
|
size = 3;
|
||||||
} else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) {
|
} else if (inst.M10.major == 7 && inst.M10.x6 == 0x3B) {
|
||||||
|
@ -265,7 +266,8 @@ void emulate_io_inst(struct kvm_vcpu *vcpu, u64 padr, u64 ma)
|
||||||
|
|
||||||
/* Write high word.FIXME: this is a kludge! */
|
/* Write high word.FIXME: this is a kludge! */
|
||||||
v.u.bits[1] &= 0x3ffff;
|
v.u.bits[1] &= 0x3ffff;
|
||||||
mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE);
|
mmio_access(vcpu, padr + 8, (u64 *)&v.u.bits[1],
|
||||||
|
8, ma, IOREQ_WRITE);
|
||||||
data = v.u.bits[0];
|
data = v.u.bits[0];
|
||||||
size = 3;
|
size = 3;
|
||||||
} else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) {
|
} else if (inst.M10.major == 7 && inst.M10.x6 == 0x31) {
|
||||||
|
|
|
@ -461,7 +461,7 @@ void setreg(unsigned long regnum, unsigned long val,
|
||||||
u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg)
|
u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg)
|
||||||
{
|
{
|
||||||
struct kvm_pt_regs *regs = vcpu_regs(vcpu);
|
struct kvm_pt_regs *regs = vcpu_regs(vcpu);
|
||||||
u64 val;
|
unsigned long val;
|
||||||
|
|
||||||
if (!reg)
|
if (!reg)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -469,7 +469,7 @@ u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg)
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 value, int nat)
|
void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg, u64 value, int nat)
|
||||||
{
|
{
|
||||||
struct kvm_pt_regs *regs = vcpu_regs(vcpu);
|
struct kvm_pt_regs *regs = vcpu_regs(vcpu);
|
||||||
long sof = (regs->cr_ifs) & 0x7f;
|
long sof = (regs->cr_ifs) & 0x7f;
|
||||||
|
@ -1072,7 +1072,7 @@ void kvm_ttag(struct kvm_vcpu *vcpu, INST64 inst)
|
||||||
vcpu_set_gr(vcpu, inst.M46.r1, tag, 0);
|
vcpu_set_gr(vcpu, inst.M46.r1, tag, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, u64 *padr)
|
int vcpu_tpa(struct kvm_vcpu *vcpu, u64 vadr, unsigned long *padr)
|
||||||
{
|
{
|
||||||
struct thash_data *data;
|
struct thash_data *data;
|
||||||
union ia64_isr visr, pt_isr;
|
union ia64_isr visr, pt_isr;
|
||||||
|
|
|
@ -686,14 +686,15 @@ static inline int highest_inservice_irq(struct kvm_vcpu *vcpu)
|
||||||
return highest_bits((int *)&(VMX(vcpu, insvc[0])));
|
return highest_bits((int *)&(VMX(vcpu, insvc[0])));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, u64 reg,
|
extern void vcpu_get_fpreg(struct kvm_vcpu *vcpu, unsigned long reg,
|
||||||
struct ia64_fpreg *val);
|
struct ia64_fpreg *val);
|
||||||
extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, u64 reg,
|
extern void vcpu_set_fpreg(struct kvm_vcpu *vcpu, unsigned long reg,
|
||||||
struct ia64_fpreg *val);
|
struct ia64_fpreg *val);
|
||||||
extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, u64 reg);
|
extern u64 vcpu_get_gr(struct kvm_vcpu *vcpu, unsigned long reg);
|
||||||
extern void vcpu_set_gr(struct kvm_vcpu *vcpu, u64 reg, u64 val, int nat);
|
extern void vcpu_set_gr(struct kvm_vcpu *vcpu, unsigned long reg,
|
||||||
extern u64 vcpu_get_psr(struct kvm_vcpu *vcpu);
|
u64 val, int nat);
|
||||||
extern void vcpu_set_psr(struct kvm_vcpu *vcpu, u64 val);
|
extern unsigned long vcpu_get_psr(struct kvm_vcpu *vcpu);
|
||||||
|
extern void vcpu_set_psr(struct kvm_vcpu *vcpu, unsigned long val);
|
||||||
extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr);
|
extern u64 vcpu_thash(struct kvm_vcpu *vcpu, u64 vadr);
|
||||||
extern void vcpu_bsw0(struct kvm_vcpu *vcpu);
|
extern void vcpu_bsw0(struct kvm_vcpu *vcpu);
|
||||||
extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte,
|
extern void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte,
|
||||||
|
|
|
@ -58,7 +58,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
|
||||||
__free_page(pte);
|
__free_page(pte);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb, pte) pte_free((tlb)->mm, (pte))
|
#define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, (pte))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* allocating and freeing a pmd is trivial: the 1-entry pmd is
|
* allocating and freeing a pmd is trivial: the 1-entry pmd is
|
||||||
|
@ -68,7 +68,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
|
||||||
|
|
||||||
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
|
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
|
||||||
#define pmd_free(mm, x) do { } while (0)
|
#define pmd_free(mm, x) do { } while (0)
|
||||||
#define __pmd_free_tlb(tlb, x) do { } while (0)
|
#define __pmd_free_tlb(tlb, x, addr) do { } while (0)
|
||||||
#define pgd_populate(mm, pmd, pte) BUG()
|
#define pgd_populate(mm, pmd, pte) BUG()
|
||||||
|
|
||||||
#define check_pgt_cache() do { } while (0)
|
#define check_pgt_cache() do { } while (0)
|
||||||
|
|
|
@ -54,7 +54,8 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t page)
|
||||||
__free_page(page);
|
__free_page(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page)
|
static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t page,
|
||||||
|
unsigned long address)
|
||||||
{
|
{
|
||||||
pgtable_page_dtor(page);
|
pgtable_page_dtor(page);
|
||||||
cache_page(kmap(page));
|
cache_page(kmap(page));
|
||||||
|
@ -73,7 +74,8 @@ static inline int pmd_free(struct mm_struct *mm, pmd_t *pmd)
|
||||||
return free_pointer_table(pmd);
|
return free_pointer_table(pmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
|
static inline int __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
|
||||||
|
unsigned long address)
|
||||||
{
|
{
|
||||||
return free_pointer_table(pmd);
|
return free_pointer_table(pmd);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t page)
|
||||||
__free_page(page);
|
__free_page(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb,pte) \
|
#define __pte_free_tlb(tlb,pte,addr) \
|
||||||
do { \
|
do { \
|
||||||
pgtable_page_dtor(pte); \
|
pgtable_page_dtor(pte); \
|
||||||
tlb_remove_page((tlb), pte); \
|
tlb_remove_page((tlb), pte); \
|
||||||
|
@ -80,7 +80,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t page
|
||||||
* inside the pgd, so has no extra memory associated with it.
|
* inside the pgd, so has no extra memory associated with it.
|
||||||
*/
|
*/
|
||||||
#define pmd_free(mm, x) do { } while (0)
|
#define pmd_free(mm, x) do { } while (0)
|
||||||
#define __pmd_free_tlb(tlb, x) do { } while (0)
|
#define __pmd_free_tlb(tlb, x, addr) do { } while (0)
|
||||||
|
|
||||||
static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
|
static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,14 +6,16 @@ endif
|
||||||
|
|
||||||
# What CPU vesion are we building for, and crack it open
|
# What CPU vesion are we building for, and crack it open
|
||||||
# as major.minor.rev
|
# as major.minor.rev
|
||||||
CPU_VER=$(subst ",,$(CONFIG_XILINX_MICROBLAZE0_HW_VER) )
|
CPU_VER := $(shell echo $(CONFIG_XILINX_MICROBLAZE0_HW_VER))
|
||||||
CPU_MAJOR=$(shell echo $(CPU_VER) | cut -d '.' -f 1)
|
CPU_MAJOR := $(shell echo $(CPU_VER) | cut -d '.' -f 1)
|
||||||
CPU_MINOR=$(shell echo $(CPU_VER) | cut -d '.' -f 2)
|
CPU_MINOR := $(shell echo $(CPU_VER) | cut -d '.' -f 2)
|
||||||
CPU_REV=$(shell echo $(CPU_VER) | cut -d '.' -f 3)
|
CPU_REV := $(shell echo $(CPU_VER) | cut -d '.' -f 3)
|
||||||
|
|
||||||
export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV
|
export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV
|
||||||
|
|
||||||
# Use cpu-related CONFIG_ vars to set compile options.
|
# Use cpu-related CONFIG_ vars to set compile options.
|
||||||
|
# The various CONFIG_XILINX cpu features options are integers 0/1/2...
|
||||||
|
# rather than bools y/n
|
||||||
|
|
||||||
# Work out HW multipler support. This is icky.
|
# Work out HW multipler support. This is icky.
|
||||||
# 1. Spartan2 has no HW multiplers.
|
# 1. Spartan2 has no HW multiplers.
|
||||||
|
@ -34,30 +36,29 @@ CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
|
||||||
|
|
||||||
CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
|
CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
|
||||||
|
|
||||||
# The various CONFIG_XILINX cpu features options are integers 0/1/2...
|
|
||||||
# rather than bools y/n
|
|
||||||
|
|
||||||
# r31 holds current when in kernel mode
|
# r31 holds current when in kernel mode
|
||||||
CFLAGS_KERNEL += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2)
|
KBUILD_KERNEL += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2)
|
||||||
|
|
||||||
LDFLAGS :=
|
LDFLAGS :=
|
||||||
LDFLAGS_vmlinux :=
|
LDFLAGS_vmlinux :=
|
||||||
LDFLAGS_BLOB := --format binary --oformat elf32-microblaze
|
|
||||||
|
|
||||||
LIBGCC := $(shell $(CC) $(CFLAGS_KERNEL) -print-libgcc-file-name)
|
LIBGCC := $(shell $(CC) $(KBUILD_KERNEL) -print-libgcc-file-name)
|
||||||
|
|
||||||
head-y := arch/microblaze/kernel/head.o
|
head-y := arch/microblaze/kernel/head.o
|
||||||
libs-y += arch/microblaze/lib/ $(LIBGCC)
|
libs-y += arch/microblaze/lib/
|
||||||
core-y += arch/microblaze/kernel/ arch/microblaze/mm/ \
|
libs-y += $(LIBGCC)
|
||||||
arch/microblaze/platform/
|
core-y += arch/microblaze/kernel/
|
||||||
|
core-y += arch/microblaze/mm/
|
||||||
|
core-y += arch/microblaze/platform/
|
||||||
|
|
||||||
boot := arch/$(ARCH)/boot
|
boot := arch/microblaze/boot
|
||||||
|
|
||||||
# defines filename extension depending memory management type
|
# defines filename extension depending memory management type
|
||||||
ifeq ($(CONFIG_MMU),)
|
ifeq ($(CONFIG_MMU),)
|
||||||
MMUEXT := -nommu
|
MMU := -nommu
|
||||||
endif
|
endif
|
||||||
export MMUEXT
|
|
||||||
|
export MMU
|
||||||
|
|
||||||
all: linux.bin
|
all: linux.bin
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <asm/byteorder.h>
|
#include <asm/byteorder.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <asm/byteorder.h>
|
|
||||||
#include <linux/mm.h> /* Get struct page {...} */
|
#include <linux/mm.h> /* Get struct page {...} */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,7 @@ extern inline void pte_free(struct mm_struct *mm, struct page *ptepage)
|
||||||
__free_page(ptepage);
|
__free_page(ptepage);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __pte_free_tlb(tlb, pte) pte_free((tlb)->mm, (pte))
|
#define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, (pte))
|
||||||
|
|
||||||
#define pmd_populate(mm, pmd, pte) (pmd_val(*(pmd)) = page_address(pte))
|
#define pmd_populate(mm, pmd, pte) (pmd_val(*(pmd)) = page_address(pte))
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ extern inline void pte_free(struct mm_struct *mm, struct page *ptepage)
|
||||||
*/
|
*/
|
||||||
#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); })
|
#define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); })
|
||||||
/*#define pmd_free(mm, x) do { } while (0)*/
|
/*#define pmd_free(mm, x) do { } while (0)*/
|
||||||
#define __pmd_free_tlb(tlb, x) do { } while (0)
|
#define __pmd_free_tlb(tlb, x, addr) do { } while (0)
|
||||||
#define pgd_populate(mm, pmd, pte) BUG()
|
#define pgd_populate(mm, pmd, pte) BUG()
|
||||||
|
|
||||||
extern int do_check_pgt_cache(int, int);
|
extern int do_check_pgt_cache(int, int);
|
||||||
|
|
|
@ -185,6 +185,7 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
|
||||||
|
|
||||||
/* Definitions for MicroBlaze. */
|
/* Definitions for MicroBlaze. */
|
||||||
#define _PAGE_GUARDED 0x001 /* G: page is guarded from prefetch */
|
#define _PAGE_GUARDED 0x001 /* G: page is guarded from prefetch */
|
||||||
|
#define _PAGE_FILE 0x001 /* when !present: nonlinear file mapping */
|
||||||
#define _PAGE_PRESENT 0x002 /* software: PTE contains a translation */
|
#define _PAGE_PRESENT 0x002 /* software: PTE contains a translation */
|
||||||
#define _PAGE_NO_CACHE 0x004 /* I: caching is inhibited */
|
#define _PAGE_NO_CACHE 0x004 /* I: caching is inhibited */
|
||||||
#define _PAGE_WRITETHRU 0x008 /* W: caching is write-through */
|
#define _PAGE_WRITETHRU 0x008 /* W: caching is write-through */
|
||||||
|
@ -320,8 +321,7 @@ static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; }
|
||||||
static inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; }
|
static inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; }
|
||||||
static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
|
static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
|
||||||
static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
|
static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
|
||||||
/* FIXME */
|
static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
|
||||||
static inline int pte_file(pte_t pte) { return 0; }
|
|
||||||
|
|
||||||
static inline void pte_uncache(pte_t pte) { pte_val(pte) |= _PAGE_NO_CACHE; }
|
static inline void pte_uncache(pte_t pte) { pte_val(pte) |= _PAGE_NO_CACHE; }
|
||||||
static inline void pte_cache(pte_t pte) { pte_val(pte) &= ~_PAGE_NO_CACHE; }
|
static inline void pte_cache(pte_t pte) { pte_val(pte) &= ~_PAGE_NO_CACHE; }
|
||||||
|
@ -488,7 +488,7 @@ static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
|
||||||
/* Encode and decode a nonlinear file mapping entry */
|
/* Encode and decode a nonlinear file mapping entry */
|
||||||
#define PTE_FILE_MAX_BITS 29
|
#define PTE_FILE_MAX_BITS 29
|
||||||
#define pte_to_pgoff(pte) (pte_val(pte) >> 3)
|
#define pte_to_pgoff(pte) (pte_val(pte) >> 3)
|
||||||
#define pgoff_to_pte(off) ((pte_t) { ((off) << 3) })
|
#define pgoff_to_pte(off) ((pte_t) { ((off) << 3) | _PAGE_FILE })
|
||||||
|
|
||||||
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,18 @@
|
||||||
#define _ASM_MICROBLAZE_PROM_H
|
#define _ASM_MICROBLAZE_PROM_H
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
/* Definitions used by the flattened device tree */
|
||||||
|
#define OF_DT_HEADER 0xd00dfeed /* marker */
|
||||||
|
#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */
|
||||||
|
#define OF_DT_END_NODE 0x2 /* End node */
|
||||||
|
#define OF_DT_PROP 0x3 /* Property: name off, size, content */
|
||||||
|
#define OF_DT_NOP 0x4 /* nop */
|
||||||
|
#define OF_DT_END 0x9
|
||||||
|
|
||||||
|
#define OF_DT_VERSION 0x10
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
@ -29,16 +41,6 @@
|
||||||
#define of_prop_cmp(s1, s2) strcmp((s1), (s2))
|
#define of_prop_cmp(s1, s2) strcmp((s1), (s2))
|
||||||
#define of_node_cmp(s1, s2) strcasecmp((s1), (s2))
|
#define of_node_cmp(s1, s2) strcasecmp((s1), (s2))
|
||||||
|
|
||||||
/* Definitions used by the flattened device tree */
|
|
||||||
#define OF_DT_HEADER 0xd00dfeed /* marker */
|
|
||||||
#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */
|
|
||||||
#define OF_DT_END_NODE 0x2 /* End node */
|
|
||||||
#define OF_DT_PROP 0x3 /* Property: name off, size, content */
|
|
||||||
#define OF_DT_NOP 0x4 /* nop */
|
|
||||||
#define OF_DT_END 0x9
|
|
||||||
|
|
||||||
#define OF_DT_VERSION 0x10
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is what gets passed to the kernel by prom_init or kexec
|
* This is what gets passed to the kernel by prom_init or kexec
|
||||||
*
|
*
|
||||||
|
@ -309,5 +311,6 @@ extern void __iomem *of_iomap(struct device_node *device, int index);
|
||||||
*/
|
*/
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
|
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* _ASM_MICROBLAZE_PROM_H */
|
#endif /* _ASM_MICROBLAZE_PROM_H */
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#ifndef _ASM_MICROBLAZE_TLB_H
|
#ifndef _ASM_MICROBLAZE_TLB_H
|
||||||
#define _ASM_MICROBLAZE_TLB_H
|
#define _ASM_MICROBLAZE_TLB_H
|
||||||
|
|
||||||
#define tlb_flush(tlb) do {} while (0)
|
#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
|
||||||
|
|
||||||
#include <asm-generic/tlb.h>
|
#include <asm-generic/tlb.h>
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ extern long strnlen_user(const char *src, long count);
|
||||||
|
|
||||||
#define __put_user(x, ptr) \
|
#define __put_user(x, ptr) \
|
||||||
({ \
|
({ \
|
||||||
__typeof__(*(ptr)) __gu_val = x; \
|
__typeof__(*(ptr)) volatile __gu_val = (x); \
|
||||||
long __gu_err = 0; \
|
long __gu_err = 0; \
|
||||||
switch (sizeof(__gu_val)) { \
|
switch (sizeof(__gu_val)) { \
|
||||||
case 1: \
|
case 1: \
|
||||||
|
|
|
@ -17,4 +17,4 @@ obj-$(CONFIG_HEART_BEAT) += heartbeat.o
|
||||||
obj-$(CONFIG_MODULES) += microblaze_ksyms.o module.o
|
obj-$(CONFIG_MODULES) += microblaze_ksyms.o module.o
|
||||||
obj-$(CONFIG_MMU) += misc.o
|
obj-$(CONFIG_MMU) += misc.o
|
||||||
|
|
||||||
obj-y += entry$(MMUEXT).o
|
obj-y += entry$(MMU).o
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#define CI(c, p) { ci->c = PVR_##p(pvr); }
|
#define CI(c, p) { ci->c = PVR_##p(pvr); }
|
||||||
#define err_printk(x) \
|
#define err_printk(x) \
|
||||||
early_printk("ERROR: Microblaze " x " - different for PVR and DTS\n");
|
early_printk("ERROR: Microblaze " x "-different for PVR and DTS\n");
|
||||||
|
|
||||||
void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
|
void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,7 +18,7 @@ static const char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY;
|
||||||
static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
|
static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
|
||||||
|
|
||||||
#define err_printk(x) \
|
#define err_printk(x) \
|
||||||
early_printk("ERROR: Microblaze " x "- different for kernel and DTS\n");
|
early_printk("ERROR: Microblaze " x "-different for kernel and DTS\n");
|
||||||
|
|
||||||
void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
|
void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,6 +26,8 @@ const struct cpu_ver_key cpu_ver_lookup[] = {
|
||||||
{"7.10.b", 0x09},
|
{"7.10.b", 0x09},
|
||||||
{"7.10.c", 0x0a},
|
{"7.10.c", 0x0a},
|
||||||
{"7.10.d", 0x0b},
|
{"7.10.d", 0x0b},
|
||||||
|
{"7.20.a", 0x0c},
|
||||||
|
{"7.20.b", 0x0d},
|
||||||
/* FIXME There is no keycode defined in MBV for these versions */
|
/* FIXME There is no keycode defined in MBV for these versions */
|
||||||
{"2.10.a", 0x10},
|
{"2.10.a", 0x10},
|
||||||
{"3.00.a", 0x20},
|
{"3.00.a", 0x20},
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
#include <asm/prom.h> /* for OF_DT_HEADER */
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
#include <asm/setup.h> /* COMMAND_LINE_SIZE */
|
#include <asm/setup.h> /* COMMAND_LINE_SIZE */
|
||||||
|
@ -54,11 +55,19 @@ ENTRY(_start)
|
||||||
andi r1, r1, ~2
|
andi r1, r1, ~2
|
||||||
mts rmsr, r1
|
mts rmsr, r1
|
||||||
|
|
||||||
/* save fdt to kernel location */
|
/* r7 may point to an FDT, or there may be one linked in.
|
||||||
/* r7 stores pointer to fdt blob */
|
if it's in r7, we've got to save it away ASAP.
|
||||||
beqi r7, no_fdt_arg
|
We ensure r7 points to a valid FDT, just in case the bootloader
|
||||||
|
is broken or non-existent */
|
||||||
|
beqi r7, no_fdt_arg /* NULL pointer? don't copy */
|
||||||
|
lw r11, r0, r7 /* Does r7 point to a */
|
||||||
|
rsubi r11, r11, OF_DT_HEADER /* valid FDT? */
|
||||||
|
beqi r11, _prepare_copy_fdt
|
||||||
|
or r7, r0, r0 /* clear R7 when not valid DTB */
|
||||||
|
bnei r11, no_fdt_arg /* No - get out of here */
|
||||||
|
_prepare_copy_fdt:
|
||||||
or r11, r0, r0 /* incremment */
|
or r11, r0, r0 /* incremment */
|
||||||
ori r4, r0, TOPHYS(_fdt_start) /* save bram context */
|
ori r4, r0, TOPHYS(_fdt_start)
|
||||||
ori r3, r0, (0x4000 - 4)
|
ori r3, r0, (0x4000 - 4)
|
||||||
_copy_fdt:
|
_copy_fdt:
|
||||||
lw r12, r7, r11 /* r12 = r7 + r11 */
|
lw r12, r7, r11 /* r12 = r7 + r11 */
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
|
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
#include <asm/signal.h>
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
|
|
||||||
/* Helpful Macros */
|
/* Helpful Macros */
|
||||||
|
@ -428,19 +429,9 @@ handle_unaligned_ex:
|
||||||
mfs r17, rbtr; /* ESR[DS] set - return address in BTR */
|
mfs r17, rbtr; /* ESR[DS] set - return address in BTR */
|
||||||
nop
|
nop
|
||||||
_no_delayslot:
|
_no_delayslot:
|
||||||
#endif
|
/* jump to high level unaligned handler */
|
||||||
|
RESTORE_STATE;
|
||||||
#ifdef CONFIG_MMU
|
bri unaligned_data_trap
|
||||||
/* Check if unaligned address is last on a 4k page */
|
|
||||||
andi r5, r4, 0xffc
|
|
||||||
xori r5, r5, 0xffc
|
|
||||||
bnei r5, _unaligned_ex2
|
|
||||||
_unaligned_ex1:
|
|
||||||
RESTORE_STATE;
|
|
||||||
/* Another page must be accessed or physical address not in page table */
|
|
||||||
bri unaligned_data_trap
|
|
||||||
|
|
||||||
_unaligned_ex2:
|
|
||||||
#endif
|
#endif
|
||||||
andi r6, r3, 0x3E0; /* Mask and extract the register operand */
|
andi r6, r3, 0x3E0; /* Mask and extract the register operand */
|
||||||
srl r6, r6; /* r6 >> 5 */
|
srl r6, r6; /* r6 >> 5 */
|
||||||
|
@ -450,45 +441,6 @@ _no_delayslot:
|
||||||
srl r6, r6;
|
srl r6, r6;
|
||||||
/* Store the register operand in a temporary location */
|
/* Store the register operand in a temporary location */
|
||||||
sbi r6, r0, TOPHYS(ex_reg_op);
|
sbi r6, r0, TOPHYS(ex_reg_op);
|
||||||
#ifdef CONFIG_MMU
|
|
||||||
/* Get physical address */
|
|
||||||
/* If we are faulting a kernel address, we have to use the
|
|
||||||
* kernel page tables.
|
|
||||||
*/
|
|
||||||
ori r5, r0, CONFIG_KERNEL_START
|
|
||||||
cmpu r5, r4, r5
|
|
||||||
bgti r5, _unaligned_ex3
|
|
||||||
ori r5, r0, swapper_pg_dir
|
|
||||||
bri _unaligned_ex4
|
|
||||||
|
|
||||||
/* Get the PGD for the current thread. */
|
|
||||||
_unaligned_ex3: /* user thread */
|
|
||||||
addi r5 ,CURRENT_TASK, TOPHYS(0); /* get current task address */
|
|
||||||
lwi r5, r5, TASK_THREAD + PGDIR
|
|
||||||
_unaligned_ex4:
|
|
||||||
tophys(r5,r5)
|
|
||||||
BSRLI(r6,r4,20) /* Create L1 (pgdir/pmd) address */
|
|
||||||
andi r6, r6, 0xffc
|
|
||||||
/* Assume pgdir aligned on 4K boundary, no need for "andi r5,r5,0xfffff003" */
|
|
||||||
or r5, r5, r6
|
|
||||||
lwi r6, r5, 0 /* Get L1 entry */
|
|
||||||
andi r5, r6, 0xfffff000 /* Extract L2 (pte) base address. */
|
|
||||||
beqi r5, _unaligned_ex1 /* Bail if no table */
|
|
||||||
|
|
||||||
tophys(r5,r5)
|
|
||||||
BSRLI(r6,r4,10) /* Compute PTE address */
|
|
||||||
andi r6, r6, 0xffc
|
|
||||||
andi r5, r5, 0xfffff003
|
|
||||||
or r5, r5, r6
|
|
||||||
lwi r5, r5, 0 /* Get Linux PTE */
|
|
||||||
|
|
||||||
andi r6, r5, _PAGE_PRESENT
|
|
||||||
beqi r6, _unaligned_ex1 /* Bail if no page */
|
|
||||||
|
|
||||||
andi r5, r5, 0xfffff000 /* Extract RPN */
|
|
||||||
andi r4, r4, 0x00000fff /* Extract offset */
|
|
||||||
or r4, r4, r5 /* Create physical address */
|
|
||||||
#endif /* CONFIG_MMU */
|
|
||||||
|
|
||||||
andi r6, r3, 0x400; /* Extract ESR[S] */
|
andi r6, r3, 0x400; /* Extract ESR[S] */
|
||||||
bnei r6, ex_sw;
|
bnei r6, ex_sw;
|
||||||
|
@ -959,15 +911,15 @@ _unaligned_data_exception:
|
||||||
andi r6, r3, 0x800; /* Extract ESR[W] - delay slot */
|
andi r6, r3, 0x800; /* Extract ESR[W] - delay slot */
|
||||||
ex_lw_vm:
|
ex_lw_vm:
|
||||||
beqid r6, ex_lhw_vm;
|
beqid r6, ex_lhw_vm;
|
||||||
lbui r5, r4, 0; /* Exception address in r4 - delay slot */
|
load1: lbui r5, r4, 0; /* Exception address in r4 - delay slot */
|
||||||
/* Load a word, byte-by-byte from destination address and save it in tmp space*/
|
/* Load a word, byte-by-byte from destination address and save it in tmp space*/
|
||||||
la r6, r0, ex_tmp_data_loc_0;
|
la r6, r0, ex_tmp_data_loc_0;
|
||||||
sbi r5, r6, 0;
|
sbi r5, r6, 0;
|
||||||
lbui r5, r4, 1;
|
load2: lbui r5, r4, 1;
|
||||||
sbi r5, r6, 1;
|
sbi r5, r6, 1;
|
||||||
lbui r5, r4, 2;
|
load3: lbui r5, r4, 2;
|
||||||
sbi r5, r6, 2;
|
sbi r5, r6, 2;
|
||||||
lbui r5, r4, 3;
|
load4: lbui r5, r4, 3;
|
||||||
sbi r5, r6, 3;
|
sbi r5, r6, 3;
|
||||||
brid ex_lw_tail_vm;
|
brid ex_lw_tail_vm;
|
||||||
/* Get the destination register value into r3 - delay slot */
|
/* Get the destination register value into r3 - delay slot */
|
||||||
|
@ -977,7 +929,7 @@ ex_lhw_vm:
|
||||||
* save it in tmp space */
|
* save it in tmp space */
|
||||||
la r6, r0, ex_tmp_data_loc_0;
|
la r6, r0, ex_tmp_data_loc_0;
|
||||||
sbi r5, r6, 0;
|
sbi r5, r6, 0;
|
||||||
lbui r5, r4, 1;
|
load5: lbui r5, r4, 1;
|
||||||
sbi r5, r6, 1;
|
sbi r5, r6, 1;
|
||||||
lhui r3, r6, 0; /* Get the destination register value into r3 */
|
lhui r3, r6, 0; /* Get the destination register value into r3 */
|
||||||
ex_lw_tail_vm:
|
ex_lw_tail_vm:
|
||||||
|
@ -996,22 +948,53 @@ ex_sw_tail_vm:
|
||||||
swi r3, r5, 0; /* Get the word - delay slot */
|
swi r3, r5, 0; /* Get the word - delay slot */
|
||||||
/* Store the word, byte-by-byte into destination address */
|
/* Store the word, byte-by-byte into destination address */
|
||||||
lbui r3, r5, 0;
|
lbui r3, r5, 0;
|
||||||
sbi r3, r4, 0;
|
store1: sbi r3, r4, 0;
|
||||||
lbui r3, r5, 1;
|
lbui r3, r5, 1;
|
||||||
sbi r3, r4, 1;
|
store2: sbi r3, r4, 1;
|
||||||
lbui r3, r5, 2;
|
lbui r3, r5, 2;
|
||||||
sbi r3, r4, 2;
|
store3: sbi r3, r4, 2;
|
||||||
lbui r3, r5, 3;
|
lbui r3, r5, 3;
|
||||||
brid ret_from_exc;
|
brid ret_from_exc;
|
||||||
sbi r3, r4, 3; /* Delay slot */
|
store4: sbi r3, r4, 3; /* Delay slot */
|
||||||
ex_shw_vm:
|
ex_shw_vm:
|
||||||
/* Store the lower half-word, byte-by-byte into destination address */
|
/* Store the lower half-word, byte-by-byte into destination address */
|
||||||
lbui r3, r5, 2;
|
lbui r3, r5, 2;
|
||||||
sbi r3, r4, 0;
|
store5: sbi r3, r4, 0;
|
||||||
lbui r3, r5, 3;
|
lbui r3, r5, 3;
|
||||||
brid ret_from_exc;
|
brid ret_from_exc;
|
||||||
sbi r3, r4, 1; /* Delay slot */
|
store6: sbi r3, r4, 1; /* Delay slot */
|
||||||
ex_sw_end_vm: /* Exception handling of store word, ends. */
|
ex_sw_end_vm: /* Exception handling of store word, ends. */
|
||||||
|
|
||||||
|
/* We have to prevent cases that get/put_user macros get unaligned pointer
|
||||||
|
* to bad page area. We have to find out which origin instruction caused it
|
||||||
|
* and called fixup for that origin instruction not instruction in unaligned
|
||||||
|
* handler */
|
||||||
|
ex_unaligned_fixup:
|
||||||
|
ori r5, r7, 0 /* setup pointer to pt_regs */
|
||||||
|
lwi r6, r7, PT_PC; /* faulting address is one instruction above */
|
||||||
|
addik r6, r6, -4 /* for finding proper fixup */
|
||||||
|
swi r6, r7, PT_PC; /* a save back it to PT_PC */
|
||||||
|
addik r7, r0, SIGSEGV
|
||||||
|
/* call bad_page_fault for finding aligned fixup, fixup address is saved
|
||||||
|
* in PT_PC which is used as return address from exception */
|
||||||
|
la r15, r0, ret_from_exc-8 /* setup return address */
|
||||||
|
brid bad_page_fault
|
||||||
|
nop
|
||||||
|
|
||||||
|
/* We prevent all load/store because it could failed any attempt to access */
|
||||||
|
.section __ex_table,"a";
|
||||||
|
.word load1,ex_unaligned_fixup;
|
||||||
|
.word load2,ex_unaligned_fixup;
|
||||||
|
.word load3,ex_unaligned_fixup;
|
||||||
|
.word load4,ex_unaligned_fixup;
|
||||||
|
.word load5,ex_unaligned_fixup;
|
||||||
|
.word store1,ex_unaligned_fixup;
|
||||||
|
.word store2,ex_unaligned_fixup;
|
||||||
|
.word store3,ex_unaligned_fixup;
|
||||||
|
.word store4,ex_unaligned_fixup;
|
||||||
|
.word store5,ex_unaligned_fixup;
|
||||||
|
.word store6,ex_unaligned_fixup;
|
||||||
|
.previous;
|
||||||
.end _unaligned_data_exception
|
.end _unaligned_data_exception
|
||||||
#endif /* CONFIG_MMU */
|
#endif /* CONFIG_MMU */
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,6 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
|
||||||
Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr;
|
Elf32_Rela *rela = (void *)sechdrs[relsec].sh_addr;
|
||||||
Elf32_Sym *sym;
|
Elf32_Sym *sym;
|
||||||
unsigned long int *location;
|
unsigned long int *location;
|
||||||
unsigned long int locoffs;
|
|
||||||
unsigned long int value;
|
unsigned long int value;
|
||||||
#if __GNUC__ < 4
|
#if __GNUC__ < 4
|
||||||
unsigned long int old_value;
|
unsigned long int old_value;
|
||||||
|
@ -113,10 +112,12 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_MICROBLAZE_64_PCREL:
|
case R_MICROBLAZE_64_PCREL:
|
||||||
locoffs = (location[0] & 0xFFFF) << 16 |
|
#if __GNUC__ < 4
|
||||||
|
old_value = (location[0] & 0xFFFF) << 16 |
|
||||||
(location[1] & 0xFFFF);
|
(location[1] & 0xFFFF);
|
||||||
value -= (unsigned long int)(location) + 4 +
|
value -= old_value;
|
||||||
locoffs;
|
#endif
|
||||||
|
value -= (unsigned long int)(location) + 4;
|
||||||
location[0] = (location[0] & 0xFFFF0000) |
|
location[0] = (location[0] & 0xFFFF0000) |
|
||||||
(value >> 16);
|
(value >> 16);
|
||||||
location[1] = (location[1] & 0xFFFF0000) |
|
location[1] = (location[1] & 0xFFFF0000) |
|
||||||
|
@ -125,6 +126,14 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
|
||||||
value);
|
value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case R_MICROBLAZE_32_PCREL_LO:
|
||||||
|
pr_debug("R_MICROBLAZE_32_PCREL_LO\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case R_MICROBLAZE_64_NONE:
|
||||||
|
pr_debug("R_MICROBLAZE_NONE\n");
|
||||||
|
break;
|
||||||
|
|
||||||
case R_MICROBLAZE_NONE:
|
case R_MICROBLAZE_NONE:
|
||||||
pr_debug("R_MICROBLAZE_NONE\n");
|
pr_debug("R_MICROBLAZE_NONE\n");
|
||||||
break;
|
break;
|
||||||
|
@ -133,7 +142,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
|
||||||
printk(KERN_ERR "module %s: "
|
printk(KERN_ERR "module %s: "
|
||||||
"Unknown relocation: %u\n",
|
"Unknown relocation: %u\n",
|
||||||
module->name,
|
module->name,
|
||||||
ELF32_R_TYPE(rela->r_info));
|
ELF32_R_TYPE(rela[i].r_info));
|
||||||
return -ENOEXEC;
|
return -ENOEXEC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,8 +138,12 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
|
||||||
setup_early_printk(NULL);
|
setup_early_printk(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
early_printk("Ramdisk addr 0x%08x, FDT 0x%08x\n", ram, fdt);
|
early_printk("Ramdisk addr 0x%08x, ", ram);
|
||||||
printk(KERN_NOTICE "Found FDT at 0x%08x\n", fdt);
|
if (fdt)
|
||||||
|
early_printk("FDT at 0x%08x\n", fdt);
|
||||||
|
else
|
||||||
|
early_printk("Compiled-in FDT at 0x%08x\n",
|
||||||
|
(unsigned int)_fdt_start);
|
||||||
|
|
||||||
#ifdef CONFIG_MTD_UCLINUX
|
#ifdef CONFIG_MTD_UCLINUX
|
||||||
early_printk("Found romfs @ 0x%08x (0x%08x)\n",
|
early_printk("Found romfs @ 0x%08x (0x%08x)\n",
|
||||||
|
|
|
@ -33,105 +33,6 @@
|
||||||
#include <linux/unistd.h>
|
#include <linux/unistd.h>
|
||||||
|
|
||||||
#include <asm/syscalls.h>
|
#include <asm/syscalls.h>
|
||||||
/*
|
|
||||||
* sys_ipc() is the de-multiplexer for the SysV IPC calls..
|
|
||||||
*
|
|
||||||
* This is really horribly ugly. This will be remove with new toolchain.
|
|
||||||
*/
|
|
||||||
asmlinkage long
|
|
||||||
sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth)
|
|
||||||
{
|
|
||||||
int version, ret;
|
|
||||||
|
|
||||||
version = call >> 16; /* hack for backward compatibility */
|
|
||||||
call &= 0xffff;
|
|
||||||
|
|
||||||
ret = -EINVAL;
|
|
||||||
switch (call) {
|
|
||||||
case SEMOP:
|
|
||||||
ret = sys_semop(first, (struct sembuf *)ptr, second);
|
|
||||||
break;
|
|
||||||
case SEMGET:
|
|
||||||
ret = sys_semget(first, second, third);
|
|
||||||
break;
|
|
||||||
case SEMCTL:
|
|
||||||
{
|
|
||||||
union semun fourth;
|
|
||||||
|
|
||||||
if (!ptr)
|
|
||||||
break;
|
|
||||||
ret = (access_ok(VERIFY_READ, ptr, sizeof(long)) ? 0 : -EFAULT)
|
|
||||||
|| (get_user(fourth.__pad, (void **)ptr)) ;
|
|
||||||
if (ret)
|
|
||||||
break;
|
|
||||||
ret = sys_semctl(first, second, third, fourth);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MSGSND:
|
|
||||||
ret = sys_msgsnd(first, (struct msgbuf *) ptr, second, third);
|
|
||||||
break;
|
|
||||||
case MSGRCV:
|
|
||||||
switch (version) {
|
|
||||||
case 0: {
|
|
||||||
struct ipc_kludge tmp;
|
|
||||||
|
|
||||||
if (!ptr)
|
|
||||||
break;
|
|
||||||
ret = (access_ok(VERIFY_READ, ptr, sizeof(tmp))
|
|
||||||
? 0 : -EFAULT) || copy_from_user(&tmp,
|
|
||||||
(struct ipc_kludge *) ptr, sizeof(tmp));
|
|
||||||
if (ret)
|
|
||||||
break;
|
|
||||||
ret = sys_msgrcv(first, tmp.msgp, second, tmp.msgtyp,
|
|
||||||
third);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
ret = sys_msgrcv(first, (struct msgbuf *) ptr,
|
|
||||||
second, fifth, third);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MSGGET:
|
|
||||||
ret = sys_msgget((key_t) first, second);
|
|
||||||
break;
|
|
||||||
case MSGCTL:
|
|
||||||
ret = sys_msgctl(first, second, (struct msqid_ds *) ptr);
|
|
||||||
break;
|
|
||||||
case SHMAT:
|
|
||||||
switch (version) {
|
|
||||||
default: {
|
|
||||||
ulong raddr;
|
|
||||||
ret = access_ok(VERIFY_WRITE, (ulong *) third,
|
|
||||||
sizeof(ulong)) ? 0 : -EFAULT;
|
|
||||||
if (ret)
|
|
||||||
break;
|
|
||||||
ret = do_shmat(first, (char *) ptr, second, &raddr);
|
|
||||||
if (ret)
|
|
||||||
break;
|
|
||||||
ret = put_user(raddr, (ulong *) third);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1: /* iBCS2 emulator entry point */
|
|
||||||
if (!segment_eq(get_fs(), get_ds()))
|
|
||||||
break;
|
|
||||||
ret = do_shmat(first, (char *) ptr, second,
|
|
||||||
(ulong *) third);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case SHMDT:
|
|
||||||
ret = sys_shmdt((char *)ptr);
|
|
||||||
break;
|
|
||||||
case SHMGET:
|
|
||||||
ret = sys_shmget(first, second, third);
|
|
||||||
break;
|
|
||||||
case SHMCTL:
|
|
||||||
ret = sys_shmctl(first, second, (struct shmid_ds *) ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
asmlinkage long microblaze_vfork(struct pt_regs *regs)
|
asmlinkage long microblaze_vfork(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,7 +121,7 @@ ENTRY(sys_call_table)
|
||||||
.long sys_wait4
|
.long sys_wait4
|
||||||
.long sys_swapoff /* 115 */
|
.long sys_swapoff /* 115 */
|
||||||
.long sys_sysinfo
|
.long sys_sysinfo
|
||||||
.long sys_ipc
|
.long sys_ni_syscall /* old sys_ipc */
|
||||||
.long sys_fsync
|
.long sys_fsync
|
||||||
.long sys_ni_syscall /* sys_sigreturn_wrapper */
|
.long sys_ni_syscall /* sys_sigreturn_wrapper */
|
||||||
.long sys_clone /* 120 */
|
.long sys_clone /* 120 */
|
||||||
|
|
|
@ -69,7 +69,7 @@ static int store_updates_sp(struct pt_regs *regs)
|
||||||
* It is called from do_page_fault above and from some of the procedures
|
* It is called from do_page_fault above and from some of the procedures
|
||||||
* in traps.c.
|
* in traps.c.
|
||||||
*/
|
*/
|
||||||
static void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
||||||
{
|
{
|
||||||
const struct exception_table_entry *fixup;
|
const struct exception_table_entry *fixup;
|
||||||
/* MS: no context */
|
/* MS: no context */
|
||||||
|
@ -122,15 +122,10 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_KGDB */
|
#endif /* CONFIG_KGDB */
|
||||||
|
|
||||||
if (in_atomic() || mm == NULL) {
|
if (in_atomic() || !mm) {
|
||||||
/* FIXME */
|
if (kernel_mode(regs))
|
||||||
if (kernel_mode(regs)) {
|
goto bad_area_nosemaphore;
|
||||||
printk(KERN_EMERG
|
|
||||||
"Page fault in kernel mode - Oooou!!! pid %d\n",
|
|
||||||
current->pid);
|
|
||||||
_exception(SIGSEGV, regs, code, address);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
/* in_atomic() in user mode is really bad,
|
/* in_atomic() in user mode is really bad,
|
||||||
as is current->mm == NULL. */
|
as is current->mm == NULL. */
|
||||||
printk(KERN_EMERG "Page fault in user mode with "
|
printk(KERN_EMERG "Page fault in user mode with "
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* MTX-1 platform devices registration
|
* MTX-1 platform devices registration
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007, Florian Fainelli <florian@openwrt.org>
|
* Copyright (C) 2007-2009, Florian Fainelli <florian@openwrt.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -142,7 +142,17 @@ static struct __initdata platform_device * mtx1_devs[] = {
|
||||||
|
|
||||||
static int __init mtx1_register_devices(void)
|
static int __init mtx1_register_devices(void)
|
||||||
{
|
{
|
||||||
gpio_direction_input(207);
|
int rc;
|
||||||
|
|
||||||
|
rc = gpio_request(mtx1_gpio_button[0].gpio,
|
||||||
|
mtx1_gpio_button[0].desc);
|
||||||
|
if (rc < 0) {
|
||||||
|
printk(KERN_INFO "mtx1: failed to request %d\n",
|
||||||
|
mtx1_gpio_button[0].gpio);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
gpio_direction_input(mtx1_gpio_button[0].gpio);
|
||||||
|
out:
|
||||||
return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs));
|
return platform_add_devices(mtx1_devs, ARRAY_SIZE(mtx1_devs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,3 +8,4 @@ obj-y := \
|
||||||
platform.o \
|
platform.o \
|
||||||
gpio.o \
|
gpio.o \
|
||||||
clock.o
|
clock.o
|
||||||
|
EXTRA_CFLAGS += -Werror
|
||||||
|
|
|
@ -264,19 +264,6 @@ static void __init tnetd7300_init_clocks(void)
|
||||||
iounmap(bootcr);
|
iounmap(bootcr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tnetd7200_get_clock(int base, struct tnetd7200_clock *clock,
|
|
||||||
u32 *bootcr, u32 bus_clock)
|
|
||||||
{
|
|
||||||
int divisor = ((readl(&clock->prediv) & 0x1f) + 1) *
|
|
||||||
((readl(&clock->postdiv) & 0x1f) + 1);
|
|
||||||
|
|
||||||
if (*bootcr & BOOT_PLL_BYPASS)
|
|
||||||
return base / divisor;
|
|
||||||
|
|
||||||
return base * ((readl(&clock->mul) & 0xf) + 1) / divisor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void tnetd7200_set_clock(int base, struct tnetd7200_clock *clock,
|
static void tnetd7200_set_clock(int base, struct tnetd7200_clock *clock,
|
||||||
int prediv, int postdiv, int postdiv2, int mul, u32 frequency)
|
int prediv, int postdiv, int postdiv2, int mul, u32 frequency)
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,7 +52,7 @@ static int __init memsize(void)
|
||||||
size <<= 1;
|
size <<= 1;
|
||||||
} while (size < (64 << 20));
|
} while (size < (64 << 20));
|
||||||
|
|
||||||
writel(tmpaddr, &addr);
|
writel((u32)tmpaddr, &addr);
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include <linux/serial_8250.h>
|
#include <linux/serial_8250.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/version.h>
|
|
||||||
#include <linux/vlynq.h>
|
#include <linux/vlynq.h>
|
||||||
#include <linux/leds.h>
|
#include <linux/leds.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
@ -243,13 +242,13 @@ static struct platform_device physmap_flash = {
|
||||||
.num_resources = 1,
|
.num_resources = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static u64 cpmac_dma_mask = DMA_32BIT_MASK;
|
static u64 cpmac_dma_mask = DMA_BIT_MASK(32);
|
||||||
static struct platform_device cpmac_low = {
|
static struct platform_device cpmac_low = {
|
||||||
.id = 0,
|
.id = 0,
|
||||||
.name = "cpmac",
|
.name = "cpmac",
|
||||||
.dev = {
|
.dev = {
|
||||||
.dma_mask = &cpmac_dma_mask,
|
.dma_mask = &cpmac_dma_mask,
|
||||||
.coherent_dma_mask = DMA_32BIT_MASK,
|
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||||
.platform_data = &cpmac_low_data,
|
.platform_data = &cpmac_low_data,
|
||||||
},
|
},
|
||||||
.resource = cpmac_low_res,
|
.resource = cpmac_low_res,
|
||||||
|
@ -261,7 +260,7 @@ static struct platform_device cpmac_high = {
|
||||||
.name = "cpmac",
|
.name = "cpmac",
|
||||||
.dev = {
|
.dev = {
|
||||||
.dma_mask = &cpmac_dma_mask,
|
.dma_mask = &cpmac_dma_mask,
|
||||||
.coherent_dma_mask = DMA_32BIT_MASK,
|
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||||
.platform_data = &cpmac_high_data,
|
.platform_data = &cpmac_high_data,
|
||||||
},
|
},
|
||||||
.resource = cpmac_high_res,
|
.resource = cpmac_high_res,
|
||||||
|
@ -481,6 +480,7 @@ static void __init detect_leds(void)
|
||||||
static int __init ar7_register_devices(void)
|
static int __init ar7_register_devices(void)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
#ifdef CONFIG_SERIAL_8250
|
||||||
static struct uart_port uart_port[2];
|
static struct uart_port uart_port[2];
|
||||||
|
|
||||||
memset(uart_port, 0, sizeof(struct uart_port) * 2);
|
memset(uart_port, 0, sizeof(struct uart_port) * 2);
|
||||||
|
@ -512,7 +512,7 @@ static int __init ar7_register_devices(void)
|
||||||
if (res)
|
if (res)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_SERIAL_8250 */
|
||||||
res = platform_device_register(&physmap_flash);
|
res = platform_device_register(&physmap_flash);
|
||||||
if (res)
|
if (res)
|
||||||
return res;
|
return res;
|
||||||
|
|
|
@ -144,7 +144,7 @@ static char * __init lookup_psp_var_map(u8 num)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < sizeof(psp_var_map); i++)
|
for (i = 0; i < ARRAY_SIZE(psp_var_map); i++)
|
||||||
if (psp_var_map[i].num == num)
|
if (psp_var_map[i].num == num)
|
||||||
return psp_var_map[i].value;
|
return psp_var_map[i].value;
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
* 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
|
* 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
#include <linux/version.h>
|
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/pm.h>
|
#include <linux/pm.h>
|
||||||
|
|
|
@ -194,11 +194,11 @@ static void octeon_init_secondary(void)
|
||||||
void octeon_prepare_cpus(unsigned int max_cpus)
|
void octeon_prepare_cpus(unsigned int max_cpus)
|
||||||
{
|
{
|
||||||
cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff);
|
cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffffffff);
|
||||||
if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_SHARED,
|
if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED,
|
||||||
"mailbox0", mailbox_interrupt)) {
|
"mailbox0", mailbox_interrupt)) {
|
||||||
panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n");
|
panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n");
|
||||||
}
|
}
|
||||||
if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_SHARED,
|
if (request_irq(OCTEON_IRQ_MBOX1, mailbox_interrupt, IRQF_DISABLED,
|
||||||
"mailbox1", mailbox_interrupt)) {
|
"mailbox1", mailbox_interrupt)) {
|
||||||
panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n");
|
panic("Cannot request_irq(OCTEON_IRQ_MBOX1)\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* linux/arch/mips/dec/ecc-berr.c
|
|
||||||
*
|
|
||||||
* Bus error event handling code for systems equipped with ECC
|
* Bus error event handling code for systems equipped with ECC
|
||||||
* handling logic, i.e. DECstation/DECsystem 5000/200 (KN02),
|
* handling logic, i.e. DECstation/DECsystem 5000/200 (KN02),
|
||||||
* 5000/240 (KN03), 5000/260 (KN05) and DECsystem 5900 (KN03),
|
* 5000/240 (KN03), 5000/260 (KN05) and DECsystem 5900 (KN03),
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* arch/mips/dec/int-handler.S
|
|
||||||
*
|
|
||||||
* Copyright (C) 1995, 1996, 1997 Paul M. Antoine and Harald Koerfgen
|
* Copyright (C) 1995, 1996, 1997 Paul M. Antoine and Harald Koerfgen
|
||||||
* Copyright (C) 2000, 2001, 2002, 2003, 2005 Maciej W. Rozycki
|
* Copyright (C) 2000, 2001, 2002, 2003, 2005 Maciej W. Rozycki
|
||||||
*
|
*
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue