diff --git a/[refs] b/[refs] index f7f6608eeb34..882a100bb11e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 56f54e7d671969da13693e5a147438f2cc50ca9b +refs/heads/master: a9866a0975881ba5e819b0a02324ba683b5cdb81 diff --git a/trunk/.mailmap b/trunk/.mailmap index 9b0d0267a3c3..a4806f0de852 100644 --- a/trunk/.mailmap +++ b/trunk/.mailmap @@ -68,7 +68,6 @@ Juha Yrjola Kay Sievers Kenneth W Chen Koushik -Kuninori Morimoto Leonid I Ananiev Linas Vepstas Mark Brown @@ -112,4 +111,3 @@ Uwe Kleine-König Uwe Kleine-König Valdis Kletnieks Takashi YOSHII -Yusuke Goda diff --git a/trunk/Documentation/ABI/stable/sysfs-acpi-pmprofile b/trunk/Documentation/ABI/stable/sysfs-acpi-pmprofile deleted file mode 100644 index 964c7a8afb26..000000000000 --- a/trunk/Documentation/ABI/stable/sysfs-acpi-pmprofile +++ /dev/null @@ -1,22 +0,0 @@ -What: /sys/firmware/acpi/pm_profile -Date: 03-Nov-2011 -KernelVersion: v3.2 -Contact: linux-acpi@vger.kernel.org -Description: The ACPI pm_profile sysfs interface exports the platform - power management (and performance) requirement expectations - as provided by BIOS. The integer value is directly passed as - retrieved from the FADT ACPI table. -Values: For possible values see ACPI specification: - 5.2.9 Fixed ACPI Description Table (FADT) - Field: Preferred_PM_Profile - - Currently these values are defined by spec: - 0 Unspecified - 1 Desktop - 2 Mobile - 3 Workstation - 4 Enterprise Server - 5 SOHO Server - 6 Appliance PC - 7 Performance Server - >7 Reserved diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-pci-devices-cciss b/trunk/Documentation/ABI/testing/sysfs-bus-pci-devices-cciss index 53d99edd1d75..f5bb0a3bb8c0 100644 --- a/trunk/Documentation/ABI/testing/sysfs-bus-pci-devices-cciss +++ b/trunk/Documentation/ABI/testing/sysfs-bus-pci-devices-cciss @@ -71,10 +71,3 @@ Description: Value of 1 indicates the controller can honor the reset_devices a dump device, as kdump requires resetting the device in order to work reliably. -Where: /sys/bus/pci/devices//ccissX/transport_mode -Date: July 2011 -Kernel Version: 3.0 -Contact: iss_storagedev@hp.com -Description: Value of "simple" indicates that the controller has been placed - in "simple mode". Value of "performant" indicates that the - controller has been placed in "performant mode". diff --git a/trunk/Documentation/CodingStyle b/trunk/Documentation/CodingStyle index 2b90d328b3ba..c940239d9678 100644 --- a/trunk/Documentation/CodingStyle +++ b/trunk/Documentation/CodingStyle @@ -166,8 +166,8 @@ if (condition) else do_that(); -This does not apply if only one branch of a conditional statement is a single -statement; in the latter case use braces in both branches: +This does not apply if one branch of a conditional statement is a single +statement. Use braces in both branches. if (condition) { do_this(); diff --git a/trunk/Documentation/DocBook/drm.tmpl b/trunk/Documentation/DocBook/drm.tmpl index 196b8b9dba11..c27915893974 100644 --- a/trunk/Documentation/DocBook/drm.tmpl +++ b/trunk/Documentation/DocBook/drm.tmpl @@ -32,7 +32,7 @@ The Linux DRM layer contains code intended to support the needs of complex graphics devices, usually containing programmable pipelines well suited to 3D graphics acceleration. Graphics - drivers in the kernel may make use of DRM functions to make + drivers in the kernel can make use of DRM functions to make tasks like memory management, interrupt handling and DMA easier, and provide a uniform interface to applications. @@ -57,10 +57,10 @@ existing drivers. - First, we go over some typical driver initialization + First, we'll go over some typical driver initialization requirements, like setting up command buffers, creating an initial output configuration, and initializing core services. - Subsequent sections cover core internals in more detail, + Subsequent sections will cover core internals in more detail, providing implementation notes and examples. @@ -74,7 +74,7 @@ The core of every DRM driver is struct drm_driver. Drivers - typically statically initialize a drm_driver structure, + will typically statically initialize a drm_driver structure, then pass it to drm_init() at load time. @@ -88,8 +88,8 @@ static struct drm_driver driver = { - /* Don't use MTRRs here; the Xserver or userspace app should - * deal with them for Intel hardware. + /* don't use mtrr's here, the Xserver or user space app should + * deal with them for intel hardware. */ .driver_features = DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | @@ -154,8 +154,8 @@ In the example above, taken from the i915 DRM driver, the driver - sets several flags indicating what core features it supports; - we go over the individual callbacks in later sections. Since + sets several flags indicating what core features it supports. + We'll go over the individual callbacks in later sections. Since flags indicate which features your driver supports to the DRM core, you need to set most of them prior to calling drm_init(). Some, like DRIVER_MODESET can be set later based on user supplied parameters, @@ -203,8 +203,8 @@ DRIVER_HAVE_IRQDRIVER_IRQ_SHARED - DRIVER_HAVE_IRQ indicates whether the driver has an IRQ - handler. DRIVER_IRQ_SHARED indicates whether the device & + DRIVER_HAVE_IRQ indicates whether the driver has a IRQ + handler, DRIVER_IRQ_SHARED indicates whether the device & handler support shared IRQs (note that this is required of PCI drivers). @@ -214,8 +214,8 @@ DRIVER_DMA_QUEUE - Should be set if the driver queues DMA requests and completes them - asynchronously. Deprecated. + If the driver queues DMA requests and completes them + asynchronously, this flag should be set. Deprecated. @@ -238,7 +238,7 @@ In this specific case, the driver requires AGP and supports - IRQs. DMA, as discussed later, is handled by device-specific ioctls + IRQs. DMA, as we'll see, is handled by device specific ioctls in this case. It also supports the kernel mode setting APIs, though unlike in the actual i915 driver source, this example unconditionally exports KMS capability. @@ -269,34 +269,36 @@ initial output configuration. - If compatibility is a concern (e.g. with drivers converted over - to the new interfaces from the old ones), care must be taken to - prevent device initialization and control that is incompatible with - currently active userspace drivers. For instance, if user + Note that the tasks performed at driver load time must not + conflict with DRM client requirements. For instance, if user level mode setting drivers are in use, it would be problematic to perform output discovery & configuration at load time. - Likewise, if user-level drivers unaware of memory management are + Likewise, if pre-memory management aware user level drivers are in use, memory management and command buffer setup may need to - be omitted. These requirements are driver-specific, and care + be omitted. These requirements are driver specific, and care needs to be taken to keep both old and new applications and libraries working. The i915 driver supports the "modeset" module parameter to control whether advanced features are - enabled at load time or in legacy fashion. + enabled at load time or in legacy fashion. If compatibility is + a concern (e.g. with drivers converted over to the new interfaces + from the old ones), care must be taken to prevent incompatible + device initialization and control with the currently active + userspace drivers. Driver private & performance counters The driver private hangs off the main drm_device structure and - can be used for tracking various device-specific bits of + can be used for tracking various device specific bits of information, like register offsets, command buffer status, register state for suspend/resume, etc. At load time, a - driver may simply allocate one and set drm_device.dev_priv - appropriately; it should be freed and drm_device.dev_priv set - to NULL when the driver is unloaded. + driver can simply allocate one and set drm_device.dev_priv + appropriately; at unload the driver can free it and set + drm_device.dev_priv to NULL. - The DRM supports several counters which may be used for rough + The DRM supports several counters which can be used for rough performance characterization. Note that the DRM stat counter system is not often used by applications, and supporting additional counters is completely optional. @@ -305,15 +307,15 @@ These interfaces are deprecated and should not be used. If performance monitoring is desired, the developer should investigate and potentially enhance the kernel perf and tracing infrastructure to export - GPU related performance information for consumption by performance - monitoring tools and applications. + GPU related performance information to performance monitoring + tools and applications. Configuring the device - Obviously, device configuration is device-specific. + Obviously, device configuration will be device specific. However, there are several common operations: finding a device's PCI resources, mapping them, and potentially setting up an IRQ handler. @@ -321,10 +323,10 @@ Finding & mapping resources is fairly straightforward. The DRM wrapper functions, drm_get_resource_start() and - drm_get_resource_len(), may be used to find BARs on the given + drm_get_resource_len() can be used to find BARs on the given drm_device struct. Once those values have been retrieved, the driver load function can call drm_addmap() to create a new - mapping for the BAR in question. Note that you probably want a + mapping for the BAR in question. Note you'll probably want a drm_local_map_t in your driver private structure to track any mappings you create. @@ -333,20 +335,20 @@ if compatibility with other operating systems isn't a concern (DRM drivers can run under various BSD variants and OpenSolaris), - native Linux calls may be used for the above, e.g. pci_resource_* + native Linux calls can be used for the above, e.g. pci_resource_* and iomap*/iounmap. See the Linux device driver book for more info. - Once you have a register map, you may use the DRM_READn() and + Once you have a register map, you can use the DRM_READn() and DRM_WRITEn() macros to access the registers on your device, or - use driver-specific versions to offset into your MMIO space - relative to a driver-specific base pointer (see I915_READ for - an example). + use driver specific versions to offset into your MMIO space + relative to a driver specific base pointer (see I915_READ for + example). If your device supports interrupt generation, you may want to - set up an interrupt handler when the driver is loaded. This + setup an interrupt handler at driver load time as well. This is done using the drm_irq_install() function. If your device supports vertical blank interrupts, it should call drm_vblank_init() to initialize the core vblank handling code before @@ -355,7 +357,7 @@ - Once your interrupt handler is registered (it uses your + Once your interrupt handler is registered (it'll use your drm_driver.irq_handler as the actual interrupt handling function), you can safely enable interrupts on your device, assuming any other state your interrupt handler uses is also @@ -369,10 +371,10 @@ using the pci_map_rom() call, a convenience function that takes care of mapping the actual ROM, whether it has been shadowed into memory (typically at address 0xc0000) or exists - on the PCI device in the ROM BAR. Note that after the ROM - has been mapped and any necessary information has been extracted, - it should be unmapped; on many devices, the ROM address decoder is - shared with other BARs, so leaving it mapped could cause + on the PCI device in the ROM BAR. Note that once you've + mapped the ROM and extracted any necessary information, be + sure to unmap it; on many devices the ROM address decoder is + shared with other BARs, so leaving it mapped can cause undesired behavior like hangs or memory corruption. @@ -387,9 +389,9 @@ should support a memory manager. - If your driver supports memory management (it should!), you + If your driver supports memory management (it should!), you'll need to set that up at load time as well. How you initialize - it depends on which memory manager you're using: TTM or GEM. + it depends on which memory manager you're using, TTM or GEM. TTM initialization @@ -399,7 +401,7 @@ and devices with dedicated video RAM (VRAM), i.e. most discrete graphics devices. If your device has dedicated RAM, supporting TTM is desirable. TTM also integrates tightly with your - driver-specific buffer execution function. See the radeon + driver specific buffer execution function. See the radeon driver for examples. @@ -427,21 +429,21 @@ created by the memory manager at runtime. Your global TTM should have a type of TTM_GLOBAL_TTM_MEM. The size field for the global object should be sizeof(struct ttm_mem_global), and the init and - release hooks should point at your driver-specific init and - release routines, which probably eventually call - ttm_mem_global_init and ttm_mem_global_release, respectively. + release hooks should point at your driver specific init and + release routines, which will probably eventually call + ttm_mem_global_init and ttm_mem_global_release respectively. Once your global TTM accounting structure is set up and initialized - by calling ttm_global_item_ref() on it, - you need to create a buffer object TTM to + (done by calling ttm_global_item_ref on the global object you + just created), you'll need to create a buffer object TTM to provide a pool for buffer object allocation by clients and the kernel itself. The type of this object should be TTM_GLOBAL_TTM_BO, and its size should be sizeof(struct ttm_bo_global). Again, - driver-specific init and release functions may be provided, - likely eventually calling ttm_bo_global_init() and - ttm_bo_global_release(), respectively. Also, like the previous - object, ttm_global_item_ref() is used to create an initial reference + driver specific init and release functions can be provided, + likely eventually calling ttm_bo_global_init and + ttm_bo_global_release, respectively. Also like the previous + object, ttm_global_item_ref is used to create an initial reference count for the TTM, which will call your initialization function. @@ -451,26 +453,27 @@ GEM is an alternative to TTM, designed specifically for UMA devices. It has simpler initialization and execution requirements than TTM, but has no VRAM management capability. Core GEM - is initialized by calling drm_mm_init() to create + initialization is comprised of a basic drm_mm_init call to create a GTT DRM MM object, which provides an address space pool for - object allocation. In a KMS configuration, the driver - needs to allocate and initialize a command ring buffer following - core GEM initialization. A UMA device usually has what is called a + object allocation. In a KMS configuration, the driver will + need to allocate and initialize a command ring buffer following + basic GEM initialization. Most UMA devices have a so-called "stolen" memory region, which provides space for the initial framebuffer and large, contiguous memory regions required by the - device. This space is not typically managed by GEM, and it must + device. This space is not typically managed by GEM, and must be initialized separately into its own DRM MM object. - Initialization is driver-specific. In the case of Intel + Initialization will be driver specific, and will depend on + the architecture of the device. In the case of Intel integrated graphics chips like 965GM, GEM initialization can be done by calling the internal GEM init function, i915_gem_do_init(). Since the 965GM is a UMA device - (i.e. it doesn't have dedicated VRAM), GEM manages + (i.e. it doesn't have dedicated VRAM), GEM will manage making regular RAM available for GPU operations. Memory set aside by the BIOS (called "stolen" memory by the i915 - driver) is managed by the DRM memrange allocator; the - rest of the aperture is managed by GEM. + driver) will be managed by the DRM memrange allocator; the + rest of the aperture will be managed by GEM. /* Basic memrange allocator for stolen space (aka vram) */ drm_memrange_init(&dev_priv->vram, 0, prealloc_size); @@ -480,7 +483,7 @@ - Once the memory manager has been set up, we may allocate the + Once the memory manager has been set up, we can allocate the command buffer. In the i915 case, this is also done with a GEM function, i915_gem_init_ringbuffer(). @@ -490,25 +493,16 @@ Output configuration - The final initialization task is output configuration. This involves: - - - Finding and initializing the CRTCs, encoders, and connectors - for the device. - - - Creating an initial configuration. - - - Registering a framebuffer console driver. - - + The final initialization task is output configuration. This involves + finding and initializing the CRTCs, encoders and connectors + for your device, creating an initial configuration and + registering a framebuffer console driver. Output discovery and initialization - Several core functions exist to create CRTCs, encoders, and - connectors, namely: drm_crtc_init(), drm_connector_init(), and + Several core functions exist to create CRTCs, encoders and + connectors, namely drm_crtc_init(), drm_connector_init() and drm_encoder_init(), along with several "helper" functions to perform common tasks. @@ -561,10 +555,10 @@ void intel_crt_init(struct drm_device *dev) In the example above (again, taken from the i915 driver), a - CRT connector and encoder combination is created. A device-specific - i2c bus is also created for fetching EDID data and + CRT connector and encoder combination is created. A device + specific i2c bus is also created, for fetching EDID data and performing monitor detection. Once the process is complete, - the new connector is registered with sysfs to make its + the new connector is registered with sysfs, to make its properties available to applications. @@ -573,12 +567,12 @@ void intel_crt_init(struct drm_device *dev) Since many PC-class graphics devices have similar display output designs, the DRM provides a set of helper functions to make output management easier. The core helper routines handle - encoder re-routing and the disabling of unused functions following - mode setting. Using the helpers is optional, but recommended for + encoder re-routing and disabling of unused functions following + mode set. Using the helpers is optional, but recommended for devices with PC-style architectures (i.e. a set of display planes for feeding pixels to encoders which are in turn routed to connectors). Devices with more complex requirements needing - finer grained management may opt to use the core callbacks + finer grained management can opt to use the core callbacks directly. @@ -586,25 +580,17 @@ void intel_crt_init(struct drm_device *dev) - Each encoder object needs to provide: - - - A DPMS (basically on/off) function. - - - A mode-fixup function (for converting requested modes into - native hardware timings). - - - Functions (prepare, set, and commit) for use by the core DRM - helper functions. - - - Connector helpers need to provide functions (mode-fetch, validity, - and encoder-matching) for returning an ideal encoder for a given - connector. The core connector functions include a DPMS callback, - save/restore routines (deprecated), detection, mode probing, - property handling, and cleanup functions. + For each encoder, CRTC and connector, several functions must + be provided, depending on the object type. Encoder objects + need to provide a DPMS (basically on/off) function, mode fixup + (for converting requested modes into native hardware timings), + and prepare, set and commit functions for use by the core DRM + helper functions. Connector helpers need to provide mode fetch and + validity functions as well as an encoder matching function for + returning an ideal encoder for a given connector. The core + connector functions include a DPMS callback, (deprecated) + save/restore routines, detection, mode probing, property handling, + and cleanup functions. @@ -619,33 +605,22 @@ void intel_crt_init(struct drm_device *dev) VBlank event handling The DRM core exposes two vertical blank related ioctls: - - - DRM_IOCTL_WAIT_VBLANK - - - This takes a struct drm_wait_vblank structure as its argument, - and it is used to block or request a signal when a specified - vblank event occurs. - - - - - DRM_IOCTL_MODESET_CTL - - - This should be called by application level drivers before and - after mode setting, since on many devices the vertical blank - counter is reset at that time. Internally, the DRM snapshots - the last vblank count when the ioctl is called with the - _DRM_PRE_MODESET command, so that the counter won't go backwards - (which is dealt with when _DRM_POST_MODESET is used). - - - - + DRM_IOCTL_WAIT_VBLANK and DRM_IOCTL_MODESET_CTL. + + DRM_IOCTL_WAIT_VBLANK takes a struct drm_wait_vblank structure + as its argument, and is used to block or request a signal when a + specified vblank event occurs. + + + DRM_IOCTL_MODESET_CTL should be called by application level + drivers before and after mode setting, since on many devices the + vertical blank counter will be reset at that time. Internally, + the DRM snapshots the last vblank count when the ioctl is called + with the _DRM_PRE_MODESET command so that the counter won't go + backwards (which is dealt with when _DRM_POST_MODESET is used). + To support the functions above, the DRM core provides several helper functions for tracking vertical blank counters, and @@ -657,24 +632,24 @@ void intel_crt_init(struct drm_device *dev) register. The enable and disable vblank callbacks should enable and disable vertical blank interrupts, respectively. In the absence of DRM clients waiting on vblank events, the core DRM - code uses the disable_vblank() function to disable - interrupts, which saves power. They are re-enabled again when + code will use the disable_vblank() function to disable + interrupts, which saves power. They'll be re-enabled again when a client calls the vblank wait ioctl above. - A device that doesn't provide a count register may simply use an + Devices that don't provide a count register can simply use an internal atomic counter incremented on every vertical blank - interrupt (and then treat the enable_vblank() and disable_vblank() - callbacks as no-ops). + interrupt, and can make their enable and disable vblank + functions into no-ops. Memory management - The memory manager lies at the heart of many DRM operations; it - is required to support advanced client features like OpenGL - pbuffers. The DRM currently contains two memory managers: TTM + The memory manager lies at the heart of many DRM operations, and + is also required to support advanced client features like OpenGL + pbuffers. The DRM currently contains two memory managers, TTM and GEM. @@ -704,46 +679,41 @@ void intel_crt_init(struct drm_device *dev) GEM-enabled drivers must provide gem_init_object() and gem_free_object() callbacks to support the core memory - allocation routines. They should also provide several driver-specific - ioctls to support command execution, pinning, buffer + allocation routines. They should also provide several driver + specific ioctls to support command execution, pinning, buffer read & write, mapping, and domain ownership transfers. - On a fundamental level, GEM involves several operations: - - Memory allocation and freeing - Command execution - Aperture management at command execution time - - Buffer object allocation is relatively + On a fundamental level, GEM involves several operations: memory + allocation and freeing, command execution, and aperture management + at command execution time. Buffer object allocation is relatively straightforward and largely provided by Linux's shmem layer, which provides memory to back each object. When mapped into the GTT or used in a command buffer, the backing pages for an object are flushed to memory and marked write combined so as to be coherent - with the GPU. Likewise, if the CPU accesses an object after the GPU - has finished rendering to the object, then the object must be made - coherent with the CPU's view + with the GPU. Likewise, when the GPU finishes rendering to an object, + if the CPU accesses it, it must be made coherent with the CPU's view of memory, usually involving GPU cache flushing of various kinds. - This core CPU<->GPU coherency management is provided by a - device-specific ioctl, which evaluates an object's current domain and + This core CPU<->GPU coherency management is provided by the GEM + set domain function, which evaluates an object's current domain and performs any necessary flushing or synchronization to put the object into the desired coherency domain (note that the object may be busy, - i.e. an active render target; in that case, setting the domain - blocks the client and waits for rendering to complete before + i.e. an active render target; in that case the set domain function + will block the client and wait for rendering to complete before performing any necessary flushing operations). Perhaps the most important GEM function is providing a command execution interface to clients. Client programs construct command - buffers containing references to previously allocated memory objects, - and then submit them to GEM. At that point, GEM takes care to bind + buffers containing references to previously allocated memory objects + and submit them to GEM. At that point, GEM will take care to bind all the objects into the GTT, execute the buffer, and provide necessary synchronization between clients accessing the same buffers. This often involves evicting some objects from the GTT and re-binding others (a fairly expensive operation), and providing relocation support which hides fixed GTT offsets from clients. Clients must take care not to submit command buffers that reference more objects - than can fit in the GTT; otherwise, GEM will reject them and no rendering + than can fit in the GTT or GEM will reject them and no rendering will occur. Similarly, if several objects in the buffer require fence registers to be allocated for correct rendering (e.g. 2D blits on pre-965 chips), care must be taken not to require more fence @@ -759,7 +729,7 @@ void intel_crt_init(struct drm_device *dev) Output management At the core of the DRM output management code is a set of - structures representing CRTCs, encoders, and connectors. + structures representing CRTCs, encoders and connectors. A CRTC is an abstraction representing a part of the chip that @@ -795,19 +765,21 @@ void intel_crt_init(struct drm_device *dev) Framebuffer management - Clients need to provide a framebuffer object which provides a source - of pixels for a CRTC to deliver to the encoder(s) and ultimately the - connector(s). A framebuffer is fundamentally a driver-specific memory - object, made into an opaque handle by the DRM's addfb() function. - Once a framebuffer has been created this way, it may be passed to the - KMS mode setting routines for use in a completed configuration. + In order to set a mode on a given CRTC, encoder and connector + configuration, clients need to provide a framebuffer object which + will provide a source of pixels for the CRTC to deliver to the encoder(s) + and ultimately the connector(s) in the configuration. A framebuffer + is fundamentally a driver specific memory object, made into an opaque + handle by the DRM addfb function. Once an fb has been created this + way it can be passed to the KMS mode setting routines for use in + a configuration. Command submission & fencing - This should cover a few device-specific command submission + This should cover a few device specific command submission implementations. @@ -817,7 +789,7 @@ void intel_crt_init(struct drm_device *dev) The DRM core provides some suspend/resume code, but drivers wanting full suspend/resume support should provide save() and - restore() functions. These are called at suspend, + restore() functions. These will be called at suspend, hibernate, or resume time, and should perform any state save or restore required by your device across suspend or hibernate states. @@ -840,8 +812,8 @@ void intel_crt_init(struct drm_device *dev) The DRM core exports several interfaces to applications, generally intended to be used through corresponding libdrm - wrapper functions. In addition, drivers export device-specific - interfaces for use by userspace drivers & device-aware + wrapper functions. In addition, drivers export device specific + interfaces for use by userspace drivers & device aware applications through ioctls and sysfs files. @@ -850,8 +822,8 @@ void intel_crt_init(struct drm_device *dev) management, memory management, and output management. - Cover generic ioctls and sysfs layout here. We only need high-level - info, since man pages should cover the rest. + Cover generic ioctls and sysfs layout here. Only need high + level info, since man pages will cover the rest. diff --git a/trunk/Documentation/DocBook/media/v4l/compat.xml b/trunk/Documentation/DocBook/media/v4l/compat.xml index b68698f96e7f..91410b6e7e08 100644 --- a/trunk/Documentation/DocBook/media/v4l/compat.xml +++ b/trunk/Documentation/DocBook/media/v4l/compat.xml @@ -2486,9 +2486,6 @@ ioctls. Flash API. - - &VIDIOC-CREATE-BUFS; and &VIDIOC-PREPARE-BUF; ioctls. - diff --git a/trunk/Documentation/DocBook/media/v4l/controls.xml b/trunk/Documentation/DocBook/media/v4l/controls.xml index 3bc5ee8b2c74..23fdf79f8cf3 100644 --- a/trunk/Documentation/DocBook/media/v4l/controls.xml +++ b/trunk/Documentation/DocBook/media/v4l/controls.xml @@ -232,9 +232,8 @@ control is deprecated. New drivers and applications should use the Enables a power line frequency filter to avoid flicker. Possible values for enum v4l2_power_line_frequency are: V4L2_CID_POWER_LINE_FREQUENCY_DISABLED (0), -V4L2_CID_POWER_LINE_FREQUENCY_50HZ (1), -V4L2_CID_POWER_LINE_FREQUENCY_60HZ (2) and -V4L2_CID_POWER_LINE_FREQUENCY_AUTO (3). +V4L2_CID_POWER_LINE_FREQUENCY_50HZ (1) and +V4L2_CID_POWER_LINE_FREQUENCY_60HZ (2). V4L2_CID_HUE_AUTO diff --git a/trunk/Documentation/DocBook/media/v4l/io.xml b/trunk/Documentation/DocBook/media/v4l/io.xml index 3f47df1aa54a..c57d1ec6291c 100644 --- a/trunk/Documentation/DocBook/media/v4l/io.xml +++ b/trunk/Documentation/DocBook/media/v4l/io.xml @@ -927,33 +927,6 @@ ioctl is called. Applications set or clear this flag before calling the VIDIOC_QBUF ioctl. - - V4L2_BUF_FLAG_PREPARED - 0x0400 - The buffer has been prepared for I/O and can be queued by the -application. Drivers set or clear this flag when the -VIDIOC_QUERYBUF, VIDIOC_PREPARE_BUF, VIDIOC_QBUF or VIDIOC_DQBUF ioctl is called. - - - V4L2_BUF_FLAG_NO_CACHE_INVALIDATE - 0x0400 - Caches do not have to be invalidated for this buffer. -Typically applications shall use this flag if the data captured in the buffer -is not going to be touched by the CPU, instead the buffer will, probably, be -passed on to a DMA-capable hardware unit for further processing or output. - - - - V4L2_BUF_FLAG_NO_CACHE_CLEAN - 0x0800 - Caches do not have to be cleaned for this buffer. -Typically applications shall use this flag for output buffers if the data -in this buffer has not been created by the CPU but by some DMA-capable unit, -in which case caches have not been used. - diff --git a/trunk/Documentation/DocBook/media/v4l/v4l2.xml b/trunk/Documentation/DocBook/media/v4l/v4l2.xml index 2ab365c10fb9..40132c277647 100644 --- a/trunk/Documentation/DocBook/media/v4l/v4l2.xml +++ b/trunk/Documentation/DocBook/media/v4l/v4l2.xml @@ -469,7 +469,6 @@ and discussions on the V4L mailing list. &sub-close; &sub-ioctl; - &sub-create-bufs; &sub-cropcap; &sub-dbg-g-chip-ident; &sub-dbg-g-register; @@ -512,7 +511,6 @@ and discussions on the V4L mailing list. &sub-queryctrl; &sub-query-dv-preset; &sub-querystd; - &sub-prepare-buf; &sub-reqbufs; &sub-s-hw-freq-seek; &sub-streamon; diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml deleted file mode 100644 index 73ae8a6cd004..000000000000 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - ioctl VIDIOC_CREATE_BUFS - &manvol; - - - - VIDIOC_CREATE_BUFS - Create buffers for Memory Mapped or User Pointer I/O - - - - - - int ioctl - int fd - int request - struct v4l2_create_buffers *argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_CREATE_BUFS - - - - argp - - - - - - - - - Description - - This ioctl is used to create buffers for memory -mapped or user pointer -I/O. It can be used as an alternative or in addition to the -VIDIOC_REQBUFS ioctl, when a tighter control over buffers -is required. This ioctl can be called multiple times to create buffers of -different sizes. - - To allocate device buffers applications initialize relevant fields of -the v4l2_create_buffers structure. They set the -type field in the -v4l2_format structure, embedded in this -structure, to the respective stream or buffer type. -count must be set to the number of required buffers. -memory specifies the required I/O method. The -format field shall typically be filled in using -either the VIDIOC_TRY_FMT or -VIDIOC_G_FMT ioctl(). Additionally, applications can adjust -sizeimage fields to fit their specific needs. The -reserved array must be zeroed. - - When the ioctl is called with a pointer to this structure the driver -will attempt to allocate up to the requested number of buffers and store the -actual number allocated and the starting index in the -count and the index fields -respectively. On return count can be smaller than -the number requested. The driver may also increase buffer sizes if required, -however, it will not update sizeimage field values. -The user has to use VIDIOC_QUERYBUF to retrieve that -information. - - - struct <structname>v4l2_create_buffers</structname> - - &cs-str; - - - __u32 - index - The starting buffer index, returned by the driver. - - - __u32 - count - The number of buffers requested or granted. - - - &v4l2-memory; - memory - Applications set this field to -V4L2_MEMORY_MMAP or -V4L2_MEMORY_USERPTR. - - - &v4l2-format; - format - Filled in by the application, preserved by the driver. - - - __u32 - reserved[8] - A place holder for future extensions. - - - -
-
- - - &return-value; - - - - ENOMEM - - No memory to allocate buffers for memory -mapped I/O. - - - - EINVAL - - The buffer type (type field) or the -requested I/O method (memory) is not -supported. - - - - -
diff --git a/trunk/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml b/trunk/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml deleted file mode 100644 index 7bde698760e4..000000000000 --- a/trunk/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - ioctl VIDIOC_PREPARE_BUF - &manvol; - - - - VIDIOC_PREPARE_BUF - Prepare a buffer for I/O - - - - - - int ioctl - int fd - int request - struct v4l2_buffer *argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_PREPARE_BUF - - - - argp - - - - - - - - - Description - - Applications can optionally call the -VIDIOC_PREPARE_BUF ioctl to pass ownership of the buffer -to the driver before actually enqueuing it, using the -VIDIOC_QBUF ioctl, and to prepare it for future I/O. -Such preparations may include cache invalidation or cleaning. Performing them -in advance saves time during the actual I/O. In case such cache operations are -not required, the application can use one of -V4L2_BUF_FLAG_NO_CACHE_INVALIDATE and -V4L2_BUF_FLAG_NO_CACHE_CLEAN flags to skip the respective -step. - - The v4l2_buffer structure is -specified in . - - - - &return-value; - - - - EBUSY - - File I/O is in progress. - - - - EINVAL - - The buffer type is not -supported, or the index is out of bounds, -or no buffers have been allocated yet, or the -userptr or -length are invalid. - - - - - diff --git a/trunk/Documentation/DocBook/mtdnand.tmpl b/trunk/Documentation/DocBook/mtdnand.tmpl index 0c674be0d3c6..17910e2052ad 100644 --- a/trunk/Documentation/DocBook/mtdnand.tmpl +++ b/trunk/Documentation/DocBook/mtdnand.tmpl @@ -572,7 +572,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
The simplest way to activate the FLASH based bad block table support - is to set the option NAND_BBT_USE_FLASH in the bbt_option field of + is to set the option NAND_USE_FLASH_BBT in the option field of the nand chip structure before calling nand_scan(). For AG-AND chips is this done by default. This activates the default FLASH based bad block table functionality @@ -773,6 +773,20 @@ struct nand_oobinfo { done according to the default builtin scheme.
+ + User space placement selection + + All non ecc functions like mtd->read and mtd->write use an internal + structure, which can be set by an ioctl. This structure is preset + to the autoplacement default. + + ioctl (fd, MEMSETOOBSEL, oobsel); + + oobsel is a pointer to a user supplied structure of type + nand_oobconfig. The contents of this structure must match the + criteria of the filesystem, which will be used. See an example in utils/nandwrite.c. + + Spare area autoplacement default schemes @@ -1144,6 +1158,9 @@ in this page These constants are defined in nand.h. They are ored together to describe the functionality. +/* Use a flash based bad block table. This option is parsed by the + * default bad block table function (nand_default_bbt). */ +#define NAND_USE_FLASH_BBT 0x00010000 /* The hw ecc generator provides a syndrome instead a ecc value on read * This can only work if we have the ecc bytes directly behind the * data bytes. Applies for DOC and AG-AND Renesas HW Reed Solomon generators */ diff --git a/trunk/Documentation/block/switching-sched.txt b/trunk/Documentation/block/switching-sched.txt index 3b2612e342f1..71cfbdc0f74d 100644 --- a/trunk/Documentation/block/switching-sched.txt +++ b/trunk/Documentation/block/switching-sched.txt @@ -1,6 +1,6 @@ To choose IO schedulers at boot time, use the argument 'elevator=deadline'. -'noop' and 'cfq' (the default) are also available. IO schedulers are assigned -globally at boot time only presently. +'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are +assigned globally at boot time only presently. Each io queue has a set of io scheduler tunables associated with it. These tunables control how the io scheduler works. You can find these entries diff --git a/trunk/Documentation/blockdev/cciss.txt b/trunk/Documentation/blockdev/cciss.txt index 71464e09ec18..c00c6a5ab21f 100644 --- a/trunk/Documentation/blockdev/cciss.txt +++ b/trunk/Documentation/blockdev/cciss.txt @@ -78,16 +78,6 @@ The device naming scheme is: /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2 /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3 -CCISS simple mode support -------------------------- - -The "cciss_simple_mode=1" boot parameter may be used to prevent the driver -from putting the controller into "performant" mode. The difference is that -with simple mode, each command completion requires an interrupt, while with -"performant mode" (the default, and ordinarily better performing) it is -possible to have multiple command completions indicated by a single -interrupt. - SCSI tape drive and medium changer support ------------------------------------------ diff --git a/trunk/Documentation/cgroups/cgroups.txt b/trunk/Documentation/cgroups/cgroups.txt index 9c452ef2328c..cd67e90003c0 100644 --- a/trunk/Documentation/cgroups/cgroups.txt +++ b/trunk/Documentation/cgroups/cgroups.txt @@ -454,8 +454,8 @@ mounted hierarchy, to remove a task from its current cgroup you must move it into a new cgroup (possibly the root cgroup) by writing to the new cgroup's tasks file. -Note: Due to some restrictions enforced by some cgroup subsystems, moving -a process to another cgroup can fail. +Note: If the ns cgroup is active, moving a process to another cgroup can +fail. 2.3 Mounting hierarchies by name -------------------------------- diff --git a/trunk/Documentation/cgroups/freezer-subsystem.txt b/trunk/Documentation/cgroups/freezer-subsystem.txt index 7e62de1e59ff..c21d77742a07 100644 --- a/trunk/Documentation/cgroups/freezer-subsystem.txt +++ b/trunk/Documentation/cgroups/freezer-subsystem.txt @@ -33,9 +33,9 @@ demonstrate this problem using nested bash shells: From a second, unrelated bash shell: $ kill -SIGSTOP 16690 - $ kill -SIGCONT 16690 + $ kill -SIGCONT 16990 - + This happens because bash can observe both signals and choose how it responds to them. diff --git a/trunk/Documentation/devicetree/bindings/ata/calxeda-sata.txt b/trunk/Documentation/devicetree/bindings/ata/calxeda-sata.txt deleted file mode 100644 index 79caa5651f53..000000000000 --- a/trunk/Documentation/devicetree/bindings/ata/calxeda-sata.txt +++ /dev/null @@ -1,17 +0,0 @@ -* Calxeda SATA Controller - -SATA nodes are defined to describe on-chip Serial ATA controllers. -Each SATA controller should have its own node. - -Required properties: -- compatible : compatible list, contains "calxeda,hb-ahci" -- interrupts : -- reg : - -Example: - sata@ffe08000 { - compatible = "calxeda,hb-ahci"; - reg = <0xffe08000 0x1000>; - interrupts = <115>; - }; - diff --git a/trunk/Documentation/devicetree/bindings/mtd/atmel-dataflash.txt b/trunk/Documentation/devicetree/bindings/mtd/atmel-dataflash.txt deleted file mode 100644 index ef66ddd01da0..000000000000 --- a/trunk/Documentation/devicetree/bindings/mtd/atmel-dataflash.txt +++ /dev/null @@ -1,14 +0,0 @@ -* Atmel Data Flash - -Required properties: -- compatible : "atmel,", "atmel,", "atmel,dataflash". - -Example: - -flash@1 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "atmel,at45db321d", "atmel,at45", "atmel,dataflash"; - spi-max-frequency = <25000000>; - reg = <1>; -}; diff --git a/trunk/Documentation/devicetree/bindings/powerpc/fsl/board.txt b/trunk/Documentation/devicetree/bindings/powerpc/fsl/board.txt index 380914e965e0..39e941515a36 100644 --- a/trunk/Documentation/devicetree/bindings/powerpc/fsl/board.txt +++ b/trunk/Documentation/devicetree/bindings/powerpc/fsl/board.txt @@ -1,8 +1,3 @@ -Freescale Reference Board Bindings - -This document describes device tree bindings for various devices that -exist on some Freescale reference boards. - * Board Control and Status (BCSR) Required properties: @@ -17,26 +12,25 @@ Example: reg = ; }; -* Freescale on-board FPGA +* Freescale on board FPGA This is the memory-mapped registers for on board FPGA. Required properities: -- compatible: should be a board-specific string followed by a string - indicating the type of FPGA. Example: - "fsl,-fpga", "fsl,fpga-pixis" -- reg: should contain the address and the length of the FPGA register set. +- compatible : should be "fsl,fpga-pixis". +- reg : should contain the address and the length of the FPPGA register + set. - interrupt-parent: should specify phandle for the interrupt controller. -- interrupts: should specify event (wakeup) IRQ. +- interrupts : should specify event (wakeup) IRQ. -Example (P1022DS): +Example (MPC8610HPCD): - board-control@3,0 { - compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis"; - reg = <3 0 0x30>; - interrupt-parent = <&mpic>; - interrupts = <8 8 0 0>; - }; + board-control@e8000000 { + compatible = "fsl,fpga-pixis"; + reg = <0xe8000000 32>; + interrupt-parent = <&mpic>; + interrupts = <8 8>; + }; * Freescale BCSR GPIO banks diff --git a/trunk/Documentation/devicetree/bindings/powerpc/fsl/dcsr.txt b/trunk/Documentation/devicetree/bindings/powerpc/fsl/dcsr.txt deleted file mode 100644 index 9d54eb5a295f..000000000000 --- a/trunk/Documentation/devicetree/bindings/powerpc/fsl/dcsr.txt +++ /dev/null @@ -1,395 +0,0 @@ -=================================================================== -Debug Control and Status Register (DCSR) Binding -Copyright 2011 Freescale Semiconductor Inc. - -NOTE: The bindings described in this document are preliminary and subject -to change. Some of the compatible strings that contain only generic names -may turn out to be inappropriate, or need additional properties to describe -the integration of the block with the rest of the chip. - -===================================================================== -Debug Control and Status Register Memory Map - -Description - -This node defines the base address and range for the -defined DCSR Memory Map. Child nodes will describe the individual -debug blocks defined within this memory space. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr" and "simple-bus". - The DCSR space exists in the memory-mapped bus. - - - #address-cells - Usage: required - Value type: - Definition: A standard property. Defines the number of cells - or representing physical addresses in child nodes. - - - #size-cells - Usage: required - Value type: - Definition: A standard property. Defines the number of cells - or representing the size of physical addresses in - child nodes. - - - ranges - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - range of the DCSR space. - -EXAMPLE - dcsr: dcsr@f00000000 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "fsl,dcsr", "simple-bus"; - ranges = <0x00000000 0xf 0x00000000 0x01008000>; - }; - -===================================================================== -Event Processing Unit - -This node represents the region of DCSR space allocated to the EPU - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr-epu" - - - interrupts - Usage: required - Value type: - Definition: Specifies the interrupts generated by the EPU. - The value of the interrupts property consists of three - interrupt specifiers. The format of the specifier is defined - by the binding document describing the node's interrupt parent. - - The EPU counters can be configured to assert the performance - monitor interrupt signal based on either counter overflow or value - match. Which counter asserted the interrupt is captured in an EPU - Counter Interrupt Status Register (EPCPUISR). - - The EPU unit can also be configured to assert either or both of - two interrupt signals based on debug event sources within the SoC. - The interrupt signals are epu_xt_int0 and epu_xt_int1. - Which event source asserted the interrupt is captured in an EPU - Interrupt Status Register (EPISR0,EPISR1). - - Interrupt numbers are lised in order (perfmon, event0, event1). - - - interrupt-parent - Usage: required - Value type: - Definition: A single value that points - to the interrupt parent to which the child domain - is being mapped. Value must be "&mpic" - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-epu@0 { - compatible = "fsl,dcsr-epu"; - interrupts = <52 2 0 0 - 84 2 0 0 - 85 2 0 0>; - interrupt-parent = <&mpic>; - reg = <0x0 0x1000>; - }; - -======================================================================= -Nexus Port Controller - -This node represents the region of DCSR space allocated to the NPC - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr-npc" - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - The Nexus Port controller occupies two regions in the DCSR space - with distinct functionality. - - The first register range describes the Nexus Port Controller - control and status registers. - - The second register range describes the Nexus Port Controller - internal trace buffer. The NPC trace buffer is a small memory buffer - which stages the nexus trace data for transmission via the Aurora port - or to a DDR based trace buffer. In some configurations the NPC trace - buffer can be the only trace buffer used. - - -EXAMPLE - dcsr-npc { - compatible = "fsl,dcsr-npc"; - reg = <0x1000 0x1000 0x1000000 0x8000>; - }; - -======================================================================= -Nexus Concentrator - -This node represents the region of DCSR space allocated to the NXC - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr-nxc" - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-nxc@2000 { - compatible = "fsl,dcsr-nxc"; - reg = <0x2000 0x1000>; - }; -======================================================================= -CoreNet Debug Controller - -This node represents the region of DCSR space allocated to -the CoreNet Debug controller. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr-corenet" - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - The CoreNet Debug controller occupies two regions in the DCSR space - with distinct functionality. - - The first register range describes the CoreNet Debug Controller - functionalty to perform transaction and transaction attribute matches. - - The second register range describes the CoreNet Debug Controller - functionalty to trigger event notifications and debug traces. - -EXAMPLE - dcsr-corenet { - compatible = "fsl,dcsr-corenet"; - reg = <0x8000 0x1000 0xB0000 0x1000>; - }; - -======================================================================= -Data Path Debug controller - -This node represents the region of DCSR space allocated to -the DPAA Debug Controller. This controller controls debug configuration -for the QMAN and FMAN blocks. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include both an identifier specific to the SoC - or Debug IP of the form "fsl,-dcsr-dpaa" in addition to the - generic compatible string "fsl,dcsr-dpaa". - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-dpaa@9000 { - compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa"; - reg = <0x9000 0x1000>; - }; - -======================================================================= -OCeaN Debug controller - -This node represents the region of DCSR space allocated to -the OCN Debug Controller. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include both an identifier specific to the SoC - or Debug IP of the form "fsl,-dcsr-ocn" in addition to the - generic compatible string "fsl,dcsr-ocn". - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-ocn@11000 { - compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn"; - reg = <0x11000 0x1000>; - }; - -======================================================================= -DDR Controller Debug controller - -This node represents the region of DCSR space allocated to -the OCN Debug Controller. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include "fsl,dcsr-ddr" - - - dev-handle - Usage: required - Definition: A phandle to associate this debug node with its - component controller. - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-ddr@12000 { - compatible = "fsl,dcsr-ddr"; - dev-handle = <&ddr1>; - reg = <0x12000 0x1000>; - }; - -======================================================================= -Nexus Aurora Link Controller - -This node represents the region of DCSR space allocated to -the NAL Controller. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include both an identifier specific to the SoC - or Debug IP of the form "fsl,-dcsr-nal" in addition to the - generic compatible string "fsl,dcsr-nal". - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-nal@18000 { - compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal"; - reg = <0x18000 0x1000>; - }; - - -======================================================================= -Run Control and Power Management - -This node represents the region of DCSR space allocated to -the RCPM Debug Controller. This functionlity is limited to the -control the debug operations of the SoC and cores. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include both an identifier specific to the SoC - or Debug IP of the form "fsl,-dcsr-rcpm" in addition to the - generic compatible string "fsl,dcsr-rcpm". - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-rcpm@22000 { - compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm"; - reg = <0x22000 0x1000>; - }; - -======================================================================= -Core Service Bridge Proxy - -This node represents the region of DCSR space allocated to -the Core Service Bridge Proxies. -There is one Core Service Bridge Proxy device for each CPU in the system. -This functionlity provides access to the debug operations of the CPU. - -PROPERTIES - - - compatible - Usage: required - Value type: - Definition: Must include both an identifier specific to the cpu - of the form "fsl,dcsr--sb-proxy" in addition to the - generic compatible string "fsl,dcsr-cpu-sb-proxy". - - - cpu-handle - Usage: required - Definition: A phandle to associate this debug node with its cpu. - - - reg - Usage: required - Value type: - Definition: A standard property. Specifies the physical address - offset and length of the DCSR space registers of the device - configuration block. - -EXAMPLE - dcsr-cpu-sb-proxy@40000 { - compatible = "fsl,dcsr-e500mc-sb-proxy", - "fsl,dcsr-cpu-sb-proxy"; - cpu-handle = <&cpu0>; - reg = <0x40000 0x1000>; - }; - dcsr-cpu-sb-proxy@41000 { - compatible = "fsl,dcsr-e500mc-sb-proxy", - "fsl,dcsr-cpu-sb-proxy"; - cpu-handle = <&cpu1>; - reg = <0x41000 0x1000>; - }; - -======================================================================= diff --git a/trunk/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt b/trunk/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt index 5d586e1ccaf5..70558c3f3682 100644 --- a/trunk/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt +++ b/trunk/Documentation/devicetree/bindings/powerpc/fsl/msi-pic.txt @@ -25,16 +25,6 @@ Required properties: are routed to IPIC, and for 85xx/86xx cpu the interrupts are routed to MPIC. -Optional properties: -- msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register - is used for MSI messaging. The address of MSIIR in PCI address space is - the MSI message address. - - This property may be used in virtualized environments where the hypervisor - has created an alternate mapping for the MSIR block. See below for an - explanation. - - Example: msi@41600 { compatible = "fsl,mpc8610-msi", "fsl,mpic-msi"; @@ -51,35 +41,3 @@ Example: 0xe7 0>; interrupt-parent = <&mpic>; }; - -The Freescale hypervisor and msi-address-64 -------------------------------------------- -Normally, PCI devices have access to all of CCSR via an ATMU mapping. The -Freescale MSI driver calculates the address of MSIIR (in the MSI register -block) and sets that address as the MSI message address. - -In a virtualized environment, the hypervisor may need to create an IOMMU -mapping for MSIIR. The Freescale ePAPR hypervisor has this requirement -because of hardware limitations of the Peripheral Access Management Unit -(PAMU), which is currently the only IOMMU that the hypervisor supports. -The ATMU is programmed with the guest physical address, and the PAMU -intercepts transactions and reroutes them to the true physical address. - -In the PAMU, each PCI controller is given only one primary window. The -PAMU restricts DMA operations so that they can only occur within a window. -Because PCI devices must be able to DMA to memory, the primary window must -be used to cover all of the guest's memory space. - -PAMU primary windows can be divided into 256 subwindows, and each -subwindow can have its own address mapping ("guest physical" to "true -physical"). However, each subwindow has to have the same alignment, which -means they cannot be located at just any address. Because of these -restrictions, it is usually impossible to create a 4KB subwindow that -covers MSIIR where it's normally located. - -Therefore, the hypervisor has to create a subwindow inside the same -primary window used for memory, but mapped to the MSIR block (where MSIIR -lives). The first subwindow after the end of guest memory is used for -this. The address specified in the msi-address-64 property is the PCI -address of MSIIR. The hypervisor configures the PAMU to map that address to -the true physical address of MSIIR. diff --git a/trunk/Documentation/filesystems/hfs.txt b/trunk/Documentation/filesystems/hfs.txt index d096df6db07a..bd0fa7704035 100644 --- a/trunk/Documentation/filesystems/hfs.txt +++ b/trunk/Documentation/filesystems/hfs.txt @@ -1,4 +1,3 @@ -Note: This filesystem doesn't have a maintainer. Macintosh HFS Filesystem for Linux ================================== @@ -77,6 +76,8 @@ hformat that can be used to create HFS filesystem. See Credits ======= -The HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU). -Roman Zippel (roman@ardistech.com) rewrote large parts of the code and brought -in btree routines derived from Brad Boyer's hfsplus driver. +The HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU) +and is now maintained by Roman Zippel (roman@ardistech.com) at Ardis +Technologies. +Roman rewrote large parts of the code and brought in btree routines derived +from Brad Boyer's hfsplus driver (also maintained by Roman now). diff --git a/trunk/Documentation/filesystems/inotify.txt b/trunk/Documentation/filesystems/inotify.txt index cfd02712b83e..59a919f16144 100644 --- a/trunk/Documentation/filesystems/inotify.txt +++ b/trunk/Documentation/filesystems/inotify.txt @@ -194,8 +194,7 @@ associated with the inotify_handle, and on which events are queued. Each watch is associated with an inotify_watch structure. Watches are chained off of each associated inotify_handle and each associated inode. -See fs/notify/inotify/inotify_fsnotify.c and fs/notify/inotify/inotify_user.c -for the locking and lifetime rules. +See fs/inotify.c and fs/inotify_user.c for the locking and lifetime rules. (vi) Rationale diff --git a/trunk/Documentation/hwmon/w83627ehf b/trunk/Documentation/hwmon/w83627ehf index 3f44dbdfda70..76ffef94ed75 100644 --- a/trunk/Documentation/hwmon/w83627ehf +++ b/trunk/Documentation/hwmon/w83627ehf @@ -14,10 +14,6 @@ Supported chips: Prefix: 'w83627dhg' Addresses scanned: ISA address retrieved from Super I/O registers Datasheet: not available - * Winbond W83627UHG - Prefix: 'w83627uhg' - Addresses scanned: ISA address retrieved from Super I/O registers - Datasheet: available from www.nuvoton.com * Winbond W83667HG Prefix: 'w83667hg' Addresses scanned: ISA address retrieved from Super I/O registers @@ -46,13 +42,14 @@ Description ----------- This driver implements support for the Winbond W83627EHF, W83627EHG, -W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I -(NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively -as Winbond chips. - -The chips implement 2 to 4 temperature sensors (9 for NCT6775F and NCT6776F), -2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID -(except for 627UHG), alarms with beep warnings (control unimplemented), +W83627DHG, W83627DHG-P, W83667HG, W83667HG-B, W83667HG-I (NCT6775F), +and NCT6776F super I/O chips. We will refer to them collectively as +Winbond chips. + +The chips implement three temperature sensors (up to four for 667HG-B, and nine +for NCT6775F and NCT6776F), five fan rotation speed sensors, ten analog voltage +sensors (only nine for the 627DHG), one VID (6 pins for the 627EHF/EHG, 8 pins +for the 627DHG and 667HG), alarms with beep warnings (control unimplemented), and some automatic fan regulation strategies (plus manual fan control mode). The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are @@ -89,16 +86,17 @@ follows: temp1 -> pwm1 temp2 -> pwm2 -temp3 -> pwm3 (not on 627UHG) +temp3 -> pwm3 prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not supported by the driver) /sys files ---------- -name - this is a standard hwmon device entry, it contains the name of - the device (see the prefix in the list of supported devices at - the top of this file) +name - this is a standard hwmon device entry. For the W83627EHF and W83627EHG, + it is set to "w83627ehf", for the W83627DHG it is set to "w83627dhg", + for the W83667HG and W83667HG-B it is set to "w83667hg", for NCT6775F it + is set to "nct6775", and for NCT6776F it is set to "nct6776". pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range: 0 (stop) to 255 (full) diff --git a/trunk/Documentation/laptops/thinkpad-acpi.txt b/trunk/Documentation/laptops/thinkpad-acpi.txt index 9d666828915a..3ff0dad62d36 100644 --- a/trunk/Documentation/laptops/thinkpad-acpi.txt +++ b/trunk/Documentation/laptops/thinkpad-acpi.txt @@ -411,9 +411,9 @@ event code Key Notes 0x1004 0x03 FN+F4 Sleep button (ACPI sleep button semantics, i.e. sleep-to-RAM). - It always generates some kind + It is always generate some kind of event, either the hot key - event or an ACPI sleep button + event or a ACPI sleep button event. The firmware may refuse to generate further FN+F4 key presses until a S3 or S4 ACPI diff --git a/trunk/Documentation/leds/leds-class.txt b/trunk/Documentation/leds/leds-class.txt index 79699c200766..4996586e27e8 100644 --- a/trunk/Documentation/leds/leds-class.txt +++ b/trunk/Documentation/leds/leds-class.txt @@ -61,8 +61,8 @@ Hardware accelerated blink of LEDs Some LEDs can be programmed to blink without any CPU interaction. To support this feature, a LED driver can optionally implement the blink_set() function (see ). To set an LED to blinking, -however, it is better to use the API function led_blink_set(), as it -will check and implement software fallback if necessary. +however, it is better to use use the API function led_blink_set(), +as it will check and implement software fallback if necessary. To turn off blinking again, use the API function led_brightness_set() as that will not just set the LED brightness but also stop any software diff --git a/trunk/Documentation/networking/ipvs-sysctl.txt b/trunk/Documentation/networking/ipvs-sysctl.txt index f2a2488f1bf3..4ccdbca03811 100644 --- a/trunk/Documentation/networking/ipvs-sysctl.txt +++ b/trunk/Documentation/networking/ipvs-sysctl.txt @@ -15,23 +15,6 @@ amemthresh - INTEGER enabled and the variable is automatically set to 2, otherwise the strategy is disabled and the variable is set to 1. -conntrack - BOOLEAN - 0 - disabled (default) - not 0 - enabled - - If set, maintain connection tracking entries for - connections handled by IPVS. - - This should be enabled if connections handled by IPVS are to be - also handled by stateful firewall rules. That is, iptables rules - that make use of connection tracking. It is a performance - optimisation to disable this setting otherwise. - - Connections handled by the IPVS FTP application module - will have connection tracking entries regardless of this setting. - - Only available when IPVS is compiled with CONFIG_IP_VS_NFCT enabled. - cache_bypass - BOOLEAN 0 - disabled (default) not 0 - enabled @@ -56,7 +39,7 @@ debug_level - INTEGER 11 - IPVS packet handling (ip_vs_in/ip_vs_out) 12 or more - packet traversal - Only available when IPVS is compiled with CONFIG_IP_VS_DEBUG enabled. + Only available when IPVS is compiled with the CONFIG_IPVS_DEBUG Higher debugging levels include the messages for lower debugging levels, so setting debug level 2, includes level 0, 1 and 2 @@ -140,11 +123,13 @@ nat_icmp_send - BOOLEAN secure_tcp - INTEGER 0 - disabled (default) - The secure_tcp defense is to use a more complicated TCP state - transition table. For VS/NAT, it also delays entering the - TCP ESTABLISHED state until the three way handshake is completed. + The secure_tcp defense is to use a more complicated state + transition table and some possible short timeouts of each + state. In the VS/NAT, it delays the entering the ESTABLISHED + until the real server starts to send data and ACK packet + (after 3-way handshake). - The value definition is the same as that of drop_entry and + The value definition is the same as that of drop_entry or drop_packet. sync_threshold - INTEGER @@ -156,36 +141,3 @@ sync_threshold - INTEGER synchronized, every time the number of its incoming packets modulus 50 equals the threshold. The range of the threshold is from 0 to 49. - -snat_reroute - BOOLEAN - 0 - disabled - not 0 - enabled (default) - - If enabled, recalculate the route of SNATed packets from - realservers so that they are routed as if they originate from the - director. Otherwise they are routed as if they are forwarded by the - director. - - If policy routing is in effect then it is possible that the route - of a packet originating from a director is routed differently to a - packet being forwarded by the director. - - If policy routing is not in effect then the recalculated route will - always be the same as the original route so it is an optimisation - to disable snat_reroute and avoid the recalculation. - -sync_version - INTEGER - default 1 - - The version of the synchronisation protocol used when sending - synchronisation messages. - - 0 selects the original synchronisation protocol (version 0). This - should be used when sending synchronisation messages to a legacy - system that only understands the original synchronisation protocol. - - 1 selects the current synchronisation protocol (version 1). This - should be used where possible. - - Kernels with this sync_version entry are able to receive messages - of both version 1 and version 2 of the synchronisation protocol. diff --git a/trunk/Documentation/oops-tracing.txt b/trunk/Documentation/oops-tracing.txt index 13032c0140d4..6fe9001b9263 100644 --- a/trunk/Documentation/oops-tracing.txt +++ b/trunk/Documentation/oops-tracing.txt @@ -263,8 +263,6 @@ characters, each representing a particular tainted value. 12: 'I' if the kernel is working around a severe bug in the platform firmware (BIOS or similar). - 13: 'O' if an externally-built ("out-of-tree") module has been loaded. - The primary reason for the 'Tainted: ' string is to tell kernel debuggers if this is a clean kernel or if anything unusual has occurred. Tainting is permanent: even if an offending module is diff --git a/trunk/Documentation/power/freezing-of-tasks.txt b/trunk/Documentation/power/freezing-of-tasks.txt index 316c2ba187f4..38b57248fd61 100644 --- a/trunk/Documentation/power/freezing-of-tasks.txt +++ b/trunk/Documentation/power/freezing-of-tasks.txt @@ -22,12 +22,12 @@ try_to_freeze_tasks() that sets TIF_FREEZE for all of the freezable tasks and either wakes them up, if they are kernel threads, or sends fake signals to them, if they are user space processes. A task that has TIF_FREEZE set, should react to it by calling the function called refrigerator() (defined in -kernel/freezer.c), which sets the task's PF_FROZEN flag, changes its state +kernel/power/process.c), which sets the task's PF_FROZEN flag, changes its state to TASK_UNINTERRUPTIBLE and makes it loop until PF_FROZEN is cleared for it. Then, we say that the task is 'frozen' and therefore the set of functions handling this mechanism is referred to as 'the freezer' (these functions are -defined in kernel/power/process.c, kernel/freezer.c & include/linux/freezer.h). -User space processes are generally frozen before kernel threads. +defined in kernel/power/process.c and include/linux/freezer.h). User space +processes are generally frozen before kernel threads. It is not recommended to call refrigerator() directly. Instead, it is recommended to use the try_to_freeze() function (defined in @@ -95,7 +95,7 @@ after the memory for the image has been freed, we don't want tasks to allocate additional memory and we prevent them from doing that by freezing them earlier. [Of course, this also means that device drivers should not allocate substantial amounts of memory from their .suspend() callbacks before hibernation, but this -is a separate issue.] +is e separate issue.] 3. The third reason is to prevent user space processes and some kernel threads from interfering with the suspending and resuming of devices. A user space diff --git a/trunk/Documentation/power/runtime_pm.txt b/trunk/Documentation/power/runtime_pm.txt index 5336149f831b..0e856088db7c 100644 --- a/trunk/Documentation/power/runtime_pm.txt +++ b/trunk/Documentation/power/runtime_pm.txt @@ -789,16 +789,6 @@ will behave normally, not taking the autosuspend delay into account. Similarly, if the power.use_autosuspend field isn't set then the autosuspend helper functions will behave just like the non-autosuspend counterparts. -Under some circumstances a driver or subsystem may want to prevent a device -from autosuspending immediately, even though the usage counter is zero and the -autosuspend delay time has expired. If the ->runtime_suspend() callback -returns -EAGAIN or -EBUSY, and if the next autosuspend delay expiration time is -in the future (as it normally would be if the callback invoked -pm_runtime_mark_last_busy()), the PM core will automatically reschedule the -autosuspend. The ->runtime_suspend() callback can't do this rescheduling -itself because no suspend requests of any kind are accepted while the device is -suspending (i.e., while the callback is running). - The implementation is well suited for asynchronous use in interrupt contexts. However such use inevitably involves races, because the PM core can't synchronize ->runtime_suspend() callbacks with the arrival of I/O requests. diff --git a/trunk/Documentation/serial/computone.txt b/trunk/Documentation/serial/computone.txt index 39ddcdbeeb85..60a6f657c37d 100644 --- a/trunk/Documentation/serial/computone.txt +++ b/trunk/Documentation/serial/computone.txt @@ -20,6 +20,8 @@ Version: 1.2.14 Date: 11/01/2001 Historical Author: Andrew Manison Primary Author: Doug McNash +Support: support@computone.com +Fixes and Updates: Mike Warfield This file assumes that you are using the Computone drivers which are integrated into the kernel sources. For updating the drivers or installing diff --git a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt index edad99abec21..4f3443230d89 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt @@ -349,7 +349,6 @@ STAC92HD83* ref Reference board mic-ref Reference board with power management for ports dell-s14 Dell laptop - dell-vostro-3500 Dell Vostro 3500 laptop hp HP laptops with (inverted) mute-LED hp-dv7-4000 HP dv-7 4000 auto BIOS setup (default) diff --git a/trunk/Documentation/watchdog/convert_drivers_to_kernel_api.txt b/trunk/Documentation/watchdog/convert_drivers_to_kernel_api.txt deleted file mode 100644 index ae1e90036d06..000000000000 --- a/trunk/Documentation/watchdog/convert_drivers_to_kernel_api.txt +++ /dev/null @@ -1,195 +0,0 @@ -Converting old watchdog drivers to the watchdog framework -by Wolfram Sang -========================================================= - -Before the watchdog framework came into the kernel, every driver had to -implement the API on its own. Now, as the framework factored out the common -components, those drivers can be lightened making it a user of the framework. -This document shall guide you for this task. The necessary steps are described -as well as things to look out for. - - -Remove the file_operations struct ---------------------------------- - -Old drivers define their own file_operations for actions like open(), write(), -etc... These are now handled by the framework and just call the driver when -needed. So, in general, the 'file_operations' struct and assorted functions can -go. Only very few driver-specific details have to be moved to other functions. -Here is a overview of the functions and probably needed actions: - -- open: Everything dealing with resource management (file-open checks, magic - close preparations) can simply go. Device specific stuff needs to go to the - driver specific start-function. Note that for some drivers, the start-function - also serves as the ping-function. If that is the case and you need start/stop - to be balanced (clocks!), you are better off refactoring a separate start-function. - -- close: Same hints as for open apply. - -- write: Can simply go, all defined behaviour is taken care of by the framework, - i.e. ping on write and magic char ('V') handling. - -- ioctl: While the driver is allowed to have extensions to the IOCTL interface, - the most common ones are handled by the framework, supported by some assistance - from the driver: - - WDIOC_GETSUPPORT: - Returns the mandatory watchdog_info struct from the driver - - WDIOC_GETSTATUS: - Needs the status-callback defined, otherwise returns 0 - - WDIOC_GETBOOTSTATUS: - Needs the bootstatus member properly set. Make sure it is 0 if you - don't have further support! - - WDIOC_SETOPTIONS: - No preparations needed - - WDIOC_KEEPALIVE: - If wanted, options in watchdog_info need to have WDIOF_KEEPALIVEPING - set - - WDIOC_SETTIMEOUT: - Options in watchdog_info need to have WDIOF_SETTIMEOUT set - and a set_timeout-callback has to be defined. The core will also - do limit-checking, if min_timeout and max_timeout in the watchdog - device are set. All is optional. - - WDIOC_GETTIMEOUT: - No preparations needed - - Other IOCTLs can be served using the ioctl-callback. Note that this is mainly - intended for porting old drivers; new drivers should not invent private IOCTLs. - Private IOCTLs are processed first. When the callback returns with - -ENOIOCTLCMD, the IOCTLs of the framework will be tried, too. Any other error - is directly given to the user. - -Example conversion: - --static const struct file_operations s3c2410wdt_fops = { -- .owner = THIS_MODULE, -- .llseek = no_llseek, -- .write = s3c2410wdt_write, -- .unlocked_ioctl = s3c2410wdt_ioctl, -- .open = s3c2410wdt_open, -- .release = s3c2410wdt_release, --}; - -Check the functions for device-specific stuff and keep it for later -refactoring. The rest can go. - - -Remove the miscdevice ---------------------- - -Since the file_operations are gone now, you can also remove the 'struct -miscdevice'. The framework will create it on watchdog_dev_register() called by -watchdog_register_device(). - --static struct miscdevice s3c2410wdt_miscdev = { -- .minor = WATCHDOG_MINOR, -- .name = "watchdog", -- .fops = &s3c2410wdt_fops, --}; - - -Remove obsolete includes and defines ------------------------------------- - -Because of the simplifications, a few defines are probably unused now. Remove -them. Includes can be removed, too. For example: - -- #include -- #include (if MODULE_ALIAS_MISCDEV is not used) -- #include (if no custom IOCTLs are used) - - -Add the watchdog operations ---------------------------- - -All possible callbacks are defined in 'struct watchdog_ops'. You can find it -explained in 'watchdog-kernel-api.txt' in this directory. start(), stop() and -owner must be set, the rest are optional. You will easily find corresponding -functions in the old driver. Note that you will now get a pointer to the -watchdog_device as a parameter to these functions, so you probably have to -change the function header. Other changes are most likely not needed, because -here simply happens the direct hardware access. If you have device-specific -code left from the above steps, it should be refactored into these callbacks. - -Here is a simple example: - -+static struct watchdog_ops s3c2410wdt_ops = { -+ .owner = THIS_MODULE, -+ .start = s3c2410wdt_start, -+ .stop = s3c2410wdt_stop, -+ .ping = s3c2410wdt_keepalive, -+ .set_timeout = s3c2410wdt_set_heartbeat, -+}; - -A typical function-header change looks like: - --static void s3c2410wdt_keepalive(void) -+static int s3c2410wdt_keepalive(struct watchdog_device *wdd) - { -... -+ -+ return 0; - } - -... - -- s3c2410wdt_keepalive(); -+ s3c2410wdt_keepalive(&s3c2410_wdd); - - -Add the watchdog device ------------------------ - -Now we need to create a 'struct watchdog_device' and populate it with the -necessary information for the framework. The struct is also explained in detail -in 'watchdog-kernel-api.txt' in this directory. We pass it the mandatory -watchdog_info struct and the newly created watchdog_ops. Often, old drivers -have their own record-keeping for things like bootstatus and timeout using -static variables. Those have to be converted to use the members in -watchdog_device. Note that the timeout values are unsigned int. Some drivers -use signed int, so this has to be converted, too. - -Here is a simple example for a watchdog device: - -+static struct watchdog_device s3c2410_wdd = { -+ .info = &s3c2410_wdt_ident, -+ .ops = &s3c2410wdt_ops, -+}; - - -Register the watchdog device ----------------------------- - -Replace misc_register(&miscdev) with watchdog_register_device(&watchdog_dev). -Make sure the return value gets checked and the error message, if present, -still fits. Also convert the unregister case. - -- ret = misc_register(&s3c2410wdt_miscdev); -+ ret = watchdog_register_device(&s3c2410_wdd); - -... - -- misc_deregister(&s3c2410wdt_miscdev); -+ watchdog_unregister_device(&s3c2410_wdd); - - -Update the Kconfig-entry ------------------------- - -The entry for the driver now needs to select WATCHDOG_CORE: - -+ select WATCHDOG_CORE - - -Create a patch and send it to upstream --------------------------------------- - -Make sure you understood Documentation/SubmittingPatches and send your patch to -linux-watchdog@vger.kernel.org. We are looking forward to it :) - diff --git a/trunk/Kbuild b/trunk/Kbuild index b8b708ad6dc3..2114113ceca2 100644 --- a/trunk/Kbuild +++ b/trunk/Kbuild @@ -88,13 +88,11 @@ $(obj)/$(offsets-file): arch/$(SRCARCH)/kernel/asm-offsets.s Kbuild # 3) Check for missing system calls # -always += missing-syscalls -targets += missing-syscalls - quiet_cmd_syscalls = CALL $< - cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) $(missing_syscalls_flags) + cmd_syscalls = $(CONFIG_SHELL) $< $(CC) $(c_flags) -missing-syscalls: scripts/checksyscalls.sh $(offsets-file) FORCE +PHONY += missing-syscalls +missing-syscalls: scripts/checksyscalls.sh FORCE $(call cmd,syscalls) # Keep these two files during make clean diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index c9ae02a522b8..8fe3f0184990 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -789,7 +789,6 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained T: git git://git.pengutronix.de/git/imx/linux-2.6.git F: arch/arm/mach-mx*/ -F: arch/arm/mach-imx/ F: arch/arm/plat-mxc/ ARM/FREESCALE IMX51 @@ -805,6 +804,13 @@ S: Maintained T: git git://git.linaro.org/people/shawnguo/linux-2.6.git F: arch/arm/mach-imx/*imx6* +ARM/FREESCALE MXS ARM ARCHITECTURE +M: Shawn Guo +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +T: git git://git.linaro.org/people/shawnguo/linux-2.6.git +F: arch/arm/mach-mxs/ + ARM/GLOMATION GESBC9312SX MACHINE SUPPORT M: Lennert Buytenhek L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@ -1033,7 +1039,6 @@ F: arch/arm/include/asm/hardware/ioc.h F: arch/arm/include/asm/hardware/iomd.h F: arch/arm/include/asm/hardware/memc.h F: arch/arm/mach-rpc/ -F: drivers/net/ethernet/8390/etherh.c F: drivers/net/ethernet/i825xx/ether1* F: drivers/net/ethernet/seeq/ether3* F: drivers/scsi/arm/ @@ -1107,7 +1112,6 @@ F: drivers/media/video/s5p-fimc/ ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT M: Kyungmin Park M: Kamil Debski -M: Jeongtae Park L: linux-arm-kernel@lists.infradead.org L: linux-media@vger.kernel.org S: Maintained @@ -1719,7 +1723,6 @@ F: include/linux/can.h F: include/linux/can/core.h F: include/linux/can/bcm.h F: include/linux/can/raw.h -F: include/linux/can/gw.h CAN NETWORK DRIVERS M: Wolfgang Grandegger @@ -2344,13 +2347,6 @@ S: Supported F: drivers/gpu/drm/i915 F: include/drm/i915* -DRM DRIVERS FOR EXYNOS -M: Inki Dae -L: dri-devel@lists.freedesktop.org -S: Supported -F: drivers/gpu/drm/exynos -F: include/drm/exynos* - DSCC4 DRIVER M: Francois Romieu L: netdev@vger.kernel.org @@ -2397,7 +2393,7 @@ F: include/linux/netfilter_bridge/ebt_*.h F: net/bridge/netfilter/ebt*.c ECRYPT FILE SYSTEM -M: Tyler Hicks +M: Tyler Hicks M: Dustin Kirkland L: ecryptfs@vger.kernel.org W: https://launchpad.net/ecryptfs @@ -4487,9 +4483,11 @@ F: Documentation/networking/vxge.txt F: drivers/net/ethernet/neterion/ NETFILTER/IPTABLES/IPCHAINS +P: Rusty Russell +P: Marc Boucher +P: James Morris P: Harald Welte P: Jozsef Kadlecsik -M: Pablo Neira Ayuso M: Patrick McHardy L: netfilter-devel@vger.kernel.org L: netfilter@vger.kernel.org @@ -4682,7 +4680,7 @@ L: linux-omap@vger.kernel.org W: http://www.muru.com/linux/omap/ W: http://linux.omap.com/ Q: http://patchwork.kernel.org/project/linux-omap/list/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git S: Maintained F: arch/arm/*omap*/ @@ -5480,7 +5478,7 @@ S: Maintained F: drivers/net/ethernet/rdc/r6040.c RDS - RELIABLE DATAGRAM SOCKETS -M: Venkat Venkatsubra +M: Andy Grover L: rds-devel@oss.oracle.com (moderated for non-subscribers) S: Supported F: net/rds/ @@ -6131,7 +6129,7 @@ F: sound/ SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC) M: Liam Girdwood M: Mark Brown -T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git L: alsa-devel@alsa-project.org (moderated for non-subscribers) W: http://alsa-project.org/main/index.php/ASoC S: Supported diff --git a/trunk/Makefile b/trunk/Makefile index dab8610c4d6f..07bc92544e9c 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,8 +1,8 @@ VERSION = 3 -PATCHLEVEL = 2 +PATCHLEVEL = 1 SUBLEVEL = 0 -EXTRAVERSION = -rc2 -NAME = Saber-toothed Squirrel +EXTRAVERSION = +NAME = "Divemaster Edition" # *DOCUMENTATION* # To see a list of typical targets execute "make help" @@ -983,6 +983,7 @@ archprepare: prepare1 scripts_basic prepare0: archprepare FORCE $(Q)$(MAKE) $(build)=. + $(Q)$(MAKE) $(build)=. missing-syscalls # All the preparing.. prepare: prepare0 @@ -1197,7 +1198,7 @@ distclean: mrproper @find $(srctree) $(RCS_FIND_IGNORE) \ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ - -o -name '.*.rej' \ + -o -name '.*.rej' -o -size 0 \ -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm -f @@ -1295,6 +1296,7 @@ help: @echo ' 2: warnings which occur quite often but may still be relevant' @echo ' 3: more obscure warnings, can most likely be ignored' @echo ' Multiple levels can be combined with W=12 or W=123' + @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections' @echo '' @echo 'Execute "make" or "make all" to build all targets marked with [*] ' @echo 'For further info see the ./README file' diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 3d74801a4015..8bb936226dee 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -445,6 +445,11 @@ config ALPHA_EV67 Is this a machine based on the EV67 core? If in doubt, select N here and the machine will be treated as an EV6. +config ALPHA_EV7 + bool + depends on ALPHA_MARVEL + default y + config ALPHA_MCPCIA bool depends on ALPHA_RAWHIDE diff --git a/trunk/arch/alpha/kernel/core_irongate.c b/trunk/arch/alpha/kernel/core_irongate.c index 00096df0f6ad..a872078497be 100644 --- a/trunk/arch/alpha/kernel/core_irongate.c +++ b/trunk/arch/alpha/kernel/core_irongate.c @@ -303,7 +303,6 @@ irongate_init_arch(void) #include #include #include -#include #include #define GET_PAGE_DIR_OFF(addr) (addr >> 22) diff --git a/trunk/arch/alpha/kernel/pci-sysfs.c b/trunk/arch/alpha/kernel/pci-sysfs.c index 53649c7d0068..b899e95f79fd 100644 --- a/trunk/arch/alpha/kernel/pci-sysfs.c +++ b/trunk/arch/alpha/kernel/pci-sysfs.c @@ -10,7 +10,6 @@ */ #include -#include #include #include diff --git a/trunk/arch/alpha/kernel/pci_iommu.c b/trunk/arch/alpha/kernel/pci_iommu.c index 43610804987d..022c2748fa41 100644 --- a/trunk/arch/alpha/kernel/pci_iommu.c +++ b/trunk/arch/alpha/kernel/pci_iommu.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/alpha/kernel/setup.c b/trunk/arch/alpha/kernel/setup.c index 32de56067e63..cc0fd862cf26 100644 --- a/trunk/arch/alpha/kernel/setup.c +++ b/trunk/arch/alpha/kernel/setup.c @@ -43,7 +43,6 @@ #include #include #include -#include extern struct atomic_notifier_head panic_notifier_list; static int alpha_panic_event(struct notifier_block *, unsigned long, void *); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 44789eff983f..fe6b0526b3a6 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -595,7 +595,6 @@ config ARCH_MMP select TICK_ONESHOT select PLAT_PXA select SPARSE_IRQ - select GENERIC_ALLOCATOR help Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line. @@ -770,7 +769,6 @@ config ARCH_S3C64XX select CPU_V6 select ARM_VIC select HAVE_CLK - select HAVE_TCM select CLKDEV_LOOKUP select NO_IOPORT select ARCH_USES_GETTIMEOFFSET @@ -779,6 +777,9 @@ config ARCH_S3C64XX select SAMSUNG_CLKSRC select SAMSUNG_IRQ_VIC_TIMER select S3C_GPIO_TRACK + select S3C_GPIO_PULL_UPDOWN + select S3C_GPIO_CFG_S3C24XX + select S3C_GPIO_CFG_S3C64XX select S3C_DEV_NAND select USB_ARCH_HAS_OHCI select SAMSUNG_GPIOLIB_4BIT @@ -837,8 +838,8 @@ config ARCH_S5PV210 help Samsung S5PV210/S5PC110 series based systems -config ARCH_EXYNOS - bool "SAMSUNG EXYNOS" +config ARCH_EXYNOS4 + bool "Samsung EXYNOS4" select CPU_V7 select ARCH_SPARSEMEM_ENABLE select ARCH_HAS_HOLES_MEMORYMODEL @@ -852,7 +853,7 @@ config ARCH_EXYNOS select HAVE_S3C2410_WATCHDOG if WATCHDOG select NEED_MACH_MEMORY_H help - Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) + Samsung EXYNOS4 series based systems config ARCH_SHARK bool "Shark" @@ -1079,7 +1080,7 @@ source "arch/arm/mach-s5pc100/Kconfig" source "arch/arm/mach-s5pv210/Kconfig" -source "arch/arm/mach-exynos/Kconfig" +source "arch/arm/mach-exynos4/Kconfig" source "arch/arm/mach-shmobile/Kconfig" @@ -2211,7 +2212,7 @@ menu "Power management options" source "kernel/power/Kconfig" config ARCH_SUSPEND_POSSIBLE - depends on !ARCH_S5PC100 + depends on !ARCH_S5P64X0 && !ARCH_S5PC100 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE def_bool y diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index dfcf3b033e10..b7c2d377a6c2 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -180,7 +180,7 @@ machine-$(CONFIG_ARCH_S3C64XX) := s3c64xx machine-$(CONFIG_ARCH_S5P64X0) := s5p64x0 machine-$(CONFIG_ARCH_S5PC100) := s5pc100 machine-$(CONFIG_ARCH_S5PV210) := s5pv210 -machine-$(CONFIG_ARCH_EXYNOS4) := exynos +machine-$(CONFIG_ARCH_EXYNOS4) := exynos4 machine-$(CONFIG_ARCH_SA1100) := sa1100 machine-$(CONFIG_ARCH_SHARK) := shark machine-$(CONFIG_ARCH_SHMOBILE) := shmobile diff --git a/trunk/arch/arm/boot/dts/tegra-ventana.dts b/trunk/arch/arm/boot/dts/tegra-ventana.dts index 3f9abd6b6964..9b29a623aaf1 100644 --- a/trunk/arch/arm/boot/dts/tegra-ventana.dts +++ b/trunk/arch/arm/boot/dts/tegra-ventana.dts @@ -22,10 +22,11 @@ sdhci@c8000400 { cd-gpios = <&gpio 69 0>; /* gpio PI5 */ wp-gpios = <&gpio 57 0>; /* gpio PH1 */ - power-gpios = <&gpio 70 0>; /* gpio PI6 */ + power-gpios = <&gpio 155 0>; /* gpio PT3 */ }; sdhci@c8000600 { + power-gpios = <&gpio 70 0>; /* gpio PI6 */ support-8bit; }; }; diff --git a/trunk/arch/arm/common/it8152.c b/trunk/arch/arm/common/it8152.c index b539ec855e1a..a7934ba9e1df 100644 --- a/trunk/arch/arm/common/it8152.c +++ b/trunk/arch/arm/common/it8152.c @@ -25,7 +25,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/common/scoop.c b/trunk/arch/arm/common/scoop.c index 0c616d5fcb0f..1cde34a080d7 100644 --- a/trunk/arch/arm/common/scoop.c +++ b/trunk/arch/arm/common/scoop.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/configs/exynos4_defconfig b/trunk/arch/arm/configs/exynos4_defconfig index bffe68e190a3..cd40bb56e568 100644 --- a/trunk/arch/arm/configs/exynos4_defconfig +++ b/trunk/arch/arm/configs/exynos4_defconfig @@ -4,18 +4,19 @@ CONFIG_KALLSYMS_ALL=y CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_EXYNOS4=y CONFIG_S3C_LOWLEVEL_UART_PORT=1 CONFIG_MACH_SMDKC210=y +CONFIG_MACH_SMDKV310=y CONFIG_MACH_ARMLEX4210=y CONFIG_MACH_UNIVERSAL_C210=y CONFIG_MACH_NURI=y CONFIG_MACH_ORIGEN=y -CONFIG_MACH_SMDK4412=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y CONFIG_NR_CPUS=2 +CONFIG_HOTPLUG_CPU=y CONFIG_PREEMPT=y CONFIG_AEABI=y CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M" @@ -60,9 +61,13 @@ CONFIG_DETECT_HUNG_TASK=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_SPINLOCK_SLEEP=y CONFIG_DEBUG_INFO=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set CONFIG_SYSCTL_SYSCALL_CHECK=y CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_LL=y CONFIG_EARLY_PRINTK=y +CONFIG_DEBUG_S3C_UART=1 CONFIG_CRC_CCITT=y diff --git a/trunk/arch/arm/configs/ezx_defconfig b/trunk/arch/arm/configs/ezx_defconfig index d95763d5f0d8..227a477346ed 100644 --- a/trunk/arch/arm/configs/ezx_defconfig +++ b/trunk/arch/arm/configs/ezx_defconfig @@ -287,7 +287,7 @@ CONFIG_USB=y # CONFIG_USB_DEVICE_CLASS is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_GADGET=y -CONFIG_USB_PXA27X=y +CONFIG_USB_GADGET_PXA27X=y CONFIG_USB_ETH=m # CONFIG_USB_ETH_RNDIS is not set CONFIG_MMC=y diff --git a/trunk/arch/arm/configs/imote2_defconfig b/trunk/arch/arm/configs/imote2_defconfig index fd996bb13022..176ec22af034 100644 --- a/trunk/arch/arm/configs/imote2_defconfig +++ b/trunk/arch/arm/configs/imote2_defconfig @@ -263,7 +263,7 @@ CONFIG_USB=y # CONFIG_USB_DEVICE_CLASS is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_GADGET=y -CONFIG_USB_PXA27X=y +CONFIG_USB_GADGET_PXA27X=y CONFIG_USB_ETH=m # CONFIG_USB_ETH_RNDIS is not set CONFIG_MMC=y diff --git a/trunk/arch/arm/configs/magician_defconfig b/trunk/arch/arm/configs/magician_defconfig index 443675d317e6..a88e64d4e9a5 100644 --- a/trunk/arch/arm/configs/magician_defconfig +++ b/trunk/arch/arm/configs/magician_defconfig @@ -132,7 +132,7 @@ CONFIG_USB_MON=m CONFIG_USB_OHCI_HCD=y CONFIG_USB_GADGET=y CONFIG_USB_GADGET_VBUS_DRAW=500 -CONFIG_USB_PXA27X=y +CONFIG_USB_GADGET_PXA27X=y CONFIG_USB_ETH=m # CONFIG_USB_ETH_RNDIS is not set CONFIG_USB_GADGETFS=m diff --git a/trunk/arch/arm/configs/zeus_defconfig b/trunk/arch/arm/configs/zeus_defconfig index 547a3c1e59db..59577ad3f4ef 100644 --- a/trunk/arch/arm/configs/zeus_defconfig +++ b/trunk/arch/arm/configs/zeus_defconfig @@ -140,7 +140,7 @@ CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_GADGET=m -CONFIG_USB_PXA27X=y +CONFIG_USB_GADGET_PXA27X=y CONFIG_USB_ETH=m CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m diff --git a/trunk/arch/arm/include/asm/hardware/pl080.h b/trunk/arch/arm/include/asm/hardware/pl080.h index 33c78d7af2e1..e4a04e4e5627 100644 --- a/trunk/arch/arm/include/asm/hardware/pl080.h +++ b/trunk/arch/arm/include/asm/hardware/pl080.h @@ -21,9 +21,6 @@ * OneNAND features. */ -#ifndef ASM_PL080_H -#define ASM_PL080_H - #define PL080_INT_STATUS (0x00) #define PL080_TC_STATUS (0x04) #define PL080_TC_CLEAR (0x08) @@ -141,4 +138,3 @@ struct pl080s_lli { u32 control1; }; -#endif /* ASM_PL080_H */ diff --git a/trunk/arch/arm/kernel/armksyms.c b/trunk/arch/arm/kernel/armksyms.c index 5b0bce61eb69..8e3c6f11b0a1 100644 --- a/trunk/arch/arm/kernel/armksyms.c +++ b/trunk/arch/arm/kernel/armksyms.c @@ -7,7 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/bios32.c b/trunk/arch/arm/kernel/bios32.c index b530e9116a0c..c0d9203fc75e 100644 --- a/trunk/arch/arm/kernel/bios32.c +++ b/trunk/arch/arm/kernel/bios32.c @@ -5,7 +5,7 @@ * * Bits taken from various places. */ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/devtree.c b/trunk/arch/arm/kernel/devtree.c index bee7f9d47f02..1a33e9d6bb1f 100644 --- a/trunk/arch/arm/kernel/devtree.c +++ b/trunk/arch/arm/kernel/devtree.c @@ -9,7 +9,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/elf.c b/trunk/arch/arm/kernel/elf.c index ddba41d1fcf1..9b05c6a0dcea 100644 --- a/trunk/arch/arm/kernel/elf.c +++ b/trunk/arch/arm/kernel/elf.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/etm.c b/trunk/arch/arm/kernel/etm.c index 36d20bd50120..1bec8b5f22f0 100644 --- a/trunk/arch/arm/kernel/etm.c +++ b/trunk/arch/arm/kernel/etm.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include diff --git a/trunk/arch/arm/kernel/io.c b/trunk/arch/arm/kernel/io.c index dcd5b4d86143..f4470307edb8 100644 --- a/trunk/arch/arm/kernel/io.c +++ b/trunk/arch/arm/kernel/io.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/trunk/arch/arm/kernel/irq.c b/trunk/arch/arm/kernel/irq.c index 3efd82cc95f0..7cb29261249a 100644 --- a/trunk/arch/arm/kernel/irq.c +++ b/trunk/arch/arm/kernel/irq.c @@ -22,6 +22,7 @@ * Naturally it's not a 1:1 relation, but there are similarities. */ #include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/leds.c b/trunk/arch/arm/kernel/leds.c index 0bcd38341573..0f107dcb0347 100644 --- a/trunk/arch/arm/kernel/leds.c +++ b/trunk/arch/arm/kernel/leds.c @@ -7,11 +7,10 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -#include +#include #include #include #include -#include #include diff --git a/trunk/arch/arm/kernel/perf_event.c b/trunk/arch/arm/kernel/perf_event.c index 24e2347be6b1..e6e5d7c84f1a 100644 --- a/trunk/arch/arm/kernel/perf_event.c +++ b/trunk/arch/arm/kernel/perf_event.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/pj4-cp0.c b/trunk/arch/arm/kernel/pj4-cp0.c index 679cf4d18c08..a4b1b0748fd3 100644 --- a/trunk/arch/arm/kernel/pj4-cp0.c +++ b/trunk/arch/arm/kernel/pj4-cp0.c @@ -10,6 +10,7 @@ * published by the Free Software Foundation. */ +#include #include #include #include diff --git a/trunk/arch/arm/kernel/process.c b/trunk/arch/arm/kernel/process.c index 75316f0dd02a..fd0814076ff6 100644 --- a/trunk/arch/arm/kernel/process.c +++ b/trunk/arch/arm/kernel/process.c @@ -10,7 +10,7 @@ */ #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/ptrace.c b/trunk/arch/arm/kernel/ptrace.c index 483727ad6892..2491f3b406bc 100644 --- a/trunk/arch/arm/kernel/ptrace.c +++ b/trunk/arch/arm/kernel/ptrace.c @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/kernel/return_address.c b/trunk/arch/arm/kernel/return_address.c index 8085417555dd..0b13a72f855d 100644 --- a/trunk/arch/arm/kernel/return_address.c +++ b/trunk/arch/arm/kernel/return_address.c @@ -8,7 +8,7 @@ * under the terms of the GNU General Public License version 2 as published by * the Free Software Foundation. */ -#include +#include #include #if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 7e7977ab994f..bda0a218f4a5 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -7,7 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/stacktrace.c b/trunk/arch/arm/kernel/stacktrace.c index 00f79e59985b..381d23a497c1 100644 --- a/trunk/arch/arm/kernel/stacktrace.c +++ b/trunk/arch/arm/kernel/stacktrace.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/trunk/arch/arm/kernel/sys_arm.c b/trunk/arch/arm/kernel/sys_arm.c index d2b177905cdb..62e7c61d0342 100644 --- a/trunk/arch/arm/kernel/sys_arm.c +++ b/trunk/arch/arm/kernel/sys_arm.c @@ -12,7 +12,7 @@ * have a non-standard calling sequence on the Linux/arm * platform. */ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/time.c b/trunk/arch/arm/kernel/time.c index 8c57dd3680e9..5a54b95d6bd2 100644 --- a/trunk/arch/arm/kernel/time.c +++ b/trunk/arch/arm/kernel/time.c @@ -11,7 +11,7 @@ * This file contains the ARM-specific time handling details: * reading the RTC at bootup, etc... */ -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/unwind.c b/trunk/arch/arm/kernel/unwind.c index e7e8365795c3..d2cb0b3c9872 100644 --- a/trunk/arch/arm/kernel/unwind.c +++ b/trunk/arch/arm/kernel/unwind.c @@ -39,7 +39,7 @@ #include #include -#include +#include #include #include #include diff --git a/trunk/arch/arm/kernel/xscale-cp0.c b/trunk/arch/arm/kernel/xscale-cp0.c index e42adc6bcdb1..1796157e3dd5 100644 --- a/trunk/arch/arm/kernel/xscale-cp0.c +++ b/trunk/arch/arm/kernel/xscale-cp0.c @@ -8,6 +8,7 @@ * published by the Free Software Foundation. */ +#include #include #include #include diff --git a/trunk/arch/arm/mach-at91/Kconfig b/trunk/arch/arm/mach-at91/Kconfig index d111c3e99249..a6b7991d7fe8 100644 --- a/trunk/arch/arm/mach-at91/Kconfig +++ b/trunk/arch/arm/mach-at91/Kconfig @@ -195,6 +195,12 @@ if ARCH_AT91SAM9260 comment "AT91SAM9260 Variants" +config ARCH_AT91SAM9260_SAM9XE + bool "AT91SAM9XE" + help + Select this if you are using Atmel's AT91SAM9XE System-on-Chip. + They are basically AT91SAM9260s with various sizes of embedded Flash. + comment "AT91SAM9260 / AT91SAM9XE Board Type" config MACH_AT91SAM9260EK diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c index adad70db70eb..a4401d6b5b07 100644 --- a/trunk/arch/arm/mach-at91/at91cap9_devices.c +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -98,7 +98,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {} * USB HS Device (Gadget) * -------------------------------------------------------------------- */ -#if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) +#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) static struct resource usba_udc_resources[] = { [0] = { @@ -1021,8 +1021,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -1035,6 +1035,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91rm9200_devices.c b/trunk/arch/arm/mach-at91/at91rm9200_devices.c index 66591fa53e05..01d8bbd1468b 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_devices.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_devices.c @@ -877,8 +877,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -891,6 +891,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91sam9260_devices.c b/trunk/arch/arm/mach-at91/at91sam9260_devices.c index 25e3464fb07f..24b6f8c0440d 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9260_devices.c @@ -837,8 +837,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -851,6 +851,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91sam9261_devices.c b/trunk/arch/arm/mach-at91/at91sam9261_devices.c index ae78f4d03b73..3b70b3897d95 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9261_devices.c @@ -816,8 +816,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -830,6 +830,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91sam9263_devices.c b/trunk/arch/arm/mach-at91/at91sam9263_devices.c index ad017eb1f8df..3faa1fde9ad9 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9263_devices.c @@ -1196,8 +1196,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -1210,6 +1210,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c index 09a16d6bd5cd..000b5e1da965 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c @@ -197,7 +197,7 @@ void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data) {} * USB HS Device (Gadget) * -------------------------------------------------------------------- */ -#if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) +#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) static struct resource usba_udc_resources[] = { [0] = { .start = AT91SAM9G45_UDPHS_FIFO, @@ -1332,8 +1332,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -1346,6 +1346,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c index 628eb566d60c..305a851b5bff 100644 --- a/trunk/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9rl_devices.c @@ -75,7 +75,7 @@ void __init at91_add_device_hdmac(void) {} * USB HS Device (Gadget) * -------------------------------------------------------------------- */ -#if defined(CONFIG_USB_ATMEL_USBA) || defined(CONFIG_USB_ATMEL_USBA_MODULE) +#if defined(CONFIG_USB_GADGET_ATMEL_USBA) || defined(CONFIG_USB_GADGET_ATMEL_USBA_MODULE) static struct resource usba_udc_resources[] = { [0] = { @@ -908,8 +908,8 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins) {} #if defined(CONFIG_SERIAL_ATMEL) static struct resource dbgu_resources[] = { [0] = { - .start = AT91_BASE_SYS + AT91_DBGU, - .end = AT91_BASE_SYS + AT91_DBGU + SZ_512 - 1, + .start = AT91_VA_BASE_SYS + AT91_DBGU, + .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1, .flags = IORESOURCE_MEM, }, [1] = { @@ -922,6 +922,7 @@ static struct resource dbgu_resources[] = { static struct atmel_uart_data dbgu_data = { .use_dma_tx = 0, .use_dma_rx = 0, /* DBGU not capable of receive DMA */ + .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU), }; static u64 dbgu_dmamask = DMA_BIT_MASK(32); diff --git a/trunk/arch/arm/mach-at91/board-afeb-9260v1.c b/trunk/arch/arm/mach-at91/board-afeb-9260v1.c index 4282d96dffa8..0487ea10c2d6 100644 --- a/trunk/arch/arm/mach-at91/board-afeb-9260v1.c +++ b/trunk/arch/arm/mach-at91/board-afeb-9260v1.c @@ -130,14 +130,19 @@ static struct mtd_partition __initdata afeb9260_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(afeb9260_nand_partition); + return afeb9260_nand_partition; +} + static struct atmel_nand_data __initdata afeb9260_nand_data = { .ale = 21, .cle = 22, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, + .partition_info = nand_partitions, .bus_width_16 = 0, - .parts = afeb9260_nand_partition, - .num_parts = ARRAY_SIZE(afeb9260_nand_partition), }; diff --git a/trunk/arch/arm/mach-at91/board-cam60.c b/trunk/arch/arm/mach-at91/board-cam60.c index f90cfb32bad2..747b2eaa9737 100644 --- a/trunk/arch/arm/mach-at91/board-cam60.c +++ b/trunk/arch/arm/mach-at91/board-cam60.c @@ -132,14 +132,19 @@ static struct mtd_partition __initdata cam60_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(cam60_nand_partition); + return cam60_nand_partition; +} + static struct atmel_nand_data __initdata cam60_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not there .rdy_pin = AT91_PIN_PA9, .enable_pin = AT91_PIN_PA7, - .parts = cam60_nand_partition, - .num_parts = ARRAY_SIZE(cam60_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata cam60_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-cap9adk.c b/trunk/arch/arm/mach-at91/board-cap9adk.c index 5dffd3be62d2..062670351a6a 100644 --- a/trunk/arch/arm/mach-at91/board-cap9adk.c +++ b/trunk/arch/arm/mach-at91/board-cap9adk.c @@ -169,14 +169,19 @@ static struct mtd_partition __initdata cap9adk_nand_partitions[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(cap9adk_nand_partitions); + return cap9adk_nand_partitions; +} + static struct atmel_nand_data __initdata cap9adk_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected // .rdy_pin = ... not connected .enable_pin = AT91_PIN_PD15, - .parts = cap9adk_nand_partitions, - .num_parts = ARRAY_SIZE(cap9adk_nand_partitions), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata cap9adk_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-kb9202.c b/trunk/arch/arm/mach-at91/board-kb9202.c index e61351ffad50..15a3f1a87ab0 100644 --- a/trunk/arch/arm/mach-at91/board-kb9202.c +++ b/trunk/arch/arm/mach-at91/board-kb9202.c @@ -97,14 +97,19 @@ static struct mtd_partition __initdata kb9202_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(kb9202_nand_partition); + return kb9202_nand_partition; +} + static struct atmel_nand_data __initdata kb9202_nand_data = { .ale = 22, .cle = 21, // .det_pin = ... not there .rdy_pin = AT91_PIN_PC29, .enable_pin = AT91_PIN_PC28, - .parts = kb9202_nand_partition, - .num_parts = ARRAY_SIZE(kb9202_nand_partition), + .partition_info = nand_partitions, }; static void __init kb9202_board_init(void) diff --git a/trunk/arch/arm/mach-at91/board-neocore926.c b/trunk/arch/arm/mach-at91/board-neocore926.c index ef816c17dc61..6094496f7edb 100644 --- a/trunk/arch/arm/mach-at91/board-neocore926.c +++ b/trunk/arch/arm/mach-at91/board-neocore926.c @@ -182,14 +182,19 @@ static struct mtd_partition __initdata neocore926_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(neocore926_nand_partition); + return neocore926_nand_partition; +} + static struct atmel_nand_data __initdata neocore926_nand_data = { .ale = 21, .cle = 22, .rdy_pin = AT91_PIN_PB19, .rdy_pin_active_low = 1, .enable_pin = AT91_PIN_PD15, - .parts = neocore926_nand_partition, - .num_parts = ARRAY_SIZE(neocore926_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata neocore926_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-qil-a9260.c b/trunk/arch/arm/mach-at91/board-qil-a9260.c index 07421bdb88ea..938cc390bea3 100644 --- a/trunk/arch/arm/mach-at91/board-qil-a9260.c +++ b/trunk/arch/arm/mach-at91/board-qil-a9260.c @@ -130,14 +130,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-rm9200dk.c b/trunk/arch/arm/mach-at91/board-rm9200dk.c index 80a8c9c6e922..b4ac30e38a9e 100644 --- a/trunk/arch/arm/mach-at91/board-rm9200dk.c +++ b/trunk/arch/arm/mach-at91/board-rm9200dk.c @@ -138,14 +138,19 @@ static struct mtd_partition __initdata dk_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(dk_nand_partition); + return dk_nand_partition; +} + static struct atmel_nand_data __initdata dk_nand_data = { .ale = 22, .cle = 21, .det_pin = AT91_PIN_PB1, .rdy_pin = AT91_PIN_PC2, // .enable_pin = ... not there - .parts = dk_nand_partition, - .num_parts = ARRAY_SIZE(dk_nand_partition), + .partition_info = nand_partitions, }; #define DK_FLASH_BASE AT91_CHIPSELECT_0 diff --git a/trunk/arch/arm/mach-at91/board-sam9-l9260.c b/trunk/arch/arm/mach-at91/board-sam9-l9260.c index 072d53af98d9..2a21e790250e 100644 --- a/trunk/arch/arm/mach-at91/board-sam9-l9260.c +++ b/trunk/arch/arm/mach-at91/board-sam9-l9260.c @@ -131,14 +131,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9260ek.c b/trunk/arch/arm/mach-at91/board-sam9260ek.c index 4f10181a0782..89c8b579bfda 100644 --- a/trunk/arch/arm/mach-at91/board-sam9260ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9260ek.c @@ -173,14 +173,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9261ek.c b/trunk/arch/arm/mach-at91/board-sam9261ek.c index b005b738e8ff..3741f43cdae9 100644 --- a/trunk/arch/arm/mach-at91/board-sam9261ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9261ek.c @@ -179,14 +179,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 22, .cle = 21, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PC15, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9263ek.c b/trunk/arch/arm/mach-at91/board-sam9263ek.c index bccdcf23caa1..a580dd451a41 100644 --- a/trunk/arch/arm/mach-at91/board-sam9263ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9263ek.c @@ -180,14 +180,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PA22, .enable_pin = AT91_PIN_PD15, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9g20ek.c b/trunk/arch/arm/mach-at91/board-sam9g20ek.c index 64fc75c9d0ac..8d77c2ff96b2 100644 --- a/trunk/arch/arm/mach-at91/board-sam9g20ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9g20ek.c @@ -157,14 +157,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + /* det_pin is not connected */ static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, .rdy_pin = AT91_PIN_PC13, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c b/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c index 92de9127923a..2d6203ac1a42 100644 --- a/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/trunk/arch/arm/mach-at91/board-sam9m10g45ek.c @@ -137,14 +137,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + /* det_pin is not connected */ static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, .rdy_pin = AT91_PIN_PC8, .enable_pin = AT91_PIN_PC14, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-sam9rlek.c b/trunk/arch/arm/mach-at91/board-sam9rlek.c index b2b748239f36..39a28effc3df 100644 --- a/trunk/arch/arm/mach-at91/board-sam9rlek.c +++ b/trunk/arch/arm/mach-at91/board-sam9rlek.c @@ -88,14 +88,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { }, }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PD17, .enable_pin = AT91_PIN_PB6, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata ek_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-snapper9260.c b/trunk/arch/arm/mach-at91/board-snapper9260.c index 0df01c6e2d0c..c73d25e5faea 100644 --- a/trunk/arch/arm/mach-at91/board-snapper9260.c +++ b/trunk/arch/arm/mach-at91/board-snapper9260.c @@ -97,12 +97,18 @@ static struct mtd_partition __initdata snapper9260_nand_partitions[] = { }, }; +static struct mtd_partition * __init +snapper9260_nand_partition_info(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(snapper9260_nand_partitions); + return snapper9260_nand_partitions; +} + static struct atmel_nand_data __initdata snapper9260_nand_data = { .ale = 21, .cle = 22, .rdy_pin = AT91_PIN_PC13, - .parts = snapper9260_nand_partitions, - .num_parts = ARRAY_SIZE(snapper9260_nand_partitions), + .partition_info = snapper9260_nand_partition_info, .bus_width_16 = 0, }; diff --git a/trunk/arch/arm/mach-at91/board-usb-a926x.c b/trunk/arch/arm/mach-at91/board-usb-a926x.c index 0a20bab21f99..5852d3d9890c 100644 --- a/trunk/arch/arm/mach-at91/board-usb-a926x.c +++ b/trunk/arch/arm/mach-at91/board-usb-a926x.c @@ -190,14 +190,19 @@ static struct mtd_partition __initdata ek_nand_partition[] = { } }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(ek_nand_partition); + return ek_nand_partition; +} + static struct atmel_nand_data __initdata ek_nand_data = { .ale = 21, .cle = 22, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PA22, .enable_pin = AT91_PIN_PD15, - .parts = ek_nand_partition, - .num_parts = ARRAY_SIZE(ek_nand_partition), + .partition_info = nand_partitions, }; static struct sam9_smc_config __initdata usb_a9260_nand_smc_config = { diff --git a/trunk/arch/arm/mach-at91/board-yl-9200.c b/trunk/arch/arm/mach-at91/board-yl-9200.c index 12a3f955162b..3c288b396fc4 100644 --- a/trunk/arch/arm/mach-at91/board-yl-9200.c +++ b/trunk/arch/arm/mach-at91/board-yl-9200.c @@ -172,14 +172,19 @@ static struct mtd_partition __initdata yl9200_nand_partition[] = { } }; +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(yl9200_nand_partition); + return yl9200_nand_partition; +} + static struct atmel_nand_data __initdata yl9200_nand_data = { .ale = 6, .cle = 7, // .det_pin = ... not connected .rdy_pin = AT91_PIN_PC14, /* R/!B (Sheet10) */ .enable_pin = AT91_PIN_PC15, /* !CE (Sheet10) */ - .parts = yl9200_nand_partition, - .num_parts = ARRAY_SIZE(yl9200_nand_partition), + .partition_info = nand_partitions, }; /* @@ -384,7 +389,7 @@ static struct spi_board_info yl9200_spi_devices[] = { #include