1. 24 Feb, 2009 16 commits
    • Henrik Kurelid's avatar
      firedtv: fix returned struct for ca_info · 096edfbf
      Henrik Kurelid authored
      The SystemId of the ca_info message was filled with garbage.
      It now returns what the card returns.
      Signed-off-by: default avatarHenrik Kurelid <henrik@kurelid.se>
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      096edfbf
    • Stefan Richter's avatar
      firedtv: cleanups and minor fixes · 8ae83cdf
      Stefan Richter authored
      Combination of the following changes:
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: increase FCP frame length for DVB-S2 tune QSPK
      
          The last three bytes didn't go out to the wire.
          Effect of the fix not yet tested.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: replace mdelay by msleep
      
          These functions can sleep (and in fact sleep for the duration of a whole
          FCP transaction).  Hence msleep is more appropriate here.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: trivial reorganization in avc_api
      
          Reduce nesting level by factoring code out of avc_tuner_dsd() into
          helper functions.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: trivial cleanups in avc_api
      
          Use dev_err(), no CamelCase function names, adjust comment style, put
          #if 0 around unused code and add FIXME comments, standardize on
          lower-case hexadecimal constants, use ALIGN() for some frame length
          calculations, make a local function static...
      
          The code which writes FCP command frames and reads FCP response frames
          is not yet brought into canonical kernel coding style because this
          involves changes of typedefs (on-the-wire bitfields).
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: don't retry oPCR updates endlessly
      
          In the theoretical case that the target node wasn't handling the lock
          transactions as expected or there was continued interference by other
          initiating nodes, these functions wouldn't return for ages.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: remove bitfield typedefs from cmp, fix for big endian CPUs
      
          Use macros/ inline functions/ standard byte order accessors to read and
          write oPCR register values (big endian bitfields, on-the-wire data).
          The new code may not be the ultimate optimum, but it doesn't occur in a
          hot path.
      
          This fixes the CMP code for big endian CPUs.  So far I tested it only on
          a little endian CPU though.
      
          For now, include <asm/byteorder.h> instead of <linux/byteorder.h>
          because drivers/ieee1394/*.h also include the former.  I will fix this
          in drivers/ieee1394 and firedtv later.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: trivial cleanups in cmp
      
          Reduce nesting level by means of early exit and goto.
          Remove obsolete includes, use dev_err(), no CamelCase function names...
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: trivial cleanups in firesat-ci
      
          Whitespace, variable names, comment style...
      
          Also, use dvb_generic_open() and dvb_generic_release() directly as
          our hooks in struct file_operations because firedtv's wrappers merely
          called these generic functions.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: remove CA debug code
      
          This looks like it is not necessary to have available for endusers who
          cannot patch kernels for bug reporting and tests of fixes.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: remove AV/C debug code
      
          This looks like it is not necessary to have available for endusers who
          cannot patch kernels for bug reporting and tests of fixes.
      
      Sun, 2 Nov 2008 13:45:00 +0100 (CET)
      firedtv: remove various debug code
      
          Most of this was already commented out.  And that which wasn't is not
          relevant in normal use.
      
      Mon, 29 Sep 2008 19:22:48 +0200 (CEST)
      firedtv: register input device as child of a FireWire device
      
          Instead of one virtual input device which exists for the whole lifetime
          of the driver and receives events from all connected FireDTVs, register
          one input device for each firedtv device.  These input devices will show
          up as children of the respective firedtv devices in the sysfs hierarchy.
      
          However, the implementation falls short because of a bug in userspace:
          Udev's path_id script gets stuck with 100% CPU utilization, maybe
          because of an assumption about the maximum ieee1394 device hierarchy
          depth.
      
          To avoid this bug, we use the fw-host device instead of the proper
          unit_directory device as parent of the input device.
      
          There is hope that the port to the new firewire stack won't be inhibited
          by this userspace bug because there are no fw-host devices there.
      
      Mon, 29 Sep 2008 19:21:52 +0200 (CEST)
      firedtv: fix string comparison and a few sparse warnings
      
          Sparse found a bug:
          	while ((kv_buf + kv_len - 1) == '\0')
          should have been
          	while (kv_buf[kv_len - 1] == '\0')
          We fix it by a better implementation without a temporary copy.
      
          Also fix sparse warnings of 0 instead of NULL and signedness mismatches.
      
      Mon, 29 Sep 2008 19:21:20 +0200 (CEST)
      firedtv: remove unused struct members
      
          and redefine an int as a bool.
      
      Mon, 29 Sep 2008 19:20:36 +0200 (CEST)
      firedtv: fix initialization of dvb_frontend.ops
      
          There was a NULL pointer reference if no dvb_frontend_info was found.
      
          Also, don't directly assign struct typed values to struct typed
          variables.  Instead write out assignments to individual strcut members.
          This reduces module size by about 1 kB.
      
      Mon, 29 Sep 2008 19:19:41 +0200 (CEST)
      firedtv: remove unused dual subunit code from initialization
      
          No FireDTVs with more than one subunit exists, hence simplify the
          initialization for the special case of one subunit.  The driver was able
          to check for more than one subunit but was broken for more than two
          subunits.
      
          While we are at it, add several missing cleanups after failure, and
          include a few dynamically allocated structures diretly into struct
          firesat instead of allocating them separately.
      
      Mon, 29 Sep 2008 19:19:08 +0200 (CEST)
      firedtv: add vendor_id and version to driver match table
      
          Now that nodemgr was enhanced to match against the root directory's
          vendor ID if there isn't one in the unit directory, use this to
          prevent firedtv to be bound to wrong devices by accident.
      
          Also add the AV/C software version ID to the match flags for
          completeness; specifier ID and software only make sense as a pair.
      
      Mon, 29 Sep 2008 19:18:30 +0200 (CEST)
      firedtv: use hpsb_node_read(), _write(), _lock()
      
          because they are simpler and treat the node generation more correctly.
          While we are at it, clean up and simplify surrounding code.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      8ae83cdf
    • Stefan Richter's avatar
      ieee1394: remove superfluous assertions · 00fc3072
      Stefan Richter authored
      hpsb_read, hpsb_write, hpsb_lock are sleeping functions which nobody is
      in danger to use in atomic context.  Besides, in_interrupt does not
      cover all types of atomic context.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      00fc3072
    • Stefan Richter's avatar
      ieee1394: inherit ud vendor_id from node vendor_id · 9c939e4d
      Stefan Richter authored
      While Module_Vendor_ID in the configuration ROM's root directory is
      mandatory, there often aren't vendor IDs in unit directories.  This
      affects the new firedtv driver which is meant to be auto-loaded and
      matched only for vendor-specific devices.
      
      We now always copy ne->vendor_id into ud->vendor_id before we scan a
      unit directory (and fill in a possibly present vendor ID from there).
      This way, the root directory's vendor ID is used as fallback in the
      "uevent" environment for modprobe'ing per module alias when a node was
      plugged in, and in the driver match routine when protocol drivers are
      bound to unit directories.  It will however not be used as sysfs
      attribute of a unit directory device.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      9c939e4d
    • Stefan Richter's avatar
      ieee1394: add hpsb_node_read() and hpsb_node_lock() · b33fdd6c
      Stefan Richter authored
      These will be used by the firedtv driver.  Like hpsb_node_write() they
      are much better APIs for high-level drivers than hpsb_write() and its
      siblings --- easier to use correctly and also terser.
      
      Unlike hspb_node_write(), the two new functions will only be used by
      one call site.  Hence make them static inline instead of exported
      symbols.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      b33fdd6c
    • Stefan Richter's avatar
      ieee1394: use correct barrier types between accesses of nodeid and generation · 29f8ea8a
      Stefan Richter authored
      A compiler barrier (explicit on the read side, implicit on the write
      side) is not quite enough for what has to be accomplished here.  Use
      hardware memory barriers on systems which need them.
      
      (Of course a full fix of generation handling would require much more
      than this.  The ieee1394 core's bus generation counter had to be tied to
      the controller's bus generation counter; cf. Kristian's stack.  It's
      just that I have other current business with the code around these
      barrier()s, so why not do at least this small fix.)
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      29f8ea8a
    • Stefan Richter's avatar
      firesat: copyrights, rename to firedtv, API conversions, fix remote control input · 612262a5
      Stefan Richter authored
      Combination of the following changes:
      
      Tue, 26 Aug 2008 00:17:30 +0200 (CEST)
      firedtv: fix remote control input
      
          and update the scancode-to-keycode mapping to a current model.  Per
          default, various media key keycodes are emitted which closely match what
          is printed on the remote.  Userland can modify the mapping by means of
          evdev ioctls.  (Not tested.)
      
          The old scancode-to-keycode mapping is left in the driver but cannot be
          modified by ioctls.  This preserves status quo for old remotes.
      
      Tue, 26 Aug 2008 00:11:28 +0200 (CEST)
      firedtv: replace tasklet by workqueue job
      
          Non-atomic context is a lot nicer to work with.
      
      Sun, 24 Aug 2008 23:30:00 +0200 (CEST)
      firedtv: move some code back to ieee1394 core
      
          Partially reverts "ieee1394: remove unused code" of Linux 2.6.25.
      
      Sun, 24 Aug 2008 23:29:30 +0200 (CEST)
      firedtv: replace semaphore by mutex
      
          firesat->avc_sem and ->demux_sem have been used exactly like a mutex.
          The only exception is the schedule_remotecontrol tasklet which did a
          down_trylock in atomic context.  This is not possible with
          mutex_trylock; however the whole remote control related code is
          non-functional anyway at the moment.  This should be fixed eventually,
          probably by turning the tasklet into a worqueue job.
      
          Convert everything else from semaphore to mutex.
      
          Also rewrite a few of the affected functions to unlock the mutex at a
          single exit point, instead of in several branches.
      
      Sun, 24 Aug 2008 23:28:45 +0200 (CEST)
      firedtv: some header cleanups
      
          Unify #ifndef/#define/#endif guards against multiple inclusion.
          Drop extern keyword from function declarations.
          Remove #include's into header files where struct declarations suffice.
      
          Remove unused ohci1394 interface and related unused ieee1394 interfaces.
      
          Add a few missing #include's and remove a few apparently obsolete ones.
          Sort them alphabetically.
      
      Sun, 24 Aug 2008 23:27:45 +0200 (CEST)
      firedtv: nicer registration message and some initialization fixes
      
          Print the correct name in dvb_register_adapter().
      
          While we are at it, replace two switch cascades by one for loop, remove
          a superfluous member of struct firesat and of two unused arguments of
          AVCIdentifySubunit(), and fix bogus kfree's in firesat_dvbdev_init().
      
      Tue, 26 Aug 2008 14:24:17 +0200 (CEST)
      firesat: rename to firedtv
      
          Suggested by Andreas Monitzer.  Besides DVB-S/-S2 receivers, the driver
          also supports DVB-C and DVB-T receivers, hence the previous project name
          is too narrow now.
      
          Not yet done:  Rename source directory, files, types, variables...
      
      Sun, 24 Aug 2008 23:26:23 +0200 (CEST)
      firesat: add missing copyright notes
      
          Reported by Andreas Monitzer and Christian Dolzer.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      612262a5
    • Henrik Kurelid's avatar
      firesat: avc resend · 81c67b7f
      Henrik Kurelid authored
      - Add resending of AVC message to the card if no answer is received
        - Replace the homebrewed event_wait function with a standard wait queue
        - Clean up of log/error messages
        - Increase debug level of avc communication
      Signed-off-by: default avatarHenrik Kurelid <henrik@kurelid.se>
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      81c67b7f
    • Henrik Kurelid's avatar
      firesat: update isochronous interface, add CI support · df4846c3
      Henrik Kurelid authored
      I have finally managed to get the CI support for the card working. The
      implementation is a bare minimum to get encrypted channels to work in
      kaffeine. It works fine with my T/CI card. Now and then I get an AVC
      timeout and have to retune a channel in order to get it to work. Once
      the CAM seemed to hang so I needed to remove and insert it again. I.e.
      there are a number of glitches.
      
      The latest version contains the following changes:
      
        - Implemented the new hpsb iso interface so that data can be received
          from the card
        - Reduced some timers for demux setup which caused scanning to timeout
        - Added possibility to unload driver
        - Added support for getting C/N ratio
        - Added two debug parameters to the driver; ca_debug and
          avc_comm_debug.
        - Added CI support that works for me in kaffeine
        - Started working on CI MMI support. It now supports:
            o Enter menu
            o Receiving MMI objects
        - Added support for 64-bit platforms
        - Corrected DVB-C modulations problems
      Signed-off-by: default avatarHenrik Kurelid <henrik@kurelid.se>
      Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (rebased, whitespace)
      df4846c3
    • Ben Backx's avatar
      firesat: add DVB-S support for DVB-S2 devices · 2c228614
      Ben Backx authored
      ...so S2 owners now can at least watch DVB-S channels in linux.
      Signed-off-by: default avatarBen Backx <ben@bbackx.com>
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      2c228614
    • Ben Backx's avatar
      firesat: fix DVB-S2 device recognition · f1bbb43a
      Ben Backx authored
      This only makes sure that a DVB-S2 device is really recognized as a S2,
      nothing else is added yet. It's using the string containing the model
      that is stored in the configuration ROM, the older version was using
      some hardware revision dependent part of the ROM.
      Signed-off-by: default avatarBen Backx <ben@bbackx.com>
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      f1bbb43a
    • Greg Kroah-Hartman's avatar
      DVB: add firesat driver · c81c8b68
      Greg Kroah-Hartman authored
      Original code written by Christian Dolzer <c.dolzer@digital-everywhere.com>
      
      Cleaned up by Greg.
      
      Major cleanup and reorg by Manu Abraham <manu@linuxtv.org>
      
      Additions also by Ben Backx <ben@bbackx.com>
      
      Cc: Christian Dolzer <c.dolzer@digital-everywhere.com>
      Cc: Andreas Monitzer <andy@monitzer.com>
      Cc: Manu Abraham <manu@linuxtv.org>
      Cc: Fabio De Lorenzo <delorenzo.fabio@gmail.com>
      Cc: Robert Berger <robert.berger@reliableembeddedsystems.com>
      Signed-off-by: default avatarBen Backx <ben@bbackx.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      Added missing dependency to dvb/firesat/Kconfig,
      Reported-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      
      Tweaked dvb/Makefile.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      c81c8b68
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · f7e603ad
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        net: amend the fix for SO_BSDCOMPAT gsopt infoleak
        netns: build fix for net_alloc_generic
      f7e603ad
    • Krzysztof Sachanowicz's avatar
      proc: proc_get_inode should de_put when inode already initialized · cac71121
      Krzysztof Sachanowicz authored
      de_get is called before every proc_get_inode, but corresponding de_put is
      called only when dropping last reference to an inode. This might cause
      something like
      remove_proc_entry: /proc/stats busy, count=14496
      to be printed to the syslog.
      
      The fix is to call de_put in case of an already initialized inode in
      proc_get_inode.
      Signed-off-by: default avatarKrzysztof Sachanowicz <analyzer1@gmail.com>
      Tested-by: default avatarMarcin Pilipczuk <marcin.pilipczuk@gmail.com>
      Acked-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cac71121
    • Jesse Barnes's avatar
      i915: suspend/resume interrupt state · 226485e9
      Jesse Barnes authored
      In the KMS case, enter/leavevt won't fix up the interrupt handler for
      us, so we need to do it at suspend/resume time.  Make sure we don't fail
      the resume if the chip is hung either.
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      226485e9
    • Karsten Wiese's avatar
      Fix an oops in i915_gem_retire_requests() · 6c0594a3
      Karsten Wiese authored
      dev_priv->hw_status_page can be NULL, if i915_gem_retire_requests()
      is called from i915_gem_busy_ioctl().
      
      Signed-off-by Karsten Wiese <fzu@wemgehoertderstaat.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c0594a3
  2. 23 Feb, 2009 14 commits
  3. 22 Feb, 2009 10 commits