summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [media] v4l2: blackfin: select proper pinctrl state in ppi_set_params if ↵Sonic Zhang2014-07-262-0/+18
| | | | | | | | | | | CONFIG_PINCTRL is enabled Multiple pinctrl states are defined for 8, 16 and 24 data pin groups in PPI peripheral. The driver should select correct group before set up further PPI parameters. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Acked-by: Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] v4l2: bfin: Ensure delete and reinit list entry on NOMMU architectureSonic Zhang2014-07-261-3/+3
| | | | | | | | | On NOMMU architecture page fault is not triggered if a deleted list entry is accessed without reinit. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Acked-by: Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: blackfin: ppi: Pass device pointer to request peripheral pinsSonic Zhang2014-07-263-5/+8
| | | | | | | | if the pinctrl driver is enabled. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Acked-by: Scott Jiang <scott.jiang.linux@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] em28xx-v4l: fix disabling ioctl VIDIOC_S_PARM for vbi devicesFrank Schaefer2014-07-261-1/+1
| | | | | | | | Fixes an old copy+paste bug that has survived all recent code changes in this code area. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] em28xx-v4l: get rid of field "users" in struct em28xx_v4l2Frank Schaefer2014-07-262-11/+13
| | | | | | | | | Instead of counting the number of opened file handles, use function v4l2_fh_is_singular_file() in em28xx_v4l2_open() and em28xx_v4l2_close() to determine if the file handle is the first/last opened one. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] em28xx-v4l: simplify em28xx_v4l2_open() by using v4l2_fh_open()Frank Schaefer2014-07-261-8/+7
| | | | | | | | | | | | | | | | Instead of calling ... struct v4l2_fh *fh = kzalloc(sizeof(*fh), GFP_KERNEL); filp->private_data = fh; v4l2_fh_init(fh, vdev); v4l2_fh_add(fh); ... simply use function v4l2_fh_open() which does all of these calls for us. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] em28xx-v4l: get rid of struct em28xx_fhFrank Schaefer2014-07-262-61/+29
| | | | | | | | struct em28xx_fh isn't needed anymore because the only used field which is left is struct v4l2_fh fh. Use struct v4l2_fh directly and remvove struct em28xx_fh. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] em28xx-v4l: simplify some pointers in em28xx_init_camera()Frank Schaefer2014-07-261-2/+2
| | | | | | | Pointer v4l2" can be used instead of "dev->v4l2, which saves some characters. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: media: lirc_parallel.c: fix coding styleZheng Di2014-07-261-16/+16
| | | | | | | | | | | | This patch fix checkpatch: WARNING: else is not generally useful after a break or return WARNING: line over 80 characters [m.chehab@samsung.com: Fix conflicts and use a better coding style for passing the parameters to parport_register_device()] Signed-off-by: Zheng Di <zhengdi05@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] Fix typo in commentsRaimonds Cicans2014-07-261-1/+1
| | | | | | | | Expression ((7bit i2c_addr << 1) & 0x01) can not be right because it is always 0 Signed-off-by: Raimonds Cicans <ray@apollo.lv> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: omap4iss: Fix type of struct iss_device::crashedRasmus Villemoes2014-07-261-1/+1
| | | | | | | | | | | The crashed member of struct iss_device is documented to be a bitmask, but a bool doesn't hold that many (usable) bits. Lines 589 and 659 of iss.c strongly suggest that "unsigned int" was meant (the same type as struct iss_pipeline::entities). Currently, any crashed entity will be blamed on index 0, which is unlikely to be what was intended. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: lirc: Introduce the use of managed interfacesHimangi Saraogi2014-07-261-30/+7
| | | | | | | | | | | This patch introduces the use of managed interfaces like devm_request_mem_region and devm_request_irq and does away with the calls to free the allocated memory in the probe and remove functions. The remove function is no longer required and is removed completely. Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: lirc: remove return void functionRaphael Poggi2014-07-261-6/+0
| | | | | | | | This patch fix checkpath "WARNING: void function return statements are not generally useful". The removed return were useless in that case. Signed-off-by: Raphaël Poggi <poggi.raph@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: lirc: fix checkpath errors: blank linesRaphael Poggi2014-07-261-0/+3
| | | | | | | This patch fix checkpath "WARNING: Missing a blank line after declarations" Signed-off-by: Raphaël Poggi <poggi.raph@gmail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ddbridge: Add IDs for several newer Digital Devices cardsChristopher Reimer2014-07-261-1/+34
| | | | | | | | | | | | | | | | | | | | This patch adds the necessary IDs for the following dvb cards: Digital Devices Octopus Mini Digital Devices Cine S2 V6.5 Digital Devices DVBCT V6.1 Digital Devices Octopus V3 Mystique SaTiX-S2 V3 All these changes are taken from the official driver package by Digital Devices. http://download.digital-devices.de/download/linux/ [m.chehab@samsung.com: Fixed whitespace mangling] Signed-off-by: Christopher Reimer <mail@creimer.net> Tested-by: "D. Herrendoerfer" <d.herrendoerfer@herrendoerfer.name> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c: remove ↵Fabian Frederick2014-07-261-2/+1
| | | | | | | | | | unnecessary null test before usb_free_urb Fix checkpatch warning: WARNING: usb_free_urb(NULL) is safe this check is probably not required Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: saa7134: remove if based on uninitialized variableHeinrich Schuchardt2014-07-261-4/+0
| | | | | | | | | Variable b is not initialized. Only with a small chance it has random value 0xFF. Remove if statement based on this value. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] v4l: omap4iss: configuration using uninitialized variableHeinrich Schuchardt2014-07-261-1/+1
| | | | | | | | | Variable reg is not initialized. Random values are written to OMAP4 ISS registers if !ctx->eof_enabled. Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] af9035: override tuner for AVerMedia A835B devicesAntti Palosaari2014-07-261-0/+19
| | | | | | | | | Tuner ID set into EEPROM is wrong, which causes driver to select wrong tuner profile. That leads device non-working. Fix issue by overriding known bad tuner IDs with suitable default value. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] remove some new warnings on drxjMauro Carvalho Chehab2014-07-261-4/+0
| | | | | | | | | | | | | changeset b601fe5688ae did some cleanup, but didn't remove some now unused vars: drivers/media/dvb-frontends/drx39xyj/drxj.c: In function 'drx39xxj_set_frontend': drivers/media/dvb-frontends/drx39xyj/drxj.c:12072:21: warning: unused variable 'uio_data' [-Wunused-variable] drivers/media/dvb-frontends/drx39xyj/drxj.c: In function 'drx39xxj_set_lna': drivers/media/dvb-frontends/drx39xyj/drxj.c:12230:21: warning: unused variable 'uio_data' [-Wunused-variable] drivers/media/dvb-frontends/drx39xyj/drxj.c:12229:20: warning: unused variable 'uio_cfg' [-Wunused-variable] drivers/media/dvb-frontends/drx39xyj/drxj.c:12224:6: warning: unused variable 'result' [-Wunused-variable] Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] cx23885-dvb: remove previously overriden valueMauro Carvalho Chehab2014-07-261-1/+0
| | | | | | | | | | drivers/media/pci/cx23885/cx23885-dvb.c:768:2: warning: initialized field overwritten [-Woverride-init] .freq_offset_khz_vhf = 550, ^ drivers/media/pci/cx23885/cx23885-dvb.c:768:2: warning: (near initialization for 'dib7070p_dib0070_config.freq_offset_khz_vhf') [-Woverride-init] Cc: James Harper <james.harper@ejbdigital.com.au> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] update cx23885 and em28xx cardlistsMauro Carvalho Chehab2014-07-262-1/+3
| | | | | | A few new devices were added. Update the lists accordingly. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] cx23885 now needs to select dib0070Mauro Carvalho Chehab2014-07-261-0/+1
| | | | | | | Due to DViCO FusionHDTV DVB-T Dual Express2, we also need to autoselect this tuner. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] Add support for DViCO FusionHDTV DVB-T Dual Express2James Harper2014-07-263-0/+139
| | | | | | | | | DViCO FusionHDTV DVB-T Dual Express2 is cx23885 + dib7070 [m.chehab@samsung.com: fix conflicts and make checkpatch happy] Signed-off-by: James Harper <james.harper@ejbdigital.com.au> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] vmalloc_sg: make sure all pages in vmalloc area are really DMA-readyJames Harper2014-07-262-4/+61
| | | | | | | | | | | | | | Patch originally written by Konrad. Rebased on current linux media tree. Under Xen, vmalloc_32() isn't guaranteed to return pages which are really under 4G in machine physical addresses (only in virtual pseudo-physical addresses). To work around this, implement a vmalloc variant which allocates each page with dma_alloc_coherent() to guarantee that each page is suitable for the device in question. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: James Harper <james.harper@ejbdigital.com.au> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: drx39xyj - use drxj_set_lna_state() and remove duplicate LNA codeShuah Khan2014-07-261-27/+2
| | | | | | | | | drx39xxj_set_lna() and drx39xxj_set_frontend() set LNA. Instead of duplicating LNA configure code, change to use drxj_set_lna_state() which sets LNA to the caller requested state (on or off). Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: drx39xyj - fix to return actual error codes instead of -EIOShuah Khan2014-07-261-56/+56
| | | | | | | | | Several functions ignore the return values in error legs and always return -EIO. This makes it hard to debug and take proper action in calling routines. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: drx39xyj - add resume supportShuah Khan2014-07-261-23/+42
| | | | | | | | | | | drx39xyj driver lacks resume support. Add support by changing its fe ops init interface to detect the resume status by checking fe exit flag and do the necessary initialization. With this change, driver resume correctly in both dvb adapter is not in use and in use by an application cases. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: dvb-core add new flag exit flag value for resumeShuah Khan2014-07-262-0/+3
| | | | | | | | | | | | | | Some fe drivers will have to do additional initialization in their fe ops.init interfaces when called during resume. Without the additional initialization, fe and tuner driver resume fails. A new fe exit flag value DVB_FE_DEVICE_RESUME is necessary to detect resume case. This patch adds a new define and changes dvb_frontend_resume() to set it prior to calling fe init and tuner init calls and resets it back to DVB_FE_NO_EXIT once fe and tuner init is done. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: drx39xyj driver change to check fe exit flag from releaseShuah Khan2014-07-261-1/+3
| | | | | | | | | Change drx39xyj_release() to check fe exit flag to detect the device disconnect state and avoid accessing the device after it has been removed. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: em28xx-dvb update fe exit flag to indicate device disconnectShuah Khan2014-07-261-2/+6
| | | | | | | | | | | | Change em28xx_dvb_fini() to set fe exit flag to DVB_FE_DEVICE_REMOVED when device is disconnected. em28xx maintains device disconnect status in em28xx device. fe drivers will be able to now check the fe exit status to avoid accessing the device, from their release interfaces when called from disconnect path. This change depends on dvb-core change that exports fe exit flag by moving it from fepriv to fe. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: dvb-core move fe exit flag from fepriv to fe for driver accessShuah Khan2014-07-262-15/+16
| | | | | | | | | | | | | Some fe drivers attempt to access the device for power control from their release routines. When release routines are called after device is disconnected, the attempts fail. fe drivers should avoid accessing the device, from their release interfaces when called from disconnect path. dvb-frontend maintains exit flag to keep track when fe device is disconnected in its private data structures. Export the flag in fe to enable drivers to check the device status from their release interfaces. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: em28xx - fix i2c_xfer to return -ENODEV when dev is removedShuah Khan2014-07-261-0/+6
| | | | | | | | | | In em28xx usb disconnect code path, some dvb fe and tuner drivers attempt i2c transfers from their release interfaces. When device is removed, return -ENODEV instead of attempting to transfer data over i2c. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: em28xx - remove reset_resume interfaceShuah Khan2014-07-261-1/+0
| | | | | | | | | | | | | em28xx uses resume interface as its reset_resume interface. If usb device is reset during suspend, reset_resume doesn't do the necessary initialization which leads to resume failure. Many systems don't maintain do not maintain suspend current to the USB host controllers during hibernation. Remove reset_resume to allow disconnect to be called followed by device restore sequence. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: em28xx - add error handling for KWORLD dvb_attach failuresShuah Khan2014-07-261-3/+11
| | | | | | | | | Add error hanlding when EM2870_BOARD_KWORLD_A340 dvb_attach() for fe and tuner fail in em28xx_dvb_init(). Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] media: em28xx-dvb - fix em28xx_dvb_resume() to not unregister i2c ↵Shuah Khan2014-07-261-17/+0
| | | | | | | | | | | | | and dvb em28xx_dvb_resume() unregisters i2c tuner, i2c demod, and dvb. This erroneous cleanup results in i2c tuner, i2c demod, and dvb devices unregistered and removed during resume. This error is a result of merge conflict between two patches that went into 3.15. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] rtl28xxu: add [1b80:d3b0] Sveon STV21Sebastian2014-07-262-0/+3
| | | | | | | | | Added Sveon STV21 device based on Realtek RTL2832U and FC0013 tuner Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net> Acked-by: Antti Palosaari <crope@iki.fi> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] Fix regression in some dib0700 based devicesJames Harper2014-07-261-1/+1
| | | | | | | | | Fix regression in some dib0700 based devices. Set size_of_priv, and don't call dvb_detach unnecessarily. This resolves the oops(s) for my "Leadtek Winfast DTV Dongle (STK7700P based)" Signed-off-by: James Harper <james.harper@ejbdigital.com.au> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] staging: lirc: remove sa1100 supportArnd Bergmann2014-07-261-299/+2
| | | | | | | | | | | | | The LIRC support for sa1100 appears to have never worked because it relies on header files that have never been present in git history. Actually trying to build the driver on an ARM sa1100 kernel fails, so let's just remove the broken support. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Jarod Wilson <jarod@wilsonet.com> Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] coda: Propagate the correct error on devm_request_threaded_irq()Fabio Estevam2014-07-261-4/+5
| | | | | | | | | | If devm_request_threaded_irq() fails, we should better propagate the real error. Also, print out the error code in the dev_err message. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] coda: Return the real error on platform_get_irq()Fabio Estevam2014-07-261-1/+1
| | | | | | | | | | No need to return a 'fake' return value on platform_get_irq() failure. Propagate the real error instead. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Better default keycodesGeorge Spelvin2014-07-251-10/+20
| | | | | | | | | | | | | | | | | | | This tries to make them more like other remotes, and/or the button labels. Notably, the (>>) button is made KEY_FASTFORWARD, which is the correct opposite of (<<)'s KEY_REVERSE. (It was KEY_FORWARD, something else entirely.) Likewise, KEY_STOP is the Sun keyboard "interrupt program" key; the media key is KEY_STOPCD. A restriction is that I try to avoid keycodes above 255, as the X11 client/server protocol is limited to 8-bit key codes. If not for this, I would have used the KEY_NUMERIC_x codes for the numbers. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Add comments to keycode tableGeorge Spelvin2014-07-251-10/+23
| | | | | | | | | | | A more detailed description of what the buttons look like and their intended function makes it easier for people to maintain this code without access to the hardware. [m.chehab@samsung.com: Fixed a typo "Mdeia" instead of "Media"] Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Sort buttons in top-to-bottom orderGeorge Spelvin2014-07-251-23/+34
| | | | | | | | Since numerical order corresponds to top-left-to-bottom-right order on the remote, this makes the table easier to read. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Use non-alomic __set_bitGeorge Spelvin2014-07-251-1/+1
| | | | | | | There's no reason to use a LOCK prefix here. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Merge some duplicate codeGeorge Spelvin2014-07-251-11/+10
| | | | | | | | The KIND_FILTERED assignment of old_jiffies can't be merged, because it must precede repeat handling. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Shrink the ati_remote_tbl even moreGeorge Spelvin2014-07-251-34/+35
| | | | | | | Get rid of the unnecessary "type" and "value" fields. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Generalize KIND_ACCEL to accept diagonalsGeorge Spelvin2014-07-251-48/+23
| | | | | | | | | | | | | Rather than having special code cases for diagonal mouse movements, extend the general purpose code used for the cardinal directions to handle arbitrary (x,y) deltas. The deltas themselves are stored in translation table's "code" field; this is also progress toward the goal of eliminating the "value" element entirely. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Delete superfluous input_sync()George Spelvin2014-07-251-1/+0
| | | | | | | | | | | | It's not necessary, and since both events happen "at the same time" in response to a single input event, the input device framework prefers not to have it there. (It's not a big deal one way or the other, but deleting cruft is generally a good thing.) Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
* [media] ati_remote: Shrink ati_remote_tbl structureGeorge Spelvin2014-07-251-4/+4
| | | | | | | | The variable types are simply larger than they need to be. Shrink to signed and unsigned chars. Signed-off-by: George Spelvin <linux@horizon.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>