Merge tag 'v3.6-rc1' into staging/for_v3.6
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 01:41:33 +0000 (22:41 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 01:41:33 +0000 (22:41 -0300)
Linux 3.6-rc1

* tag 'v3.6-rc1': (18733 commits)
  Linux 3.6-rc1
  mm: remove node_start_pfn checking in new WARN_ON for now
  ARM: mmp: add missing irqs.h
  arm: mvebu: fix typo in .dtsi comment for Armada XP SoCs
  ARM: PRIMA2: delete redundant codes to restore LATCHED when timer resumes
  libceph: fix crypto key null deref, memory leak
  ceph: simplify+fix atomic_open
  sh: explicitly include sh_dma.h in setup-sh7722.c
  um: Add arch/x86/um to MAINTAINERS
  um: pass siginfo to guest process
  um: fix ubd_file_size for read-only files
  md/dm-raid: DM_RAID should select MD_RAID10
  md/raid1: submit IO from originating thread instead of md thread.
  raid5: raid5d handle stripe in batch way
  raid5: make_request use batch stripe release
  um: pull interrupt_end() into userspace()
  um: split syscall_trace(), pass pt_regs to it
  um: switch UPT_SET_RETURN_VALUE and regs_return_value to pt_regs
  MIPS: Loongson 2: Sort out clock managment.
  locks: remove unused lm_release_private
  ...

15 files changed:
drivers/media/dvb/dvb-usb/dib0700_core.c
drivers/media/video/cx18/cx18-av-firmware.c
drivers/media/video/cx18/cx18-driver.c
drivers/media/video/cx18/cx18-dvb.c
drivers/media/video/cx18/cx18-firmware.c
drivers/media/video/cx231xx/cx231xx-417.c
drivers/media/video/cx23885/cx23885-417.c
drivers/media/video/cx23885/cx23885-cards.c
drivers/media/video/cx23885/cx23885-input.c
drivers/media/video/cx25840/cx25840-firmware.c
drivers/media/video/ivtv/ivtv-firmware.c
drivers/media/video/pvrusb2/pvrusb2-devattr.c
drivers/media/video/s5k6aa.c
include/linux/omap3isp.h
include/linux/v4l2-common.h

index 7e9e00fae04e140aa4dafddb6e322386442980de..ef87229de6af5d791060b00cd82188bcebbc8c20 100644 (file)
@@ -768,13 +768,13 @@ int dib0700_rc_setup(struct dvb_usb_device *d)
        /* Starting in firmware 1.20, the RC info is provided on a bulk pipe */
        purb = usb_alloc_urb(0, GFP_KERNEL);
        if (purb == NULL) {
-               err("rc usb alloc urb failed\n");
+               err("rc usb alloc urb failed");
                return -ENOMEM;
        }
 
        purb->transfer_buffer = kzalloc(RC_MSG_SIZE_V1_20, GFP_KERNEL);
        if (purb->transfer_buffer == NULL) {
-               err("rc kzalloc failed\n");
+               err("rc kzalloc failed");
                usb_free_urb(purb);
                return -ENOMEM;
        }
@@ -786,7 +786,7 @@ int dib0700_rc_setup(struct dvb_usb_device *d)
 
        ret = usb_submit_urb(purb, GFP_ATOMIC);
        if (ret) {
-               err("rc submit urb failed\n");
+               err("rc submit urb failed");
                kfree(purb->transfer_buffer);
                usb_free_urb(purb);
        }
index 280aa4d22488c658a712e8907823ef0e800358ed..a34fd082b76ed8e2216bf0bbe1f1d9a382660f8d 100644 (file)
@@ -221,3 +221,5 @@ int cx18_av_loadfw(struct cx18 *cx)
        release_firmware(fw);
        return 0;
 }
+
+MODULE_FIRMWARE(FWFILE);
index 7e5ffd6f51786d3390b629b8794b4139aa410551..c67733d32c8a888d61ced937bb6427c38dc830fa 100644 (file)
@@ -1357,3 +1357,4 @@ static void __exit module_cleanup(void)
 
 module_init(module_start);
 module_exit(module_cleanup);
+MODULE_FIRMWARE(XC2028_DEFAULT_FIRMWARE);
index f41922bd402025118a9e35c8453675ed1ffa62cf..3eac59c51231c0f97b9ae52f1dd8e35f77615427 100644 (file)
@@ -40,6 +40,8 @@
 
 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
 
+#define FWFILE "dvb-cx18-mpc718-mt352.fw"
+
 #define CX18_REG_DMUX_NUM_PORT_0_CONTROL 0xd5a000
 #define CX18_CLOCK_ENABLE2              0xc71024
 #define CX18_DMUX_CLK_MASK              0x0080
@@ -135,7 +137,7 @@ static int yuan_mpc718_mt352_reqfw(struct cx18_stream *stream,
                                   const struct firmware **fw)
 {
        struct cx18 *cx = stream->cx;
-       const char *fn = "dvb-cx18-mpc718-mt352.fw";
+       const char *fn = FWFILE;
        int ret;
 
        ret = request_firmware(fw, fn, &cx->pci_dev->dev);
@@ -603,3 +605,5 @@ static int dvb_register(struct cx18_stream *stream)
 
        return ret;
 }
+
+MODULE_FIRMWARE(FWFILE);
index b85c292a849ac2debe36c828e506254cd65214a7..a1c1cec05f98e4693bdc3dacfa073a64adec1d32 100644 (file)
@@ -376,6 +376,9 @@ void cx18_init_memory(struct cx18 *cx)
        cx18_write_reg(cx, 0x00000101, CX18_WMB_CLIENT14);  /* AVO */
 }
 
+#define CX18_CPU_FIRMWARE "v4l-cx23418-cpu.fw"
+#define CX18_APU_FIRMWARE "v4l-cx23418-apu.fw"
+
 int cx18_firmware_init(struct cx18 *cx)
 {
        u32 fw_entry_addr;
@@ -400,7 +403,7 @@ int cx18_firmware_init(struct cx18 *cx)
        cx18_sw1_irq_enable(cx, IRQ_CPU_TO_EPU | IRQ_APU_TO_EPU);
        cx18_sw2_irq_enable(cx, IRQ_CPU_TO_EPU_ACK | IRQ_APU_TO_EPU_ACK);
 
-       sz = load_cpu_fw_direct("v4l-cx23418-cpu.fw", cx->enc_mem, cx);
+       sz = load_cpu_fw_direct(CX18_CPU_FIRMWARE, cx->enc_mem, cx);
        if (sz <= 0)
                return sz;
 
@@ -408,7 +411,7 @@ int cx18_firmware_init(struct cx18 *cx)
        cx18_init_scb(cx);
 
        fw_entry_addr = 0;
-       sz = load_apu_fw_direct("v4l-cx23418-apu.fw", cx->enc_mem, cx,
+       sz = load_apu_fw_direct(CX18_APU_FIRMWARE, cx->enc_mem, cx,
                                &fw_entry_addr);
        if (sz <= 0)
                return sz;
@@ -451,3 +454,6 @@ int cx18_firmware_init(struct cx18 *cx)
        cx18_write_reg_expect(cx, 0x14001400, 0xc78110, 0x00001400, 0x14001400);
        return 0;
 }
+
+MODULE_FIRMWARE(CX18_CPU_FIRMWARE);
+MODULE_FIRMWARE(CX18_APU_FIRMWARE);
index ce2f62238a19d8ae6fabf4df49532db7da0779c4..b024e5197a755fa01cc36fff2be2c7be1a876740 100644 (file)
@@ -2193,3 +2193,5 @@ int cx231xx_417_register(struct cx231xx *dev)
 
        return 0;
 }
+
+MODULE_FIRMWARE(CX231xx_FIRM_IMAGE_NAME);
index f5c79e53e5a145bce2fc8a0f898ca7482d2ab0e6..5d5052d0253f00808d5960d46b388b20b6c0bf98 100644 (file)
@@ -1786,3 +1786,5 @@ int cx23885_417_register(struct cx23885_dev *dev)
 
        return 0;
 }
+
+MODULE_FIRMWARE(CX23885_FIRM_IMAGE_NAME);
index 080e11157e5fe89afdb384c702376d80528daf5d..d365e9a8efc4e1e4cb8570ae58baa107cf9ee3bf 100644 (file)
@@ -46,6 +46,7 @@ MODULE_PARM_DESC(enable_885_ir,
                 "Enable integrated IR controller for supported\n"
                 "\t\t    CX2388[57] boards that are wired for it:\n"
                 "\t\t\tHVR-1250 (reported safe)\n"
+                "\t\t\tTerraTec Cinergy T PCIe Dual (not well tested, appears to be safe)\n"
                 "\t\t\tTeVii S470 (reported unsafe)\n"
                 "\t\t    This can cause an interrupt storm with some cards.\n"
                 "\t\t    Default: 0 [Disabled]");
@@ -1363,6 +1364,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
                params.shutdown = true;
                v4l2_subdev_call(dev->sd_ir, ir, tx_s_parameters, &params);
                break;
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
        case CX23885_BOARD_TEVII_S470:
                if (!enable_885_ir)
                        break;
@@ -1403,6 +1405,7 @@ void cx23885_ir_fini(struct cx23885_dev *dev)
                cx23888_ir_remove(dev);
                dev->sd_ir = NULL;
                break;
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
        case CX23885_BOARD_TEVII_S470:
        case CX23885_BOARD_HAUPPAUGE_HVR1250:
                cx23885_irq_remove(dev, PCI_MSK_AV_CORE);
@@ -1446,6 +1449,7 @@ void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
                if (dev->sd_ir)
                        cx23885_irq_add_enable(dev, PCI_MSK_IR);
                break;
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
        case CX23885_BOARD_TEVII_S470:
        case CX23885_BOARD_HAUPPAUGE_HVR1250:
                if (dev->sd_ir)
index ce765e3f77bdf6b679ba1b56900035f4f38d51c2..56066721edc17423726188858aa66e4ea017ff0b 100644 (file)
@@ -85,6 +85,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
        case CX23885_BOARD_HAUPPAUGE_HVR1270:
        case CX23885_BOARD_HAUPPAUGE_HVR1850:
        case CX23885_BOARD_HAUPPAUGE_HVR1290:
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
        case CX23885_BOARD_TEVII_S470:
        case CX23885_BOARD_HAUPPAUGE_HVR1250:
                /*
@@ -162,6 +163,7 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
                 */
                params.invert_level = true;
                break;
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
        case CX23885_BOARD_TEVII_S470:
                /*
                 * The IR controller on this board only returns pulse widths.
@@ -272,6 +274,13 @@ int cx23885_input_init(struct cx23885_dev *dev)
                /* The grey Hauppauge RC-5 remote */
                rc_map = RC_MAP_HAUPPAUGE;
                break;
+       case CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL:
+               /* Integrated CX23885 IR controller */
+               driver_type = RC_DRIVER_IR_RAW;
+               allowed_protos = RC_TYPE_NEC;
+               /* The grey Terratec remote with orange buttons */
+               rc_map = RC_MAP_NEC_TERRATEC_CINERGY_XS;
+               break;
        case CX23885_BOARD_TEVII_S470:
                /* Integrated CX23885 IR controller */
                driver_type = RC_DRIVER_IR_RAW;
index 8150200511daed0ce52918e0e9024a2aa762002c..b3169f94ece879ee89ecb45d61e4a390927b5582 100644 (file)
@@ -61,6 +61,10 @@ static void end_fw_load(struct i2c_client *client)
        cx25840_write(client, 0x803, 0x03);
 }
 
+#define CX2388x_FIRMWARE "v4l-cx23885-avcore-01.fw"
+#define CX231xx_FIRMWARE "v4l-cx231xx-avcore-01.fw"
+#define CX25840_FIRMWARE "v4l-cx25840.fw"
+
 static const char *get_fw_name(struct i2c_client *client)
 {
        struct cx25840_state *state = to_state(i2c_get_clientdata(client));
@@ -68,10 +72,10 @@ static const char *get_fw_name(struct i2c_client *client)
        if (firmware[0])
                return firmware;
        if (is_cx2388x(state))
-               return "v4l-cx23885-avcore-01.fw";
+               return CX2388x_FIRMWARE;
        if (is_cx231xx(state))
-               return "v4l-cx231xx-avcore-01.fw";
-       return "v4l-cx25840.fw";
+               return CX231xx_FIRMWARE;
+       return CX25840_FIRMWARE;
 }
 
 static int check_fw_load(struct i2c_client *client, int size)
@@ -164,3 +168,8 @@ int cx25840_loadfw(struct i2c_client *client)
 
        return check_fw_load(client, size);
 }
+
+MODULE_FIRMWARE(CX2388x_FIRMWARE);
+MODULE_FIRMWARE(CX231xx_FIRMWARE);
+MODULE_FIRMWARE(CX25840_FIRMWARE);
+
index 02c5adebf517aac57248c473a60c793952629e75..6ec7705af55592015ed8ca07fc8e311866077d69 100644 (file)
@@ -396,3 +396,7 @@ int ivtv_firmware_check(struct ivtv *itv, char *where)
 
        return res;
 }
+
+MODULE_FIRMWARE(CX2341X_FIRM_ENC_FILENAME);
+MODULE_FIRMWARE(CX2341X_FIRM_DEC_FILENAME);
+MODULE_FIRMWARE(IVTV_DECODE_INIT_MPEG_FILENAME);
index d8c898278e8ca9b2a40c0db69dfe1c139d82e5ef..adc501d3c287fe0f6ba8893abd58d06603440873 100644 (file)
@@ -54,8 +54,9 @@ static const struct pvr2_device_client_desc pvr2_cli_29xxx[] = {
        { .module_id = PVR2_CLIENT_ID_DEMOD },
 };
 
+#define PVR2_FIRMWARE_29xxx "v4l-pvrusb2-29xxx-01.fw"
 static const char *pvr2_fw1_names_29xxx[] = {
-               "v4l-pvrusb2-29xxx-01.fw",
+               PVR2_FIRMWARE_29xxx,
 };
 
 static const struct pvr2_device_desc pvr2_device_29xxx = {
@@ -87,8 +88,9 @@ static const struct pvr2_device_client_desc pvr2_cli_24xxx[] = {
        { .module_id = PVR2_CLIENT_ID_DEMOD },
 };
 
+#define PVR2_FIRMWARE_24xxx "v4l-pvrusb2-24xxx-01.fw"
 static const char *pvr2_fw1_names_24xxx[] = {
-               "v4l-pvrusb2-24xxx-01.fw",
+               PVR2_FIRMWARE_24xxx,
 };
 
 static const struct pvr2_device_desc pvr2_device_24xxx = {
@@ -369,8 +371,9 @@ static const struct pvr2_device_client_desc pvr2_cli_73xxx[] = {
          .i2c_address_list = "\x42"},
 };
 
+#define PVR2_FIRMWARE_73xxx "v4l-pvrusb2-73xxx-01.fw"
 static const char *pvr2_fw1_names_73xxx[] = {
-               "v4l-pvrusb2-73xxx-01.fw",
+               PVR2_FIRMWARE_73xxx,
 };
 
 static const struct pvr2_device_desc pvr2_device_73xxx = {
@@ -475,8 +478,9 @@ static const struct pvr2_dvb_props pvr2_751xx_dvb_props = {
 };
 #endif
 
+#define PVR2_FIRMWARE_75xxx "v4l-pvrusb2-73xxx-01.fw"
 static const char *pvr2_fw1_names_75xxx[] = {
-               "v4l-pvrusb2-73xxx-01.fw",
+               PVR2_FIRMWARE_75xxx,
 };
 
 static const struct pvr2_device_desc pvr2_device_750xx = {
@@ -556,7 +560,10 @@ struct usb_device_id pvr2_device_table[] = {
 };
 
 MODULE_DEVICE_TABLE(usb, pvr2_device_table);
-
+MODULE_FIRMWARE(PVR2_FIRMWARE_29xxx);
+MODULE_FIRMWARE(PVR2_FIRMWARE_24xxx);
+MODULE_FIRMWARE(PVR2_FIRMWARE_73xxx);
+MODULE_FIRMWARE(PVR2_FIRMWARE_75xxx);
 
 /*
   Stuff for Emacs to see, in order to encourage consistent editing style:
index 6625e46a4638d5a0e916d3ff91fdbeb6dd8355fc..decb648083460dc0ed21691e2bf76e3735c9b98d 100644 (file)
@@ -1436,7 +1436,7 @@ static int s5k6aa_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
        return 0;
 }
 
-int s5k6aa_check_fw_revision(struct s5k6aa *s5k6aa)
+static int s5k6aa_check_fw_revision(struct s5k6aa *s5k6aa)
 {
        struct i2c_client *client = v4l2_get_subdevdata(&s5k6aa->sd);
        u16 api_ver = 0, fw_rev = 0;
index c73a34c3434d75150cc4f6440e3ba3a5a8ffc47f..e7a79db3c1f7cbf7d7998d77013cda9dc72cfffb 100644 (file)
@@ -28,6 +28,7 @@
 #define OMAP3_ISP_USER_H
 
 #include <linux/types.h>
+#include <linux/videodev2.h>
 
 /*
  * Private IOCTLs
index 0fa8b64c3cdbd1614dfe6e4ea12c2bdb6ceabd04..4f0667e010dd39333ef672af24969c5c6683819a 100644 (file)
 /* Backward compatibility target definitions --- to be removed. */
 #define V4L2_SEL_TGT_CROP_ACTIVE       V4L2_SEL_TGT_CROP
 #define V4L2_SEL_TGT_COMPOSE_ACTIVE    V4L2_SEL_TGT_COMPOSE
-#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL \
-       V4L2_SEL_TGT_CROP
-#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL \
-       V4L2_SEL_TGT_COMPOSE
+#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL        V4L2_SEL_TGT_CROP
+#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE
+#define V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS        V4L2_SEL_TGT_CROP_BOUNDS
+#define V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS
 
 /* Selection flags */
 #define V4L2_SEL_FLAG_GE               (1 << 0)