Fix new warnings detected by GCC 6.1
Subsystems (9)
cover Fix new warnings detected by GCC 6.1
After upgrading to Fedora 24, new warnings started to popup. Fix them.
Mauro Carvalho Chehab (19):
usbvision: remove some unused vars
exynos4-is: remove some unused vars
cx18: use macros instead of static const vars
m5602_core: move skeletons to the .c file
m5602_s5k4aa: move skeletons to the .c file
m5602_mt9m111: move skeletons to the .c file
m5602_ov9650: move skeletons to the .c file
m5602_s5k83a: move skeletons to the .c file
m5602_po1030: move skeletons to the .c file
m5602_ov7660: move skeletons to the .c file
cx25821-alsa: shutup a Gcc 6.1 warning
drxj: comment out the unused nicam_presc_table_val table
dib0090: comment out the unused tables
r820t: comment out two ancillary tables
zr36016: remove some unused tables
vivid: remove some unused vars
em28xx-dvb: remove some left over
adv7842: comment out a table useful for debug
bdisp: move the V/H filter spec to bdisp-hw.c
drivers/media/dvb-frontends/dib0090.c | 6 + drivers/media/dvb-frontends/drx39xyj/drxj.c | 3 + drivers/media/i2c/adv7842.c | 3 + drivers/media/pci/cx18/cx18-driver.c | 2 +- drivers/media/pci/cx18/cx18-driver.h | 6 +- drivers/media/pci/cx18/cx18-ioctl.c | 2 +- drivers/media/pci/cx18/cx18-streams.c | 12 +- drivers/media/pci/cx18/cx18-vbi.c | 6 +- drivers/media/pci/cx25821/cx25821-alsa.c | 2 +- drivers/media/pci/zoran/zr36016.c | 4 - drivers/media/platform/exynos4-is/mipi-csis.c | 17 -- drivers/media/platform/sti/bdisp/bdisp-filter.h | 304 ----------------------- drivers/media/platform/sti/bdisp/bdisp-hw.c | 305 ++++++++++++++++++++++++ drivers/media/platform/vivid/vivid-sdr-cap.c | 2 - drivers/media/platform/vivid/vivid-vid-cap.c | 3 +- drivers/media/radio/radio-aztech.c | 1 - drivers/media/tuners/r820t.c | 29 +-- drivers/media/usb/em28xx/em28xx-dvb.c | 11 - drivers/media/usb/gspca/m5602/m5602_bridge.h | 15 -- drivers/media/usb/gspca/m5602/m5602_core.c | 15 ++ drivers/media/usb/gspca/m5602/m5602_mt9m111.c | 144 +++++++++++ drivers/media/usb/gspca/m5602/m5602_mt9m111.h | 144 ----------- drivers/media/usb/gspca/m5602/m5602_ov7660.c | 153 ++++++++++++ drivers/media/usb/gspca/m5602/m5602_ov7660.h | 153 ------------ drivers/media/usb/gspca/m5602/m5602_ov9650.c | 152 ++++++++++++ drivers/media/usb/gspca/m5602/m5602_ov9650.h | 150 ------------ drivers/media/usb/gspca/m5602/m5602_po1030.c | 104 ++++++++ drivers/media/usb/gspca/m5602/m5602_po1030.h | 104 -------- drivers/media/usb/gspca/m5602/m5602_s5k4aa.c | 199 ++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_s5k4aa.h | 197 --------------- drivers/media/usb/gspca/m5602/m5602_s5k83a.c | 124 ++++++++++ drivers/media/usb/gspca/m5602/m5602_s5k83a.h | 124 ---------- drivers/media/usb/usbvision/usbvision-core.c | 5 - 33 files changed, 1239 insertions(+), 1262 deletions(-)
Signature · 1 line
2.7.4
PATCH 1/19 usbvision: remove some unused vars
Gcc 6.1 warns about some unused vars. Remove them:
drivers/media/usb/usbvision/usbvision-core.c:94:18: warning: 'min_imgheight' defined but not used [-Wunused-const-variable=]
static const int min_imgheight = MIN_FRAME_HEIGHT;
^~~~~~~~~~~~~
drivers/media/usb/usbvision/usbvision-core.c:93:18: warning: 'min_imgwidth' defined but not used [-Wunused-const-variable=]
static const int min_imgwidth = MIN_FRAME_WIDTH;
^~~~~~~~~~~~
drivers/media/usb/usbvision/usbvision-core.c:92:18: warning: 'max_imgheight' defined but not used [-Wunused-const-variable=]
static const int max_imgheight = MAX_FRAME_HEIGHT;
^~~~~~~~~~~~~
drivers/media/usb/usbvision/usbvision-core.c:91:18: warning: 'max_imgwidth' defined but not used [-Wunused-const-variable=]
static const int max_imgwidth = MAX_FRAME_WIDTH;
^~~~~~~~~~~~--- drivers/media/usb/usbvision/usbvision-core.c | 5 ----- 1 file changed, 5 deletions(-)
drivers/media/usb/usbvision/usbvision-core.c +0 -5
@@ -88,11 +88,6 @@ MODULE_PARM_DESC(adjust_y_offset, "adjust Y offset display [core]");#define DBG_SCRATCH (1 << 4)#define DBG_FUNC (1 << 5) -static const int max_imgwidth =MAX_FRAME_WIDTH ; -static const int max_imgheight =MAX_FRAME_HEIGHT ; -static const int min_imgwidth =MIN_FRAME_WIDTH ; -static const int min_imgheight =MIN_FRAME_HEIGHT ; -/* The value of 'scratch_buf_size' affects quality of the picture * in many ways. Shorter buffers may cause loss of data when client * is too slow. Larger buffers are memory-consuming and take longer
Signature · 1 line
2.7.4
PATCH 2/19 exynos4-is: remove some unused vars
In reply to Mauro Carvalho ChehabGcc 6.1 warns about some unused vars and functions. Remove them:
drivers/media/platform/exynos4-is/mipi-csis.c:665:46: warning: 's5pcsis_sd_internal_ops' defined but not used [-Wunused-const-variable=]
static const struct v4l2_subdev_internal_ops s5pcsis_sd_internal_ops = {
^~~~~~~~~~~~~~~~~~~~~~~drivers/media/platform/exynos4-is/mipi-csis.c:652:12: warning: 's5pcsis_open' defined but not used [-Wunused-function]
static int s5pcsis_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
^~~~~~~~~~~~
--- drivers/media/platform/exynos4-is/mipi-csis.c | 17 ----------------- drivers/media/radio/radio-aztech.c | 1 - 2 files changed, 18 deletions(-)
drivers/media/platform/exynos4-is/mipi-csis.c +0 -17
@@ -649,23 +649,6 @@ static int s5pcsis_log_status(struct v4l2_subdev *sd)return 0 ; } -static int s5pcsis_open (struct v4l2_subdev *sd,struct v4l2_subdev_fh *fh) -{ -struct v4l2_mbus_framefmt *format =v4l2_subdev_get_try_format (sd, fh->pad,0 ); - - format->colorspace =V4L2_COLORSPACE_JPEG ; - format->code = s5pcsis_formats[0 ].code; - format->width =S5PCSIS_DEF_PIX_WIDTH ; - format->height =S5PCSIS_DEF_PIX_HEIGHT ; - format->field =V4L2_FIELD_NONE ; - -return 0 ; -} - -static const struct v4l2_subdev_internal_ops s5pcsis_sd_internal_ops = { - .open = s5pcsis_open, -}; -static struct v4l2_subdev_core_ops s5pcsis_core_ops = { .s_power = s5pcsis_s_power, .log_status = s5pcsis_log_status,
drivers/media/radio/radio-aztech.c +0 -1
@@ -43,7 +43,6 @@ MODULE_VERSION("1.0.0");static int io[AZTECH_MAX ] = { [0 ] =CONFIG_RADIO_AZTECH_PORT , [1 ... (AZTECH_MAX -1 )] =-1 };static int radio_nr[AZTECH_MAX ] = { [0 ... (AZTECH_MAX -1 )] =-1 }; -static const int radio_wait_time =1000 ;module_param_array (io, int,NULL ,0444 );MODULE_PARM_DESC (io,"I/O addresses of the Aztech card (0x350 or 0x358)" );
Signature · 1 line
2.7.4
PATCH 3/19 cx18: use macros instead of static const vars
In reply to Mauro Carvalho ChehabGcc 6.1 now complains about unused vars:
drivers/media/pci/cx18/cx18-driver.h:497:18: warning: 'vbi_hblank_samples_50Hz' defined but not used [-Wunused-const-variable=]
static const u32 vbi_hblank_samples_50Hz = 284; /* 4 byte EAV + 280 anc/fill */
^~~~~~~~~~~~~~~~~~~~~~~
drivers/media/pci/cx18/cx18-driver.h:496:18: warning: 'vbi_hblank_samples_60Hz' defined but not used [-Wunused-const-variable=]
static const u32 vbi_hblank_samples_60Hz = 272; /* 4 byte EAV + 268 anc/fill */
^~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/media/pci/cx18/cx18-cards.c:25:0:
drivers/media/pci/cx18/cx18-driver.h:497:18: warning: 'vbi_hblank_samples_50Hz' defined but not used [-Wunused-const-variable=]
static const u32 vbi_hblank_samples_50Hz = 284; /* 4 byte EAV + 280 anc/fill */
^~~~~~~~~~~~~~~~~~~~~~~
drivers/media/pci/cx18/cx18-driver.h:496:18: warning: 'vbi_hblank_samples_60Hz' defined but not used [-Wunused-const-variable=]
static const u32 vbi_hblank_samples_60Hz = 272; /* 4 byte EAV + 268 anc/fill */
^~~~~~~~~~~~~~~~~~~~~~~
drivers/media/pci/cx18/cx18-driver.h:495:18: warning: 'vbi_active_samples' defined but not used [-Wunused-const-variable=]
static const u32 vbi_active_samples = 1444; /* 4 byte SAV + 720 Y + 720 U/V */
^~~~~~~~~~~~~~~~~~In this specific case, this is somewhat intentional, as those values are actually used in parts of the driver. The code assumes that gcc optimizer it and not actually create any var, but convert it to immediate access at the routines.
Yet, as we want to shut up gcc warnings, let's use #define, with is the standard way to store values that will use assembler's immediate access code.
--- drivers/media/pci/cx18/cx18-driver.c | 2 +- drivers/media/pci/cx18/cx18-driver.h | 6 +++--- drivers/media/pci/cx18/cx18-ioctl.c | 2 +- drivers/media/pci/cx18/cx18-streams.c | 12 ++++++------ drivers/media/pci/cx18/cx18-vbi.c | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-)
drivers/media/pci/cx18/cx18-driver.c +1 -1
@@ -560,7 +560,7 @@ static void cx18_process_options(struct cx18 *cx) cx->stream_buf_size[CX18_ENC_STREAM_TYPE_MPG ] = enc_mpg_bufsize; cx->stream_buf_size[CX18_ENC_STREAM_TYPE_IDX ] = enc_idx_bufsize; cx->stream_buf_size[CX18_ENC_STREAM_TYPE_YUV ] = enc_yuv_bufsize; - cx->stream_buf_size[CX18_ENC_STREAM_TYPE_VBI ] = vbi_active_samples *36 ; + cx->stream_buf_size[CX18_ENC_STREAM_TYPE_VBI ] =VBI_ACTIVE_SAMPLES *36 ; cx->stream_buf_size[CX18_ENC_STREAM_TYPE_PCM ] = enc_pcm_bufsize; cx->stream_buf_size[CX18_ENC_STREAM_TYPE_RAD ] =0 ;/* control no data */
drivers/media/pci/cx18/cx18-driver.h +3 -3
@@ -492,9 +492,9 @@ struct cx18_card;* (1/15.625 kHz) * 2 * 13.5 MHz = 1728 samples/line = * 4 bytes SAV + 280 bytes anc data + 4 bytes SAV + 1440 active samples */ -static const u32 vbi_active_samples =1444 ;/* 4 byte SAV + 720 Y + 720 U/V */ -static const u32 vbi_hblank_samples_60Hz =272 ;/* 4 byte EAV + 268 anc/fill */ -static const u32 vbi_hblank_samples_50Hz =284 ;/* 4 byte EAV + 280 anc/fill */ +#define VBI_ACTIVE_SAMPLES 1444/* 4 byte SAV + 720 Y + 720 U/V */ +#define VBI_HBLANK_SAMPLES_60HZ 272/* 4 byte EAV + 268 anc/fill */ +#define VBI_HBLANK_SAMPLES_50HZ 284/* 4 byte EAV + 280 anc/fill */ #define CX18_VBI_FRAMES 32
drivers/media/pci/cx18/cx18-ioctl.c +1 -1
@@ -177,7 +177,7 @@ static int cx18_g_fmt_vbi_cap(struct file *file, void *fh, vbifmt->sampling_rate =27000000 ; vbifmt->offset =248 ;/* FIXME - slightly wrong for both 50 & 60 Hz */ - vbifmt->samples_per_line = vbi_active_samples -4 ; + vbifmt->samples_per_line =VBI_ACTIVE_SAMPLES -4 ; vbifmt->sample_format =V4L2_PIX_FMT_GREY ; vbifmt->start[0 ] = cx->vbi.start[0 ]; vbifmt->start[1 ] = cx->vbi.start[1 ];
drivers/media/pci/cx18/cx18-streams.c +6 -6
@@ -605,9 +605,9 @@ static void cx18_vbi_setup(struct cx18_stream *s)/* Lines per field */ data[1 ] = (lines /2 ) | ((lines /2 ) <<16 );/* bytes per line */ - data[2 ] = (raw ? vbi_active_samples - : (cx->is_60hz ? vbi_hblank_samples_60Hz - : vbi_hblank_samples_50Hz)); + data[2 ] = (raw ?VBI_ACTIVE_SAMPLES + : (cx->is_60hz ?VBI_HBLANK_SAMPLES_60HZ + :VBI_HBLANK_SAMPLES_50HZ ));/* Every X number of frames a VBI interrupt arrives (frames as in 25 or 30 fps) */ data[3 ] =1 ;
@@ -761,7 +761,7 @@ static void cx18_stream_configure_mdls(struct cx18_stream *s) s->bufs_per_mdl =1 ;if (cx18_raw_vbi (s->cx)) { s->mdl_size = (s->cx->is_60hz ?12 :18 ) - *2 * vbi_active_samples; + *2 *VBI_ACTIVE_SAMPLES ; }else {/* * See comment in cx18_vbi_setup() below about the
@@ -769,8 +769,8 @@ static void cx18_stream_configure_mdls(struct cx18_stream *s)* the lines on which EAV RP codes toggle. */ s->mdl_size = s->cx->is_60hz - ? (21 -4 +1 ) *2 * vbi_hblank_samples_60Hz - : (23 -2 +1 ) *2 * vbi_hblank_samples_50Hz; + ? (21 -4 +1 ) *2 *VBI_HBLANK_SAMPLES_60HZ + : (23 -2 +1 ) *2 *VBI_HBLANK_SAMPLES_50HZ ; }break ;default :
drivers/media/pci/cx18/cx18-vbi.c +3 -3
@@ -108,7 +108,7 @@ static void copy_vbi_data(struct cx18 *cx, int lines, u32 pts_stamp)/* FIXME - this function ignores the input size. */ static u32 compress_raw_buf (struct cx18 *cx,u8 *buf,u32 size,u32 hdr_size) { -u32 line_size = vbi_active_samples; +u32 line_size =VBI_ACTIVE_SAMPLES ;u32 lines = cx->vbi.count *2 ;u8 *q = buf;u8 *p;
@@ -145,8 +145,8 @@ static u32 compress_sliced_buf(struct cx18 *cx, u8 *buf, u32 size,struct v4l2_decode_vbi_line vbi;int i;u32 line =0 ; -u32 line_size = cx->is_60hz ? vbi_hblank_samples_60Hz - : vbi_hblank_samples_50Hz; +u32 line_size = cx->is_60hz ?VBI_HBLANK_SAMPLES_60HZ + :VBI_HBLANK_SAMPLES_50HZ ;/* find the first valid line */ for (i = hdr_size, buf += hdr_size; i < size; i++, buf++) {
Signature · 1 line
2.7.4
PATCH 4/19 m5602_core: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe mc5602_brigde.h is included at m5602 submodules. This causes Gcc 6.1 to complain:
drivers/media/usb/gspca/m5602/m5602_bridge.h:124:28: warning: 'sensor_urb_skeleton' defined but not used [-Wunused-const-variable=]
static const unsigned char sensor_urb_skeleton[] = {
^~~~~~~~~~~~~~~~~~~
drivers/media/usb/gspca/m5602/m5602_bridge.h:119:28: warning: 'bridge_urb_skeleton' defined but not used [-Wunused-const-variable=]
static const unsigned char bridge_urb_skeleton[] = {
^~~~~~~~~~~~~~~~~~~Let's shut up gcc 6.1 warnings by moving those data structures to the core, as they're used only there.
--- drivers/media/usb/gspca/m5602/m5602_bridge.h | 15 --------------- drivers/media/usb/gspca/m5602/m5602_core.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 15 deletions(-)
drivers/media/usb/gspca/m5602/m5602_bridge.h +0 -15
@@ -115,21 +115,6 @@/*****************************************************************************/ -/* A skeleton used for sending messages to the m5602 bridge */ -static const unsigned char bridge_urb_skeleton[] = { -0x13 ,0x00 ,0x81 ,0x00 -}; - -/* A skeleton used for sending messages to the sensor */ -static const unsigned char sensor_urb_skeleton[] = { -0x23 ,M5602_XB_GPIO_EN_H ,0x81 ,0x06 , -0x23 ,M5602_XB_MISC_CTRL ,0x81 ,0x80 , -0x13 ,M5602_XB_I2C_DEV_ADDR ,0x81 ,0x00 , -0x13 ,M5602_XB_I2C_REG_ADDR ,0x81 ,0x00 , -0x13 ,M5602_XB_I2C_DATA ,0x81 ,0x00 , -0x13 ,M5602_XB_I2C_CTRL ,0x81 ,0x11 -}; -struct sd {struct gspca_dev gspca_dev;
drivers/media/usb/gspca/m5602/m5602_core.c +15 -0
@@ -37,6 +37,21 @@ static const struct usb_device_id m5602_table[] = {MODULE_DEVICE_TABLE (usb, m5602_table); +/* A skeleton used for sending messages to the sensor */ +static const unsigned char sensor_urb_skeleton[] = { +0x23 ,M5602_XB_GPIO_EN_H ,0x81 ,0x06 , +0x23 ,M5602_XB_MISC_CTRL ,0x81 ,0x80 , +0x13 ,M5602_XB_I2C_DEV_ADDR ,0x81 ,0x00 , +0x13 ,M5602_XB_I2C_REG_ADDR ,0x81 ,0x00 , +0x13 ,M5602_XB_I2C_DATA ,0x81 ,0x00 , +0x13 ,M5602_XB_I2C_CTRL ,0x81 ,0x11 +}; + +/* A skeleton used for sending messages to the m5602 bridge */ +static const unsigned char bridge_urb_skeleton[] = { +0x13 ,0x00 ,0x81 ,0x00 +}; +/* Reads a byte from the m5602 */ int m5602_read_bridge (struct sd *sd,const u8 address,u8 *i2c_data) {
Signature · 1 line
2.7.4
PATCH 5/19 m5602_s5k4aa: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe mc5602_s5k4aa.h has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_s5k4aa.c | 199 +++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_s5k4aa.h | 197 -------------------------- 2 files changed, 199 insertions(+), 197 deletions(-)
drivers/media/usb/gspca/m5602/m5602_s5k4aa.c +199 -0
@@ -20,6 +20,205 @@#include "m5602_s5k4aa.h" +static const unsigned char preinit_s5k4aa[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 ,0x00 }, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0x80 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 ,0x00 }, + + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x14 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xf0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x1c ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x20 ,0x00 }, + + {SENSOR ,S5K4AA_PAGE_MAP ,0x00 ,0x00 } +}; + +static const unsigned char init_s5k4aa[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 ,0x00 }, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0x80 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 ,0x00 }, + + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x14 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xf0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x1c ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x20 ,0x00 }, + + {SENSOR ,S5K4AA_PAGE_MAP ,0x07 ,0x00 }, + {SENSOR ,0x36 ,0x01 ,0x00 }, + {SENSOR ,S5K4AA_PAGE_MAP ,0x00 ,0x00 }, + {SENSOR ,0x7b ,0xff ,0x00 }, + {SENSOR ,S5K4AA_PAGE_MAP ,0x02 ,0x00 }, + {SENSOR ,0x0c ,0x05 ,0x00 }, + {SENSOR ,0x02 ,0x0e ,0x00 }, + {SENSOR ,S5K4AA_READ_MODE ,0xa0 ,0x00 }, + {SENSOR ,0x37 ,0x00 ,0x00 }, +}; + +static const unsigned char VGA_s5k4aa[][4 ] = { + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x81 ,0x00 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, +/* VSYNC_PARA, VSYNC_PARA : img height 480 = 0x01e0 */ + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0xe0 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, +/* HSYNC_PARA, HSYNC_PARA : img width 640 = 0x0280 */ + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x80 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xa0 ,0x00 },/* 48 MHz */ + + {SENSOR ,S5K4AA_PAGE_MAP ,0x02 ,0x00 }, + {SENSOR ,S5K4AA_READ_MODE ,S5K4AA_RM_H_FLIP |S5K4AA_RM_ROW_SKIP_2X + |S5K4AA_RM_COL_SKIP_2X ,0x00 }, +/* 0x37 : Fix image stability when light is too bright and improves +* image quality in 640x480, but worsens it in 1280x1024 */ + {SENSOR ,0x37 ,0x01 ,0x00 }, +/* ROWSTART_HI, ROWSTART_LO : 10 + (1024-960)/2 = 42 = 0x002a */ + {SENSOR ,S5K4AA_ROWSTART_HI ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_ROWSTART_LO ,0x29 ,0x00 }, + {SENSOR ,S5K4AA_COLSTART_HI ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_COLSTART_LO ,0x0c ,0x00 }, +/* window_height_hi, window_height_lo : 960 = 0x03c0 */ + {SENSOR ,S5K4AA_WINDOW_HEIGHT_HI ,0x03 ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_HEIGHT_LO ,0xc0 ,0x00 }, +/* window_width_hi, window_width_lo : 1280 = 0x0500 */ + {SENSOR ,S5K4AA_WINDOW_WIDTH_HI ,0x05 ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_WIDTH_LO ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_H_BLANK_HI__ ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_H_BLANK_LO__ ,0xa8 ,0x00 },/* helps to sync... */ + {SENSOR ,S5K4AA_EXPOSURE_HI ,0x01 ,0x00 }, + {SENSOR ,S5K4AA_EXPOSURE_LO ,0x00 ,0x00 }, + {SENSOR ,0x11 ,0x04 ,0x00 }, + {SENSOR ,0x12 ,0xc3 ,0x00 }, + {SENSOR ,S5K4AA_PAGE_MAP ,0x02 ,0x00 }, + {SENSOR ,0x02 ,0x0e ,0x00 }, +}; + +static const unsigned char SXGA_s5k4aa[][4 ] = { + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x81 ,0x00 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, +/* VSYNC_PARA, VSYNC_PARA : img height 1024 = 0x0400 */ + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x04 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, +/* HSYNC_PARA, HSYNC_PARA : img width 1280 = 0x0500 */ + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x05 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xa0 ,0x00 },/* 48 MHz */ + + {SENSOR ,S5K4AA_PAGE_MAP ,0x02 ,0x00 }, + {SENSOR ,S5K4AA_READ_MODE ,S5K4AA_RM_H_FLIP ,0x00 }, + {SENSOR ,0x37 ,0x01 ,0x00 }, + {SENSOR ,S5K4AA_ROWSTART_HI ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_ROWSTART_LO ,0x09 ,0x00 }, + {SENSOR ,S5K4AA_COLSTART_HI ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_COLSTART_LO ,0x0a ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_HEIGHT_HI ,0x04 ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_HEIGHT_LO ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_WIDTH_HI ,0x05 ,0x00 }, + {SENSOR ,S5K4AA_WINDOW_WIDTH_LO ,0x00 ,0x00 }, + {SENSOR ,S5K4AA_H_BLANK_HI__ ,0x01 ,0x00 }, + {SENSOR ,S5K4AA_H_BLANK_LO__ ,0xa8 ,0x00 }, + {SENSOR ,S5K4AA_EXPOSURE_HI ,0x01 ,0x00 }, + {SENSOR ,S5K4AA_EXPOSURE_LO ,0x00 ,0x00 }, + {SENSOR ,0x11 ,0x04 ,0x00 }, + {SENSOR ,0x12 ,0xc3 ,0x00 }, + {SENSOR ,S5K4AA_PAGE_MAP ,0x02 ,0x00 }, + {SENSOR ,0x02 ,0x0e ,0x00 }, +}; + +static int s5k4aa_s_ctrl (struct v4l2_ctrl *ctrl);static void s5k4aa_dump_registers (struct sd *sd);
drivers/media/usb/gspca/m5602/m5602_s5k4aa.h +0 -197
201 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 6/19 m5602_mt9m111: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe header file has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_mt9m111.c | 144 ++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_mt9m111.h | 144 -------------------------- 2 files changed, 144 insertions(+), 144 deletions(-)
drivers/media/usb/gspca/m5602/m5602_mt9m111.c +144 -0
@@ -23,6 +23,150 @@static int mt9m111_s_ctrl (struct v4l2_ctrl *ctrl);static void mt9m111_dump_registers (struct sd *sd); +static const unsigned char preinit_mt9m111[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + + {SENSOR ,MT9M111_PAGE_MAP ,0x00 ,0x00 }, + {SENSOR ,MT9M111_SC_RESET , +MT9M111_RESET | +MT9M111_RESTART | +MT9M111_ANALOG_STANDBY | +MT9M111_CHIP_DISABLE , +MT9M111_SHOW_BAD_FRAMES | +MT9M111_RESTART_BAD_FRAMES | +MT9M111_SYNCHRONIZE_CHANGES }, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x3e ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3e ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x07 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x0b ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x0a ,0x00 } +}; + +static const unsigned char init_mt9m111[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3e ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x07 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x0b ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x0a ,0x00 }, + + {SENSOR ,MT9M111_SC_RESET ,0x00 ,0x29 }, + {SENSOR ,MT9M111_PAGE_MAP ,0x00 ,0x00 }, + {SENSOR ,MT9M111_SC_RESET ,0x00 ,0x08 }, + {SENSOR ,MT9M111_PAGE_MAP ,0x00 ,0x01 }, + {SENSOR ,MT9M111_CP_OPERATING_MODE_CTL ,0x00 , +MT9M111_CP_OPERATING_MODE_CTL }, + {SENSOR ,MT9M111_CP_LENS_CORRECTION_1 ,0x04 ,0x2a }, + {SENSOR ,MT9M111_CP_DEFECT_CORR_CONTEXT_A ,0x00 , +MT9M111_2D_DEFECT_CORRECTION_ENABLE }, + {SENSOR ,MT9M111_CP_DEFECT_CORR_CONTEXT_B ,0x00 , +MT9M111_2D_DEFECT_CORRECTION_ENABLE }, + {SENSOR ,MT9M111_CP_LUMA_OFFSET ,0x00 ,0x00 }, + {SENSOR ,MT9M111_CP_LUMA_CLIP ,0xff ,0x00 }, + {SENSOR ,MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_A ,0x14 ,0x00 }, + {SENSOR ,MT9M111_CP_OUTPUT_FORMAT_CTL2_CONTEXT_B ,0x14 ,0x00 }, + {SENSOR ,0xcd ,0x00 ,0x0e }, + {SENSOR ,0xd0 ,0x00 ,0x40 }, + + {SENSOR ,MT9M111_PAGE_MAP ,0x00 ,0x02 }, + {SENSOR ,MT9M111_CC_AUTO_EXPOSURE_PARAMETER_18 ,0x00 ,0x00 }, + {SENSOR ,MT9M111_CC_AWB_PARAMETER_7 ,0xef ,0x03 }, + + {SENSOR ,MT9M111_PAGE_MAP ,0x00 ,0x00 }, + {SENSOR ,0x33 ,0x03 ,0x49 }, + {SENSOR ,0x34 ,0xc0 ,0x19 }, + {SENSOR ,0x3f ,0x20 ,0x20 }, + {SENSOR ,0x40 ,0x20 ,0x20 }, + {SENSOR ,0x5a ,0xc0 ,0x0a }, + {SENSOR ,0x70 ,0x7b ,0x0a }, + {SENSOR ,0x71 ,0xff ,0x00 }, + {SENSOR ,0x72 ,0x19 ,0x0e }, + {SENSOR ,0x73 ,0x18 ,0x0f }, + {SENSOR ,0x74 ,0x57 ,0x32 }, + {SENSOR ,0x75 ,0x56 ,0x34 }, + {SENSOR ,0x76 ,0x73 ,0x35 }, + {SENSOR ,0x77 ,0x30 ,0x12 }, + {SENSOR ,0x78 ,0x79 ,0x02 }, + {SENSOR ,0x79 ,0x75 ,0x06 }, + {SENSOR ,0x7a ,0x77 ,0x0a }, + {SENSOR ,0x7b ,0x78 ,0x09 }, + {SENSOR ,0x7c ,0x7d ,0x06 }, + {SENSOR ,0x7d ,0x31 ,0x10 }, + {SENSOR ,0x7e ,0x00 ,0x7e }, + {SENSOR ,0x80 ,0x59 ,0x04 }, + {SENSOR ,0x81 ,0x59 ,0x04 }, + {SENSOR ,0x82 ,0x57 ,0x0a }, + {SENSOR ,0x83 ,0x58 ,0x0b }, + {SENSOR ,0x84 ,0x47 ,0x0c }, + {SENSOR ,0x85 ,0x48 ,0x0e }, + {SENSOR ,0x86 ,0x5b ,0x02 }, + {SENSOR ,0x87 ,0x00 ,0x5c }, + {SENSOR ,MT9M111_CONTEXT_CONTROL ,0x00 ,MT9M111_SEL_CONTEXT_B }, + {SENSOR ,0x60 ,0x00 ,0x80 }, + {SENSOR ,0x61 ,0x00 ,0x00 }, + {SENSOR ,0x62 ,0x00 ,0x00 }, + {SENSOR ,0x63 ,0x00 ,0x00 }, + {SENSOR ,0x64 ,0x00 ,0x00 }, + + {SENSOR ,MT9M111_SC_ROWSTART ,0x00 ,0x0d },/* 13 */ + {SENSOR ,MT9M111_SC_COLSTART ,0x00 ,0x12 },/* 18 */ + {SENSOR ,MT9M111_SC_WINDOW_HEIGHT ,0x04 ,0x00 },/* 1024 */ + {SENSOR ,MT9M111_SC_WINDOW_WIDTH ,0x05 ,0x10 },/* 1296 */ + {SENSOR ,MT9M111_SC_HBLANK_CONTEXT_B ,0x01 ,0x60 },/* 352 */ + {SENSOR ,MT9M111_SC_VBLANK_CONTEXT_B ,0x00 ,0x11 },/* 17 */ + {SENSOR ,MT9M111_SC_HBLANK_CONTEXT_A ,0x01 ,0x60 },/* 352 */ + {SENSOR ,MT9M111_SC_VBLANK_CONTEXT_A ,0x00 ,0x11 },/* 17 */ + {SENSOR ,MT9M111_SC_R_MODE_CONTEXT_A ,0x01 ,0x0f },/* 271 */ + {SENSOR ,0x30 ,0x04 ,0x00 }, +/* Set number of blank rows chosen to 400 */ + {SENSOR ,MT9M111_SC_SHUTTER_WIDTH ,0x01 ,0x90 }, +}; + +static const unsigned char start_mt9m111[][4 ] = { + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x81 ,0x00 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, +}; +static struct v4l2_pix_format mt9m111_modes[] = { {640 ,
drivers/media/usb/gspca/m5602/m5602_mt9m111.h +0 -144
148 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 7/19 m5602_ov9650: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe header file has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_ov9650.c | 152 +++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_ov9650.h | 150 -------------------------- 2 files changed, 152 insertions(+), 150 deletions(-)
drivers/media/usb/gspca/m5602/m5602_ov9650.c +152 -0
@@ -1,3 +1,4 @@ +/* * Driver for the ov9650 sensor *
@@ -23,6 +24,157 @@static int ov9650_s_ctrl (struct v4l2_ctrl *ctrl);static void ov9650_dump_registers (struct sd *sd); +static const unsigned char preinit_ov9650[][3 ] = { +/* [INITCAM] */ + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x0a }, +/* Reset chip */ + {SENSOR ,OV9650_COM7 ,OV9650_REGISTER_RESET }, +/* Enable double clock */ + {SENSOR ,OV9650_CLKRC ,0x80 }, +/* Do something out of spec with the power */ + {SENSOR ,OV9650_OFON ,0x40 } +}; + +static const unsigned char init_ov9650[][3 ] = { +/* [INITCAM] */ + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x08 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x0a }, + +/* Reset chip */ + {SENSOR ,OV9650_COM7 ,OV9650_REGISTER_RESET }, +/* One extra reset is needed in order to make the sensor behave +properly when resuming from ram, could be a timing issue */ + {SENSOR ,OV9650_COM7 ,OV9650_REGISTER_RESET }, + +/* Enable double clock */ + {SENSOR ,OV9650_CLKRC ,0x80 }, +/* Do something out of spec with the power */ + {SENSOR ,OV9650_OFON ,0x40 }, + +/* Set fast AGC/AEC algorithm with unlimited step size */ + {SENSOR ,OV9650_COM8 ,OV9650_FAST_AGC_AEC | +OV9650_AEC_UNLIM_STEP_SIZE }, + + {SENSOR ,OV9650_CHLF ,0x10 }, + {SENSOR ,OV9650_ARBLM ,0xbf }, + {SENSOR ,OV9650_ACOM38 ,0x81 }, +/* Turn off color matrix coefficient double option */ + {SENSOR ,OV9650_COM16 ,0x00 }, +/* Enable color matrix for RGB/YUV, Delay Y channel, +set output Y/UV delay to 1 */ + {SENSOR ,OV9650_COM13 ,0x19 }, +/* Enable digital BLC, Set output mode to U Y V Y */ + {SENSOR ,OV9650_TSLB ,0x0c }, +/* Limit the AGC/AEC stable upper region */ + {SENSOR ,OV9650_COM24 ,0x00 }, +/* Enable HREF and some out of spec things */ + {SENSOR ,OV9650_COM12 ,0x73 }, +/* Set all DBLC offset signs to positive and +do some out of spec stuff */ + {SENSOR ,OV9650_DBLC1 ,0xdf }, + {SENSOR ,OV9650_COM21 ,0x06 }, + {SENSOR ,OV9650_RSVD35 ,0x91 }, +/* Necessary, no camera stream without it */ + {SENSOR ,OV9650_RSVD16 ,0x06 }, + {SENSOR ,OV9650_RSVD94 ,0x99 }, + {SENSOR ,OV9650_RSVD95 ,0x99 }, + {SENSOR ,OV9650_RSVD96 ,0x04 }, +/* Enable full range output */ + {SENSOR ,OV9650_COM15 ,0x0 }, +/* Enable HREF at optical black, enable ADBLC bias, +enable ADBLC, reset timings at format change */ + {SENSOR ,OV9650_COM6 ,0x4b }, +/* Subtract 32 from the B channel bias */ + {SENSOR ,OV9650_BBIAS ,0xa0 }, +/* Subtract 32 from the Gb channel bias */ + {SENSOR , OV9650_GbBIAS,0xa0 }, +/* Do not bypass the analog BLC and to some out of spec stuff */ + {SENSOR , OV9650_Gr_COM,0x00 }, +/* Subtract 32 from the R channel bias */ + {SENSOR ,OV9650_RBIAS ,0xa0 }, +/* Subtract 32 from the R channel bias */ + {SENSOR ,OV9650_RBIAS ,0x0 }, + {SENSOR ,OV9650_COM26 ,0x80 }, + {SENSOR ,OV9650_ACOMA9 ,0x98 }, +/* Set the AGC/AEC stable region upper limit */ + {SENSOR ,OV9650_AEW ,0x68 }, +/* Set the AGC/AEC stable region lower limit */ + {SENSOR ,OV9650_AEB ,0x5c }, +/* Set the high and low limit nibbles to 3 */ + {SENSOR ,OV9650_VPT ,0xc3 }, +/* Set the Automatic Gain Ceiling (AGC) to 128x, +drop VSYNC at frame drop, +limit exposure timing, +drop frame when the AEC step is larger than the exposure gap */ + {SENSOR ,OV9650_COM9 ,0x6e }, +/* Set VSYNC negative, Set RESET to SLHS (slave mode horizontal sync) +and set PWDN to SLVS (slave mode vertical sync) */ + {SENSOR ,OV9650_COM10 ,0x42 }, +/* Set horizontal column start high to default value */ + {SENSOR ,OV9650_HSTART ,0x1a },/* 210 */ +/* Set horizontal column end */ + {SENSOR ,OV9650_HSTOP ,0xbf },/* 1534 */ +/* Complementing register to the two writes above */ + {SENSOR ,OV9650_HREF ,0xb2 }, +/* Set vertical row start high bits */ + {SENSOR ,OV9650_VSTRT ,0x02 }, +/* Set vertical row end low bits */ + {SENSOR ,OV9650_VSTOP ,0x7e }, +/* Set complementing vertical frame control */ + {SENSOR ,OV9650_VREF ,0x10 }, + {SENSOR ,OV9650_ADC ,0x04 }, + {SENSOR ,OV9650_HV ,0x40 }, + +/* Enable denoise, and white-pixel erase */ + {SENSOR ,OV9650_COM22 ,OV9650_DENOISE_ENABLE | +OV9650_WHITE_PIXEL_ENABLE | +OV9650_WHITE_PIXEL_OPTION }, + +/* Enable VARIOPIXEL */ + {SENSOR ,OV9650_COM3 ,OV9650_VARIOPIXEL }, + {SENSOR ,OV9650_COM4 ,OV9650_QVGA_VARIOPIXEL }, + +/* Put the sensor in soft sleep mode */ + {SENSOR ,OV9650_COM2 ,OV9650_SOFT_SLEEP |OV9650_OUTPUT_DRIVE_2X }, +}; + +static const unsigned char res_init_ov9650[][3 ] = { + {SENSOR ,OV9650_COM2 ,OV9650_OUTPUT_DRIVE_2X }, + + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x82 }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_L ,0x00 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_L ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 } +}; +/* Vertically and horizontally flips the image if matched, needed for machines where the sensor is mounted upside down */ static
drivers/media/usb/gspca/m5602/m5602_ov9650.h +0 -150
154 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 8/19 m5602_s5k83a: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe header file has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_s5k83a.c | 124 +++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_s5k83a.h | 124 --------------------------- 2 files changed, 124 insertions(+), 124 deletions(-)
drivers/media/usb/gspca/m5602/m5602_s5k83a.c +124 -0
@@ -41,6 +41,130 @@ static struct v4l2_pix_format s5k83a_modes[] = { } }; +static const unsigned char preinit_s5k83a[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 ,0x00 }, + + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0x80 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xf0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x1c ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x20 ,0x00 }, +}; + +/* This could probably be considerably shortened. +I don't have the hardware to experiment with it, patches welcome +*/ +static const unsigned char init_s5k83a[][4 ] = { +/* The following sequence is useless after a clean boot +but is necessary after resume from suspend */ + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x3f ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_L ,0xff ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0x80 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xf0 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x1d ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x08 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_I2C_CLK_DIV ,0x20 ,0x00 }, + + {SENSOR ,S5K83A_PAGE_MAP ,0x04 ,0x00 }, + {SENSOR ,0xaf ,0x01 ,0x00 }, + {SENSOR ,S5K83A_PAGE_MAP ,0x00 ,0x00 }, + {SENSOR ,0x7b ,0xff ,0x00 }, + {SENSOR ,S5K83A_PAGE_MAP ,0x05 ,0x00 }, + {SENSOR ,0x01 ,0x50 ,0x00 }, + {SENSOR ,0x12 ,0x20 ,0x00 }, + {SENSOR ,0x17 ,0x40 ,0x00 }, + {SENSOR ,0x1c ,0x00 ,0x00 }, + {SENSOR ,0x02 ,0x70 ,0x00 }, + {SENSOR ,0x03 ,0x0b ,0x00 }, + {SENSOR ,0x04 ,0xf0 ,0x00 }, + {SENSOR ,0x05 ,0x0b ,0x00 }, + {SENSOR ,0x06 ,0x71 ,0x00 }, + {SENSOR ,0x07 ,0xe8 ,0x00 },/* 488 */ + {SENSOR ,0x08 ,0x02 ,0x00 }, + {SENSOR ,0x09 ,0x88 ,0x00 },/* 648 */ + {SENSOR ,0x14 ,0x00 ,0x00 }, + {SENSOR ,0x15 ,0x20 ,0x00 },/* 32 */ + {SENSOR ,0x19 ,0x00 ,0x00 }, + {SENSOR ,0x1a ,0x98 ,0x00 },/* 152 */ + {SENSOR ,0x0f ,0x02 ,0x00 }, + {SENSOR ,0x10 ,0xe5 ,0x00 },/* 741 */ +/* normal colors +(this is value after boot, but after tries can be different) */ + {SENSOR ,0x00 ,0x06 ,0x00 }, +}; + +static const unsigned char start_s5k83a[][4 ] = { + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x06 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x09 ,0x00 }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x81 ,0x00 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x01 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0xe4 ,0x00 },/* 484 */ + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x02 ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x7f ,0x00 },/* 639 */ + {BRIDGE ,M5602_XB_SIG_INI ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 ,0x00 }, +}; +static void s5k83a_dump_registers (struct sd *sd);static int s5k83a_get_rotation (struct sd *sd,u8 *reg_data);static int s5k83a_set_led_indication (struct sd *sd,u8 val);
drivers/media/usb/gspca/m5602/m5602_s5k83a.h +0 -124
128 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 9/19 m5602_po1030: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe header file has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_po1030.c | 104 +++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_po1030.h | 104 --------------------------- 2 files changed, 104 insertions(+), 104 deletions(-)
drivers/media/usb/gspca/m5602/m5602_po1030.c +104 -0
@@ -23,6 +23,110 @@static int po1030_s_ctrl (struct v4l2_ctrl *ctrl);static void po1030_dump_registers (struct sd *sd); +static const unsigned char preinit_po1030[][3 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x02 }, + + {SENSOR ,PO1030_AUTOCTRL2 ,PO1030_SENSOR_RESET | (1 <<2 )}, + + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x04 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 } +}; + +static const unsigned char init_po1030[][3 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + + {SENSOR ,PO1030_AUTOCTRL2 ,PO1030_SENSOR_RESET | (1 <<2 )}, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x02 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x04 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + + {SENSOR ,PO1030_AUTOCTRL2 ,0x04 }, + + {SENSOR ,PO1030_OUTFORMCTRL2 ,PO1030_RAW_RGB_BAYER }, + {SENSOR ,PO1030_AUTOCTRL1 ,PO1030_WEIGHT_WIN_2X }, + + {SENSOR ,PO1030_CONTROL2 ,0x03 }, + {SENSOR ,0x21 ,0x90 }, + {SENSOR ,PO1030_YTARGET ,0x60 }, + {SENSOR ,0x59 ,0x13 }, + {SENSOR ,PO1030_OUTFORMCTRL1 ,PO1030_HREF_ENABLE }, + {SENSOR ,PO1030_EDGE_ENH_OFF ,0x00 }, + {SENSOR ,PO1030_EGA ,0x80 }, + {SENSOR ,0x78 ,0x14 }, + {SENSOR ,0x6f ,0x01 }, + {SENSOR ,PO1030_GLOBALGAINMAX ,0x14 }, + {SENSOR , PO1030_Cb_U_GAIN,0x38 }, + {SENSOR , PO1030_Cr_V_GAIN,0x38 }, + {SENSOR ,PO1030_CONTROL1 ,PO1030_SHUTTER_MODE | +PO1030_AUTO_SUBSAMPLING | +PO1030_FRAME_EQUAL }, + {SENSOR ,PO1030_GC0 ,0x10 }, + {SENSOR ,PO1030_GC1 ,0x20 }, + {SENSOR ,PO1030_GC2 ,0x40 }, + {SENSOR ,PO1030_GC3 ,0x60 }, + {SENSOR ,PO1030_GC4 ,0x80 }, + {SENSOR ,PO1030_GC5 ,0xa0 }, + {SENSOR ,PO1030_GC6 ,0xc0 }, + {SENSOR ,PO1030_GC7 ,0xff }, + +/* Set the width to 751 */ + {SENSOR ,PO1030_FRAMEWIDTH_H ,0x02 }, + {SENSOR ,PO1030_FRAMEWIDTH_L ,0xef }, + +/* Set the height to 540 */ + {SENSOR ,PO1030_FRAMEHEIGHT_H ,0x02 }, + {SENSOR ,PO1030_FRAMEHEIGHT_L ,0x1c }, + +/* Set the x window to 1 */ + {SENSOR ,PO1030_WINDOWX_H ,0x00 }, + {SENSOR ,PO1030_WINDOWX_L ,0x01 }, + +/* Set the y window to 1 */ + {SENSOR ,PO1030_WINDOWY_H ,0x00 }, + {SENSOR ,PO1030_WINDOWY_L ,0x01 }, + +/* with a very low lighted environment increase the exposure but +* decrease the FPS (Frame Per Second) */ + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 }, +}; +static struct v4l2_pix_format po1030_modes[] = { {640 ,
drivers/media/usb/gspca/m5602/m5602_po1030.h +0 -104
108 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 10/19 m5602_ov7660: move skeletons to the .c file
In reply to Mauro Carvalho ChehabThe header file has some private static structures that are used only by the C file. Move those structures to the C file, in order to shut up gcc 6.1 warnings.
--- drivers/media/usb/gspca/m5602/m5602_ov7660.c | 153 +++++++++++++++++++++++++++ drivers/media/usb/gspca/m5602/m5602_ov7660.h | 153 --------------------------- 2 files changed, 153 insertions(+), 153 deletions(-)
drivers/media/usb/gspca/m5602/m5602_ov7660.c +153 -0
@@ -23,6 +23,159 @@static int ov7660_s_ctrl (struct v4l2_ctrl *ctrl);static void ov7660_dump_registers (struct sd *sd); +static const unsigned char preinit_ov7660[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x03 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x03 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + + {SENSOR ,OV7660_OFON ,0x0c }, + {SENSOR ,OV7660_COM2 ,0x11 }, + {SENSOR ,OV7660_COM7 ,0x05 }, + + {BRIDGE ,M5602_XB_GPIO_DIR ,0x01 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x08 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 } +}; + +static const unsigned char init_ov7660[][4 ] = { + {BRIDGE ,M5602_XB_MCU_CLK_DIV ,0x02 }, + {BRIDGE ,M5602_XB_MCU_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0d }, + {BRIDGE ,M5602_XB_SENSOR_CTRL ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x01 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x01 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 }, + {SENSOR ,OV7660_COM7 ,0x80 }, + {SENSOR ,OV7660_CLKRC ,0x80 }, + {SENSOR ,OV7660_COM9 ,0x4c }, + {SENSOR ,OV7660_OFON ,0x43 }, + {SENSOR ,OV7660_COM12 ,0x28 }, + {SENSOR ,OV7660_COM8 ,0x00 }, + {SENSOR ,OV7660_COM10 ,0x40 }, + {SENSOR ,OV7660_HSTART ,0x0c }, + {SENSOR ,OV7660_HSTOP ,0x61 }, + {SENSOR ,OV7660_HREF ,0xa4 }, + {SENSOR ,OV7660_PSHFT ,0x0b }, + {SENSOR ,OV7660_VSTART ,0x01 }, + {SENSOR ,OV7660_VSTOP ,0x7a }, + {SENSOR ,OV7660_VSTOP ,0x00 }, + {SENSOR ,OV7660_COM7 ,0x05 }, + {SENSOR ,OV7660_COM6 ,0x42 }, + {SENSOR ,OV7660_BBIAS ,0x94 }, + {SENSOR , OV7660_GbBIAS,0x94 }, + {SENSOR ,OV7660_RSVD29 ,0x94 }, + {SENSOR ,OV7660_RBIAS ,0x94 }, + {SENSOR ,OV7660_COM1 ,0x00 }, + {SENSOR ,OV7660_AECH ,0x00 }, + {SENSOR ,OV7660_AECHH ,0x00 }, + {SENSOR ,OV7660_ADC ,0x05 }, + {SENSOR ,OV7660_COM13 ,0x00 }, + {SENSOR ,OV7660_RSVDA1 ,0x23 }, + {SENSOR ,OV7660_TSLB ,0x0d }, + {SENSOR ,OV7660_HV ,0x80 }, + {SENSOR ,OV7660_LCC1 ,0x00 }, + {SENSOR ,OV7660_LCC2 ,0x00 }, + {SENSOR ,OV7660_LCC3 ,0x10 }, + {SENSOR ,OV7660_LCC4 ,0x40 }, + {SENSOR ,OV7660_LCC5 ,0x01 }, + + {SENSOR ,OV7660_AECH ,0x20 }, + {SENSOR ,OV7660_COM1 ,0x00 }, + {SENSOR ,OV7660_OFON ,0x0c }, + {SENSOR ,OV7660_COM2 ,0x11 }, + {SENSOR ,OV7660_COM7 ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x01 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x08 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 }, + {SENSOR ,OV7660_AECH ,0x5f }, + {SENSOR ,OV7660_COM1 ,0x03 }, + {SENSOR ,OV7660_OFON ,0x0c }, + {SENSOR ,OV7660_COM2 ,0x11 }, + {SENSOR ,OV7660_COM7 ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x01 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x04 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DIR_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_DAT_H ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x08 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_GPIO_DIR ,0x05 }, + {BRIDGE ,M5602_XB_GPIO_DAT ,0x00 }, + {BRIDGE ,M5602_XB_GPIO_EN_H ,0x06 }, + {BRIDGE ,M5602_XB_GPIO_EN_L ,0x00 }, + + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x06 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, + {BRIDGE ,M5602_XB_ADC_CTRL ,0xc0 }, + {BRIDGE ,M5602_XB_SENSOR_TYPE ,0x0c }, + {BRIDGE ,M5602_XB_LINE_OF_FRAME_H ,0x81 }, + {BRIDGE ,M5602_XB_PIX_OF_LINE_H ,0x82 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x01 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x08 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x01 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0xec }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_VSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x02 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x00 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x27 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0x02 }, + {BRIDGE ,M5602_XB_HSYNC_PARA ,0xa7 }, + {BRIDGE ,M5602_XB_SIG_INI ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_DIV ,0x00 }, + {BRIDGE ,M5602_XB_SEN_CLK_CTRL ,0xb0 }, +}; +static struct v4l2_pix_format ov7660_modes[] = { {640 ,
drivers/media/usb/gspca/m5602/m5602_ov7660.h +0 -153
157 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 11/19 cx25821-alsa: shutup a Gcc 6.1 warning
In reply to Mauro Carvalho ChehabThe PCI device ID table is only used if compiled with modules support. When compiled with modules disabled, this is now producing this bogus warning:
drivers/media/pci/cx25821/cx25821-alsa.c:696:35: warning: 'cx25821_audio_pci_tbl' defined but not used [-Wunused-const-variable=]
static const struct pci_device_id cx25821_audio_pci_tbl[] = {
^~~~~~~~~~~~~~~~~~~~~Fix it by annotating that the function may not be used.
--- drivers/media/pci/cx25821/cx25821-alsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/media/pci/cx25821/cx25821-alsa.c +1 -1
@@ -693,7 +693,7 @@ static int snd_cx25821_pcm(struct cx25821_audio_dev *chip, int device,* Only boards with eeprom and byte 1 at eeprom=1 have it */ -static const struct pci_device_id cx25821_audio_pci_tbl[] = { +static const struct pci_device_id __maybe_unused cx25821_audio_pci_tbl[] = { {0x14f1 ,0x0920 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,0 }, {0 ,} };
Signature · 1 line
2.7.4
Re: [PATCH 11/19] cx25821-alsa: shutup a Gcc 6.1 warning
Quoted 21 lines · Mauro Carvalho Chehab
The PCI device ID table is only used if compiled with modules support. When compiled with modules disabled, this is now producing this bogus warning:
drivers/media/pci/cx25821/cx25821-alsa.c:696:35: warning: 'cx25821_audio_pci_tbl' defined but not used [-Wunused-const-variable=]static const struct pci_device_id cx25821_audio_pci_tbl[] = { ^~~~~~~~~~~~~~~~~~~~~Fix it by annotating that the function may not be used.
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- drivers/media/pci/cx25821/cx25821-alsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/media/pci/cx25821/cx25821-alsa.c +0
-0
drivers/media/pci/cx25821/cx25821-alsa.c static int snd_cx25821_pcm(struct cx25821_audio_dev *chip, int device, · line 699
Quoted 8 lines
drivers/media/pci/cx25821/cx25821-alsa.c +1
-1@@ -693,7 +693,7 @@ static int snd_cx25821_pcm(struct cx25821_audio_dev *chip, int device,* Only boards with eeprom and byte 1 at eeprom=1 have it */ -static const struct pci_device_id cx25821_audio_pci_tbl[] = { +static const struct pci_device_id __maybe_unused cx25821_audio_pci_tbl[] = { {0x14f1 ,0x0920 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,0 }, {0 ,} };
In which branch is this happening? I can't seem to be able to reproduce it.
Thanks,
Luis
Re: [PATCH 11/19] cx25821-alsa: shutup a Gcc 6.1 warning
Em Fri, 24 Jun 2016 18:38:42 +0100
Luis de Bethencourt <[email protected]> escreveu:
Quoted 24 lines · Mauro Carvalho Chehab
Quoted 23 lines
The PCI device ID table is only used if compiled with modules support. When compiled with modules disabled, this is now producing this bogus warning:
drivers/media/pci/cx25821/cx25821-alsa.c:696:35: warning: 'cx25821_audio_pci_tbl' defined but not used [-Wunused-const-variable=]static const struct pci_device_id cx25821_audio_pci_tbl[] = { ^~~~~~~~~~~~~~~~~~~~~Fix it by annotating that the function may not be used.
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- drivers/media/pci/cx25821/cx25821-alsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/media/pci/cx25821/cx25821-alsa.c +0
-0@@ -693,7 +693,7 @@ static int snd_cx25821_pcm(struct cx25821_audio_dev *chip, int device,* Only boards with eeprom and byte 1 at eeprom=1 have it */
Quoted 8 lines
drivers/media/pci/cx25821/cx25821-alsa.c static int snd_cx25821_pcm(struct cx25821_audio_dev *chip, int device, · line 699
Quoted 6 lines
drivers/media/pci/cx25821/cx25821-alsa.c +1
-1-static const struct pci_device_id cx25821_audio_pci_tbl[] = { +static const struct pci_device_id __maybe_unused cx25821_audio_pci_tbl[] = { {0x14f1 ,0x0920 ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 ,0 }, {0 ,} };In which branch is this happening? I can't seem to be able to reproduce it.
It is at the master branch. It appears if compiled with W=1 and gcc 6.1.
Thanks,
Mauro
PATCH 12/19 drxj: comment out the unused nicam_presc_table_val table
In reply to Mauro Carvalho ChehabAvoid this warning:
drivers/media/dvb-frontends/drx39xyj/drxj.c:1243:18: warning: 'nicam_presc_table_val' defined but not used [-Wunused-const-variable=]
static const u16 nicam_presc_table_val[43] = {
^~~~~~~~~~~~~~~~~~~~~--- drivers/media/dvb-frontends/drx39xyj/drxj.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/media/dvb-frontends/drx39xyj/drxj.c +3 -0
@@ -1240,12 +1240,15 @@ static u32 frac_times1e6(u32 N, u32 D)* and rounded. For calc used formula: 16*10^(prescaleGain[dB]/20). * */ +#if 0 +/* Currently, unused as we lack support for analog TV */ static const u16 nicam_presc_table_val[43 ] = {1 ,1 ,1 ,1 ,2 ,2 ,2 ,2 ,3 ,3 ,3 ,4 ,4 ,5 ,5 ,6 ,6 ,7 ,8 ,9 ,10 ,11 ,13 ,14 ,16 ,18 ,20 ,23 ,25 ,28 ,32 ,36 ,40 ,45 ,51 ,57 ,64 ,71 ,80 ,90 ,101 ,113 ,127 }; +#endif /*============================================================================*/ /*== END HELPER FUNCTIONS ==*/
Signature · 1 line
2.7.4
PATCH 13/19 dib0090: comment out the unused tables
In reply to Mauro Carvalho ChehabThose tables are currently unused, so comment them out:
drivers/media/dvb-frontends/dib0090.c:852:18: warning: 'rf_ramp_pwm_sband' defined but not used [-Wunused-const-variable=]
static const u16 rf_ramp_pwm_sband[] = {
^~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib0090.c:800:18: warning: 'bb_ramp_pwm_boost' defined but not used [-Wunused-const-variable=]
static const u16 bb_ramp_pwm_boost[] = {
^~~~~~~~~~~~~~~~~--- drivers/media/dvb-frontends/dib0090.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/media/dvb-frontends/dib0090.c +6 -0
@@ -797,6 +797,8 @@ static const u16 bb_ramp_pwm_normal[] = { (0 << 9) | 400, /* BB_RAMP6 */ }; +#if 0 +/* Currently unused */ static const u16 bb_ramp_pwm_boost[] = {550 ,/* max BB gain in 10th of dB */ 8, /* ramp_slope = 1dB of gain -> clock_ticks_per_db = clk_khz / ramp_slope -> BB_RAMP2 */
@@ -806,6 +808,7 @@ static const u16 bb_ramp_pwm_boost[] = { (2 <<9 ) |208 ,/* BB_RAMP5 = 29dB */ (0 << 9) | 440, /* BB_RAMP6 */ }; +#endif static const u16 rf_ramp_pwm_cband[] = {314 ,/* max RF gain in 10th of dB */
@@ -849,6 +852,8 @@ static const u16 rf_ramp_pwm_uhf[] = { (0 << 10) | 580, /* GAIN_4_2, LNA 4 */ }; +#if 0 +/* Currently unused */ static const u16 rf_ramp_pwm_sband[] = {253 ,/* max RF gain in 10th of dB */ 38, /* ramp_slope = 1dB of gain -> clock_ticks_per_db = clk_khz / ramp_slope -> RF_RAMP2 */
@@ -862,6 +867,7 @@ static const u16 rf_ramp_pwm_sband[] = { (0 <<10 ) |0 ,/* GAIN_4_1, LNA 4 = 0dB */ (0 << 10) | 0, /* GAIN_4_2, LNA 4 */ }; +#endif struct slope {s16 range;
Signature · 1 line
2.7.4
Re: [PATCH 13/19] dib0090: comment out the unused tables
Hi Mauro,
Quoted 1 line · On Fri, 24 Jun 2016 12:31:54 -0300 Mauro Carvalho Chehab…
Those tables are currently unused, so comment them out:
We actually could remove these tables. It is very, very unlikely that this device will ever be used for S-Band in the future. Extremely unlikely.
best regards,
Signature · 1 line
Patrick.
PATCH 14/19 r820t: comment out two ancillary tables
In reply to Mauro Carvalho ChehabAs Gcc6.1 warned, those tables are currently unused:
drivers/media/tuners/r820t.c:349:18: warning: 'r820t_mixer_gain_steps' defined but not used [-Wunused-const-variable=]
static const int r820t_mixer_gain_steps[] = {
^~~~~~~~~~~~~~~~~~~~~~
drivers/media/tuners/r820t.c:345:18: warning: 'r820t_lna_gain_steps' defined but not used [-Wunused-const-variable=]
static const int r820t_lna_gain_steps[] = {
^~~~~~~~~~~~~~~~~~~~They're actually used only by a routine that it is currently commented out. So, move those tables to be together with such code and comment them out.
--- drivers/media/tuners/r820t.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-)
drivers/media/tuners/r820t.c +15 -14
@@ -337,20 +337,6 @@ static int r820t_xtal_capacitor[][2] = { };/* -* measured with a Racal 6103E GSM test set at 928 MHz with -60 dBm -* input power, for raw results see: -* http://steve-m.de/projects/rtl-sdr/gain_measurement/r820t/ -*/ - -static const int r820t_lna_gain_steps[] = { -0 ,9 ,13 ,40 ,38 ,13 ,31 ,22 ,26 ,31 ,26 ,14 ,19 ,5 ,35 ,13 -}; - -static const int r820t_mixer_gain_steps[] = { -0 ,5 ,10 ,10 ,19 ,9 ,10 ,25 ,17 ,10 ,8 ,16 ,13 ,6 ,3 ,-8 -}; - -/* * I2C read/write code and shadow registers logic */ static void shadow_store(struct r820t_priv *priv, u8 reg, const u8 *val,
@@ -1216,6 +1202,21 @@ static int r820t_read_gain(struct r820t_priv *priv)#if 0 /* FIXME: This routine requires more testing */ + +/* +* measured with a Racal 6103E GSM test set at 928 MHz with -60 dBm +* input power, for raw results see: +* http://steve-m.de/projects/rtl-sdr/gain_measurement/r820t/ +*/ + +static const int r820t_lna_gain_steps[] = { +0 ,9 ,13 ,40 ,38 ,13 ,31 ,22 ,26 ,31 ,26 ,14 ,19 ,5 ,35 ,13 +}; + +static const int r820t_mixer_gain_steps[] = { +0 ,5 ,10 ,10 ,19 ,9 ,10 ,25 ,17 ,10 ,8 ,16 ,13 ,6 ,3 ,-8 +}; +static int r820t_set_gain_mode (struct r820t_priv *priv,bool set_manual_gain,int gain)
Signature · 1 line
2.7.4
PATCH 15/19 zr36016: remove some unused tables
In reply to Mauro Carvalho ChehabGcc 6.1 warns about some unused tables:
drivers/media/pci/zoran/zr36016.c:251:18: warning: 'zr016_yoff' defined but not used [-Wunused-const-variable=]
static const int zr016_yoff[] = { 8, 9, 7 };
^~~~~~~~~~
drivers/media/pci/zoran/zr36016.c:250:18: warning: 'zr016_xoff' defined but not used [-Wunused-const-variable=]
static const int zr016_xoff[] = { 20, 20, 20 };
^~~~~~~~~~Those tables aren't used anywere. So, remove them.
--- drivers/media/pci/zoran/zr36016.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/media/pci/zoran/zr36016.c +0 -4
@@ -246,10 +246,6 @@ static int zr36016_pushit (struct zr36016 *ptr,//TODO// ========================================================================= */ -// needed offset values PAL NTSC SECAM -static const int zr016_xoff[] = {20 ,20 ,20 }; -static const int zr016_yoff[] = {8 ,9 ,7 }; -static void zr36016_init (struct zr36016 *ptr) {
Signature · 1 line
2.7.4
PATCH 16/19 vivid: remove some unused vars
In reply to Mauro Carvalho ChehabGcc 6.1 warns about some unused vars. Remove them:drivers/media/platform/vivid/vivid-vid-cap.c:40:2: warning: 'tpf_default' defined but not used [-Wunused-const-variable=]
tpf_default = {.numerator = 1, .denominator = 30};
^~~~~~~~~~~drivers/media/platform/vivid/vivid-sdr-cap.c:54:27: warning: 'NUM_FORMATS' defined but not used [-Wunused-const-variable=]
static const unsigned int NUM_FORMATS = ARRAY_SIZE(formats);
^~~~~~~~~~~--- drivers/media/platform/vivid/vivid-sdr-cap.c | 2 -- drivers/media/platform/vivid/vivid-vid-cap.c | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-)
drivers/media/platform/vivid/vivid-sdr-cap.c +0 -2
@@ -51,8 +51,6 @@ static const struct vivid_format formats[] = { }, }; -static const unsigned int NUM_FORMATS =ARRAY_SIZE (formats); -static const struct v4l2_frequency_band bands_adc[] = { { .tuner =0 ,
drivers/media/platform/vivid/vivid-vid-cap.c +1 -2
@@ -36,8 +36,7 @@/* timeperframe: min/max and default */ static const struct v4l2_fract tpf_min = {.numerator =1 , .denominator =FPS_MAX }, - tpf_max = {.numerator =FPS_MAX , .denominator =1 }, - tpf_default = {.numerator =1 , .denominator =30 }; + tpf_max = {.numerator =FPS_MAX , .denominator =1 };static const struct vivid_fmt formats_ovl[] = { {
Signature · 1 line
2.7.4
PATCH 17/19 em28xx-dvb: remove some left over
In reply to Mauro Carvalho ChehabGcc 6.1 warns about an unused table:
drivers/media/usb/em28xx/em28xx-dvb.c:907:38: warning: 'pctv_461e_m88ds3103_config' defined but not used [-Wunused-const-variable=]
static const struct m88ds3103_config pctv_461e_m88ds3103_config = {
^~~~~~~~~~~~~~~~~~~~~~~~~~That's a left over of patch 76b91be3d360a ('em28xx: PCTV 461e use I2C client for demod and SEC').
Remove the dead code.
--- drivers/media/usb/em28xx/em28xx-dvb.c | 11 ----------- 1 file changed, 11 deletions(-)
drivers/media/usb/em28xx/em28xx-dvb.c +0 -11
@@ -904,17 +904,6 @@ static struct tda18271_config c3tech_duo_tda18271_config = { .small_i2c = TDA18271_03_BYTE_CHUNK_INIT, }; -static const struct m88ds3103_config pctv_461e_m88ds3103_config = { - .i2c_addr =0x68 , - .clock =27000000 , - .i2c_wr_max =33 , - .clock_out =0 , - .ts_mode =M88DS3103_TS_PARALLEL , - .ts_clk =16000 , - .ts_clk_pol =1 , - .agc =0x99 , -}; -static struct tda18271_std_map drx_j_std_map = { .atsc_6 = { .if_freq =5000 , .agc_mode =3 , .std =0 , .if_lvl =1 , .rfagc_top =0x37 , },
Signature · 1 line
2.7.4
PATCH 18/19 adv7842: comment out a table useful for debug
In reply to Mauro Carvalho ChehabGcc 6.1 warns about an unused table:
drivers/media/i2c/adv7842.c:2400:27: warning: 'prim_mode_txt' defined but not used [-Wunused-const-variable=]
static const char * const prim_mode_txt[] = {
^~~~~~~~~~~~~That seems to be useful for debug, and likely were used before. While we could simply remove, let's comment it out, for now.
--- drivers/media/i2c/adv7842.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/media/i2c/adv7842.c +3 -0
@@ -2397,6 +2397,8 @@ static void adv7842_log_infoframes(struct v4l2_subdev *sd)log_infoframe (sd, &cri[i]); } +#if 0 +/* Let's keep it here for now, as it could be useful for debug */ static const char *const prim_mode_txt[] = {"SDP" , "Component",
@@ -2415,6 +2417,7 @@ static const char * const prim_mode_txt[] = {"Reserved" , "Reserved", }; +#endif static int adv7842_sdp_log_status (struct v4l2_subdev *sd) {
Signature · 1 line
2.7.4
PATCH 19/19 bdisp: move the V/H filter spec to bdisp-hw.c
In reply to Mauro Carvalho ChehabThose structs are used only at bdisp-hw, so they shouldn't be there in a header file that it is used elsewhere.
This fixes the following Gcc 6.1 warnings:
In file included from drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0:drivers/media/platform/sti/bdisp/bdisp-filter.h:207:65: warning: ‘bdisp_v_spec’ defined but not used [-Wunused-const-variable=]
static const struct __maybe_unused bdisp_filter_v_spec bdisp_v_spec[] = {
^~~~~~~~~
In file included from drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0:
drivers/media/platform/sti/bdisp/bdisp-filter.h:23:65: warning: ‘bdisp_h_spec’ defined but not used [-Wunused-const-variable=]
static const struct __maybe_unused bdisp_filter_h_spec bdisp_h_spec[] = {
^~~~~~~~~--- drivers/media/platform/sti/bdisp/bdisp-filter.h | 304 ----------------------- drivers/media/platform/sti/bdisp/bdisp-hw.c | 305 ++++++++++++++++++++++++ 2 files changed, 305 insertions(+), 304 deletions(-)
drivers/media/platform/sti/bdisp/bdisp-filter.h +0 -304
@@ -19,178 +19,6 @@ struct bdisp_filter_h_spec {const u16 max;const u8 coef[BDISP_HF_NB ]; }; - -static const struct bdisp_filter_h_spec bdisp_h_spec[] = { - { - .min =0 , - .max =921 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0xff ,0x07 ,0x3d ,0xfc ,0x01 ,0x00 , -0x00 ,0x01 ,0xfd ,0x11 ,0x36 ,0xf9 ,0x02 ,0x00 , -0x00 ,0x01 ,0xfb ,0x1b ,0x2e ,0xf9 ,0x02 ,0x00 , -0x00 ,0x01 ,0xf9 ,0x26 ,0x26 ,0xf9 ,0x01 ,0x00 , -0x00 ,0x02 ,0xf9 ,0x30 ,0x19 ,0xfb ,0x01 ,0x00 , -0x00 ,0x02 ,0xf9 ,0x39 ,0x0e ,0xfd ,0x01 ,0x00 , -0x00 ,0x01 ,0xfc ,0x3e ,0x06 ,0xff ,0x00 ,0x00 - } - }, - { - .min =921 , - .max =1024 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1024 , - .max =1126 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1126 , - .max =1228 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1228 , - .max =1331 , - .coef = { -0xfd ,0x04 ,0xfc ,0x05 ,0x39 ,0x05 ,0xfc ,0x04 , -0xfc ,0x06 ,0xf9 ,0x0c ,0x39 ,0xfe ,0x00 ,0x02 , -0xfb ,0x08 ,0xf6 ,0x17 ,0x35 ,0xf9 ,0x02 ,0x00 , -0xfc ,0x08 ,0xf4 ,0x20 ,0x30 ,0xf4 ,0x05 ,0xff , -0xfd ,0x07 ,0xf4 ,0x29 ,0x28 ,0xf3 ,0x07 ,0xfd , -0xff ,0x05 ,0xf5 ,0x31 ,0x1f ,0xf3 ,0x08 ,0xfc , -0x00 ,0x02 ,0xf9 ,0x38 ,0x14 ,0xf6 ,0x08 ,0xfb , -0x02 ,0x00 ,0xff ,0x3a ,0x0b ,0xf8 ,0x06 ,0xfc - } - }, - { - .min =1331 , - .max =1433 , - .coef = { -0xfc ,0x06 ,0xf9 ,0x09 ,0x34 ,0x09 ,0xf9 ,0x06 , -0xfd ,0x07 ,0xf7 ,0x10 ,0x32 ,0x02 ,0xfc ,0x05 , -0xfe ,0x07 ,0xf6 ,0x17 ,0x2f ,0xfc ,0xff ,0x04 , -0xff ,0x06 ,0xf5 ,0x20 ,0x2a ,0xf9 ,0x01 ,0x02 , -0x00 ,0x04 ,0xf6 ,0x27 ,0x25 ,0xf6 ,0x04 ,0x00 , -0x02 ,0x01 ,0xf9 ,0x2d ,0x1d ,0xf5 ,0x06 ,0xff , -0x04 ,0xff ,0xfd ,0x31 ,0x15 ,0xf5 ,0x07 ,0xfe , -0x05 ,0xfc ,0x02 ,0x35 ,0x0d ,0xf7 ,0x07 ,0xfd - } - }, - { - .min =1433 , - .max =1536 , - .coef = { -0xfe ,0x06 ,0xf8 ,0x0b ,0x30 ,0x0b ,0xf8 ,0x06 , -0xff ,0x06 ,0xf7 ,0x12 ,0x2d ,0x05 ,0xfa ,0x06 , -0x00 ,0x04 ,0xf6 ,0x18 ,0x2c ,0x00 ,0xfc ,0x06 , -0x01 ,0x02 ,0xf7 ,0x1f ,0x27 ,0xfd ,0xff ,0x04 , -0x03 ,0x00 ,0xf9 ,0x24 ,0x24 ,0xf9 ,0x00 ,0x03 , -0x04 ,0xff ,0xfd ,0x29 ,0x1d ,0xf7 ,0x02 ,0x01 , -0x06 ,0xfc ,0x00 ,0x2d ,0x17 ,0xf6 ,0x04 ,0x00 , -0x06 ,0xfa ,0x05 ,0x30 ,0x0f ,0xf7 ,0x06 ,0xff - } - }, - { - .min =1536 , - .max =2048 , - .coef = { -0x05 ,0xfd ,0xfb ,0x13 ,0x25 ,0x13 ,0xfb ,0xfd , -0x05 ,0xfc ,0xfd ,0x17 ,0x24 ,0x0f ,0xf9 ,0xff , -0x04 ,0xfa ,0xff ,0x1b ,0x24 ,0x0b ,0xf9 ,0x00 , -0x03 ,0xf9 ,0x01 ,0x1f ,0x23 ,0x08 ,0xf8 ,0x01 , -0x02 ,0xf9 ,0x04 ,0x22 ,0x20 ,0x04 ,0xf9 ,0x02 , -0x01 ,0xf8 ,0x08 ,0x25 ,0x1d ,0x01 ,0xf9 ,0x03 , -0x00 ,0xf9 ,0x0c ,0x25 ,0x1a ,0xfe ,0xfa ,0x04 , -0xff ,0xf9 ,0x10 ,0x26 ,0x15 ,0xfc ,0xfc ,0x05 - } - }, - { - .min =2048 , - .max =3072 , - .coef = { -0xfc ,0xfd ,0x06 ,0x13 ,0x18 ,0x13 ,0x06 ,0xfd , -0xfc ,0xfe ,0x08 ,0x15 ,0x17 ,0x12 ,0x04 ,0xfc , -0xfb ,0xfe ,0x0a ,0x16 ,0x18 ,0x10 ,0x03 ,0xfc , -0xfb ,0x00 ,0x0b ,0x18 ,0x17 ,0x0f ,0x01 ,0xfb , -0xfb ,0x00 ,0x0d ,0x19 ,0x17 ,0x0d ,0x00 ,0xfb , -0xfb ,0x01 ,0x0f ,0x19 ,0x16 ,0x0b ,0x00 ,0xfb , -0xfc ,0x03 ,0x11 ,0x19 ,0x15 ,0x09 ,0xfe ,0xfb , -0xfc ,0x04 ,0x12 ,0x1a ,0x12 ,0x08 ,0xfe ,0xfc - } - }, - { - .min =3072 , - .max =4096 , - .coef = { -0xfe ,0x02 ,0x09 ,0x0f ,0x0e ,0x0f ,0x09 ,0x02 , -0xff ,0x02 ,0x09 ,0x0f ,0x10 ,0x0e ,0x08 ,0x01 , -0xff ,0x03 ,0x0a ,0x10 ,0x10 ,0x0d ,0x07 ,0x00 , -0x00 ,0x04 ,0x0b ,0x10 ,0x0f ,0x0c ,0x06 ,0x00 , -0x00 ,0x05 ,0x0c ,0x10 ,0x0e ,0x0c ,0x05 ,0x00 , -0x00 ,0x06 ,0x0c ,0x11 ,0x0e ,0x0b ,0x04 ,0x00 , -0x00 ,0x07 ,0x0d ,0x11 ,0x0f ,0x0a ,0x03 ,0xff , -0x01 ,0x08 ,0x0e ,0x11 ,0x0e ,0x09 ,0x02 ,0xff - } - }, - { - .min =4096 , - .max =5120 , - .coef = { -0x00 ,0x04 ,0x09 ,0x0c ,0x0e ,0x0c ,0x09 ,0x04 , -0x01 ,0x05 ,0x09 ,0x0c ,0x0d ,0x0c ,0x08 ,0x04 , -0x01 ,0x05 ,0x0a ,0x0c ,0x0e ,0x0b ,0x08 ,0x03 , -0x02 ,0x06 ,0x0a ,0x0d ,0x0c ,0x0b ,0x07 ,0x03 , -0x02 ,0x07 ,0x0a ,0x0d ,0x0d ,0x0a ,0x07 ,0x02 , -0x03 ,0x07 ,0x0b ,0x0d ,0x0c ,0x0a ,0x06 ,0x02 , -0x03 ,0x08 ,0x0b ,0x0d ,0x0d ,0x0a ,0x05 ,0x01 , -0x04 ,0x08 ,0x0c ,0x0d ,0x0c ,0x09 ,0x05 ,0x01 - } - }, - { - .min =5120 , - .max =65535 , - .coef = { -0x03 ,0x06 ,0x09 ,0x0b ,0x09 ,0x0b ,0x09 ,0x06 , -0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , -0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , -0x04 ,0x07 ,0x09 ,0x0b ,0x0b ,0x0a ,0x08 ,0x04 , -0x04 ,0x07 ,0x0a ,0x0b ,0x0b ,0x0a ,0x07 ,0x04 , -0x04 ,0x08 ,0x0a ,0x0b ,0x0b ,0x09 ,0x07 ,0x04 , -0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 , -0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 - } - } -}; -/** * struct bdisp_filter_v_spec - Vertical filter specification *
@@ -204,138 +32,6 @@ struct bdisp_filter_v_spec {const u8 coef[BDISP_VF_NB ]; }; -static const struct bdisp_filter_v_spec bdisp_v_spec[] = { - { - .min =0 , - .max =1024 , - .coef = { -0x00 ,0x00 ,0x40 ,0x00 ,0x00 , -0x00 ,0x06 ,0x3d ,0xfd ,0x00 , -0xfe ,0x0f ,0x38 ,0xfb ,0x00 , -0xfd ,0x19 ,0x2f ,0xfb ,0x00 , -0xfc ,0x24 ,0x24 ,0xfc ,0x00 , -0xfb ,0x2f ,0x19 ,0xfd ,0x00 , -0xfb ,0x38 ,0x0f ,0xfe ,0x00 , -0xfd ,0x3d ,0x06 ,0x00 ,0x00 - } - }, - { - .min =1024 , - .max =1331 , - .coef = { -0xfc ,0x05 ,0x3e ,0x05 ,0xfc , -0xf8 ,0x0e ,0x3b ,0xff ,0x00 , -0xf5 ,0x18 ,0x38 ,0xf9 ,0x02 , -0xf4 ,0x21 ,0x31 ,0xf5 ,0x05 , -0xf4 ,0x2a ,0x27 ,0xf4 ,0x07 , -0xf6 ,0x30 ,0x1e ,0xf4 ,0x08 , -0xf9 ,0x35 ,0x15 ,0xf6 ,0x07 , -0xff ,0x37 ,0x0b ,0xf9 ,0x06 - } - }, - { - .min =1331 , - .max =1433 , - .coef = { -0xf8 ,0x0a ,0x3c ,0x0a ,0xf8 , -0xf6 ,0x12 ,0x3b ,0x02 ,0xfb , -0xf4 ,0x1b ,0x35 ,0xfd ,0xff , -0xf4 ,0x23 ,0x30 ,0xf8 ,0x01 , -0xf6 ,0x29 ,0x27 ,0xf6 ,0x04 , -0xf9 ,0x2e ,0x1e ,0xf5 ,0x06 , -0xfd ,0x31 ,0x16 ,0xf6 ,0x06 , -0x02 ,0x32 ,0x0d ,0xf8 ,0x07 - } - }, - { - .min =1433 , - .max =1536 , - .coef = { -0xf6 ,0x0e ,0x38 ,0x0e ,0xf6 , -0xf5 ,0x15 ,0x38 ,0x06 ,0xf8 , -0xf5 ,0x1d ,0x33 ,0x00 ,0xfb , -0xf6 ,0x23 ,0x2d ,0xfc ,0xfe , -0xf9 ,0x28 ,0x26 ,0xf9 ,0x00 , -0xfc ,0x2c ,0x1e ,0xf7 ,0x03 , -0x00 ,0x2e ,0x18 ,0xf6 ,0x04 , -0x05 ,0x2e ,0x11 ,0xf7 ,0x05 - } - }, - { - .min =1536 , - .max =2048 , - .coef = { -0xfb ,0x13 ,0x24 ,0x13 ,0xfb , -0xfd ,0x17 ,0x23 ,0x0f ,0xfa , -0xff ,0x1a ,0x23 ,0x0b ,0xf9 , -0x01 ,0x1d ,0x22 ,0x07 ,0xf9 , -0x04 ,0x20 ,0x1f ,0x04 ,0xf9 , -0x07 ,0x22 ,0x1c ,0x01 ,0xfa , -0x0b ,0x24 ,0x17 ,0xff ,0xfb , -0x0f ,0x24 ,0x14 ,0xfd ,0xfc - } - }, - { - .min =2048 , - .max =3072 , - .coef = { -0x05 ,0x10 ,0x16 ,0x10 ,0x05 , -0x06 ,0x11 ,0x16 ,0x0f ,0x04 , -0x08 ,0x13 ,0x15 ,0x0e ,0x02 , -0x09 ,0x14 ,0x16 ,0x0c ,0x01 , -0x0b ,0x15 ,0x15 ,0x0b ,0x00 , -0x0d ,0x16 ,0x13 ,0x0a ,0x00 , -0x0f ,0x17 ,0x13 ,0x08 ,0xff , -0x11 ,0x18 ,0x12 ,0x07 ,0xfe - } - }, - { - .min =3072 , - .max =4096 , - .coef = { -0x09 ,0x0f ,0x10 ,0x0f ,0x09 , -0x09 ,0x0f ,0x12 ,0x0e ,0x08 , -0x0a ,0x10 ,0x11 ,0x0e ,0x07 , -0x0b ,0x11 ,0x11 ,0x0d ,0x06 , -0x0c ,0x11 ,0x12 ,0x0c ,0x05 , -0x0d ,0x12 ,0x11 ,0x0c ,0x04 , -0x0e ,0x12 ,0x11 ,0x0b ,0x04 , -0x0f ,0x13 ,0x11 ,0x0a ,0x03 - } - }, - { - .min =4096 , - .max =5120 , - .coef = { -0x0a ,0x0e ,0x10 ,0x0e ,0x0a , -0x0b ,0x0e ,0x0f ,0x0e ,0x0a , -0x0b ,0x0f ,0x10 ,0x0d ,0x09 , -0x0c ,0x0f ,0x10 ,0x0d ,0x08 , -0x0d ,0x0f ,0x0f ,0x0d ,0x08 , -0x0d ,0x10 ,0x10 ,0x0c ,0x07 , -0x0e ,0x10 ,0x0f ,0x0c ,0x07 , -0x0f ,0x10 ,0x10 ,0x0b ,0x06 - } - }, - { - .min =5120 , - .max =65535 , - .coef = { -0x0b ,0x0e ,0x0e ,0x0e ,0x0b , -0x0b ,0x0e ,0x0f ,0x0d ,0x0b , -0x0c ,0x0e ,0x0f ,0x0d ,0x0a , -0x0c ,0x0e ,0x0f ,0x0d ,0x0a , -0x0d ,0x0f ,0x0e ,0x0d ,0x09 , -0x0d ,0x0f ,0x0f ,0x0c ,0x09 , -0x0e ,0x0f ,0x0e ,0x0c ,0x09 , -0x0e ,0x0f ,0x0f ,0x0c ,0x08 - } - } -}; - -#define NB_H_FILTER ARRAY_SIZE(bdisp_h_spec) -#define NB_V_FILTER ARRAY_SIZE(bdisp_v_spec) -/* RGB YUV 601 standard conversion */ static const u32 bdisp_rgb_to_yuv[] = {0x0e1e8bee ,0x08420419 ,0xfb5ed471 ,0x08004080 ,
drivers/media/platform/sti/bdisp/bdisp-hw.c +305 -0
311 lines not on this page · raw message
Signature · 1 line
2.7.4
Re: [PATCH 19/19] bdisp: move the V/H filter spec to bdisp-hw.c
Quoted 7 lines · Mauro Carvalho Chehab
Those structs are used only at bdisp-hw, so they shouldn't be there in a header file that it is used elsewhere.
This fixes the following Gcc 6.1 warnings:
In file included from
drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0:drivers/media/platform/sti/bdisp/bdisp-filter.h:207:65: warning: ‘bdisp_v_spec’ defined but not used [-Wunused-const-variable=]
Quoted 8 lines
static const struct __maybe_unused bdisp_filter_v_spec bdisp_v_spec[] = { ^~~~~~~~~ In file included from drivers/media/platform/sti/bdisp/bdisp-debug.c:11:0: drivers/media/platform/sti/bdisp/bdisp-filter.h:23:65: warning: ‘bdisp_h_spec’ defined but not used [-Wunused-const-variable=] static const struct __maybe_unused bdisp_filter_h_spec bdisp_h_spec[] = { ^~~~~~~~~Signed-off-by Mauro Carvalho Chehab <[email protected]>
Quoted 647 lines
--- drivers/media/platform/sti/bdisp/bdisp-filter.h | 304 ----------------------- drivers/media/platform/sti/bdisp/bdisp-hw.c | 305 ++++++++++++++++++++++++ 2 files changed, 305 insertions(+), 304 deletions(-)drivers/media/platform/sti/bdisp/bdisp-filter.h +0
-304@@ -19,178 +19,6 @@ struct bdisp_filter_h_spec {const u16 max;const u8 coef[BDISP_HF_NB ]; }; - -static const struct bdisp_filter_h_spec bdisp_h_spec[] = { - { - .min =0 , - .max =921 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0x00 ,0x00 ,0xff ,0x07 ,0x3d ,0xfc ,0x01 ,0x00 , -0x00 ,0x01 ,0xfd ,0x11 ,0x36 ,0xf9 ,0x02 ,0x00 , -0x00 ,0x01 ,0xfb ,0x1b ,0x2e ,0xf9 ,0x02 ,0x00 , -0x00 ,0x01 ,0xf9 ,0x26 ,0x26 ,0xf9 ,0x01 ,0x00 , -0x00 ,0x02 ,0xf9 ,0x30 ,0x19 ,0xfb ,0x01 ,0x00 , -0x00 ,0x02 ,0xf9 ,0x39 ,0x0e ,0xfd ,0x01 ,0x00 , -0x00 ,0x01 ,0xfc ,0x3e ,0x06 ,0xff ,0x00 ,0x00 - } - }, - { - .min =921 , - .max =1024 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1024 , - .max =1126 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1126 , - .max =1228 , - .coef = { -0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , -0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , -0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , -0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , -0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , -0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , -0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff - } - }, - { - .min =1228 , - .max =1331 , - .coef = { -0xfd ,0x04 ,0xfc ,0x05 ,0x39 ,0x05 ,0xfc ,0x04 , -0xfc ,0x06 ,0xf9 ,0x0c ,0x39 ,0xfe ,0x00 ,0x02 , -0xfb ,0x08 ,0xf6 ,0x17 ,0x35 ,0xf9 ,0x02 ,0x00 , -0xfc ,0x08 ,0xf4 ,0x20 ,0x30 ,0xf4 ,0x05 ,0xff , -0xfd ,0x07 ,0xf4 ,0x29 ,0x28 ,0xf3 ,0x07 ,0xfd , -0xff ,0x05 ,0xf5 ,0x31 ,0x1f ,0xf3 ,0x08 ,0xfc , -0x00 ,0x02 ,0xf9 ,0x38 ,0x14 ,0xf6 ,0x08 ,0xfb , -0x02 ,0x00 ,0xff ,0x3a ,0x0b ,0xf8 ,0x06 ,0xfc - } - }, - { - .min =1331 , - .max =1433 , - .coef = { -0xfc ,0x06 ,0xf9 ,0x09 ,0x34 ,0x09 ,0xf9 ,0x06 , -0xfd ,0x07 ,0xf7 ,0x10 ,0x32 ,0x02 ,0xfc ,0x05 , -0xfe ,0x07 ,0xf6 ,0x17 ,0x2f ,0xfc ,0xff ,0x04 , -0xff ,0x06 ,0xf5 ,0x20 ,0x2a ,0xf9 ,0x01 ,0x02 , -0x00 ,0x04 ,0xf6 ,0x27 ,0x25 ,0xf6 ,0x04 ,0x00 , -0x02 ,0x01 ,0xf9 ,0x2d ,0x1d ,0xf5 ,0x06 ,0xff , -0x04 ,0xff ,0xfd ,0x31 ,0x15 ,0xf5 ,0x07 ,0xfe , -0x05 ,0xfc ,0x02 ,0x35 ,0x0d ,0xf7 ,0x07 ,0xfd - } - }, - { - .min =1433 , - .max =1536 , - .coef = { -0xfe ,0x06 ,0xf8 ,0x0b ,0x30 ,0x0b ,0xf8 ,0x06 , -0xff ,0x06 ,0xf7 ,0x12 ,0x2d ,0x05 ,0xfa ,0x06 , -0x00 ,0x04 ,0xf6 ,0x18 ,0x2c ,0x00 ,0xfc ,0x06 , -0x01 ,0x02 ,0xf7 ,0x1f ,0x27 ,0xfd ,0xff ,0x04 , -0x03 ,0x00 ,0xf9 ,0x24 ,0x24 ,0xf9 ,0x00 ,0x03 , -0x04 ,0xff ,0xfd ,0x29 ,0x1d ,0xf7 ,0x02 ,0x01 , -0x06 ,0xfc ,0x00 ,0x2d ,0x17 ,0xf6 ,0x04 ,0x00 , -0x06 ,0xfa ,0x05 ,0x30 ,0x0f ,0xf7 ,0x06 ,0xff - } - }, - { - .min =1536 , - .max =2048 , - .coef = { -0x05 ,0xfd ,0xfb ,0x13 ,0x25 ,0x13 ,0xfb ,0xfd , -0x05 ,0xfc ,0xfd ,0x17 ,0x24 ,0x0f ,0xf9 ,0xff , -0x04 ,0xfa ,0xff ,0x1b ,0x24 ,0x0b ,0xf9 ,0x00 , -0x03 ,0xf9 ,0x01 ,0x1f ,0x23 ,0x08 ,0xf8 ,0x01 , -0x02 ,0xf9 ,0x04 ,0x22 ,0x20 ,0x04 ,0xf9 ,0x02 , -0x01 ,0xf8 ,0x08 ,0x25 ,0x1d ,0x01 ,0xf9 ,0x03 , -0x00 ,0xf9 ,0x0c ,0x25 ,0x1a ,0xfe ,0xfa ,0x04 , -0xff ,0xf9 ,0x10 ,0x26 ,0x15 ,0xfc ,0xfc ,0x05 - } - }, - { - .min =2048 , - .max =3072 , - .coef = { -0xfc ,0xfd ,0x06 ,0x13 ,0x18 ,0x13 ,0x06 ,0xfd , -0xfc ,0xfe ,0x08 ,0x15 ,0x17 ,0x12 ,0x04 ,0xfc , -0xfb ,0xfe ,0x0a ,0x16 ,0x18 ,0x10 ,0x03 ,0xfc , -0xfb ,0x00 ,0x0b ,0x18 ,0x17 ,0x0f ,0x01 ,0xfb , -0xfb ,0x00 ,0x0d ,0x19 ,0x17 ,0x0d ,0x00 ,0xfb , -0xfb ,0x01 ,0x0f ,0x19 ,0x16 ,0x0b ,0x00 ,0xfb , -0xfc ,0x03 ,0x11 ,0x19 ,0x15 ,0x09 ,0xfe ,0xfb , -0xfc ,0x04 ,0x12 ,0x1a ,0x12 ,0x08 ,0xfe ,0xfc - } - }, - { - .min =3072 , - .max =4096 , - .coef = { -0xfe ,0x02 ,0x09 ,0x0f ,0x0e ,0x0f ,0x09 ,0x02 , -0xff ,0x02 ,0x09 ,0x0f ,0x10 ,0x0e ,0x08 ,0x01 , -0xff ,0x03 ,0x0a ,0x10 ,0x10 ,0x0d ,0x07 ,0x00 , -0x00 ,0x04 ,0x0b ,0x10 ,0x0f ,0x0c ,0x06 ,0x00 , -0x00 ,0x05 ,0x0c ,0x10 ,0x0e ,0x0c ,0x05 ,0x00 , -0x00 ,0x06 ,0x0c ,0x11 ,0x0e ,0x0b ,0x04 ,0x00 , -0x00 ,0x07 ,0x0d ,0x11 ,0x0f ,0x0a ,0x03 ,0xff , -0x01 ,0x08 ,0x0e ,0x11 ,0x0e ,0x09 ,0x02 ,0xff - } - }, - { - .min =4096 , - .max =5120 , - .coef = { -0x00 ,0x04 ,0x09 ,0x0c ,0x0e ,0x0c ,0x09 ,0x04 , -0x01 ,0x05 ,0x09 ,0x0c ,0x0d ,0x0c ,0x08 ,0x04 , -0x01 ,0x05 ,0x0a ,0x0c ,0x0e ,0x0b ,0x08 ,0x03 , -0x02 ,0x06 ,0x0a ,0x0d ,0x0c ,0x0b ,0x07 ,0x03 , -0x02 ,0x07 ,0x0a ,0x0d ,0x0d ,0x0a ,0x07 ,0x02 , -0x03 ,0x07 ,0x0b ,0x0d ,0x0c ,0x0a ,0x06 ,0x02 , -0x03 ,0x08 ,0x0b ,0x0d ,0x0d ,0x0a ,0x05 ,0x01 , -0x04 ,0x08 ,0x0c ,0x0d ,0x0c ,0x09 ,0x05 ,0x01 - } - }, - { - .min =5120 , - .max =65535 , - .coef = { -0x03 ,0x06 ,0x09 ,0x0b ,0x09 ,0x0b ,0x09 ,0x06 , -0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , -0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , -0x04 ,0x07 ,0x09 ,0x0b ,0x0b ,0x0a ,0x08 ,0x04 , -0x04 ,0x07 ,0x0a ,0x0b ,0x0b ,0x0a ,0x07 ,0x04 , -0x04 ,0x08 ,0x0a ,0x0b ,0x0b ,0x09 ,0x07 ,0x04 , -0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 , -0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 - } - } -}; -/** * struct bdisp_filter_v_spec - Vertical filter specification * @@ -204,138 +32,6 @@ struct bdisp_filter_v_spec {const u8 coef[BDISP_VF_NB ]; }; -static const struct bdisp_filter_v_spec bdisp_v_spec[] = { - { - .min =0 , - .max =1024 , - .coef = { -0x00 ,0x00 ,0x40 ,0x00 ,0x00 , -0x00 ,0x06 ,0x3d ,0xfd ,0x00 , -0xfe ,0x0f ,0x38 ,0xfb ,0x00 , -0xfd ,0x19 ,0x2f ,0xfb ,0x00 , -0xfc ,0x24 ,0x24 ,0xfc ,0x00 , -0xfb ,0x2f ,0x19 ,0xfd ,0x00 , -0xfb ,0x38 ,0x0f ,0xfe ,0x00 , -0xfd ,0x3d ,0x06 ,0x00 ,0x00 - } - }, - { - .min =1024 , - .max =1331 , - .coef = { -0xfc ,0x05 ,0x3e ,0x05 ,0xfc , -0xf8 ,0x0e ,0x3b ,0xff ,0x00 , -0xf5 ,0x18 ,0x38 ,0xf9 ,0x02 , -0xf4 ,0x21 ,0x31 ,0xf5 ,0x05 , -0xf4 ,0x2a ,0x27 ,0xf4 ,0x07 , -0xf6 ,0x30 ,0x1e ,0xf4 ,0x08 , -0xf9 ,0x35 ,0x15 ,0xf6 ,0x07 , -0xff ,0x37 ,0x0b ,0xf9 ,0x06 - } - }, - { - .min =1331 , - .max =1433 , - .coef = { -0xf8 ,0x0a ,0x3c ,0x0a ,0xf8 , -0xf6 ,0x12 ,0x3b ,0x02 ,0xfb , -0xf4 ,0x1b ,0x35 ,0xfd ,0xff , -0xf4 ,0x23 ,0x30 ,0xf8 ,0x01 , -0xf6 ,0x29 ,0x27 ,0xf6 ,0x04 , -0xf9 ,0x2e ,0x1e ,0xf5 ,0x06 , -0xfd ,0x31 ,0x16 ,0xf6 ,0x06 , -0x02 ,0x32 ,0x0d ,0xf8 ,0x07 - } - }, - { - .min =1433 , - .max =1536 , - .coef = { -0xf6 ,0x0e ,0x38 ,0x0e ,0xf6 , -0xf5 ,0x15 ,0x38 ,0x06 ,0xf8 , -0xf5 ,0x1d ,0x33 ,0x00 ,0xfb , -0xf6 ,0x23 ,0x2d ,0xfc ,0xfe , -0xf9 ,0x28 ,0x26 ,0xf9 ,0x00 , -0xfc ,0x2c ,0x1e ,0xf7 ,0x03 , -0x00 ,0x2e ,0x18 ,0xf6 ,0x04 , -0x05 ,0x2e ,0x11 ,0xf7 ,0x05 - } - }, - { - .min =1536 , - .max =2048 , - .coef = { -0xfb ,0x13 ,0x24 ,0x13 ,0xfb , -0xfd ,0x17 ,0x23 ,0x0f ,0xfa , -0xff ,0x1a ,0x23 ,0x0b ,0xf9 , -0x01 ,0x1d ,0x22 ,0x07 ,0xf9 , -0x04 ,0x20 ,0x1f ,0x04 ,0xf9 , -0x07 ,0x22 ,0x1c ,0x01 ,0xfa , -0x0b ,0x24 ,0x17 ,0xff ,0xfb , -0x0f ,0x24 ,0x14 ,0xfd ,0xfc - } - }, - { - .min =2048 , - .max =3072 , - .coef = { -0x05 ,0x10 ,0x16 ,0x10 ,0x05 , -0x06 ,0x11 ,0x16 ,0x0f ,0x04 , -0x08 ,0x13 ,0x15 ,0x0e ,0x02 , -0x09 ,0x14 ,0x16 ,0x0c ,0x01 , -0x0b ,0x15 ,0x15 ,0x0b ,0x00 , -0x0d ,0x16 ,0x13 ,0x0a ,0x00 , -0x0f ,0x17 ,0x13 ,0x08 ,0xff , -0x11 ,0x18 ,0x12 ,0x07 ,0xfe - } - }, - { - .min =3072 , - .max =4096 , - .coef = { -0x09 ,0x0f ,0x10 ,0x0f ,0x09 , -0x09 ,0x0f ,0x12 ,0x0e ,0x08 , -0x0a ,0x10 ,0x11 ,0x0e ,0x07 , -0x0b ,0x11 ,0x11 ,0x0d ,0x06 , -0x0c ,0x11 ,0x12 ,0x0c ,0x05 , -0x0d ,0x12 ,0x11 ,0x0c ,0x04 , -0x0e ,0x12 ,0x11 ,0x0b ,0x04 , -0x0f ,0x13 ,0x11 ,0x0a ,0x03 - } - }, - { - .min =4096 , - .max =5120 , - .coef = { -0x0a ,0x0e ,0x10 ,0x0e ,0x0a , -0x0b ,0x0e ,0x0f ,0x0e ,0x0a , -0x0b ,0x0f ,0x10 ,0x0d ,0x09 , -0x0c ,0x0f ,0x10 ,0x0d ,0x08 , -0x0d ,0x0f ,0x0f ,0x0d ,0x08 , -0x0d ,0x10 ,0x10 ,0x0c ,0x07 , -0x0e ,0x10 ,0x0f ,0x0c ,0x07 , -0x0f ,0x10 ,0x10 ,0x0b ,0x06 - } - }, - { - .min =5120 , - .max =65535 , - .coef = { -0x0b ,0x0e ,0x0e ,0x0e ,0x0b , -0x0b ,0x0e ,0x0f ,0x0d ,0x0b , -0x0c ,0x0e ,0x0f ,0x0d ,0x0a , -0x0c ,0x0e ,0x0f ,0x0d ,0x0a , -0x0d ,0x0f ,0x0e ,0x0d ,0x09 , -0x0d ,0x0f ,0x0f ,0x0c ,0x09 , -0x0e ,0x0f ,0x0e ,0x0c ,0x09 , -0x0e ,0x0f ,0x0f ,0x0c ,0x08 - } - } -}; - -#define NB_H_FILTER ARRAY_SIZE(bdisp_h_spec) -#define NB_V_FILTER ARRAY_SIZE(bdisp_v_spec) -/* RGB YUV 601 standard conversion */ static const u32 bdisp_rgb_to_yuv[] = {0x0e1e8bee ,0x08420419 ,0xfb5ed471 ,0x08004080 ,drivers/media/platform/sti/bdisp/bdisp-hw.c +305
-1@@ -47,6 +47,311 @@ struct bdisp_filter_addr {dma_addr_t paddr;/* Physical address for filter table */ }; +static const struct bdisp_filter_h_spec bdisp_h_spec[] = { + { + .min =0 , + .max =921 , + .coef = { +0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , +0x00 ,0x00 ,0xff ,0x07 ,0x3d ,0xfc ,0x01 ,0x00 , +0x00 ,0x01 ,0xfd ,0x11 ,0x36 ,0xf9 ,0x02 ,0x00 , +0x00 ,0x01 ,0xfb ,0x1b ,0x2e ,0xf9 ,0x02 ,0x00 , +0x00 ,0x01 ,0xf9 ,0x26 ,0x26 ,0xf9 ,0x01 ,0x00 , +0x00 ,0x02 ,0xf9 ,0x30 ,0x19 ,0xfb ,0x01 ,0x00 , +0x00 ,0x02 ,0xf9 ,0x39 ,0x0e ,0xfd ,0x01 ,0x00 , +0x00 ,0x01 ,0xfc ,0x3e ,0x06 ,0xff ,0x00 ,0x00 + } + }, + { + .min =921 , + .max =1024 , + .coef = { +0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , +0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , +0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , +0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , +0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , +0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff + } + }, + { + .min =1024 , + .max =1126 , + .coef = { +0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , +0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , +0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , +0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , +0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , +0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff + } + }, + { + .min =1126 , + .max =1228 , + .coef = { +0x00 ,0x00 ,0x00 ,0x00 ,0x40 ,0x00 ,0x00 ,0x00 , +0xff ,0x03 ,0xfd ,0x08 ,0x3e ,0xf9 ,0x04 ,0xfe , +0xfd ,0x06 ,0xf8 ,0x13 ,0x3b ,0xf4 ,0x07 ,0xfc , +0xfb ,0x08 ,0xf5 ,0x1f ,0x34 ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x2b ,0x2a ,0xf1 ,0x09 ,0xfb , +0xfb ,0x09 ,0xf2 ,0x35 ,0x1e ,0xf4 ,0x08 ,0xfb , +0xfc ,0x07 ,0xf5 ,0x3c ,0x12 ,0xf7 ,0x06 ,0xfd , +0xfe ,0x04 ,0xfa ,0x3f ,0x07 ,0xfc ,0x03 ,0xff + } + }, + { + .min =1228 , + .max =1331 , + .coef = { +0xfd ,0x04 ,0xfc ,0x05 ,0x39 ,0x05 ,0xfc ,0x04 , +0xfc ,0x06 ,0xf9 ,0x0c ,0x39 ,0xfe ,0x00 ,0x02 , +0xfb ,0x08 ,0xf6 ,0x17 ,0x35 ,0xf9 ,0x02 ,0x00 , +0xfc ,0x08 ,0xf4 ,0x20 ,0x30 ,0xf4 ,0x05 ,0xff , +0xfd ,0x07 ,0xf4 ,0x29 ,0x28 ,0xf3 ,0x07 ,0xfd , +0xff ,0x05 ,0xf5 ,0x31 ,0x1f ,0xf3 ,0x08 ,0xfc , +0x00 ,0x02 ,0xf9 ,0x38 ,0x14 ,0xf6 ,0x08 ,0xfb , +0x02 ,0x00 ,0xff ,0x3a ,0x0b ,0xf8 ,0x06 ,0xfc + } + }, + { + .min =1331 , + .max =1433 , + .coef = { +0xfc ,0x06 ,0xf9 ,0x09 ,0x34 ,0x09 ,0xf9 ,0x06 , +0xfd ,0x07 ,0xf7 ,0x10 ,0x32 ,0x02 ,0xfc ,0x05 , +0xfe ,0x07 ,0xf6 ,0x17 ,0x2f ,0xfc ,0xff ,0x04 , +0xff ,0x06 ,0xf5 ,0x20 ,0x2a ,0xf9 ,0x01 ,0x02 , +0x00 ,0x04 ,0xf6 ,0x27 ,0x25 ,0xf6 ,0x04 ,0x00 , +0x02 ,0x01 ,0xf9 ,0x2d ,0x1d ,0xf5 ,0x06 ,0xff , +0x04 ,0xff ,0xfd ,0x31 ,0x15 ,0xf5 ,0x07 ,0xfe , +0x05 ,0xfc ,0x02 ,0x35 ,0x0d ,0xf7 ,0x07 ,0xfd + } + }, + { + .min =1433 , + .max =1536 , + .coef = { +0xfe ,0x06 ,0xf8 ,0x0b ,0x30 ,0x0b ,0xf8 ,0x06 , +0xff ,0x06 ,0xf7 ,0x12 ,0x2d ,0x05 ,0xfa ,0x06 , +0x00 ,0x04 ,0xf6 ,0x18 ,0x2c ,0x00 ,0xfc ,0x06 , +0x01 ,0x02 ,0xf7 ,0x1f ,0x27 ,0xfd ,0xff ,0x04 , +0x03 ,0x00 ,0xf9 ,0x24 ,0x24 ,0xf9 ,0x00 ,0x03 , +0x04 ,0xff ,0xfd ,0x29 ,0x1d ,0xf7 ,0x02 ,0x01 , +0x06 ,0xfc ,0x00 ,0x2d ,0x17 ,0xf6 ,0x04 ,0x00 , +0x06 ,0xfa ,0x05 ,0x30 ,0x0f ,0xf7 ,0x06 ,0xff + } + }, + { + .min =1536 , + .max =2048 , + .coef = { +0x05 ,0xfd ,0xfb ,0x13 ,0x25 ,0x13 ,0xfb ,0xfd , +0x05 ,0xfc ,0xfd ,0x17 ,0x24 ,0x0f ,0xf9 ,0xff , +0x04 ,0xfa ,0xff ,0x1b ,0x24 ,0x0b ,0xf9 ,0x00 , +0x03 ,0xf9 ,0x01 ,0x1f ,0x23 ,0x08 ,0xf8 ,0x01 , +0x02 ,0xf9 ,0x04 ,0x22 ,0x20 ,0x04 ,0xf9 ,0x02 , +0x01 ,0xf8 ,0x08 ,0x25 ,0x1d ,0x01 ,0xf9 ,0x03 , +0x00 ,0xf9 ,0x0c ,0x25 ,0x1a ,0xfe ,0xfa ,0x04 , +0xff ,0xf9 ,0x10 ,0x26 ,0x15 ,0xfc ,0xfc ,0x05 + } + }, + { + .min =2048 , + .max =3072 , + .coef = { +0xfc ,0xfd ,0x06 ,0x13 ,0x18 ,0x13 ,0x06 ,0xfd , +0xfc ,0xfe ,0x08 ,0x15 ,0x17 ,0x12 ,0x04 ,0xfc , +0xfb ,0xfe ,0x0a ,0x16 ,0x18 ,0x10 ,0x03 ,0xfc , +0xfb ,0x00 ,0x0b ,0x18 ,0x17 ,0x0f ,0x01 ,0xfb , +0xfb ,0x00 ,0x0d ,0x19 ,0x17 ,0x0d ,0x00 ,0xfb , +0xfb ,0x01 ,0x0f ,0x19 ,0x16 ,0x0b ,0x00 ,0xfb , +0xfc ,0x03 ,0x11 ,0x19 ,0x15 ,0x09 ,0xfe ,0xfb , +0xfc ,0x04 ,0x12 ,0x1a ,0x12 ,0x08 ,0xfe ,0xfc + } + }, + { + .min =3072 , + .max =4096 , + .coef = { +0xfe ,0x02 ,0x09 ,0x0f ,0x0e ,0x0f ,0x09 ,0x02 , +0xff ,0x02 ,0x09 ,0x0f ,0x10 ,0x0e ,0x08 ,0x01 , +0xff ,0x03 ,0x0a ,0x10 ,0x10 ,0x0d ,0x07 ,0x00 , +0x00 ,0x04 ,0x0b ,0x10 ,0x0f ,0x0c ,0x06 ,0x00 , +0x00 ,0x05 ,0x0c ,0x10 ,0x0e ,0x0c ,0x05 ,0x00 , +0x00 ,0x06 ,0x0c ,0x11 ,0x0e ,0x0b ,0x04 ,0x00 , +0x00 ,0x07 ,0x0d ,0x11 ,0x0f ,0x0a ,0x03 ,0xff , +0x01 ,0x08 ,0x0e ,0x11 ,0x0e ,0x09 ,0x02 ,0xff + } + }, + { + .min =4096 , + .max =5120 , + .coef = { +0x00 ,0x04 ,0x09 ,0x0c ,0x0e ,0x0c ,0x09 ,0x04 , +0x01 ,0x05 ,0x09 ,0x0c ,0x0d ,0x0c ,0x08 ,0x04 , +0x01 ,0x05 ,0x0a ,0x0c ,0x0e ,0x0b ,0x08 ,0x03 , +0x02 ,0x06 ,0x0a ,0x0d ,0x0c ,0x0b ,0x07 ,0x03 , +0x02 ,0x07 ,0x0a ,0x0d ,0x0d ,0x0a ,0x07 ,0x02 , +0x03 ,0x07 ,0x0b ,0x0d ,0x0c ,0x0a ,0x06 ,0x02 , +0x03 ,0x08 ,0x0b ,0x0d ,0x0d ,0x0a ,0x05 ,0x01 , +0x04 ,0x08 ,0x0c ,0x0d ,0x0c ,0x09 ,0x05 ,0x01 + } + }, + { + .min =5120 , + .max =65535 , + .coef = { +0x03 ,0x06 ,0x09 ,0x0b ,0x09 ,0x0b ,0x09 ,0x06 , +0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , +0x03 ,0x06 ,0x09 ,0x0b ,0x0c ,0x0a ,0x08 ,0x05 , +0x04 ,0x07 ,0x09 ,0x0b ,0x0b ,0x0a ,0x08 ,0x04 , +0x04 ,0x07 ,0x0a ,0x0b ,0x0b ,0x0a ,0x07 ,0x04 , +0x04 ,0x08 ,0x0a ,0x0b ,0x0b ,0x09 ,0x07 ,0x04 , +0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 , +0x05 ,0x08 ,0x0a ,0x0b ,0x0c ,0x09 ,0x06 ,0x03 + } + } +}; + +#define NB_H_FILTER ARRAY_SIZE(bdisp_h_spec) + + +static const struct bdisp_filter_v_spec bdisp_v_spec[] = { + { + .min =0 , + .max =1024 , + .coef = { +0x00 ,0x00 ,0x40 ,0x00 ,0x00 , +0x00 ,0x06 ,0x3d ,0xfd ,0x00 , +0xfe ,0x0f ,0x38 ,0xfb ,0x00 , +0xfd ,0x19 ,0x2f ,0xfb ,0x00 , +0xfc ,0x24 ,0x24 ,0xfc ,0x00 , +0xfb ,0x2f ,0x19 ,0xfd ,0x00 , +0xfb ,0x38 ,0x0f ,0xfe ,0x00 , +0xfd ,0x3d ,0x06 ,0x00 ,0x00 + } + }, + { + .min =1024 , + .max =1331 , + .coef = { +0xfc ,0x05 ,0x3e ,0x05 ,0xfc , +0xf8 ,0x0e ,0x3b ,0xff ,0x00 , +0xf5 ,0x18 ,0x38 ,0xf9 ,0x02 , +0xf4 ,0x21 ,0x31 ,0xf5 ,0x05 , +0xf4 ,0x2a ,0x27 ,0xf4 ,0x07 , +0xf6 ,0x30 ,0x1e ,0xf4 ,0x08 , +0xf9 ,0x35 ,0x15 ,0xf6 ,0x07 , +0xff ,0x37 ,0x0b ,0xf9 ,0x06 + } + }, + { + .min =1331 , + .max =1433 , + .coef = { +0xf8 ,0x0a ,0x3c ,0x0a ,0xf8 , +0xf6 ,0x12 ,0x3b ,0x02 ,0xfb , +0xf4 ,0x1b ,0x35 ,0xfd ,0xff , +0xf4 ,0x23 ,0x30 ,0xf8 ,0x01 , +0xf6 ,0x29 ,0x27 ,0xf6 ,0x04 , +0xf9 ,0x2e ,0x1e ,0xf5 ,0x06 , +0xfd ,0x31 ,0x16 ,0xf6 ,0x06 , +0x02 ,0x32 ,0x0d ,0xf8 ,0x07 + } + }, + { + .min =1433 , + .max =1536 , + .coef = { +0xf6 ,0x0e ,0x38 ,0x0e ,0xf6 , +0xf5 ,0x15 ,0x38 ,0x06 ,0xf8 , +0xf5 ,0x1d ,0x33 ,0x00 ,0xfb , +0xf6 ,0x23 ,0x2d ,0xfc ,0xfe , +0xf9 ,0x28 ,0x26 ,0xf9 ,0x00 , +0xfc ,0x2c ,0x1e ,0xf7 ,0x03 , +0x00 ,0x2e ,0x18 ,0xf6 ,0x04 , +0x05 ,0x2e ,0x11 ,0xf7 ,0x05 + } + }, + { + .min =1536 , + .max =2048 , + .coef = { +0xfb ,0x13 ,0x24 ,0x13 ,0xfb , +0xfd ,0x17 ,0x23 ,0x0f ,0xfa , +0xff ,0x1a ,0x23 ,0x0b ,0xf9 , +0x01 ,0x1d ,0x22 ,0x07 ,0xf9 , +0x04 ,0x20 ,0x1f ,0x04 ,0xf9 , +0x07 ,0x22 ,0x1c ,0x01 ,0xfa , +0x0b ,0x24 ,0x17 ,0xff ,0xfb , +0x0f ,0x24 ,0x14 ,0xfd ,0xfc + } + }, + { + .min =2048 , + .max =3072 , + .coef = { +0x05 ,0x10 ,0x16 ,0x10 ,0x05 , +0x06 ,0x11 ,0x16 ,0x0f ,0x04 , +0x08 ,0x13 ,0x15 ,0x0e ,0x02 , +0x09 ,0x14 ,0x16 ,0x0c ,0x01 , +0x0b ,0x15 ,0x15 ,0x0b ,0x00 , +0x0d ,0x16 ,0x13 ,0x0a ,0x00 , +0x0f ,0x17 ,0x13 ,0x08 ,0xff , +0x11 ,0x18 ,0x12 ,0x07 ,0xfe + } + }, + { + .min =3072 , + .max =4096 , + .coef = { +0x09 ,0x0f ,0x10 ,0x0f ,0x09 , +0x09 ,0x0f ,0x12 ,0x0e ,0x08 , +0x0a ,0x10 ,0x11 ,0x0e ,0x07 , +0x0b ,0x11 ,0x11 ,0x0d ,0x06 , +0x0c ,0x11 ,0x12 ,0x0c ,0x05 , +0x0d ,0x12 ,0x11 ,0x0c ,0x04 , +0x0e ,0x12 ,0x11 ,0x0b ,0x04 , +0x0f ,0x13 ,0x11 ,0x0a ,0x03 + } + }, + { + .min =4096 , + .max =5120 , + .coef = { +0x0a ,0x0e ,0x10 ,0x0e ,0x0a , +0x0b ,0x0e ,0x0f ,0x0e ,0x0a , +0x0b ,0x0f ,0x10 ,0x0d ,0x09 , +0x0c ,0x0f ,0x10 ,0x0d ,0x08 , +0x0d ,0x0f ,0x0f ,0x0d ,0x08 , +0x0d ,0x10 ,0x10 ,0x0c ,0x07 , +0x0e ,0x10 ,0x0f ,0x0c ,0x07 , +0x0f ,0x10 ,0x10 ,0x0b ,0x06 + } + }, + { + .min =5120 , + .max =65535 , + .coef = { +0x0b ,0x0e ,0x0e ,0x0e ,0x0b , +0x0b ,0x0e ,0x0f ,0x0d ,0x0b , +0x0c ,0x0e ,0x0f ,0x0d ,0x0a , +0x0c ,0x0e ,0x0f ,0x0d ,0x0a , +0x0d ,0x0f ,0x0e ,0x0d ,0x09 , +0x0d ,0x0f ,0x0f ,0x0c ,0x09 , +0x0e ,0x0f ,0x0e ,0x0c ,0x09 , +0x0e ,0x0f ,0x0f ,0x0c ,0x08 + } + } +}; + +#define NB_V_FILTER ARRAY_SIZE(bdisp_v_spec) +static struct bdisp_filter_addr bdisp_h_filter[NB_H_FILTER ];static struct bdisp_filter_addr bdisp_v_filter[NB_V_FILTER ]; --2.7.4